From 2b6d6d6f014e38a11187a6e9961a9dd7edc779e6 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Mon, 13 Feb 2017 21:10:07 +0000 Subject: 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. --- ffmpeg/build/ffmpeg.SlackBuild | 215 +++++++++++++---------------------------- 1 file 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 +# * 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,&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' \ -- cgit v1.2.3-65-gdbad