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

foo86 foobaz86 at gmail.com
Wed Jan 6 18:32:27 CET 2016


On Tue, Jan 05, 2016 at 10:46:19PM +0100, Andreas Cadhalpun wrote:
> OK. This decoder seems to be quite robust in handling fuzzed samples,
> so from a security point of view it should be fine to replace the
> old dca decoder with this one.

Out of interest, did you disable CRC checks in the decoder while fuzzing?
Otherwise testing coverage will be decreased somewhat. The easiest way to do
this is to modify ff_dca2_check_crc() to always return 0.

> Out of curiosity: Can you post a few benchmarks comparing the performance
> of the old and the new decoder?

Here are some benchmarks I did with 3 available decoders on 3 different
systems: (1) x86_64 desktop, (2) ancient i386 laptop, (3) Raspberry Pi Model
B+.

Measuring how much time it takes to loop 2000 times over a short 5.1
channel core sample (for a total duration of 00:51:56.22) yields the
following results:

            dca         dca2        libdcadec
System 1:   0:11.90     0:11.16     0:19.73
System 2:   0:57.00     0:55.23     1:21.33
System 3:   7:41.31     7:00.84     13:16.70

The new decoder appears slightly faster than dca even though it doesn't
use any assembly optimized code for dcadsp (besides synth_filter).


More information about the ffmpeg-devel mailing list