summaryrefslogtreecommitdiffstats
path: root/ffmpeg/build/ffmpeg.SlackBuild
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2014-11-15 15:35:58 +0000
committer Eric Hameleers <alien@slackware.com>2014-11-15 15:35:58 +0000
commit3fdd879e3f3d1a7c070202638c7548240779df3d (patch)
tree13081975c40ea82b661ccfbb0160f4dbc6c6def5 /ffmpeg/build/ffmpeg.SlackBuild
parenta515e046c35150514079f42d4c3188273251eda4 (diff)
downloadasb-3fdd879e3f3d1a7c070202638c7548240779df3d.tar.gz
asb-3fdd879e3f3d1a7c070202638c7548240779df3d.tar.xz
Update to 2.4.3, with dfk-aac and x265 codecs added
Diffstat (limited to 'ffmpeg/build/ffmpeg.SlackBuild')
-rwxr-xr-xffmpeg/build/ffmpeg.SlackBuild111
1 files changed, 99 insertions, 12 deletions
diff --git a/ffmpeg/build/ffmpeg.SlackBuild b/ffmpeg/build/ffmpeg.SlackBuild
index 0355812d..11701a02 100755
--- a/ffmpeg/build/ffmpeg.SlackBuild
+++ b/ffmpeg/build/ffmpeg.SlackBuild
@@ -133,6 +133,9 @@
# * Update.
# 2.2.1-1: 02/may/2014 by Eric Hameleers <alien@slackware.com>
# * Update. Add teletext subtitle support.
+# 2.4.3-1: 12/nov/2014 by Eric Hameleers <alien@slackware.com>
+# * Update. Added fdk-aac codec by Android Open Source Project,
+# and X.265 (HEVC) codec by Videolan project..
#
# Run 'sh ffmpeg.SlackBuild' to build a Slackware package.
# The package (.txz) plus descriptive .txt file are created in /tmp .
@@ -157,7 +160,7 @@ USE_PATENTS=${USE_PATENTS:-"YES"}
USE_PATENTS=$(echo $USE_PATENTS | tr 'a-z' 'A-Z')
PRGNAM=ffmpeg
-VERSION=${VERSION:-2.2.1}
+VERSION=${VERSION:-2.4.3}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j7}
TAG=${TAG:-"alien"}
@@ -173,6 +176,7 @@ 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"
DOCS_LAME="API COPYING ChangeLog HACKING LICENSE README STYLEGUIDE TODO USAGE"
@@ -188,6 +192,7 @@ 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"
# Support libraries:
AACENC=0.1.3
@@ -199,10 +204,11 @@ AVC1394=0.5.4
DC1394=2.1.2
FAAC=1.28
FAAD2=2.7
+FDKAAC=0.1.3
FRIBIDI=0.19.6
GSM=1.0.13
LAME=3.99.5
-LIBVA=1.3.0
+LIBVA=1.4.1
LIBZVBI=0.2.35
OPUS=1.1
ORC=0.4.18
@@ -210,10 +216,11 @@ RAW1394=2.0.5
RTMP=2.3
SCHROEDINGER=1.0.11
SPEEX=1.2rc1
-V4L=1.0.1
-VDPAU=0.7
+V4L=1.6.0
+VDPAU=0.8
VPX=v1.3.0
-X264=20140501-2245
+X264=20141111-2245
+X265=1.4
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
@@ -377,6 +384,16 @@ SOURCE[23]="$SRCDIR/zvbi-${LIBZVBI}.tar.bz2"
SRCURL[23]="http://downloads.sourceforge.net/zapping/zvbi-${LIBZVBI}.tar.bz2"
SRCPAT[23]="NO"
+# fdk-aac en/decoder from the Android Open Source Project (opencore-amr):
+SOURCE[24]="$SRCDIR/fdk-aac-${FDKAAC}.tar.gz"
+SRCURL[24]="http://downloads.sourceforge.net/opencore-amr/fdk-aac-${FDKAAC}.tar.gz"
+SRCPAT[24]="YES"
+
+# Videolan's HEVC (x265) codec:
+SOURCE[25]="$SRCDIR/x265-${X265}.tar.gz"
+SRCURL[25]="http://github.com/videolan/x265/archive/${X265}.tar.gz"
+SRCPAT[25]="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"
@@ -709,6 +726,68 @@ cp -a $DOCS_AACENC $FFMPEGDEPSDIR/doc/aacenc || true
cd -
}
+# -----------------------------------------------------------------------------
+# Compile fdk-aac library
+# The ffmpeg will use these
+# -----------------------------------------------------------------------------
+make_fdkaac()
+{
+echo -e "**\n** fdkaac ...\n**"
+cd $TMP/tmp-$PRGNAM/fdk-aac-${FDKAAC}
+
+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}_fdkaac.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_fdkaac.log
+# Install fdkaac into a temp location so ffmpeg can pickup the library
+make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_fdkaac.log
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/fdkaac
+cp -a $DOCS_AACENC $FFMPEGDEPSDIR/doc/fdkaac || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile x265 library
+# The ffmpeg will use these
+# -----------------------------------------------------------------------------
+make_x265()
+{
+echo -e "**\n** x265 ...\n**"
+PREVDIR=$(pwd)
+cd $TMP/tmp-$PRGNAM/x265-${X265}
+
+mkdir -p build_x265
+cd build_x265
+ cmake ../source \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_LDFLAGS:STRING="$SLKLDFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=lib${LIBDIRSUFFIX} \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_x265.log
+ make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_x265.log
+ # Install x265 into a temp location so ffmpeg can pickup the library
+ make install DESTDIR=$FFMPEGDEPSDIR \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_x265.log
+cd -
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/x265
+cp -a $DOCS_AACENC $FFMPEGDEPSDIR/doc/x265 || true
+cd $PREVDIR
+}
+
# -----------------------------------------------------------------------------
# Compile aacplus library
@@ -1235,9 +1314,12 @@ cd $TMP/tmp-$PRGNAM/libva-$LIBVA
#for DPATCH in $(ls debian/patches/*.patch) ; do
# cat $DPATCH |patch -p1 --verbose
#done 2>&1 | tee $OUTPUT/patch-${PRGNAM}_libva.log
-#
-## Slackware uses a newer aclocal:
-#autoreconf -vif
+
+# Fix the issue with the pre-generated configure script which will boneheadedly
+# require wayland_scanner. Create 'm4' directory first to prevent another error:
+mkdir m4
+autoreconf -vif \
+ 2>&1 | tee $OUTPUT/autoreconf-${PRGNAM}_libva.log
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -1245,7 +1327,7 @@ LDFLAGS="$SLKLDFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --disable-wayland \
+ --enable-wayland=no \
--enable-static \
--enable-shared \
--enable-glx \
@@ -1254,6 +1336,7 @@ LDFLAGS="$SLKLDFLAGS" \
--program-suffix= \
--build=$TARGET \
2>&1 | tee $OUTPUT/configure-${PRGNAM}_libva.log
+ #--disable-wayland \
make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_libva.log
# Strip the static lib to prevent linking errors in 64-bit,
find . -name "*.a" | xargs strip --strip-unneeded
@@ -1478,6 +1561,7 @@ if [ "${USE_PATENTS}" == "YES" ]; then
USE_PATENTED="--enable-libmp3lame \
--enable-libfaac \
--enable-libvo-aacenc \
+ --enable-libfdk-aac \
--enable-nonfree"
# to be added once I get it to work: --enable-libaacplus \
else
@@ -1503,7 +1587,7 @@ sed -i -e "s/pkg_config --libs/pkg_config --static --libs/" \
TMPDIR="$TMP" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
-LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lXext" \
+LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lpng -lXext" \
PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
./configure \
@@ -1530,6 +1614,7 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
+ --enable-libx265 \
--enable-libzvbi \
--enable-postproc \
--enable-runtime-cpudetect \
@@ -1569,6 +1654,7 @@ if [ "${USE_PATENTS}" = "YES" ]; then
make_faac
#make_aacplus
make_aacenc
+ make_fdkaac
fi
make_amr
@@ -1582,6 +1668,7 @@ make_gsm
make_orc
make_schroedinger
make_x264
+make_x265
make_vpx
make_libva
make_vdpau
@@ -1614,11 +1701,11 @@ for PCFILE in $(ls $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/*.pc) ; do
-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/-lvo-aacenc//g' \
+ -e 's/-lvo-amrwbenc//g' -e 's/-lvo-aacenc//g' -e 's/-lfdk-aac//g' \
-e 's/-lmp3lame//g' \
-e 's/-lopus//g' \
-e 's/-lschroedinger-[^ ]*//g' -e 's/-lorc-[^ ]*//g' \
- -e 's/-lx264//g' -e 's/-lvpx//g' -e 's/-lzvbi//g' \
+ -e 's/-lx264//g' -e 's/-lx265//g' -e 's/-lvpx//g' -e 's/-lzvbi//g' \
-e "s#-L/tmp/build/tmp-ffmpeg/ffmpegdeps/usr/lib${LIBDIRSUFFIX}##" \
$PCFILE
done