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

Kieran Kunhya kieran
Sat Jul 17 19:57:36 CEST 2010


"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?




More information about the ffmpeg-devel mailing list