summaryrefslogtreecommitdiffstats
path: root/ffmpeg
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2020-07-19 22:41:26 +0000
committer Eric Hameleers <alien@slackware.com>2020-07-19 22:41:26 +0000
commit0fe95b6aa5383e444e5c02c43fa69dcd64f2e247 (patch)
treed88cf7cad82fd3cfd5b49208f22ff241ac900cb7 /ffmpeg
parenta20584c8d5a08f16f96dc8a67b217d71a2bbbd64 (diff)
downloadasb-0fe95b6aa5383e444e5c02c43fa69dcd64f2e247.tar.gz
asb-0fe95b6aa5383e444e5c02c43fa69dcd64f2e247.tar.xz
ffmpeg: updated.
Added AV1 decoding through libdav1d. Updated internal libraries for libdc1394, fdkaac, fribidi, libgsm, libva, sdl2, v4l, vdpau and x265.
Diffstat (limited to 'ffmpeg')
-rwxr-xr-xffmpeg/build/ffmpeg.SlackBuild110
1 files changed, 79 insertions, 31 deletions
diff --git a/ffmpeg/build/ffmpeg.SlackBuild b/ffmpeg/build/ffmpeg.SlackBuild
index 698ca55a..539ab631 100755
--- a/ffmpeg/build/ffmpeg.SlackBuild
+++ b/ffmpeg/build/ffmpeg.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
# $Id$
-# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Eric Hameleers, Eindhoven, NL
+# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -28,7 +28,9 @@
# For: ffmpeg
# Descr: software to record, convert and stream audio and video
# URL: http://ffmpeg.org/
-# Needs: yasm (only compile-time)
+# Buildneeds: meson, ninja, python3, yasm
+# (Slackware 14.2: newer nasm)
+# Needs:
# Changelog:
# 20070519-1: 19/May/2007 by Eric Hameleers <alien@slackware.com>
# * Initial build.
@@ -183,6 +185,10 @@
# * Updated.
# 4.2.1-1: 23/dec/2019 by Eric Hameleers <alien@slackware.com>
# * Updated.
+# 4.3.1-1: 19/jul/2020 by Eric Hameleers <alien@slackware.com>
+# * Updated. Added AV1 decoding through libdav1d.
+# Updated internal libraries for libdc1394, fdkaac, fribidi,
+# libgsm, libva, sdl2, v4l, vdpau and x265.
#
# Run 'sh ffmpeg.SlackBuild' to build a Slackware package.
# The package (.txz) plus descriptive .txt file are created in /tmp .
@@ -192,7 +198,7 @@
PRGNAM=ffmpeg
-VERSION=${VERSION:-4.2.1}
+VERSION=${VERSION:-4.3.1}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-"-j$(nproc)"}
TAG=${TAG:-"alien"}
@@ -246,52 +252,50 @@ DOCS_AMR="COPYING ChangeLog README"
DOCS_AMRWBENC="COPYING ChangeLog NOTICE README"
DOCS_ASS="COPYING Changelog"
DOCS_AVC1394="AUTHORS COPYING ChangeLog INSTALL NEWS README"
+DOCS_DAV1D="COPYING NEWS *.md doc/PATENTS"
DOCS_DC1394="AUTHORS COPYING ChangeLog INSTALL NEWS README"
DOCS_FDKAAC="ChangeLog NOTICE"
-DOCS_MFX="COPYING README.md"
DOCS_FRIBIDI="AUTHORS COPYING ChangeLog NEWS README THANKS TODO"
DOCS_GSM="COPYRIGHT ChangeLog* INSTALL MACHINES MANIFEST README"
DOCS_LAME="API COPYING ChangeLog HACKING LICENSE README STYLEGUIDE TODO USAGE"
DOCS_LIBVA="COPYING"
DOCS_LIBZVBI="AUTHORS BUGS COPYING COPYING.LIB ChangeLog INSTALL NEWS README TODO"
+DOCS_MFX="LICENSE README.md"
DOCS_OPUS="AUTHORS COPYING ChangeLog NEWS README"
-DOCS_ORC="COPYING README TODO"
DOCS_RAW1394="AUTHORS ChangeLog INSTALL NEWS README"
DOCS_RTMP="AUTHORS COPYING ChangeLog README"
-DOCS_SCHROEDINGER="AUTHORS COPYING* NEWS TODO"
DOCS_SDL2="*.txt"
DOCS_SPEEX="AUTHORS COPYING ChangeLog NEWS README* TODO"
DOCS_V4L2="COPYING* ChangeLog README* TODO"
DOCS_VDPAU="AUTHORS COPYING ChangeLog NEWS README"
DOCS_VPX="AUTHORS CHANGELOG LICENSE README"
DOCS_X264="AUTHORS COPYING"
-DOCS_X265="AUTHORS COPYING"
+DOCS_X265="COPYING readme.rst"
# Support libraries:
AMRWBENC=0.1.3
AMR=0.1.3
ASS=0.14.0
AVC1394=0.5.4
-DC1394=2.1.2
-FDKAAC=2.0.0
+DAV1D=0.7.1
+DC1394=2.2.6
+FDKAAC=2.0.1
MFX=1.25
-FRIBIDI=1.0.8
-GSM=1.0.16
+FRIBIDI=1.0.10
+GSM=1.0.17
LAME=3.100
-LIBVA=2.5.0
+LIBVA=2.8.0
LIBZVBI=0.2.35
OPUS=1.3.1
-ORC=0.4.29
RAW1394=2.0.5
RTMP=2.3
-SCHROEDINGER=1.0.11
-SDL2=2.0.10
+SDL2=2.0.12
SPEEX=1.2.0
-V4L=1.18.0
-VDPAU=1.2
+V4L=1.20.0
+VDPAU=1.4
VPX=1.8.2
X264=20191217-2245
-X265=3.1.2
+X265=3.4
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
@@ -303,11 +307,20 @@ OUTPUT=${OUTPUT:-/tmp}
# Check for yasm, abort if not found:
if ! which yasm >/dev/null 2>&1 ; then
- echo "##"
- echo "## The 'yasm' program does not seem to be installed."
- echo "## The X264/VP8 codec compilation needs yasm (nasm will not do)!"
- echo "## Aborting the build."
- echo "##"
+ echo "+++"
+ echo "+++ The 'yasm' program does not seem to be installed."
+ echo "+++ The X264/VP8 codec compilation needs yasm (nasm will not do)!"
+ echo "+++ Aborting the build."
+ echo "+++"
+ exit 1
+fi
+
+# Building dav1d plugin requires meson/ninja/python3:
+if ( ! which meson || ! which ninja || ! which python3 ) 1>/dev/null 2>/dev/null ; then
+ echo "+++"
+ echo "+++ MESON, NINJA and/or PYTHON3 not present - the build will abort on compiling dav1d encoder!"
+ echo "+++ Aborting the build."
+ echo "+++"
exit 1
fi
@@ -343,7 +356,7 @@ SRCPAT[0]="NO"
# VDPAU for video hardware acceleration:
SOURCE[1]="$SRCDIR/sources/libvdpau-${VDPAU}.tar.bz2"
-SRCURL[1]="http://people.freedesktop.org/~aplattner/vdpau/libvdpau-${VDPAU}.tar.bz2"
+SRCURL[1]="https://gitlab.freedesktop.org/vdpau/libvdpau/-/archive/${VDPAU}/libvdpau-${VDPAU}.tar.bz2"
SRCPAT[1]="NO"
# SDL2 is required by ffplay:
@@ -421,8 +434,8 @@ SRCURL[16]="https://github.com/videolan/x265/archive/${X265}.tar.gz"
SRCPAT[16]="NO"
# Unicode BiDirectional algorithm library, requirement for libass.
-SOURCE[17]="$SRCDIR/sources/fribidi-${FRIBIDI}.tar.bz2"
-SRCURL[17]="https://github.com/fribidi/fribidi/releases/download/v${FRIBIDI}/fribidi-${FRIBIDI}.tar.bz2"
+SOURCE[17]="$SRCDIR/sources/fribidi-${FRIBIDI}.tar.xz"
+SRCURL[17]="https://github.com/fribidi/fribidi/releases/download/v${FRIBIDI}/fribidi-${FRIBIDI}.tar.xz"
SRCPAT[17]="NO"
# Libass - portable library for SSA/ASS subtitles rendering
@@ -450,6 +463,11 @@ SOURCE[22]="$SRCDIR/sources/zvbi-${LIBZVBI}.tar.bz2"
SRCURL[22]="http://downloads.sourceforge.net/zapping/zvbi-${LIBZVBI}.tar.bz2"
SRCPAT[22]="NO"
+# DAV1D, a free AV1 decoder:
+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"
+
# Use the src_checkout() function if no downloadable tarball exists.
# This function checks out sources from SVN/CVS and creates a tarball of them.
@@ -1475,7 +1493,6 @@ export LDFLAGS="$SLKLDFLAGS -ljpeg"
--enable-static \
--disable-shared \
--disable-libdvbv5 \
- --enable-libv4l \
--disable-v4l-utils \
--disable-qv4l2 \
--program-prefix= \
@@ -1563,10 +1580,38 @@ cp $DOCS_LIBZVBI $FFMPEGDEPSDIR/doc/zvbi/ || true
cd -
}
+# -----------------------------------------------------------------------------
+# Compile dav1d libraries
+# -----------------------------------------------------------------------------
+
+make_dav1d()
+{
+echo -e "**\n** dav1d ...\n**"
+cd $TMP/tmp-$PRGNAM/dav1d-${DAV1D}
+
+# Needs a newer nasm to make it compile on 14.2!
+meson build \
+ --prefix $FFMPEGDEPSDIR/usr \
+ --default-library static \
+ --backend ninja \
+ --buildtype release \
+ -Dlibdir=lib${LIBDIRSUFFIX} \
+ -Denable_tests=false -Denable_tools=false \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_dav1d.log
+# Install dav1d into a temp location so ffmpeg can pickup the library
+cd build
+ ninja install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_dav1d.log
+cd - 1>/dev/null
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/dav1d/
+cp $DOCS_DAV1D \
+ $FFMPEGDEPSDIR/doc/dav1d/ || true
+cd -
+}
# -----------------------------------------------------------------------------
# Compile ffmpeg with additional support for -
-# LAME (MP3), XVID, AAC (MP4), FAAD2 , SPEEX, X264, GSM, SCHROEDINGER
+# LAME (MP3), XVID, AAC (MP4), FAAD2 , SPEEX, X264, GSM
# -----------------------------------------------------------------------------
make_ffmpeg()
{
@@ -1609,7 +1654,7 @@ TMPDIR="$TMP" \
CFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \
CPPFLAGS="-I$FFMPEGDEPSDIR/usr/include -I$FFMPEGDEPSDIR/usr/include/SDL" \
CXXFLAGS="-I$FFMPEGDEPSDIR/usr/include -I$FFMPEGDEPSDIR/usr/include/SDL $SLKCFLAGS" \
-LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lpthread -lpng -lXext" \
+LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lpthread -lpng -lusb-1.0 -lXext" \
PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
./configure \
@@ -1624,6 +1669,7 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
--enable-avresample \
--enable-libmp3lame \
--enable-libass \
+ --enable-libdav1d \
--enable-libdc1394 \
--enable-libfribidi \
--enable-libgsm \
@@ -1694,6 +1740,7 @@ make_sdl2
make_speex
make_gsm
#make_rtmp
+make_dav1d
make_x264
make_x265
make_vpx
@@ -1735,6 +1782,7 @@ for PCFILE in $(ls $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/*.pc) ; do
-e 's/-lopus//g' \
-e 's/-lx264//g' -e 's/-lx265//g' -e 's/-lvpx//g' -e 's/-lmfx//g' \
-e 's/-lzvbi//g' \
+ -e 's/-ldav1d//g' \
-e "s#-L/tmp/build/tmp-ffmpeg/ffmpegdeps/usr/lib${LIBDIRSUFFIX}##" \
$PCFILE
done
@@ -1746,12 +1794,12 @@ cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
cp -a $FFMPEGDEPSDIR/doc/* $PKG/usr/doc/$PRGNAM-$VERSION || true
cp -a $SRCDIR/patches $PKG/usr/doc/$PRGNAM-$VERSION/ 2>/dev/null || true
cat $SRCDIR/$(basename $0) > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-find $PKG/usr/doc -type f -exec chmod 644 {} \;
+find $PKG/usr/doc -type f -exec chmod 644 {} \+
chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION/*
# Compress the man page(s)
if [ -d $PKG/usr/man ]; then
- find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
+ find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \+
for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
fi