[FFmpeg-devel] [PATCH]Support more Atrac3-in-mkv samples

Carl Eugen Hoyos cehoyos at ag.or.at
Sun Feb 10 14:47:22 CET 2013

Paul B Mahol <onemda <at> gmail.com> writes:

> > -    } else if (avctx->extradata_size == 10) {
> > +    } else if (avctx->extradata_size == 12 ||
> > +               avctx->extradata_size == 10) {
> >          /* Parse the extradata, RM format. */
> >          version                = bytestream_get_be32(&edata_ptr);
> >          samples_per_frame      = bytestream_get_be16(&edata_ptr);
> What extra 2 bytes have? The matroska spec mentions 2 version of
> headers and matroska demuxer  skips first 22 bytes.

It actually skips (all) 78 bytes and uses the data 
after the matroska real audio property as extradata 
to be used by the decoder.
(Unrelated to this patch: It implicitely assumes a 
version 5 property header, could this be exploitable?)

It don't see how the needed extradata can be produced 
from the specified matroska structure (I did not find 
any of version, samples_per_frame and delay as read in 
the atrac3 decoder), and in my tests mkvmerge always 
writes those extra (undefined?) bytes.

There may be a problem with ra_288 in matroska: A test 
file only played with audible artefacts here, I don't 
know if the bug is in mkvmerge or FFmpeg. (How to test?)

> LGTM anyway.

Patch applied.

Thank you, Carl Eugen

More information about the ffmpeg-devel mailing list