The libaom package contains a reference version of the Alliance for Open Media video codec. This codec is a patent free alternative to H.265. While being slower than dav1d and SVT-AV1, this package provides both an encoder and decoder with support for chroma subsampling outside of just YUV420. SVT-AV1 only supports YUV420, so if you need to go outside it, install this package.
This may take a while to build. Feel free to do something else while this is building.
First, ensure libaom gets every bit of info it needs from NASM to prevent a configuration issue as a result of NASM updating how the help screens work with NASM3:
patch -Np1 -i ../libaom-3.13.1-nasm3-1.patch
Install libaom by running the following commands:
mkdir aom-build &&
cd aom-build &&
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-D BUILD_SHARED_LIBS=1 \
-D ENABLE_DOCS=no \
-G Ninja .. &&
ninja
Now, as the root user:
ninja install && rm -v /usr/lib/libaom.a
Install lib32-libaom by running the following commands:
rm -rf * &&
CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_INSTALL_LIBDIR=lib32 \
-D CMAKE_BUILD_TYPE=Release \
-D BUILD_SHARED_LIBS=1 \
-D ENABLE_DOCS=no \
-G Ninja .. &&
ninja
Now, as the root user:
DESTDIR=$PWD/DESTDIR ninja install && cp -vR DESTDIR/usr/lib32/* /usr/lib32 && rm -v /usr/lib32/libaom.a && rm -rf DESTDIR && ldconfig
For a full list of options and values, make sure you are in a build directory, then run cmake -LAH ...
-D BUILD_SHARED_LIBS=1:
This switch builds shared versions of the libraries.
-D ENABLE_DOCS=no: This
switch disables building the documentation because doxygen is not
installed.