xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.


Ticket #1194: add-aac-mpeg4.patch

File add-aac-mpeg4.patch, 3.5 KB (added by Antoine Martin, 5 years ago)

work in progress patch: try to add aac codec and mpeg4 muxer

  • xpra/sound/gstreamer_util.py

     
    8989GDP = "gdp"
    9090OGG = "ogg"
    9191MKA = "mka"
     92MPEG4 = "mpeg4"
    9293#RTP = "rtp"
    9394
    9495FLAC_GDP    = FLAC+"+"+GDP
     
    9798VORBIS_OGG  = VORBIS+"+"+OGG
    9899#OPUS_WEBM   = OPUS+"+"+WEBM
    99100#OPUS_RTP    = OPUS+"+"+RTP
    100 VORBIS_MKA = VORBIS+"+"+MKA
     101VORBIS_MKA  = VORBIS+"+"+MKA
     102AAC_GDP     = AAC+"+"+GDP
     103AAC_MPEG4   = AAC+"+"+MPEG4
     104AAC_OGG     = AAC+"+"+OGG
     105AAC_MKA     = AAC+"+"+MKA
    101106
     107
    102108#format: encoder, container-formatter, decoder, container-parser
    103109#we keep multiple options here for the same encoding
    104110#and will populate the ones that are actually available into the "CODECS" dict
     
    126132        (SPEEX      , "speexenc",       "oggmux",       "speexdec",     "oggdemux"),
    127133        (SPEEX_GDP  , "speexenc",       "gdppay",       "speexdec",     "gdpdepay"),
    128134        (WAVPACK    , "wavpackenc",      None,          "wavpackparse ! wavpackdec",   None),
     135        (AAC        , "faac",           None,           "aacparse ! faad",  None),
     136        (AAC        , "avenc_aac",      None,           "aacparse ! avdec_aac",  None),
     137        (AAC_GDP    , "faac",           "gdppay",       "aacparse ! faad", "gdpdepay"),
     138        (AAC_GDP    , "avenc_aac",      "gdppay",       "aacparse ! avdec_aac", "gdpdepay"),
     139        #cannot link:
     140        #(AAC_OGG    , "faac",           "oggmux",       "aacparse ! faad", "oggdemux"),
     141        #(AAC_OGG    , "avenc_aac",      "oggmux",       "aacparse ! avdec_aac", "oggdemux"),
     142        #(AAC_MKA    , "faac",           "webmmux",      "aacparse ! faad", "matroskademux"),
     143        #(AAC_MKA    , "avenc_aac",      "webmmux",      "aacparse ! avdec_aac", "matroskademux"),
     144        (AAC_MPEG4  , "faac",           "mp4mux",       "aacparse ! faad", "qtdemux"),
     145        (AAC_MPEG4  , "avenc_aac",      "mp4mux",       "aacparse ! avdec_aac", "qtdemux"),
    129146            ]
    130147
    131148MUX_OPTIONS = [
     
    132149               (GDP,    "gdppay",   "gdpdepay"),
    133150               (OGG,    "oggmux",   "oggdemux"),
    134151               (MKA,    "webmmux",  "matroskademux"),
     152               (MPEG4,  "mp4mux",   "qtdemux"),
    135153              ]
    136154emux = [x for x in os.environ.get("XPRA_MUXER_OPTIONS", "").split(",") if len(x.strip())>0]
    137155if emux:
     
    158176                               "bitrate"    : 256000,
    159177                               },
    160178            "flacenc"       : {"quality" : 0},  #"fast"
     179            "avenc_aac"     : {"compliance" : -2}       #allows experimental
    161180                           }
    162181ENCODER_DEFAULT_OPTIONS = {
    163182                            0       : {
     
    185204                               "crc-payload"   : int(GDPPAY_CRC),
    186205                               },
    187206            "webmmux"       : {"writing-app"    : "Xpra"},
     207            "mp4mux"        : {
     208                               "faststart"      : 1,
     209                               "streamable"     : 1,
     210                               "fragment-duration"  : 1,
     211                               "presentation-time"  : 0,
     212                               }
    188213           }
    189214
    190215#based on the encoder options above:
     
    203228        SPEEX_GDP   : 0,
    204229       }
    205230
    206 CODEC_ORDER = [OPUS_GDP, OPUS, VORBIS, VORBIS_MKA, FLAC_GDP, FLAC, MP3, WAV, WAVPACK, SPEEX_GDP, SPEEX]
     231CODEC_ORDER = [OPUS_GDP, OPUS, VORBIS, VORBIS_MKA, FLAC_GDP, FLAC, MP3, WAV, WAVPACK, SPEEX_GDP, SPEEX, AAC_GDP, AAC_MPEG4, AAC_OGG, AAC_MKA, AAC]
    207232
    208233
    209234gst = None