From 706f8b92389c5b15ff41a9b67142e3cf52aeaf9b Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Wed, 13 Feb 2013 22:11:35 +0000 Subject: Add opus decoder support --- ffmpeg/build/ffmpeg.SlackBuild | 65 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 6 deletions(-) (limited to 'ffmpeg/build/ffmpeg.SlackBuild') diff --git a/ffmpeg/build/ffmpeg.SlackBuild b/ffmpeg/build/ffmpeg.SlackBuild index 03b4e4b1..401c6fc3 100755 --- a/ffmpeg/build/ffmpeg.SlackBuild +++ b/ffmpeg/build/ffmpeg.SlackBuild @@ -125,7 +125,8 @@ # 0.11.2-1: 27/sep/2012 by Eric Hameleers # * Update. # 1.1.2-1: 13/feb/2013 by Eric Hameleers -# * Update. +# * Update. Also updated many internal libraries. +# Added ogg opus decoder. # # Run 'sh ffmpeg.SlackBuild' to build a Slackware package. # The package (.txz) plus descriptive .txt file are created in /tmp . @@ -170,6 +171,7 @@ 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" DOCS_LIBVA="COPYING" +DOCS_OPUS="AUTHORS COPYING ChangeLog NEWS README" DOCS_ORC="COPYING README TODO" DOCS_RAW1394="AUTHORS COPYING ChangeLog INSTALL NEWS README" DOCS_RTMP="AUTHORS COPYING ChangeLog README" @@ -193,6 +195,7 @@ FRIBIDI=0.19.5 GSM=1.0.13 LAME=3.99.5 LIBVA="0.32.0-1+sds2" +OPUS=1.0.2 ORC=0.4.16 RAW1394=2.0.5 RTMP=2.3 @@ -349,6 +352,11 @@ SOURCE[20]="$SRCDIR/v4l-utils-${V4L}.tar.bz2" SRCURL[20]="http://linuxtv.org/downloads/v4l-utils/v4l-utils-${V4L}.tar.bz2" SRCPAT[20]="NO" +# opus codec: +SOURCE[21]="$SRCDIR/opus-${OPUS}.tar.gz" +SRCURL[21]="http://downloads.xiph.org/releases/opus/opus-${OPUS}.tar.gz" +SRCPAT[21]="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" @@ -1247,22 +1255,34 @@ make_v4l() echo -e "**\n** v4l ...\n**" cd $TMP/tmp-$PRGNAM/v4l-utils-${V4L} -# Apply patch for proper DESTDIR support: -cat $SRCDIR/v4l-utils.destdir.patch | patch -p1 --verbose \ - 2>&1 | tee $OUTPUT/patch-${PRGNAM}_v4l.log mkdir ${FFMPEGDEPSDIR}/etc export CFLAGS="$SLKCFLAGS" export CPPFLAGS="$SLKCFLAGS" export LDFLAGS="$SLKLDFLAGS -ljpeg" -make ${NUMJOBS} -C lib LINKTYPE=static PREFIX=$FFMPEGDEPSDIR/usr LIBDIR=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} SYSCONFDIR=$FFMPEGDEPSDIR/etc 2>&1 | tee $OUTPUT/make-${PRGNAM}_v4l.log +./configure \ + --prefix=$FFMPEGDEPSDIR/usr \ + --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=$FFMPEGDEPSDIR/etc \ + --enable-static \ + --disable-shared \ + --disable-libdvbv5 \ + --enable-libv4l \ + --disable-v4l-utils \ + --disable-qv4l2 \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_v4l.log + +make ${NUMJOBS} LINKTYPE=static 2>&1 | tee $OUTPUT/make-${PRGNAM}_v4l.log # Strip the static lib to prevent linking errors in 64-bit, # and fix the pkg-config file (to fix unresolved symbols) find . -name "*.a" | xargs strip --strip-unneeded sed -i "/^Libs: /s/$/ -lv4l2 -lv4lconvert -ljpeg/" lib/libv4l1/libv4l1.pc sed -i "/^Libs: /s/ -lv4l2/ -lv4l2 -lv4lconvert -ljpeg/" lib/libv4l2/libv4l2.pc # Install libv4l into a temp directory so that ffmpeg can pick it up later: -make -C lib install LINKTYPE=static PREFIX=$FFMPEGDEPSDIR/usr LIBDIR=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} SYSCONFDIR=$FFMPEGDEPSDIR/etc 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_v4l.log +make install LINKTYPE=static 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_v4l.log # Add DOCS to the ffmpegdeps to have it added to ffmpeg package later: mkdir -p $FFMPEGDEPSDIR/doc/v4l-utils cp -a $DOCS_V4L2 $FFMPEGDEPSDIR/doc/v4l-utils/ || true @@ -1271,6 +1291,36 @@ cd - } +# ----------------------------------------------------------------------------- +# Compile ogg opus libraries +# ----------------------------------------------------------------------------- +make_opus() +{ +echo -e "**\n** opus ...\n**" +cd $TMP/tmp-$PRGNAM/opus-${OPUS} + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +LDFLAGS="$SLKLDFLAGS" \ +./configure \ + --prefix=$FFMPEGDEPSDIR/usr \ + --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \ + --enable-static \ + --disable-shared \ + --disable-doc \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_opus.log +# Install opus into a temp location so ffmpeg can pickup the library +make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_opus.log +# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later: +mkdir -p $FFMPEGDEPSDIR/doc/opus/ +cp $DOCS_OPUS $FFMPEGDEPSDIR/doc/opus/ || true +cd - +} + + # ----------------------------------------------------------------------------- # Compile ffmpeg with additional support for - # LAME (MP3), XVID, AAC (MP4), FAAD2 , SPEEX, X264, GSM, SCHROEDINGER @@ -1334,6 +1384,7 @@ PATH="$FFMPEGDEPSDIR/usr/bin:$PATH" \ --enable-libgsm \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ + --enable-libopus \ --enable-librtmp \ --enable-libschroedinger \ --enable-libspeex \ @@ -1384,6 +1435,7 @@ make_amr make_amrwbenc make_1394 make_v4l +make_opus make_speex make_gsm make_rtmp @@ -1422,6 +1474,7 @@ for PCFILE in $(ls $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/*.pc) ; do -e 's/-lfaac//g' -e 's/-lfaad//g' \ -e 's/-lvo-amrwbenc//g' -e 's/-lvo-aacenc//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#-L/tmp/build/tmp-ffmpeg/ffmpegdeps/usr/lib${LIBDIRSUFFIX}##" \ -- cgit v1.2.3-79-gdb01