diff options
author | Tomas Chvatal <scarabeus@gentoo.org> | 2011-03-22 21:49:54 +0100 |
---|---|---|
committer | Tomas Chvatal <scarabeus@gentoo.org> | 2011-03-22 21:49:54 +0100 |
commit | 8024dc208c7d83faef43ecbca2170b7294407168 (patch) | |
tree | 4bce8f37c43c6ca0601ece56a8ec812f684ed7b1 | |
parent | [media-video/libav] block ffmpeg. (diff) | |
download | scarabeus-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/Manifest | 7 | ||||
-rw-r--r-- | media-video/libav/files/0.6.2-fix_enable_hardcoded_tables.patch | 45 | ||||
-rw-r--r-- | media-video/libav/files/0.6.2-float_arrays.patch | 44 | ||||
-rw-r--r-- | media-video/libav/libav-0.6.2.ebuild | 4 | ||||
-rw-r--r-- | media-video/libav/libav-0.6.9999.ebuild | 261 |
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 +} |