diff options
author | Eric Hameleers <alien@slackware.com> | 2011-12-13 21:56:53 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2011-12-13 21:56:53 +0000 |
commit | 9b3cf57bfa0daf3de4acc61052089d79904037e3 (patch) | |
tree | dfbf39accd95a15d46ffa08451fb279aa9730464 /ffmpeg/build/ffmpeg.SlackBuild | |
parent | 934a54b3c565971eac7e2b950382158e8c3d8725 (diff) | |
download | asb-9b3cf57bfa0daf3de4acc61052089d79904037e3.tar.gz asb-9b3cf57bfa0daf3de4acc61052089d79904037e3.tar.xz |
This one works for ffmpeg-0.9 but I want to rip out the (unneeded?) fribidi patch
Diffstat (limited to '')
-rwxr-xr-x | ffmpeg/build/ffmpeg.SlackBuild | 155 |
1 files changed, 143 insertions, 12 deletions
diff --git a/ffmpeg/build/ffmpeg.SlackBuild b/ffmpeg/build/ffmpeg.SlackBuild index 0ede0f43..c45fc316 100755 --- a/ffmpeg/build/ffmpeg.SlackBuild +++ b/ffmpeg/build/ffmpeg.SlackBuild @@ -115,7 +115,7 @@ # 0.8.7-1: 22/nov/2011 by Eric Hameleers <alien@slackware.com> # * New release. # 0.9-1: 13/dec/2011 by Eric Hameleers <alien@slackware.com> -# * New release. +# * New release. Added internal libass (subtitle) and v4l2 support. # # Run 'sh ffmpeg.SlackBuild' to build a Slackware package. # The package (.tgz) plus descriptive .txt file are created in /tmp . @@ -153,10 +153,12 @@ DOCS_AACENC="AUTHORS COPYING* ChangeLog NEWS NOTICE README" 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_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" @@ -165,6 +167,7 @@ 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_V4L2="COPYING* ChangeLog README* TODO" DOCS_VPX="AUTHORS CHANGELOG LICENSE README" DOCS_X264="AUTHORS COPYING" @@ -173,10 +176,12 @@ AACENC=0.1.1 AACPLUS=2.0.2 AMRWBENC=0.1.1 AMR=0.1.2 +ASS=0.10.0 AVC1394=0.5.4 DC1394=2.1.2 FAAC=1.28 FAAD2=2.7 +FRIBIDI=0.19.2 GSM=1.0.13 LAME=3.99.3 LIBVA="0.32.0-1+sds2" @@ -185,6 +190,7 @@ RAW1394=2.0.5 RTMP=2.3 SCHROEDINGER=1.0.10 SPEEX=1.2rc1 +V4L=0.8.5 VPX=v0.9.7-p1 X264=20111212-2245 # Needs yasm installed @@ -320,15 +326,30 @@ SOURCE[17]="$SRCDIR/faac-$FAAC.tar.gz" SRCURL[17]="http://downloads.sourceforge.net/faac/faac-$FAAC.tar.gz" SRCPAT[17]="YES" +# Unicode BiDirectional algorithm library, requirement for libass. +SOURCE[18]="$SRCDIR/fribidi-${FRIBIDI}.tar.gz" +SRCURL[18]="http://fribidi.org/download/fribidi-${FRIBIDI}.tar.gz" +SRCPAT[18]="NO" + +# Libass - portable library for SSA/ASS subtitles rendering +SOURCE[19]="$SRCDIR/libass-$ASS.tar.gz" +SRCURL[19]="http://libass.googlecode.com/files/libass-$ASS.tar.gz" +SRCPAT[19]="NO" + +# Collection of video4linux support libraries +SOURCE[20]="$SRCDIR/v4l-utils-${V4L}.tar.bz2" +SRCURL[20]="http://linuxtv.org/downloads/v4l-utils/v4l-utils-${V4L}.tar.bz2" +SRCPAT[20]="NO" + ## HE-AAC+ v2 shared library: -#SOURCE[18]="$SRCDIR/libaacplus-$AACPLUS.tar.gz" -#SRCURL[18]="http://tipok.ath.cx/downloads/media/aac+/libaacplus/libaacplus-${AACPLUS}.tar.gz" -#SRCPAT[18]="YES" +#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[19]="$SRCDIR/26410-800.zip" -#SRCURL[19]="http://www.3gpp.org/ftp/Specs/archive/26_series/26.410/26410-800.zip" -#SRCPAT[19]="YES" +#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" # Use the src_checkout() function if no downloadable tarball exists. @@ -940,9 +961,6 @@ make_orc() { echo -e "**\n** orc ...\n**" cd $TMP/tmp-$PRGNAM/orc-$ORC -# Make the static build succeed: -cat $SRCDIR/orc-0.4.3_static.diff | patch -p1 --verbose \ - 2>&1 | tee $OUTPUT/patch-${PRGNAM}_orc.log CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ LDFLAGS="$SLKLDFLAGS" \ @@ -961,7 +979,7 @@ echo -e "\n**\n**\n" # We used --prefix=$FFMPEGDEPSDIR/usr so that schroedinger's build will find the # headers in the $FFMPEGDEPSDIR instead of the filesystem root: make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_orc.log -# Add DOCS to the vlcdeps to have it added to vlc package later: +# Add DOCS to the ffmpeg deps to have it added to ffmpeg package later: mkdir -p $FFMPEGDEPSDIR/doc/orc/ cp ${DOCS_ORC} $FFMPEGDEPSDIR/doc/orc/ || true cd - @@ -1122,7 +1140,7 @@ LDFLAGS="$SLKLDFLAGS" \ 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 -# Install libva into a temp location so vlc can pickup the library +# Install libva 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}_libva.log @@ -1138,6 +1156,114 @@ cd - # ----------------------------------------------------------------------------- +# Compile fribidi +# ----------------------------------------------------------------------------- +make_fribidi() +{ +echo -e "**\n** fribidi ...\n**" +cd $TMP/tmp-$PRGNAM/fribidi-$FRIBIDI +if [ "$ARCH" = "x86_64" ]; then + ARCHOPTS="--with-pic" +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" \ +./configure \ + --prefix=$FFMPEGDEPSDIR/usr \ + --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \ + --enable-static \ + --disable-shared \ + --program-prefix= \ + --program-suffix= \ + $ARCHOPTS \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_fribidi.log +make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_fribidi.log +# Install fribidi into a temp location so ffmpeg can pickup the library +echo -e "\n**\n**\n" +make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_fribidi.log +# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later: +mkdir -p $FFMPEGDEPSDIR/doc/fribidi +cp -a $DOCS_FRIBIDI $FFMPEGDEPSDIR/doc/fribidi/ || true +cd - +} + + +# ----------------------------------------------------------------------------- +# Compile libass +# ----------------------------------------------------------------------------- +make_ass() +{ +echo -e "**\n** ass ...\n**" +cd $TMP/tmp-$PRGNAM/libass-$ASS +CFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \ +CXXFLAGS="-I$FFMPEGDEPSDIR/usr/include $SLKCFLAGS" \ +LDFLAGS="-L$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \ +PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ +./configure \ + --prefix=$FFMPEGDEPSDIR/usr \ + --libdir=$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX} \ + --enable-static \ + --disable-shared \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_ass.log +make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_ass.log +# Install libass into a temp location so ffmpeg can pickup the library +echo -e "\n**\n**\n" +make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_ass.log +# Add DOCS to the ffmpegdeps to have it added to ffmpeg package later: +mkdir -p $FFMPEGDEPSDIR/doc/libass +cp -a $DOCS_ASS $FFMPEGDEPSDIR/doc/libass/ || true +cd - +} + + +# ----------------------------------------------------------------------------- +# Compile v4l libraries +# ----------------------------------------------------------------------------- +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 +# 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 +# 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 + +cd - +} + + +# ----------------------------------------------------------------------------- # Compile ffmpeg with additional support for - # LAME (MP3), XVID, AAC (MP4), FAAD2 , SPEEX, X264, GSM, SCHROEDINGER # ----------------------------------------------------------------------------- @@ -1194,6 +1320,7 @@ PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ --enable-version3 \ --enable-postproc \ --enable-avfilter \ + --enable-libass \ --enable-libdc1394 \ --enable-libgsm \ --enable-libopencore-amrnb \ @@ -1202,6 +1329,7 @@ PKG_CONFIG_PATH="$FFMPEGDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ --enable-libschroedinger \ --enable-libspeex \ --enable-libtheora \ + --enable-libv4l2 \ --enable-libvo-amrwbenc \ --enable-libvpx \ --enable-libx264 \ @@ -1245,6 +1373,7 @@ fi make_amr make_amrwbenc make_1394 +make_v4l make_speex make_gsm make_rtmp @@ -1253,6 +1382,8 @@ make_schroedinger make_x264 make_vpx make_libva +make_fribidi +make_ass #fi # end of 'xy' |