[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