summaryrefslogtreecommitdiffstats
path: root/ffmpeg/build/ffmpeg.SlackBuild
diff options
context:
space:
mode:
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
commit9b3cf57bfa0daf3de4acc61052089d79904037e3 (patch)
treedfbf39accd95a15d46ffa08451fb279aa9730464 /ffmpeg/build/ffmpeg.SlackBuild
parent934a54b3c565971eac7e2b950382158e8c3d8725 (diff)
downloadasb-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-xffmpeg/build/ffmpeg.SlackBuild155
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'