[FFmpeg-cvslog] r12759 - in trunk/libavcodec: aac_ac3_parser.c?aac_ac3_parser.h aac_parser.c ac3_parser.c

Justin Ruggles justinruggles
Thu Apr 10 02:03:18 CEST 2008

Michael Niedermayer wrote:
> On Thu, Apr 10, 2008 at 01:00:03AM +0200, Bartlomiej Wolowiec wrote:
>> On s'roda, 9 kwietnia 2008, Michael Niedermayer wrote:
>> 3. Justin wrote, that it's correct and applied in Blu-ray
>> ( http://lists.mplayerhq.hu/pipermail/ffmpeg-soc/2008-March/003009.html )
> I remember, i just dont want to belive him :)
> he says "I have not found any samples though."
> So IMHO we could treat normal AC3 frames as need_next_header=0 until we do
> find a sample.

I think I have a sample, but I can't seem to get to the audio... It's an
MPEG2-TS blu-ray sample, which is purported to have an AC3/E-AC3 audio
track, but neither FFmpeg nor MPlayer recognizes it...

uploaded to incoming/blu-ray_eac3/00007.m2ts

Here are some quotes from ETSI TS 102 366 which support the fact that a
compliant stream can have normal 5.1 downmixed AC3 as the independent
frames, and E-AC3 as the supplemental dependent frames for additional
channels.  Since the independent stream is downmixed, it seems that the
dependent frames also replace some of the independent channels.

"All Enhanced AC-3 bit streams must contain an independent substream
assigned substream ID 0. The independent substream assigned substream ID
0 must be the first substream present in the bit stream. If an AC-3
bitstream is present in the Enhanced AC-3 bitstream, then the AC-3
bitstream shall be treated as an independent substream assigned
substream ID 0.
Each independent substream may have up to 8 dependent substreams
associated with it. Dependent substreams must immediately follow the
independent substream with which they are associated. Dependent
substreams are assigned substream ID's 0 to 7, which must be assigned
sequentially according to the order the dependent substreams are present
in the bit stream."

"When a bit stream contains a single programme with greater than 5.1
channels, independent substream 0 contains a 5.1 channel downmix of the
programme for compatibility with playback systems containing 5.1
speakers. The audio in independent substream 0 can also be downmixed for
compatibility with playback systems containing less than 5.1 speakers.
Decoders reproducing 5.1 or fewer channels from a programme containing
greater than 5.1 channels shall decode only independent substream 0 and
skip all associated dependent substreams.

In order to accommodate playback by systems with greater than 5.1
speakers, the Enhanced AC-3 bit stream will carry one or more dependent
substreams that contain channels that either replace or supplement the
5.1 channel data carried in independent substream 0."

More information about the ffmpeg-cvslog mailing list