[FFmpeg-devel] [RFC 1/3] daaladec: Implement a native Daala decoder

Michael Niedermayer michael at niedermayer.cc
Tue Dec 29 02:30:54 CET 2015


On Mon, Dec 28, 2015 at 04:58:48PM +0000, Rostislav Pehlivanov wrote:
> This commit is a work in progress Daala decoder implemented in FFmpeg.
> Comments are requested.
> 
> The current decoder is able to decode lossless Daala encoded files (the
> output of this decoder is still identical to the output) and Daala
> I-frames at any size and quantization level.
> 
> Performance wise, this decoder is around 1.8 times faster than the
> reference decoder and is able to open images larger than the
> player_example provided with libdaala (which apparently runs out of
> memory).
> 
> There's a missing filter so the output will look subjectively blockier
> than the reference decoder at higher quantization levels (which blurs
> the hell out of any detail, so this decoder looks subjectively a bit
> better at higher quantizations by preserving more detail).
> 
> Most of the code here was written using libdaala as a reference,
> after optimizing, refactoring and shortening. As such, although very few
> lines have been copied directly, the code is still licensed under the
> BSD 2-clause like libdaala. Files which are completely original work are
> licensed under the same license as FFmpeg. I'm not too concerned about
> those, so if people want I wouldn't mind licensing them as a BSD 2-clause
> like the rest of the decoder.
> 
> The "what the hell were you thinking" Q&A section:
> 
> Q: What about AOMedia and the IETF?
> A: There's a (high) chance that the current libdaala codebase will be
>    used, and thus this decoder will continue tracking whatever becomes
>    of libdaala.
> 
> Q: What if libdaala dies and AOMedia/IETF come up with something
>    completely different (unlikely).
> A: This decoder will continue tracking whatever they come up with, after
>    salvaging all the code that can be reused. It is likely that the files
>    will be renamed as well as the codec description. The codec ID
>    (AV_CODEC_ID_DAALA) will still be used to refer to the new codec
>    since it's already been upstreamed.
> 
> Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>
> ---
>  libavcodec/Makefile        |    1 +
>  libavcodec/allcodecs.c     |    1 +
>  libavcodec/daala.h         |   78 ++
>  libavcodec/daala_entropy.h |  554 ++++++++++++
>  libavcodec/daala_pvq.h     |  369 ++++++++
>  libavcodec/daala_utils.h   |  202 +++++
>  libavcodec/daaladec.c      |  804 +++++++++++++++++
>  libavcodec/daaladsp.c      | 2123 ++++++++++++++++++++++++++++++++++++++++++++
>  libavcodec/daaladsp.h      |   78 ++
>  libavcodec/daalatab.c      | 1544 ++++++++++++++++++++++++++++++++
>  libavcodec/daalatab.h      |   85 ++
>  11 files changed, 5839 insertions(+)
>  create mode 100644 libavcodec/daala.h
>  create mode 100644 libavcodec/daala_entropy.h
>  create mode 100644 libavcodec/daala_pvq.h
>  create mode 100644 libavcodec/daala_utils.h
>  create mode 100644 libavcodec/daaladec.c
>  create mode 100644 libavcodec/daaladsp.c
>  create mode 100644 libavcodec/daaladsp.h
>  create mode 100644 libavcodec/daalatab.c
>  create mode 100644 libavcodec/daalatab.h

this seems to fail building

In file included from libavcodec/daaladsp.c:30:0:
libavcodec/daalatab.h:48:35: error: no previous prototype for ‘daala_find_p_format’ [-Werror=missing-prototypes]
cc1: some warnings being treated as errors
make: *** [libavcodec/daaladsp.o] Error 1
In file included from libavcodec/daalatab.c:29:0:
libavcodec/daalatab.h:48:35: error: no previous prototype for ‘daala_find_p_format’ [-Werror=missing-prototypes]
cc1: some warnings being treated as errors
make: *** [libavcodec/daalatab.o] Error 1
In file included from libavcodec/daaladec.c:35:0:
libavcodec/daalatab.h:48:35: error: no previous prototype for ‘daala_find_p_format’ [-Werror=missing-prototypes]
cc1: some warnings being treated as errors
make: *** [libavcodec/daaladec.o] Error 1
make: Target `all' not remade because of errors.

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

Frequently ignored answer#1 FFmpeg bugs should be sent to our bugtracker. User
questions about the command line tools should be sent to the ffmpeg-user ML.
And questions about how to use libav* should be sent to the libav-user ML.
-------------- 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/20151229/bdd14fe0/attachment.sig>


More information about the ffmpeg-devel mailing list