summaryrefslogtreecommitdiffstats
path: root/ffmpeg
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2023-08-31 14:29:28 +0000
committer Eric Hameleers <alien@slackware.com>2023-08-31 14:29:28 +0000
commit3a0cf03cc8ee092d729490cf83ed9822ccb915c9 (patch)
tree11abe94515d2b383ef1e8115ce849488e347815f /ffmpeg
parente1be6cd47017f4e867d6dd11dd0ce044bf226653 (diff)
downloadasb-3a0cf03cc8ee092d729490cf83ed9822ccb915c9.tar.gz
asb-3a0cf03cc8ee092d729490cf83ed9822ccb915c9.tar.xz
ffmpeg: add SVT-AV1 codec
Diffstat (limited to 'ffmpeg')
-rwxr-xr-xffmpeg/build/ffmpeg.SlackBuild60
1 files changed, 56 insertions, 4 deletions
diff --git a/ffmpeg/build/ffmpeg.SlackBuild b/ffmpeg/build/ffmpeg.SlackBuild
index 23f12408..248b0e42 100755
--- a/ffmpeg/build/ffmpeg.SlackBuild
+++ b/ffmpeg/build/ffmpeg.SlackBuild
@@ -211,7 +211,8 @@
# 5.1.3-1: 22/aug/2023 by Eric Hameleers <alien@slackware.com>
# * Update.
# 5.1.3-2: 31/aug/2023 by Eric Hameleers <alien@slackware.com>
-# * Rebuilt against newer Vulkan.
+# * Rebuilt was needed against newer Vulkan.
+# Also added new AV1 encoder/decoder SVT-AV1.
#
# Run 'sh ffmpeg.SlackBuild' to build a Slackware package.
# The package (.txz) plus descriptive .txt file are created in /tmp .
@@ -311,6 +312,7 @@ DOCS_RAW1394="AUTHORS ChangeLog INSTALL NEWS README"
DOCS_RTMP="AUTHORS COPYING ChangeLog README"
DOCS_SDL2="*.txt"
DOCS_SPEEX="AUTHORS COPYING ChangeLog NEWS README* TODO"
+DOCS_SVTAV1="*.md"
DOCS_V4L2="COPYING* ChangeLog README* TODO"
DOCS_VDPAU="AUTHORS COPYING ChangeLog NEWS README"
DOCS_VPX="AUTHORS CHANGELOG LICENSE README"
@@ -337,6 +339,7 @@ RAW1394=2.0.5
RTMP=2.3
SDL2=2.28.2
SPEEX=1.2.1
+SVTAV1=1.7.0
V4L=1.24.1
VDPAU=1.5
VPX=1.13.0
@@ -514,11 +517,16 @@ SOURCE[23]="$SRCDIR/sources/dav1d-${DAV1D}.tar.xz"
SRCURL[23]="http://download.videolan.org/pub/videolan/dav1d/${DAV1D}/dav1d-${DAV1D}.tar.xz"
SRCPAT[23]="NO"
-# Game Music Emulator:
-SOURCE[24]="$SRCDIR/sources/game-music-emu-${GME}.tar.xz"
-SRCURL[24]="https://bitbucket.org/mpyne/game-music-emu/downloads/game-music-emu-${GME}.tar.xz"
+# SVT-AV1, a free AV1 encoder/decoder:
+SOURCE[24]="$SRCDIR/sources/SVT-AV1-${SVTAV1}.tar.gz"
+SRCURL[24]="https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v${SVTAV1}/SVT-AV1-v${SVTAV1}.tar.gz"
SRCPAT[24]="NO"
+# Game Music Emulator:
+SOURCE[25]="$SRCDIR/sources/game-music-emu-${GME}.tar.xz"
+SRCURL[25]="https://bitbucket.org/mpyne/game-music-emu/downloads/game-music-emu-${GME}.tar.xz"
+SRCPAT[25]="NO"
+
# Use the src_checkout() function if no downloadable tarball exists.
# This function checks out sources from SVN/CVS and creates a tarball of them.
@@ -1660,6 +1668,42 @@ cd -
# -----------------------------------------------------------------------------
+# Compile svtav1 libraries
+# -----------------------------------------------------------------------------
+
+make_svtav1()
+{
+echo -e "**\n** svtav1 ...\n**"
+cd $TMP/tmp-$PRGNAM/SVT-AV1-v${SVTAV1}
+
+# Needs a newer nasm to make it compile on 14.2!
+mkdir build-svtav1
+cd build-svtav1
+ cmake .. \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=$FFMPEGDEPSDIR/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DNATIVE=OFF
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_svtav1.log
+ make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_svtav1.log
+ # Install svtav1 into a temp location so ffmpeg can pickup the library
+ make install 2>&1 | tee -a $OUTPUT/install-${PRGNAM}_svtav1.log
+cd - 1>/dev/null
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/svtav1/
+cp $DOCS_SVTAV1 \
+ $FFMPEGDEPSDIR/doc/svtav1/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
# Compile game music emulator
# -----------------------------------------------------------------------------
@@ -1739,6 +1783,12 @@ cat $SRCDIR/patches/ffmpeg_binutils241.patch | patch -p1 --verbose \
cat $SRCDIR/patches/ffmpeg.vulkan.diff | patch -p1 --verbose \
2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+# Build against recent SVT-AV1 codec:
+cat $SRCDIR/patches/ffmpeg.libsvtav1.vbv_bufsize.patch | patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+cat $SRCDIR/patches/ffmpeg.libsvtav1.10bit.patch | patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+
# Restore missing function needed by Chromium and qt-webengine:
cat $SRCDIR/patches/add-av_stream_get_first_dts-for-chromium.patch \
| patch -p1 --verbose 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
@@ -1786,6 +1836,7 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
--enable-libsmbclient \
--enable-libssh \
--enable-libspeex \
+ --enable-libsvtav1 \
--enable-libtheora \
--enable-libv4l2 \
--enable-libvo-amrwbenc \
@@ -1851,6 +1902,7 @@ make_speex
make_gsm
#make_rtmp
make_dav1d
+make_svtav1
make_x264
make_x265
make_vpx