summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2011-03-22 21:49:54 +0100
committerTomas Chvatal <scarabeus@gentoo.org>2011-03-22 21:49:54 +0100
commit8024dc208c7d83faef43ecbca2170b7294407168 (patch)
tree4bce8f37c43c6ca0601ece56a8ec812f684ed7b1
parent[media-video/libav] block ffmpeg. (diff)
downloadscarabeus-8024dc208c7d83faef43ecbca2170b7294407168.tar.gz
scarabeus-8024dc208c7d83faef43ecbca2170b7294407168.tar.bz2
scarabeus-8024dc208c7d83faef43ecbca2170b7294407168.zip
[media-video/libav] Add live branch ebuild and fix 0.6.2 build.
-rw-r--r--media-video/libav/Manifest7
-rw-r--r--media-video/libav/files/0.6.2-fix_enable_hardcoded_tables.patch45
-rw-r--r--media-video/libav/files/0.6.2-float_arrays.patch44
-rw-r--r--media-video/libav/libav-0.6.2.ebuild4
-rw-r--r--media-video/libav/libav-0.6.9999.ebuild261
5 files changed, 359 insertions, 2 deletions
diff --git a/media-video/libav/Manifest b/media-video/libav/Manifest
index 79b649d..681cec0 100644
--- a/media-video/libav/Manifest
+++ b/media-video/libav/Manifest
@@ -1,4 +1,7 @@
+AUX 0.6.2-fix_enable_hardcoded_tables.patch 1387 RMD160 3ccd0be1f6612ad45dcd78dee17817cf03bcda87 SHA1 13d1e51c17c25ba9adfb9d878334343746f917e0 SHA256 2e72e53be9df93128fc75ad4adfa9208d31f496c7bb9924c8a2e14ee2cb8d9f6
+AUX 0.6.2-float_arrays.patch 1611 RMD160 960188d97261729526187c53a281a03c31a6a95a SHA1 92bb3062933cd9540eb8b05efc6cbebb38e94a0c SHA256 311e255309dfd6a045e38303d80b534aec9444cfe314d0b4d585688075c7dd7d
DIST libav-0.6.2.tar.bz2 3639862 RMD160 fbdee25614940253e018e42a633da579704146fd SHA1 b79dc56a08f4ef07b41d1a78b2251f21fde8b81d SHA256 eb13f20bfa09664559e81ff9691cebcb77a763320ddf63c47a402351409697af
-EBUILD libav-0.6.2.ebuild 7423 RMD160 08c1bbdda0030556e3269bd8daf289ef66e90b6c SHA1 3d2652c7eee99023b69a6f0447e32421a6694ec5 SHA256 0f5cf7722c7893556c650125c71481c49cd9464fcdda014c28a3bfb6d6f7b7ee
-EBUILD libav-9999.ebuild 7423 RMD160 08c1bbdda0030556e3269bd8daf289ef66e90b6c SHA1 3d2652c7eee99023b69a6f0447e32421a6694ec5 SHA256 0f5cf7722c7893556c650125c71481c49cd9464fcdda014c28a3bfb6d6f7b7ee
+EBUILD libav-0.6.2.ebuild 7527 RMD160 b1a91e331eb1dceff993b1f4ef30e77bd817c093 SHA1 5d3d0c440a908ca3ed4c4c5eeb5cfccb5f256dc2 SHA256 a07646d84bca03a7d93602882c5148a3ec0d8b817d0d6d9a06fd7a1dd6690a63
+EBUILD libav-0.6.9999.ebuild 7444 RMD160 a7bb82501fa43ba8a0752febe17205a8b9a54666 SHA1 aea8583882a132f67401ed21581dadd034dbf8db SHA256 845de0fe6c0225297b1bae1ca6161088661421f555e49171ed29dbf5ba297513
+EBUILD libav-9999.ebuild 7417 RMD160 075823c8dc01e294d3b65071f50d5a825b2fbf27 SHA1 bd1ae57614d42c78b11f2aa0c15b61ddebf31ba0 SHA256 aa1536bdf10687fbcd3f0b1a4c0354f6b59cb7d59901a327a715928f2a583fcf
MISC metadata.xml 2265 RMD160 0416ebff8851e2ec715a801a3ecd66a98865578e SHA1 58d9750865481aedecd4d61dcaee9e43e6a27404 SHA256 38a520565c24ca97877c3b2814d685beb0079e3ad4d28e5924667084ba3ffd86
diff --git a/media-video/libav/files/0.6.2-fix_enable_hardcoded_tables.patch b/media-video/libav/files/0.6.2-fix_enable_hardcoded_tables.patch
new file mode 100644
index 0000000..8346e1e
--- /dev/null
+++ b/media-video/libav/files/0.6.2-fix_enable_hardcoded_tables.patch
@@ -0,0 +1,45 @@
+From 2b2856bac2012fe505ffd80f441db28c7fc31787 Mon Sep 17 00:00:00 2001
+From: Reinhard Tartler <siretart@tauware.de>
+Date: Tue, 22 Mar 2011 20:57:36 +0100
+Subject: [PATCH] Add missing dependencies for the AAC-HE backport for hardcoded tables
+
+Unbreaks compilation with --enable-hardcoded-tables
+---
+ Changelog | 5 +++++
+ libavcodec/Makefile | 4 +++-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+diff --git a/Changelog b/Changelog
+index 2e0a99c..bcf6428 100644
+--- a/Changelog
++++ b/Changelog
+@@ -1,6 +1,11 @@
+ Entries are sorted chronologically from oldest to youngest within each release,
+ releases are sorted from youngest to oldest.
+
++version 0.6.3:
++
++- fix compilation with --enable-hardcoded-tables
++
++
+ version 0.6.2:
+
+ - Fix invalid reads in VC-1 decoding (related to CVE-2011-0723)
+diff --git a/libavcodec/Makefile b/libavcodec/Makefile
+index 4547ef6..3dd24e7 100644
+--- a/libavcodec/Makefile
++++ b/libavcodec/Makefile
+@@ -645,7 +645,9 @@ $(SUBDIR)%_tables.h: $(SUBDIR)%_tablegen$(HOSTEXESUF)
+ $(M)./$< > $@
+
+ ifdef CONFIG_HARDCODED_TABLES
+-$(SUBDIR)aac.o: $(SUBDIR)cbrt_tables.h
++$(SUBDIR)aacdec.o: $(SUBDIR)cbrt_tables.h
++$(SUBDIR)aacps.o: $(SUBDIR)aacps_tables.h
++$(SUBDIR)aactab.o: $(SUBDIR)aac_tables.h
+ $(SUBDIR)dv.o: $(SUBDIR)dv_tables.h
+ $(SUBDIR)mdct.o: $(SUBDIR)mdct_tables.h
+ $(SUBDIR)mpegaudiodec.o: $(SUBDIR)mpegaudio_tables.h
+--
+1.7.3.5
+
diff --git a/media-video/libav/files/0.6.2-float_arrays.patch b/media-video/libav/files/0.6.2-float_arrays.patch
new file mode 100644
index 0000000..b37bc4a
--- /dev/null
+++ b/media-video/libav/files/0.6.2-float_arrays.patch
@@ -0,0 +1,44 @@
+From b4eafa8b04802f45a710e712f2ec2676e0a77024 Mon Sep 17 00:00:00 2001
+From: Michael Kostylev <michael.kostylev@gmail.com>
+Date: Thu, 13 May 2010 10:02:04 +0000
+Subject: [PATCH] Support writing 2d float arrays.
+
+Patch by Michael Kostylev, michael D kostylev A gmail
+
+Originally committed as revision 23105 to svn://svn.ffmpeg.org/ffmpeg/trunk
+(cherry picked from commit 56b37cd1c7f3b5e5a3ece043c7ffccf70874cfb1)
+
+Unbreaks compilation since the HE-AAC v2 backport
+Signed-off-by: Reinhard Tartler <siretart@tauware.de>
+---
+ libavcodec/tableprint.c | 1 +
+ libavcodec/tableprint.h | 1 +
+ 2 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/libavcodec/tableprint.c b/libavcodec/tableprint.c
+index e39606b..0f422eb 100644
+--- a/libavcodec/tableprint.c
++++ b/libavcodec/tableprint.c
+@@ -33,6 +33,7 @@ WRITE_1D_FUNC(float, float, "%.18e", 3)
+ WRITE_2D_FUNC(int8, int8_t)
+ WRITE_2D_FUNC(uint8, uint8_t)
+ WRITE_2D_FUNC(uint32, uint32_t)
++WRITE_2D_FUNC(float, float)
+
+ void write_fileheader(void) {
+ printf("/* This file was generated by libavcodec/tableprint */\n");
+diff --git a/libavcodec/tableprint.h b/libavcodec/tableprint.h
+index d81af97..76ab802 100644
+--- a/libavcodec/tableprint.h
++++ b/libavcodec/tableprint.h
+@@ -66,6 +66,7 @@ void write_float_array (const float *, int);
+ void write_int8_2d_array (const void *, int, int);
+ void write_uint8_2d_array (const void *, int, int);
+ void write_uint32_2d_array(const void *, int, int);
++void write_float_2d_array (const void *, int, int);
+ /** \} */ // end of printfuncs group
+
+ /** Write a standard file header */
+--
+1.7.3.5
+
diff --git a/media-video/libav/libav-0.6.2.ebuild b/media-video/libav/libav-0.6.2.ebuild
index f2dc23a..0b1f626 100644
--- a/media-video/libav/libav-0.6.2.ebuild
+++ b/media-video/libav/libav-0.6.2.ebuild
@@ -81,6 +81,10 @@ src_prepare() {
if [[ "${PV%_p*}" != "${PV}" ]]; then
sed -i -e "s/UNKNOWN/GIT-r${PV#*_p}/" "${S}/version.sh" || die
fi
+
+ epatch \
+ "${FILESDIR}"/${PV}-fix_enable_hardcoded_tables.patch \
+ "${FILESDIR}"/${PV}-float_arrays.patch
}
src_configure() {
diff --git a/media-video/libav/libav-0.6.9999.ebuild b/media-video/libav/libav-0.6.9999.ebuild
new file mode 100644
index 0000000..bfaf1e0
--- /dev/null
+++ b/media-video/libav/libav-0.6.9999.ebuild
@@ -0,0 +1,261 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ffmpeg-9999.ebuild,v 1.32 2011/03/21 11:37:03 aballier Exp $
+
+EAPI=4
+
+if [[ ${PV} == *9999 ]] ; then
+ SCM="git-2"
+ EGIT_REPO_URI="git://git.libav.org/libav.git"
+ EGIT_BRANCH="release/0.6"
+fi
+
+inherit eutils flag-o-matic multilib toolchain-funcs ${SCM}
+
+DESCRIPTION="Complete solution to record, convert and stream audio and video."
+HOMEPAGE="http://libav.org/"
+if [[ ${PV} == *9999 ]] ; then
+ SRC_URI=""
+elif [[ "${PV%_p*}" != "${PV}" ]] ; then # Gentoo snapshot
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+else # Official release
+ SRC_URI="http://${PN}.org/releases/${P}.tar.bz2"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+[[ ${PV} == *9999 ]] || KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="+3dnow +3dnowext alsa altivec amr bindist +bzip2 cpudetection custom-cflags debug dirac doc +encode faac frei0r gsm +hardcoded-tables ieee1394 jack jpeg2k +mmx +mmxext mp3 network oss pic qt-faststart rtmp schroedinger sdl speex +ssse3 static-libs test theora threads v4l v4l2 vaapi vdpau vorbis vpx X x264 xvid +zlib"
+
+VIDEO_CARDS="nvidia"
+for x in ${VIDEO_CARDS}; do
+ IUSE="${IUSE} video_cards_${x}"
+done
+
+RDEPEND="
+ !media-video/ffmpeg
+ alsa? ( media-libs/alsa-lib )
+ amr? ( media-libs/opencore-amr )
+ bzip2? ( app-arch/bzip2 )
+ dirac? ( media-video/dirac )
+ encode? (
+ faac? ( media-libs/faac )
+ mp3? ( >=media-sound/lame-3.98.3 )
+ theora? ( >=media-libs/libtheora-1.1.1[encode] media-libs/libogg )
+ vorbis? ( media-libs/libvorbis media-libs/libogg )
+ x264? ( >=media-libs/x264-0.0.20101029 )
+ xvid? ( >=media-libs/xvid-1.1.0 )
+ )
+ frei0r? ( media-plugins/frei0r-plugins )
+ gsm? ( >=media-sound/gsm-1.0.12-r1 )
+ ieee1394? ( media-libs/libdc1394 sys-libs/libraw1394 )
+ jack? ( media-sound/jack-audio-connection-kit )
+ jpeg2k? ( >=media-libs/openjpeg-1.3-r2 )
+ rtmp? ( >=media-video/rtmpdump-2.2f )
+ sdl? ( >=media-libs/libsdl-1.2.13-r1[audio,video] )
+ schroedinger? ( media-libs/schroedinger )
+ speex? ( >=media-libs/speex-1.2_beta3 )
+ vaapi? ( x11-libs/libva )
+ video_cards_nvidia? ( vdpau? ( x11-libs/libvdpau ) )
+ vpx? ( media-libs/libvpx )
+ X? ( x11-libs/libX11 x11-libs/libXext )
+ zlib? ( sys-libs/zlib )
+"
+
+DEPEND="${RDEPEND}
+ >=sys-devel/make-3.81
+ dirac? ( dev-util/pkgconfig )
+ doc? ( app-text/texi2html )
+ mmx? ( dev-lang/yasm )
+ rtmp? ( dev-util/pkgconfig )
+ schroedinger? ( dev-util/pkgconfig )
+ test? ( net-misc/wget )
+ v4l? ( sys-kernel/linux-headers )
+ v4l2? ( sys-kernel/linux-headers )
+"
+
+# faac can't be binary distributed
+REQUIRED_USE="bindist? ( !faac )"
+
+src_prepare() {
+ # if we have snapshot then we need to hardcode the version
+ if [[ "${PV%_p*}" != "${PV}" ]]; then
+ sed -i -e "s/UNKNOWN/GIT-r${PV#*_p}/" "${S}/version.sh" || die
+ fi
+}
+
+src_configure() {
+ local myconf="${EXTRA_FFMPEG_CONF}"
+ local uses i
+
+ # enabled by default
+ uses="debug doc network vaapi zlib"
+ for i in ${uses}; do
+ use ${i} || myconf+=" --disable-${i}"
+ done
+ use bzip2 || myconf+=" --disable-bzlib"
+ use sdl || myconf+=" --disable-ffplay"
+
+ use custom-cflags && myconf+=" --disable-optimizations"
+ use cpudetection && myconf+=" --enable-runtime-cpudetect"
+
+ #for i in h264_vdpau mpeg1_vdpau mpeg_vdpau vc1_vdpau wmv3_vdpau; do
+ # use video_cards_nvidia || myconf="${myconf} --disable-decoder=${i}"
+ # use vdpau || myconf="${myconf} --disable-decoder=${i}"
+ #done
+ use video_cards_nvidia && use vdpau || myconf+=" --disable-vdpau"
+
+ # Encoders
+ if use encode; then
+ use mp3 && myconf+=" --enable-libmp3lame"
+ use faac && myconf+=" --enable-libfaac --enable-nonfree"
+ uses="theora vorbis x264 xvid"
+ for i in ${uses}; do
+ use ${i} && myconf+=" --enable-lib${i}"
+ done
+ else
+ myconf+=" --disable-encoders"
+ fi
+
+ # libavdevice options
+ use ieee1394 && myconf+=" --enable-libdc1394"
+ # Indevs
+ for i in v4l v4l2 alsa oss jack; do
+ use ${i} || myconf+=" --disable-indev=${i}"
+ done
+ use X && myconf+=" --enable-x11grab"
+ # Outdevs
+ for i in alsa oss ; do
+ use ${i} || myconf+=" --disable-outdev=${i}"
+ done
+ # libavfilter options
+ use frei0r && myconf+=" --enable-frei0r"
+
+ # Threads; we only support pthread for now but ffmpeg supports more
+ use threads && myconf+=" --enable-pthreads"
+
+ # Decoders
+ use amr && myconf+=" --enable-libopencore-amrwb --enable-libopencore-amrnb"
+ uses="gsm dirac rtmp schroedinger speex vpx"
+ for i in ${uses}; do
+ use ${i} && myconf+=" --enable-lib${i}"
+ done
+ use jpeg2k && myconf+=" --enable-libopenjpeg"
+
+ # CPU features
+ uses="mmx ssse3 altivec"
+ for i in ${uses}; do
+ use ${i} || myconf+=" --disable-${i}"
+ done
+ use mmxext || myconf+=" --disable-mmx2"
+ use 3dnow || myconf+=" --disable-amd3dnow"
+ use 3dnowext || myconf=+" --disable-amd3dnowext"
+ # disable mmx accelerated code if PIC is required
+ # as the provided asm decidedly is not PIC for x86.
+ if use pic && use x86 ; then
+ myconf+=" --disable-mmx --disable-mmx2"
+ fi
+
+ # Option to force building pic
+ use pic && myconf+=" --enable-pic"
+
+ # Try to get cpu type based on CFLAGS.
+ # Bug #172723
+ # We need to do this so that features of that CPU will be better used
+ # If they contain an unknown CPU it will not hurt since ffmpeg's configure
+ # will just ignore it.
+ for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do
+ [ "${i}" = "native" ] && i="host" # bug #273421
+ [[ ${i} = *-sse3 ]] && i="${i%-sse3}" # bug 283968
+ myconf+=" --cpu=${i}"
+ break
+ done
+
+ # Mandatory configuration
+ myconf="
+ --enable-gpl
+ --enable-version3
+ --enable-postproc
+ --enable-avfilter
+ --disable-stripping
+ ${myconf}"
+
+ # cross compile support
+ if tc-is-cross-compiler ; then
+ myconf+=" --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}-"
+ case ${CHOST} in
+ *freebsd*)
+ myconf+=" --target-os=freebsd"
+ ;;
+ mingw32*)
+ myconf+=" --target-os=mingw32"
+ ;;
+ *linux*)
+ myconf+=" --target-os=linux"
+ ;;
+ esac
+ fi
+
+ # Misc stuff
+ use hardcoded-tables && myconf+=" --enable-hardcoded-tables"
+
+ # Specific workarounds for too-few-registers arch...
+ if [[ $(tc-arch) == "x86" ]]; then
+ filter-flags -fforce-addr -momit-leaf-frame-pointer
+ append-flags -fomit-frame-pointer
+ is-flag -O? || append-flags -O2
+ if use debug; then
+ # no need to warn about debug if not using debug flag
+ ewarn ""
+ ewarn "Debug information will be almost useless as the frame pointer is omitted."
+ ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
+ ewarn "difficult to fix. Please have that in mind."
+ ewarn ""
+ fi
+ fi
+
+ cd "${S}"
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/$(get_libdir) \
+ --shlibdir=/usr/$(get_libdir) \
+ --mandir=/usr/share/man \
+ --enable-shared \
+ --cc="$(tc-getCC)" \
+ $(use_enable static-libs static) \
+ ${myconf} || die
+}
+
+src_compile() {
+ emake version.h
+ emake
+
+ if use qt-faststart; then
+ tc-export CC
+ emake -C tools qt-faststart
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install-man
+
+ dodoc Changelog README INSTALL
+ dodoc doc/*
+
+ if use qt-faststart; then
+ dobin tools/qt-faststart
+ fi
+}
+
+src_test() {
+ local i tests
+ if use encode; then
+ tests="codectest lavftest seektest"
+ for i in ${tests}; do
+ LD_LIBRARY_PATH="${S}/libavcore:${S}/libpostproc:${S}/libswscale:${S}/libavcodec:${S}/libavdevice:${S}/libavfilter:${S}/libavformat:${S}/libavutil" \
+ emake ${i}
+ done
+ else
+ ewarn "Tests fail without USE=encode, skipping"
+ fi
+}