From 76f179c3f1b9ac8f1492187f82ce987b19a02ebc Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Fri, 2 May 2014 11:05:57 +0000 Subject: Jump from 1.2 to 2.1 --- ffmpeg/build/ffmpeg.SlackBuild | 141 ++++++++++++++++++++++++++++++++--------- 1 file changed, 110 insertions(+), 31 deletions(-) (limited to 'ffmpeg/build/ffmpeg.SlackBuild') 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 # * Update. +# 2.1-1: 26/dec/2013 by Eric Hameleers +# * 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 -- cgit v1.2.3-65-gdbad