From e04d55de1e58dcf30526f6ac73548f7950f9ea6d Mon Sep 17 00:00:00 2001 From: Timothy Redaelli Date: Mon, 29 Jan 2007 10:28:38 +0000 Subject: Added ffmpeg scm version svn path=/; revision=90 --- media-video/ffmpeg/ChangeLog | 7 + media-video/ffmpeg/Manifest | 31 ++++ media-video/ffmpeg/ffmpeg-9999.ebuild | 174 +++++++++++++++++++++ media-video/ffmpeg/files/digest-ffmpeg-9999 | 6 + .../files/ffmpeg-0.4.9_p20060302-amr-64bit.patch | 27 ++++ .../ffmpeg/files/ffmpeg-shared-gcc4.1.patch | 40 +++++ 6 files changed, 285 insertions(+) create mode 100644 media-video/ffmpeg/ChangeLog create mode 100644 media-video/ffmpeg/Manifest create mode 100644 media-video/ffmpeg/ffmpeg-9999.ebuild create mode 100644 media-video/ffmpeg/files/digest-ffmpeg-9999 create mode 100644 media-video/ffmpeg/files/ffmpeg-0.4.9_p20060302-amr-64bit.patch create mode 100644 media-video/ffmpeg/files/ffmpeg-shared-gcc4.1.patch diff --git a/media-video/ffmpeg/ChangeLog b/media-video/ffmpeg/ChangeLog new file mode 100644 index 0000000..65d24bb --- /dev/null +++ b/media-video/ffmpeg/ChangeLog @@ -0,0 +1,7 @@ +# ChangeLog for media-video/ffmpeg +# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 +# $Header: $ + + 29 Jan 2007; Timothy Redaelli ChangeLog: + Added ffmpeg scm version + diff --git a/media-video/ffmpeg/Manifest b/media-video/ffmpeg/Manifest new file mode 100644 index 0000000..7ea6211 --- /dev/null +++ b/media-video/ffmpeg/Manifest @@ -0,0 +1,31 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +AUX ffmpeg-0.4.9_p20060302-amr-64bit.patch 1161 RMD160 c3e17a8e8a3e501ae9ce8b8e455063444d1bc15f SHA1 e4f280a2934e238529ca8b0d8d2abec2638d9fb1 SHA256 f993ac1ad11e254d846fbd0b3f73f81043551fce90438fdd196374ca9ece6c9c +MD5 fefa74601660fd82e001bd32b27ac34a files/ffmpeg-0.4.9_p20060302-amr-64bit.patch 1161 +RMD160 c3e17a8e8a3e501ae9ce8b8e455063444d1bc15f files/ffmpeg-0.4.9_p20060302-amr-64bit.patch 1161 +SHA256 f993ac1ad11e254d846fbd0b3f73f81043551fce90438fdd196374ca9ece6c9c files/ffmpeg-0.4.9_p20060302-amr-64bit.patch 1161 +AUX ffmpeg-shared-gcc4.1.patch 1667 RMD160 cf0318bcb812ad701e8cd55f10f59ca71933cf6c SHA1 0fd4d860efd8a0240fa66443429d8404d28a27dd SHA256 0bd67ed0cc1ea47c36756f5a66e504af4de85ce072c4b92083fb44065b5a3671 +MD5 d970f65795ef8b8ce839c01020b0e707 files/ffmpeg-shared-gcc4.1.patch 1667 +RMD160 cf0318bcb812ad701e8cd55f10f59ca71933cf6c files/ffmpeg-shared-gcc4.1.patch 1667 +SHA256 0bd67ed0cc1ea47c36756f5a66e504af4de85ce072c4b92083fb44065b5a3671 files/ffmpeg-shared-gcc4.1.patch 1667 +DIST 26104-510.zip 291836 RMD160 0ff97a27fe5d08dd43571fd1982ce0f07bce3bca SHA1 b22dbe895991c23fad446c3c4ff7b6db12673778 SHA256 75fdf6416950c155ccbfd7fae4ffd6529f162ad6b427ab242c3e00685e303f46 +DIST 26204-510.zip 246663 RMD160 1b68232bc40d84298b134c57697e29a842e63ffd SHA1 9ca910295c2888fba95a98da83762a22aaf34651 SHA256 069ebd6ed8ef846d99bdd13d6c47fdb99fe5583b0ed5f405e1392a1a21a1b991 +EBUILD ffmpeg-9999.ebuild 5513 RMD160 155060c4fbdf92ca94a2dfe6cf691ec6ca32f4f7 SHA1 af5de3b7780ed07255e55d2804316ae061c56b4d SHA256 ab033ee87a7dba76d0d9dea137ae9361442ca3b1dd30626240526136d70062cb +MD5 e452fbc906f33e848a27731b31d01191 ffmpeg-9999.ebuild 5513 +RMD160 155060c4fbdf92ca94a2dfe6cf691ec6ca32f4f7 ffmpeg-9999.ebuild 5513 +SHA256 ab033ee87a7dba76d0d9dea137ae9361442ca3b1dd30626240526136d70062cb ffmpeg-9999.ebuild 5513 +MISC ChangeLog 210 RMD160 2812f001d2afd918862c5265c6e3cb7614c9dbd7 SHA1 8f7710ce038a84161408f4432510672f07d72ea6 SHA256 07dccfb895c00d33d8b6fb3164152715a8274a30406da36eed3cce280ceeb1d9 +MD5 c6d7b0bcd11249d71f9040ae8a3e59f5 ChangeLog 210 +RMD160 2812f001d2afd918862c5265c6e3cb7614c9dbd7 ChangeLog 210 +SHA256 07dccfb895c00d33d8b6fb3164152715a8274a30406da36eed3cce280ceeb1d9 ChangeLog 210 +MD5 62a77f586b385b299d497abecaf2d345 files/digest-ffmpeg-9999 440 +RMD160 f6b438fc4d060efe5052856d770883867b1280e8 files/digest-ffmpeg-9999 440 +SHA256 c2b8bc9637aa8723f1a181124ebe02b54d50a3a14c254b9e998c61a6ad909a3c files/digest-ffmpeg-9999 440 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.1 (GNU/Linux) + +iD8DBQFFvcxSGDyatLGpTbYRAmuKAJsF2+PcQ390T35vUcNEbEgilQ9BYACaAxIm +RS2aGilBEXqixdVzsWKPJ6w= +=JZ3P +-----END PGP SIGNATURE----- diff --git a/media-video/ffmpeg/ffmpeg-9999.ebuild b/media-video/ffmpeg/ffmpeg-9999.ebuild new file mode 100644 index 0000000..109b6f6 --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-9999.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ffmpeg-0.4.9_p20061016.ebuild,v 1.10 2007/01/06 15:16:15 mcummings Exp $ + +inherit subversion eutils flag-o-matic multilib toolchain-funcs + +ESVN_PROJECT="ffmpeg" +ESVN_REPO_URI="svn://svn.mplayerhq.hu/ffmpeg/trunk" + +DESCRIPTION="Complete solution to record, convert and stream audio and video. Includes libavcodec." +HOMEPAGE="http://ffmpeg.sourceforge.net/" +MY_P=${P/_/-} +S=${WORKDIR}/ffmpeg + +SRC_URI="amr? ( http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip + http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="aac altivec amr debug doc ieee1394 a52 encode imlib mmx ogg vorbis oss + test theora threads truetype v4l x264 xvid dts network zlib sdl" + +RDEPEND="imlib? ( media-libs/imlib2 ) + truetype? ( >=media-libs/freetype-2 ) + sdl? ( >=media-libs/libsdl-1.2.10 ) + encode? ( media-sound/lame ) + ogg? ( media-libs/libogg ) + vorbis? ( media-libs/libvorbis ) + aac? ( media-libs/faad2 media-libs/faac ) + a52? ( >=media-libs/a52dec-0.7.4-r4 ) + xvid? ( >=media-libs/xvid-1.1.0 ) + zlib? ( sys-libs/zlib ) + dts? ( media-libs/libdts ) + ieee1394? ( =media-libs/libdc1394-1* + sys-libs/libraw1394 ) + x264? ( >=media-libs/x264-svn-20061014 )" + +DEPEND="${RDEPEND} + doc? ( app-text/texi2html ) + test? ( net-misc/wget ) + amr? ( app-arch/unzip )" + +src_unpack() { + unpack ${A} + subversion_src_unpack + + if use amr; then + einfo "Including amr wide and narrow band (float) support ... " + + # narrow band codec + unzip -q ${WORKDIR}/26104-510_ANSI_C_source_code.zip -d \ + ${S}/libavcodec/amr_float || die + + # wide band codec + unzip -q ${WORKDIR}/26204-510_ANSI-C_source_code.zip -d \ + ${S}/libavcodec/amrwb_float || die + + # Patch if we're on 64-bit + if useq alpha || useq amd64 || useq ia64 || useq ppc64; then + epatch "${FILESDIR}/ffmpeg-0.4.9_p20060302-amr-64bit.patch" + fi + fi + + #Append -fomit-frame-pointer to avoid some common issues + use debug || append-flags "-fomit-frame-pointer" + + # for some reason it tries to #include , but doesn't use it + sed -i s:\#define\ HAVE_X11:\#define\ HAVE_LINUX: ffplay.c + + # Make it use pic always since we don't need textrels + sed -i -e "s:LIBOBJFLAGS=\"\":LIBOBJFLAGS=\'\$\(PIC\)\':" configure + + # To make sure the ffserver test will work + sed -i -e "s:-e debug=off::" tests/server-regression.sh + + # CC is not always gcc + sed -i -e "s:cc=\"gcc\":cc=\"$(tc-getCC)\":" configure + + epatch "${FILESDIR}/${PN}-shared-gcc4.1.patch" +} + +src_compile() { + replace-flags -O0 -O2 + #x86, what a wonderful arch.... + replace-flags -O1 -O2 + local myconf="${EXTRA_ECONF}" + + #disable mmx accelerated code if not requested, or if PIC is required + # as the provided asm decidedly is not PIC. + if ( gcc-specs-pie || ! use mmx ) && ( ! use amd64 ); then + myconf="${myconf} --disable-mmx" + fi + + # enabled by default + use altivec || myconf="${myconf} --disable-altivec" + use debug || myconf="${myconf} --disable-debug" + use oss || myconf="${myconf} --disable-audio-oss" + use v4l || myconf="${myconf} --disable-v4l --disable-v4l2" + use ieee1394 || myconf="${myconf} --disable-dv1394" + use network || myconf="${myconf} --disable-network" + use zlib || myconf="${myconf} --disable-zlib" + use sdl || myconf="${myconf} --disable-ffplay" + + myconf="${myconf} --disable-opts" + + # disabled by default + use encode && myconf="${myconf} --enable-mp3lame" + use a52 && myconf="${myconf} --enable-a52" + use ieee1394 && myconf="${myconf} --enable-dc1394" + use threads && myconf="${myconf} --enable-pthreads" + use xvid && myconf="${myconf} --enable-xvid" + if use vorbis + then + myconf="${myconf} --enable-vorbis --enable-libogg" + else + use ogg && myconf="${myconf} --enable-libogg" + fi + use dts && myconf="${myconf} --enable-dts" + use x264 && myconf="${myconf} --enable-x264" + use aac && myconf="${myconf} --enable-faad --enable-faac" + use amr && myconf="${myconf} --enable-amr_nb --enable-amr_wb" + + myconf="${myconf} --enable-gpl --enable-pp --disable-strip" + + # 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 + + ./configure \ + --prefix=/usr \ + --libdir=/usr/$(get_libdir) \ + --shlibdir=/usr/$(get_libdir) \ + --mandir=/usr/share/man \ + --enable-static --enable-shared \ + "--cc=$(tc-getCC)" \ + ${myconf} || die "configure failed" + + emake -j1 depend || die "depend failed" + emake || die "make failed" +} + +src_install() { + emake -j1 LDCONFIG=true DESTDIR=${D} install || die "Install Failed" + + use doc && emake -j1 documentation + dodoc Changelog README INSTALL + dodoc doc/* +} + +# Never die for now... +src_test() { + cd ${S}/tests + for t in "codectest libavtest test-server" ; do + make ${t} || ewarn "Some tests in ${t} failed" + done +} + +pkg_postinst() { + ewarn "ffmpeg may had ABI changes, if ffmpeg based programs" + ewarn "like xine-lib or vlc stop working as expected please" + ewarn "rebuild them." +} diff --git a/media-video/ffmpeg/files/digest-ffmpeg-9999 b/media-video/ffmpeg/files/digest-ffmpeg-9999 new file mode 100644 index 0000000..3ed7250 --- /dev/null +++ b/media-video/ffmpeg/files/digest-ffmpeg-9999 @@ -0,0 +1,6 @@ +MD5 9b575d01f94f50dd4dcf570cd8a14dda 26104-510.zip 291836 +RMD160 0ff97a27fe5d08dd43571fd1982ce0f07bce3bca 26104-510.zip 291836 +SHA256 75fdf6416950c155ccbfd7fae4ffd6529f162ad6b427ab242c3e00685e303f46 26104-510.zip 291836 +MD5 607a14d090898ffb0f72c1aa6aa6ce31 26204-510.zip 246663 +RMD160 1b68232bc40d84298b134c57697e29a842e63ffd 26204-510.zip 246663 +SHA256 069ebd6ed8ef846d99bdd13d6c47fdb99fe5583b0ed5f405e1392a1a21a1b991 26204-510.zip 246663 diff --git a/media-video/ffmpeg/files/ffmpeg-0.4.9_p20060302-amr-64bit.patch b/media-video/ffmpeg/files/ffmpeg-0.4.9_p20060302-amr-64bit.patch new file mode 100644 index 0000000..540ef94 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-0.4.9_p20060302-amr-64bit.patch @@ -0,0 +1,27 @@ +diff --exclude-from=/home/dang/.diffrc -u -ruN ffmpeg-0.4.9-p20060302.orig/libavcodec/amr_float/typedef.h ffmpeg-0.4.9-p20060302/libavcodec/amr_float/typedef.h +--- ffmpeg-0.4.9-p20060302.orig/libavcodec/amr_float/typedef.h 2003-03-26 14:15:42.000000000 -0500 ++++ ffmpeg-0.4.9-p20060302/libavcodec/amr_float/typedef.h 2006-04-19 18:39:20.000000000 -0400 +@@ -16,7 +16,7 @@ + typedef char Word8; + typedef unsigned char UWord8; + typedef short Word16; +-typedef long Word32; ++typedef int Word32; + typedef float Float32; + typedef double Float64; + +diff --exclude-from=/home/dang/.diffrc -u -ruN ffmpeg-0.4.9-p20060302.orig/libavcodec/amrwb_float/typedef.h ffmpeg-0.4.9-p20060302/libavcodec/amrwb_float/typedef.h +--- ffmpeg-0.4.9-p20060302.orig/libavcodec/amrwb_float/typedef.h 2003-02-18 00:00:02.000000000 -0500 ++++ ffmpeg-0.4.9-p20060302/libavcodec/amrwb_float/typedef.h 2006-04-19 18:37:30.000000000 -0400 +@@ -11,8 +11,8 @@ + typedef unsigned char UWord8; + typedef short Word16; + typedef unsigned short UWord16; +-typedef long Word32; ++typedef int Word32; + typedef double Float64; + typedef float Float32; + +-#endif +\ No newline at end of file ++#endif diff --git a/media-video/ffmpeg/files/ffmpeg-shared-gcc4.1.patch b/media-video/ffmpeg/files/ffmpeg-shared-gcc4.1.patch new file mode 100644 index 0000000..680c755 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-shared-gcc4.1.patch @@ -0,0 +1,40 @@ +--- ffmpeg.orig/libavcodec/i386/dsputil_mmx.c 2006-03-04 07:50:27.000000000 +0100 ++++ ffmpeg/libavcodec/i386/dsputil_mmx.c 2006-03-04 07:49:04.000000000 +0100 +@@ -619,10 +619,22 @@ + + static inline void transpose4x4(uint8_t *dst, uint8_t *src, int dst_stride, int src_stride){ + asm volatile( //FIXME could save 1 instruction if done as 8x4 ... +- "movd %4, %%mm0 \n\t" +- "movd %5, %%mm1 \n\t" +- "movd %6, %%mm2 \n\t" +- "movd %7, %%mm3 \n\t" ++ "movd %0, %%mm0 \n\t" ++ "movd %1, %%mm1 \n\t" ++ "movd %2, %%mm2 \n\t" ++ ++ : ++ : "m" (*(uint32_t*)(src + 0*src_stride)), ++ "m" (*(uint32_t*)(src + 1*src_stride)), ++ "m" (*(uint32_t*)(src + 2*src_stride)) ++ ); ++ asm volatile( //FIXME could save 1 instruction if done as 8x4 ... ++ "movd %0, %%mm3 \n\t" ++ ++ : ++ : "m" (*(uint32_t*)(src + 3*src_stride)) ++ ); ++ asm volatile( //FIXME could save 1 instruction if done as 8x4 ... + "punpcklbw %%mm1, %%mm0 \n\t" + "punpcklbw %%mm3, %%mm2 \n\t" + "movq %%mm0, %%mm1 \n\t" +@@ -639,10 +651,6 @@ + "=m" (*(uint32_t*)(dst + 1*dst_stride)), + "=m" (*(uint32_t*)(dst + 2*dst_stride)), + "=m" (*(uint32_t*)(dst + 3*dst_stride)) +- : "m" (*(uint32_t*)(src + 0*src_stride)), +- "m" (*(uint32_t*)(src + 1*src_stride)), +- "m" (*(uint32_t*)(src + 2*src_stride)), +- "m" (*(uint32_t*)(src + 3*src_stride)) + ); + } + -- cgit v1.2.3-65-gdbad