summaryrefslogtreecommitdiffstats
path: root/ffmpeg/build/ffmpeg.SlackBuild
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2014-05-02 11:05:57 +0000
committer Eric Hameleers <alien@slackware.com>2014-05-02 11:05:57 +0000
commit76f179c3f1b9ac8f1492187f82ce987b19a02ebc (patch)
treed03385c0abeaa0db354d5556625663298b0084c4 /ffmpeg/build/ffmpeg.SlackBuild
parentdae2eb9a0c7fc867a468c37b5d4014efe8f7030c (diff)
downloadasb-76f179c3f1b9ac8f1492187f82ce987b19a02ebc.tar.gz
asb-76f179c3f1b9ac8f1492187f82ce987b19a02ebc.tar.xz
Jump from 1.2 to 2.1
Diffstat (limited to 'ffmpeg/build/ffmpeg.SlackBuild')
-rwxr-xr-xffmpeg/build/ffmpeg.SlackBuild141
1 files changed, 110 insertions, 31 deletions
diff --git a/ffmpeg/build/ffmpeg.SlackBuild b/ffmpeg/build/ffmpeg.SlackBuild
index 62e076d4..cdd56d62 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 Eric Hameleers, Eindhoven, NL
+# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -129,6 +129,8 @@
# Added ogg opus decoder.
# 1.2-1: 13/apr/2013 by Eric Hameleers <alien@slackware.com>
# * Update.
+# 2.1-1: 26/dec/2013 by Eric Hameleers <alien@slackware.com>
+# * Update.
#
# Run 'sh ffmpeg.SlackBuild' to build a Slackware package.
# The package (.txz) plus descriptive .txt file are created in /tmp .
@@ -153,7 +155,7 @@ USE_PATENTS=${USE_PATENTS:-"YES"}
USE_PATENTS=$(echo $USE_PATENTS | tr 'a-z' 'A-Z')
PRGNAM=ffmpeg
-VERSION=${VERSION:-1.2}
+VERSION=${VERSION:-2.1}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j7}
TAG=${TAG:-"alien"}
@@ -180,32 +182,34 @@ DOCS_RTMP="AUTHORS COPYING ChangeLog README"
DOCS_SCHROEDINGER="AUTHORS COPYING* NEWS TODO"
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"
# Support libraries:
AACENC=0.1.2
AACPLUS=2.0.2
-AMRWBENC=0.1.2
+AMRWBENC=0.1.3
AMR=0.1.3
-ASS=0.10.1
+ASS=0.10.2
AVC1394=0.5.4
DC1394=2.1.2
FAAC=1.28
FAAD2=2.7
-FRIBIDI=0.19.5
+FRIBIDI=0.19.6
GSM=1.0.13
LAME=3.99.5
-LIBVA="0.32.0-1+sds2"
-OPUS=1.0.2
-ORC=0.4.16
+LIBVA=1.2.1
+OPUS=1.1
+ORC=0.4.17
RAW1394=2.0.5
RTMP=2.3
SCHROEDINGER=1.0.11
SPEEX=1.2rc1
-V4L=0.9.3
+V4L=0.9.5
+VDPAU=0.7
VPX=v1.1.0
-X264=20130412-2245 # Needs yasm installed
+X264=20131225-2245
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
@@ -320,8 +324,8 @@ SRCURL[13]="http://webm.googlecode.com/files/libvpx-${VPX}.tar.bz2"
SRCPAT[13]="NO"
# Library supporting VAAPI (GPU-accelerated video playback interface)
-SOURCE[14]="$SRCDIR/libva_${LIBVA}.tar.gz"
-SRCURL[14]="http://www.splitted-desktop.com/~gbeauchesne/libva/libva_${LIBVA}.tar.gz"
+SOURCE[14]="$SRCDIR/libva-${LIBVA}.tar.bz2"
+SRCURL[14]="http://www.freedesktop.org/software/vaapi/releases/libva/libva-${LIBVA}.tar.bz2"
SRCPAT[14]="NO"
# AMR-WB encoder libraries used to encode 3GPP audio
@@ -359,6 +363,11 @@ SOURCE[21]="$SRCDIR/opus-${OPUS}.tar.gz"
SRCURL[21]="http://downloads.xiph.org/releases/opus/opus-${OPUS}.tar.gz"
SRCPAT[21]="NO"
+# VDPAU for video hardware acceleration:
+SOURCE[22]="$SRCDIR/libvdpau-${VDPAU}.tar.gz"
+SRCURL[22]="http://people.freedesktop.org/~aplattner/vdpau/libvdpau-${VDPAU}.tar.gz"
+SRCPAT[22]="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"
@@ -459,7 +468,7 @@ case "$ARCH" in
x86_64) SLKCFLAGS="-O2 -fPIC"
SLKLDFLAGS="-L/usr/lib64 -fPIC"; LIBDIRSUFFIX="64"
;;
- arm) SLKCFLAGS="-O2 -march=armv5te"
+ arm*) SLKCFLAGS="-O2 -march=armv5te"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
armv7hl) SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
@@ -1093,19 +1102,78 @@ cd -
# -----------------------------------------------------------------------------
-# Compile libvpx
+# Compile libvdpau
+# -----------------------------------------------------------------------------
+make_vdpau()
+{
+echo -e "**\n** vdpau ...\n**"
+cd $TMP/tmp-$PRGNAM/libvdpau-$VDPAU
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static \
+ --disable-documentation \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$TARGET \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_vdpau.log
+make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_vdpau.log
+# Strip the static lib to prevent linking errors in 64-bit,
+find . -name "*.a" | xargs strip --strip-unneeded
+# Install vdpau 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}_vdpau.log
+# Remove the .so and .la files; we want static linking (but still use
+# the drivers in $(libdir)/va/drivers):
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/libvdpau*.so*
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/libvdpau*.la
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/vdpau/libvdpau*.so*
+rm -f $FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/vdpau/libvdpau*.la
+# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later:
+mkdir -p $FFMPEGDEPSDIR/doc/vdpau/
+cp $DOCS_VDPAU $FFMPEGDEPSDIR/doc/vdpau/ || true
+cd -
+}
+
+
+# -----------------------------------------------------------------------------
+# Compile VP8
# -----------------------------------------------------------------------------
make_vpx()
{
echo -e "**\n** vpx ...\n**"
-if [ "$ARCH" = "i486" -o "" = "i686" ]; then
- ARCHOPTS="--target=x86-linux-gcc"
-elif [ "$ARCH" = "x86_64" ]; then
- ARCHOPTS="--target=${ARCH}-linux-gcc --enable-pic"
-else
- ARCHOPTS="--target=${ARCH}-linux-gcc"
-fi
cd $TMP/tmp-$PRGNAM/libvpx-${VPX}
+
+case "$ARCH" in
+ i?86)
+ ARCHOPTS="--target=x86-linux-gcc"
+ ;;
+ x86_64)
+ ARCHOPTS="--target=${ARCH}-linux-gcc --enable-pic"
+ ;;
+ armv7hl)
+ ARCHOPTS="--target=armv7-linux-gcc --enable-pic"
+ cat $SRCDIR/libvpx_fix-armhf-link.patch | patch -p1 --verbose
+ export AS=as
+ export AR=ar
+ export CROSS="${TARGET}-"
+ ;;
+ arm*)
+ ARCHOPTS="--target=armv5te-linux-gcc --enable-pic"
+ export AS=as
+ export AR=ar
+ export CROSS="${TARGET}-"
+ ;;
+ *)
+ ARCHOPTS="--target=${ARCH}-linux-gcc"
+ ;;
+esac
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
LDFLAGS="$SLKLDFLAGS" \
@@ -1136,7 +1204,7 @@ cd -
make_libva()
{
echo -e "**\n** libva ...\n**"
-cd $TMP/tmp-$PRGNAM/libva-$(echo "$LIBVA" |cut -d- -f1)
+cd $TMP/tmp-$PRGNAM/libva-$LIBVA
#
# == NOTE ON VAAPI ==
@@ -1154,13 +1222,13 @@ cd $TMP/tmp-$PRGNAM/libva-$(echo "$LIBVA" |cut -d- -f1)
# http://www.splitted-desktop.com/~gbeauchesne/xvba-video/ (since I do not own
# Ati hardware I can not build a package for xvba-video myself)
-# Apply a wad of patches:
-for DPATCH in $(ls debian/patches/*.patch) ; do
- cat $DPATCH |patch -p1 --verbose
-done 2>&1 | tee $OUTPUT/patch-${PRGNAM}_libva.log
-
+## Apply a wad of patches:
+#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
+#autoreconf -vif
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -1168,6 +1236,7 @@ LDFLAGS="$SLKLDFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
+ --disable-wayland \
--enable-static \
--enable-shared \
--enable-glx \
@@ -1207,6 +1276,14 @@ else
ARCHOPTS=""
fi
+# Allow for internal use of the library:
+cat $SRCDIR/fribidi.patch | patch -p1 --verbose \
+ 2>&1 | tee $OUTPUT/patch-${PRGNAM}_fribidi.log
+
+# And since we patched the Makefile.am we have to bootstrap:
+rm -f configure
+./bootstrap
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
LDFLAGS="$SLKLDFLAGS" \
@@ -1406,7 +1483,6 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libopus \
- --enable-librtmp \
--enable-libschroedinger \
--enable-libspeex \
--enable-libtheora \
@@ -1418,7 +1494,7 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
--enable-postproc \
--enable-runtime-cpudetect \
--enable-vaapi \
- --disable-vdpau \
+ --enable-vdpau \
--enable-memalign-hack \
--enable-pthreads \
--enable-x11grab \
@@ -1431,6 +1507,8 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \
--extra-cflags="-I$FFMPEGDEPSDIR/usr/include -DRUNTIME_CPUDETECT" \
--extra-ldflags="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} -ldl -lssl -lcrypto -lz -lusb" \
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
@@ -1460,12 +1538,13 @@ make_v4l
make_opus
make_speex
make_gsm
-make_rtmp
+#make_rtmp
make_orc
make_schroedinger
make_x264
make_vpx
make_libva
+make_vdpau
make_fribidi
make_ass