[FFmpeg-devel] [RFC] avcodec: Add native DCA decoder based on libdcadec.

Michael Niedermayer michael at niedermayer.cc
Wed Jan 6 03:35:00 CET 2016


On Tue, Jan 05, 2016 at 11:27:25PM -0300, James Almer wrote:
> On 1/5/2016 11:21 PM, Michael Niedermayer wrote:
> > On Tue, Jan 05, 2016 at 11:38:00PM +0300, foo86 wrote:
> >> On Tue, Jan 05, 2016 at 08:45:22PM +0100, Andreas Cadhalpun wrote:
> >>> On 03.01.2016 18:49, foo86 wrote:
> >>>> +// 5.3.1 - Bit stream header
> >>>> +static int parse_frame_header(DCA2CoreDecoder *s)
> >>>> +{
> >>> [...]
> >>>> +    // Source PCM resolution
> >>>> +    s->source_pcm_res = ff_dca_bits_per_sample[pcmr_index = get_bits(&s->gb, 3)];
> >>>
> >>> This can cause an out-of-bounds read if get_bits returns 7, because ff_dca_bits_per_sample
> >>> only has 7 elements.
> >>
> >> Fixed locally, thanks.
> >>
> >> P.S. To avoid resending this huge patch, I've put the fixes accumulated
> >> so far in a private dcadec2 branch on github [1] (will be rebased
> >> frequently against FFmpeg master).
> >>
> > 
> >> [1]: https://github.com/foo86/FFmpeg/tree/dcadec2
> > 
> > breaks "make fate", something needs to be updated
> > or a new reference sample uploaded if teh one we have is wrong
> > 
> > stddev:  297.72 PSNR: 46.85 MAXDIFF: 3474 bytes:  8994816/  9601024
> > MAXDIFF: |3474 - 0| >= 1
> > size: |8994816 - 9601024| >= 0
> > Test dca-xll failed. Look at tests/data/fate/dca-xll.err for details.
> > make: *** [fate-dca-xll] Error 1
> > make: *** Waiting for unfinished jobs....
> 
> Was this run using foo86's decoder, or the current one? If the former then it's
> not unexpected since the xll test was made for the current decoder, which is not
> bitexact.

i just locally merged the branch and did a make -j12 fate


> 
> Ideally, once this decoder is committed replacing the current one we'd replace
> the samples for the set available here: https://github.com/foo86/dcadec-samples

we can add new fate samples, we cannot replace fate samples
replacing would break previous checkouts and releases
not sure you actually meant to replace any ...

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Dictatorship: All citizens are under surveillance, all their steps and
actions recorded, for the politicians to enforce control.
Democracy: All politicians are under surveillance, all their steps and
actions recorded, for the citizens to enforce control.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160106/d8580a29/attachment.sig>


More information about the ffmpeg-devel mailing list