[Cin] The "Story of Dav1d" with Cinelerra builds (AV1 decoder)

Phyllis Smith phylsmith2017 at gmail.com
Mon Sep 2 23:00:32 CEST 2019

As pointed out by Andrew (BT #214), using libdav1d as opposed to libaom for
decoding (no encoding) is so attractive because it pretty much runs at full
speed.  So when FFmpeg 4.2 included the compile option for this, we were
highly motivated to put this in as the default for AV1 media
loading/editing.  AV1 is yet another codec that seems to be newly relevant.

However as mentioned in a previous email, dav1d inclusion was a big problem
for the older system monthly builds.  First, meson had to be at or above
version 47 and only 5 out of 18 build systems were.  Consequently, GG ended
up eliminating the "meson" requirement and substituting the standard "make"
instead.  Then the "nasm" assembler on some of the older systems was not
able to compile Dav1d so they had to be switched out for a newer/working
version (11 out of 19 were OK).

If we had known the problems that would be encountered in applying
libdav1d, I wonder if we would have included it at this time? Also, as
mentioned in the BT #214, a remapping for decoding with libdav1d being the
preference is in the {cinelerra_path}/ffmpeg/decode.opts file.  To revert
to using libaom instead for decoding, you will need to comment out the
line:   remap_video_decoder libaom-av1=libdav1d
every time you update Cinelerra.  We have not tested what happens if there
is either no libdav1d or libaom so if that creates a different problem, we
will have to address that.   gg/Phyllis

*The following information is for the people who do their own builds.*

The easy workaround, if you do not care about AV1 files, is to add to the
configure line in your script:
   ./configure     ....     --disable-dav1d
The better fix, is to upgrade nasm to at least 2.13 or higher.

Here is the list of the problem distro systems:

*libdav1d requires minimum nasm>=2.13 && meson>=0.47   *
*In the chart below * designates compile works, x designates compile fails*
*meson           nasm            os      kernel*
0.51.2 *        2.14.02 *       arch    linux (5.2.9-arch1-1-ARCH)
missing x       2.10.07 x       centos  3.10.0-957.10.1.el7.x86_64
0.21.0 x        2.11.05 x       debian8 3.16.0-10-amd64
0.37.1 x        2.12.01 x       debian9 4.9.0-9-amd64
0.37.1 x        2.12.01 x       debian9i 4.9.0-9-686-pae
0.49.2 *        2.14    *       debian10 4.19.0-5-amd64
0.47.2 *        2.13.03 *       fc28    5.0.16-100.fc28.x86_64
0.51.1 *        2.13.03 *       fc29    5.2.7-100.fc29.x86_644
0.50.1 *        2.13.03 *       fc30    5.2.9-200.fc30.x86_644
missing x       2.13.03 *       su42.3  4.4.180-102-default
0.46.0 x        2.13.02 *       leap05  4.12.14-lp151.28.13-default
0.40.1 x        2.11.08 x       mint18  4.8.0-53-generic
0.45.1 x        2.13.02 *       mint19  4.15.0-20-generic
missing x       2.10.09 x       ub14    3.13.0-170-generic
0.29.0 x        2.11.08 x       ub16    4.4.0-159-generic
0.45.1 x        2.13.02 *       4.15.0-58-generic
missing x       2.10.09 x       ub14i   3.16.0-77-generic
0.46.1 x                *       slk32
0.46.1 x                *       slk34

meson   14 fail, 5 succeed
nasm    8 fail, 11 succeed

To get a working set of builds for the month, the way gg used was to:

- generate a Makefile for x86 to replace meson (for now).
- copy nasm "NASM version 2.13.03 compiled on Feb  2 2019" to:
     debian8 debian9 debian9i leap03 ub16 ub14 ubuntu mint18
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20190902/370bf764/attachment.html>

More information about the Cin mailing list