summaryrefslogtreecommitdiffstats
path: root/ffmpeg
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2017-02-13 21:10:07 +0000
committer Eric Hameleers <alien@slackware.com>2017-02-13 21:10:07 +0000
commit2b6d6d6f014e38a11187a6e9961a9dd7edc779e6 (patch)
treebdc0d03121aa6c3c66f3fa7ed3c0bf5ef8658f40 /ffmpeg
parent66a156bf76ea8058b04330748b92849b274824cc (diff)
downloadasb-2b6d6d6f014e38a11187a6e9961a9dd7edc779e6.tar.gz
asb-2b6d6d6f014e38a11187a6e9961a9dd7edc779e6.tar.xz
ffmpeg: updated to 3.2.4. Remove libfaad2/faac/libfaacplus. Add SDL2. Update ass, fdkaac, fribidi, gsm, opus, orc, speex, v4l, vpx, x264 and x265 libraries.
Diffstat (limited to 'ffmpeg')
-rwxr-xr-xffmpeg/build/ffmpeg.SlackBuild215
1 files changed, 66 insertions, 149 deletions
diff --git a/ffmpeg/build/ffmpeg.SlackBuild b/ffmpeg/build/ffmpeg.SlackBuild
index 7dc64e69..8255eeda 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 Eric Hameleers, Eindhoven, NL
+# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -147,6 +147,14 @@
# * Update. Updated internal libraries: opus, orc, v4l, vaapi,
# vpx, x264, x265.
# Support for libvo-aacenc was dropped from ffmpeg.
+# 3.2.4-1: 13/feb/2017 by Eric Hameleers <alien@slackware.com>
+# * Explicitly enable libpulse if we find it installed.
+# Remove libfaad2/faac libraries, they are not used anymore.
+# Remove libaacplus (was never built anyway) as support has
+# been removed from ffmpeg.
+# Update to latest versions of internal ass, fdkaac, fribidi,
+# gsm, opus, orc, speex, v4l, vpx, x264 and x265 libraries.
+# Add SDL2 internal library, required by ffplay.
#
# Run 'sh ffmpeg.SlackBuild' to build a Slackware package.
# The package (.txz) plus descriptive .txt file are created in /tmp .
@@ -170,22 +178,26 @@ USE_PATENTS=${USE_PATENTS:-"YES"}
# I don't care if the user says "no" or "NO":
USE_PATENTS=$(echo $USE_PATENTS | tr 'a-z' 'A-Z')
+if pkg-config --exists libpulse 2>/dev/null ; then
+ # Explicitly enable pulseaudio or it will not be picked up:
+ USE_PULSE="--enable-libpulse"
+else
+ USE_PULSE=""
+fi
+
PRGNAM=ffmpeg
-VERSION=${VERSION:-3.1.1}
+VERSION=${VERSION:-3.2.4}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j7}
TAG=${TAG:-"alien"}
DOCS="COPYING* CREDITS Changelog MAINTAINERS README* \
doc/TODO doc/*.txt doc/*.html"
-DOCS_AACPLUS="AUTHORS COPYING* ChangeLog NEWS README TODO"
DOCS_AMR="AUTHORS COPYING ChangeLog LICENSE NEWS README"
DOCS_AMRWBENC="AUTHORS COPYING ChangeLog LICENSE NEWS NOTICE README"
DOCS_ASS="COPYING Changelog"
DOCS_AVC1394="AUTHORS COPYING ChangeLog INSTALL NEWS README"
DOCS_DC1394="AUTHORS COPYING ChangeLog INSTALL NEWS README"
-DOCS_FAAC="AUTHORS COPYING* ChangeLog NEWS README* TODO"
-DOCS_FAAD2="AUTHORS COPYING* ChangeLog NEWS README* TODO"
DOCS_FDKAAC="ChangeLog NOTICE"
DOCS_FRIBIDI="AUTHORS COPYING ChangeLog NEWS README THANKS TODO"
DOCS_GSM="COPYRIGHT ChangeLog* INSTALL MACHINES MANIFEST README"
@@ -197,7 +209,8 @@ DOCS_ORC="COPYING README TODO"
DOCS_RAW1394="AUTHORS COPYING ChangeLog INSTALL NEWS README"
DOCS_RTMP="AUTHORS COPYING ChangeLog README"
DOCS_SCHROEDINGER="AUTHORS COPYING* NEWS TODO"
-DOCS_SPEEX=" AUTHORS COPYING ChangeLog NEWS README* 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"
@@ -205,31 +218,29 @@ DOCS_X264="AUTHORS COPYING"
DOCS_X265="AUTHORS COPYING"
# Support libraries:
-AACPLUS=2.0.2
AMRWBENC=0.1.3
AMR=0.1.3
-ASS=0.12.1
+ASS=0.13.6
AVC1394=0.5.4
DC1394=2.1.2
-FAAC=1.28
-FAAD2=2.7
-FDKAAC=0.1.4
-FRIBIDI=0.19.6
-GSM=1.0.13
+FDKAAC=0.1.5
+FRIBIDI=0.19.7
+GSM=1.0.16
LAME=3.99.5
LIBVA=1.6.2
LIBZVBI=0.2.35
-OPUS=1.1.2
-ORC=0.4.25
+OPUS=1.1.4
+ORC=0.4.26
RAW1394=2.0.5
RTMP=2.3
SCHROEDINGER=1.0.11
-SPEEX=1.2rc2
-V4L=1.10.1
+SDL2=2.0.5
+SPEEX=1.2.0
+V4L=1.12.2
VDPAU=1.1.1
-VPX=1.5.0
-X264=20160706-2245
-X265=1.9
+VPX=1.6.1
+X264=20170212-2245
+X265=2.2
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
@@ -286,7 +297,8 @@ SRCPAT[1]="NO"
# Dirac video codec support by schroedinger:
SOURCE[2]="$SRCDIR/schroedinger-${SCHROEDINGER}.tar.gz"
-SRCURL[2]="http://www.diracvideo.org/download/schroedinger/schroedinger-${SCHROEDINGER}.tar.gz"
+#SRCURL[2]="http://www.diracvideo.org/download/schroedinger/schroedinger-${SCHROEDINGER}.tar.gz"
+SRCURL[2]="https://download.videolan.org/contrib/schroedinger/schroedinger-${SCHROEDINGER}.tar.gz"
SRCPAT[2]="NO"
# SPEEX audio codec:
@@ -296,17 +308,17 @@ SRCPAT[3]="NO"
# X264 encoder - for H264/AVC video streams, for static linking
SOURCE[4]="$SRCDIR/x264-snapshot-${X264}.tar.bz2"
-SRCURL[4]="ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264}.tar.bz2"
+SRCURL[4]="https://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264}.tar.bz2"
SRCPAT[4]="NO"
-# FAAD2 support:
-SOURCE[5]="$SRCDIR/faad2-$FAAD2.tar.gz"
-SRCURL[5]="http://downloads.sourceforge.net/faac/faad2-$FAAD2.tar.gz"
-SRCPAT[5]="NO"
+# fdk-aac en/decoder from the Android Open Source Project (opencore-amr):
+SOURCE[5]="$SRCDIR/fdk-aac-${FDKAAC}.tar.gz"
+SRCURL[5]="http://downloads.sourceforge.net/opencore-amr/fdk-aac-${FDKAAC}.tar.gz"
+SRCPAT[5]="YES"
# GSM support:
SOURCE[6]="$SRCDIR/gsm-$GSM.tar.gz"
-SRCURL[6]="http://osxwinebuilder.googlecode.com/files/gsm-$GSM.tar.gz"
+SRCURL[6]="http://www.quut.com/gsm/gsm-$GSM.tar.gz"
SRCPAT[6]="NO"
# Lame is used for the audio in FLV videos; will statically link with ffmpeg
@@ -353,10 +365,10 @@ SOURCE[15]="$SRCDIR/opencore-amr-${AMR}.tar.gz"
SRCURL[15]="http://downloads.sourceforge.net/opencore-amr/opencore-amr-${AMR}.tar.gz"
SRCPAT[15]="NO"
-# FAAC library, for AAC (MP4 audio) encoding
-SOURCE[16]="$SRCDIR/faac-$FAAC.tar.gz"
-SRCURL[16]="http://downloads.sourceforge.net/faac/faac-$FAAC.tar.gz"
-SRCPAT[16]="YES"
+# Videolan's HEVC (x265) codec:
+SOURCE[16]="$SRCDIR/x265-${X265}.tar.gz"
+SRCURL[16]="http://github.com/videolan/x265/archive/${X265}.tar.gz"
+SRCPAT[16]="NO"
# Unicode BiDirectional algorithm library, requirement for libass.
SOURCE[17]="$SRCDIR/fribidi-${FRIBIDI}.tar.bz2"
@@ -388,25 +400,10 @@ SOURCE[22]="$SRCDIR/zvbi-${LIBZVBI}.tar.bz2"
SRCURL[22]="http://downloads.sourceforge.net/zapping/zvbi-${LIBZVBI}.tar.bz2"
SRCPAT[22]="NO"
-# fdk-aac en/decoder from the Android Open Source Project (opencore-amr):
-SOURCE[23]="$SRCDIR/fdk-aac-${FDKAAC}.tar.gz"
-SRCURL[23]="http://downloads.sourceforge.net/opencore-amr/fdk-aac-${FDKAAC}.tar.gz"
-SRCPAT[23]="YES"
-
-# Videolan's HEVC (x265) codec:
-SOURCE[24]="$SRCDIR/x265-${X265}.tar.gz"
-SRCURL[24]="http://github.com/videolan/x265/archive/${X265}.tar.gz"
-SRCPAT[24]="NO"
-
-## HE-AAC+ v2 shared library:
-#SOURCE[XX]="$SRCDIR/libaacplus-$AACPLUS.tar.gz"
-#SRCURL[XX]="http://tipok.ath.cx/downloads/media/aac+/libaacplus/libaacplus-${AACPLUS}.tar.gz"
-#SRCPAT[XX]="YES"
-#
-## HE-AAC+ v2 reference implementation:
-#SOURCE[XX]="$SRCDIR/26410-800.zip"
-#SRCURL[XX]="http://www.3gpp.org/ftp/Specs/archive/26_series/26.410/26410-800.zip"
-#SRCPAT[XX]="YES"
+# SDL2 is required by ffplay:
+SOURCE[23]="$SRCDIR/SDL2-${SDL2}.tar.gz"
+SRCURL[23]="http://www.libsdl.org/release/SDL2-${SDL2}.tar.gz"
+SRCPAT[23]="NO"
# Use the src_checkout() function if no downloadable tarball exists.
@@ -767,42 +764,6 @@ cd $PREVDIR
}
-# -----------------------------------------------------------------------------
-# Compile aacplus library
-# The ffmpeg will use this
-# -----------------------------------------------------------------------------
-make_aacplus ()
-{
-echo -e "**\n** aacplus ...\n**"
-cd $TMP/tmp-$PRGNAM/libaacplus-${AACPLUS}
-
-# This needs the sources of the HE-AAC+ reference implementation:
-cp $SRCDIR/26410-800.zip src/
-
-[ ! -x configure ] && autoreconf -vif
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-LDFLAGS="$SLKLDFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --enable-static \
- --disable-shared \
- --program-prefix= \
- --program-suffix= \
- --build=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_aacplus.log
-# Do not use parallel make here:
-make 2>&1 | tee $OUTPUT/make-${PRGNAM}_aacplus.log
-# Install aacplus into a temp location so ffmpeg can pickup the library
-make install DESTDIR=$FFMPEGDEPSDIR \
- 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_aacplus.log
-# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
-mkdir -p $FFMPEGDEPSDIR/doc/aacplus
-cp -a $DOCS_AACPLUS $FFMPEGDEPSDIR/doc/aacplus || true
-cd -
-}
# -----------------------------------------------------------------------------
# Compile dc1394, avc1394 and raw1394 libraries
@@ -893,77 +854,34 @@ cd $OLDDIR
}
-# -----------------------------------------------------------------------------
-# Compile faac library
-# The ffmpeg will use these
-# -----------------------------------------------------------------------------
-make_faac()
-{
-echo -e "**\n** faac ...\n**"
-cd $TMP/tmp-$PRGNAM/faac-${FAAC}
-
-# Newer gcc/glibc will bail out otherwise:
-cat $SRCDIR/patches/faac_gcc44.diff | patch -p1 --verbose \
- 2>&1 | tee $OUTPUT/patch-${PRGNAM}_faac.log
-
-#sh bootstrap
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-LDFLAGS="$SLKLDFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --enable-static \
- --disable-shared \
- --with-mp4v2 \
- --program-prefix= \
- --program-suffix= \
- --build=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_faac.log
-make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_faac.log
-# Install faac into a temp location so ffmpeg can pickup the library
-make install DESTDIR=$FFMPEGDEPSDIR \
- 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_faac.log
-# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
-mkdir -p $FFMPEGDEPSDIR/doc/faac
-cp -a $DOCS_FAAC $FFMPEGDEPSDIR/doc/faac || true
-cd -
-}
-
# -----------------------------------------------------------------------------
-# Compile faad2
+# Compile SDL2
# -----------------------------------------------------------------------------
-make_faad2()
+make_sdl2()
{
-echo -e "**\n** faad2 ...\n**"
-#mv $TMP/tmp-$PRGNAM/faad2 $TMP/tmp-$PRGNAM/faad2-${FAAD2}
-cd $TMP/tmp-$PRGNAM/faad2-${FAAD2}
-#autoreconf -vif
+echo -e "**\n** sdl2 ...\n**"
+cd $TMP/tmp-$PRGNAM/SDL2-$SDL2
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
LDFLAGS="$SLKLDFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --without-xmms \
--enable-static \
--disable-shared \
--program-prefix= \
--program-suffix= \
--build=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_faad2.log
- # No longer available:
- #--with-mp4v2 \
- # Gives errors "faad bitstream value not allowed by specification":
- #--with-drm \
-make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_faad2.log
-# Install faad2 into a temp location so ffmpeg can pickup the library
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_sdl2.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_sdl2.log
+# Install sdl2 into a temp location so ffmpeg can pickup the library
+echo -e "\n**\n**\n"
make install DESTDIR=$FFMPEGDEPSDIR \
- 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_faad2.log
-# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
-mkdir -p $FFMPEGDEPSDIR/doc/faad2
-cp -a $DOCS_FAAD2 $FFMPEGDEPSDIR/doc/faad2 || true
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_sdl2.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/sdl2/
+cp $DOCS_SDL2 $FFMPEGDEPSDIR/doc/sdl2/ || true
cd -
}
@@ -1526,11 +1444,9 @@ fi
# Only use non-free code if we are allowing it:
if [ "${USE_PATENTS}" == "YES" ]; then
USE_NONFREE="--enable-libmp3lame \
- --enable-libfaac \
--enable-libfdk-aac \
--enable-openssl \
--enable-nonfree"
- # to be added once I get it to work: --enable-libaacplus \
else
USE_NONFREE="--enable-gnutls"
fi
@@ -1544,7 +1460,8 @@ else
fi
# Fix SDL header location:
-sed -e '/#include/ s,<SDL,<SDL/SDL,' -i ffplay.c
+sed -e '/#include/ s,<SDL,<SDL2/SDL,' -i ffplay.c
+sed -e '/#include/ s,<SDL,<SDL2/SDL,' -i libavdevice/sdl2.c
# Or else orc's library will not be used in the static linking (orc is listed
# as a private lib for schroedinger):
@@ -1589,6 +1506,7 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
--enable-libzvbi \
--enable-postproc \
--enable-runtime-cpudetect \
+ --enable-sdl2 \
--enable-vaapi \
--enable-vdpau \
--enable-memalign-hack \
@@ -1599,6 +1517,7 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
--enable-shared \
--enable-static \
--disable-debug \
+ ${USE_PULSE} \
${USE_NONFREE} \
$ARCHOPTS \
--extra-cflags="-I$FFMPEGDEPSDIR/usr/include -I$FFMPEGDEPSDIR/usr/include/SDL -DRUNTIME_CPUDETECT" \
@@ -1607,7 +1526,6 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
2>&1 | tee $OUTPUT/configure-${PRGNAM}_ffmpeg.log
# Use ffmpeg's own implementation:
#--enable-librtmp \
-# Need to add "-lfftw3f" to --extra-ldflags if libaacplus gets used
make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_ffmpeg.log
cd $OLDDIR
@@ -1624,8 +1542,6 @@ cd $OLDDIR
# Based on the value of $USE_PATENTS enable or disable non-free code:
if [ "${USE_PATENTS}" = "YES" ]; then
make_lame
- make_faac
- #make_aacplus
make_fdkaac
fi
@@ -1634,6 +1550,7 @@ make_amrwbenc
make_1394
make_v4l
make_opus
+make_sdl2
make_speex
make_gsm
#make_rtmp
@@ -1672,8 +1589,8 @@ for PCFILE in $(ls $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/*.pc) ; do
sed -i -e 's/-lraw1394//g' -e 's/-lavc1394//g' -e 's/-ldc1394//g' \
-e 's/-lspeex//g' -e 's/-lgsm//g' -e 's/-lrtmp//g' \
-e 's/-lopencore-amrnb//g' -e 's/-lopencore-amrwb//g' \
- -e 's/-lfaac//g' -e 's/-lfaad//g' \
- -e 's/-lvo-amrwbenc//g' -e 's/-lfdk-aac//g' \
+ -e 's/-lvo-amrwbenc//g' \
+ -e 's/-lfdk-aac//g' \
-e 's/-lmp3lame//g' \
-e 's/-lopus//g' \
-e 's/-lschroedinger-[^ ]*//g' -e 's/-lorc-[^ ]*//g' \