[FFmpeg-devel] [RFC] Handling the encapsulation of "E-distribution audio"

Anssi Hannula anssi.hannula
Wed Jul 21 20:17:42 CEST 2010


Kieran Kunhya kirjoitti lauantai, 17. hein?kuuta 2010 20:57:36:
> "E-Distribution audio" (Dolby E) has an odd encapsulation method. It is
> designed to hide as 2-channel PCM and can contain up to 8 different
> streams.  Program map changes (e.g. from 5.1 to 2.0) are common.  For
> various reasons you also need to have access to the whole frame to decode
> a particular channel. This doesn?t fit well with lavf/lavc?s model where
> each program is separate in the container. The audio is actually
> encapsulated in the PCM using SMPTE 337M which is similar to SPDIF
> encapsulation.
> 
> Realistically the only containers that would contain this audio are wav,
> mxf, ts and possibly mp4/mov. TS is more complicated because TS uses SMPTE
> 302M encapsulation which creates a longer chain:
> 
> TS -> SMPTE 302M -> SMPTE 337M -> E-distribution
> 
> Possible solutions:
> Some sort of chained demuxer (best option imo). I don?t know enough about
> lavf/lavc internals to code this one.  This would presumably require some
> discussion about the API changes (something like demux depth?)
> 
> Don?t split up into programs (e.g. a 5.1+2.0 stream would be treated as one
> 8 channel stream)
> 
> Any other options I haven?t mentioned? What's the best way to handle this?

The situation seems similar to LATM, where it is TS -> LATM -> AAC, though 
AFAIK multiple AAC streams in LATM is not common.

Chained demuxer would indeed be the preferred method, from what I can tell.

Michael posted this suggestion a year ago, though it probably requires more 
refining:
http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-May/070200.html

-- 
Anssi Hannula



More information about the ffmpeg-devel mailing list