diff options
author | Tomas Chvatal <scarabeus@gentoo.org> | 2011-03-22 17:03:31 +0100 |
---|---|---|
committer | Tomas Chvatal <scarabeus@gentoo.org> | 2011-03-22 17:03:31 +0100 |
commit | 0dd3e7265d6ab9505db7a799f7624a3839848455 (patch) | |
tree | 1dcb7a543163eda368e068bd39ff46fee85deb0e | |
parent | Add git2 eclass from kde-testing. (diff) | |
download | scarabeus-0dd3e7265d6ab9505db7a799f7624a3839848455.tar.gz scarabeus-0dd3e7265d6ab9505db7a799f7624a3839848455.tar.bz2 scarabeus-0dd3e7265d6ab9505db7a799f7624a3839848455.zip |
[media-video/libav] Add live and release version of libav.
-rw-r--r-- | media-video/libav/Manifest | 4 | ||||
-rw-r--r-- | media-video/libav/libav-0.6.2.ebuild | 260 | ||||
-rw-r--r-- | media-video/libav/libav-9999.ebuild | 260 | ||||
-rw-r--r-- | media-video/libav/metadata.xml | 32 |
4 files changed, 556 insertions, 0 deletions
diff --git a/media-video/libav/Manifest b/media-video/libav/Manifest new file mode 100644 index 0000000..79b649d --- /dev/null +++ b/media-video/libav/Manifest @@ -0,0 +1,4 @@ +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 +MISC metadata.xml 2265 RMD160 0416ebff8851e2ec715a801a3ecd66a98865578e SHA1 58d9750865481aedecd4d61dcaee9e43e6a27404 SHA256 38a520565c24ca97877c3b2814d685beb0079e3ad4d28e5924667084ba3ffd86 diff --git a/media-video/libav/libav-0.6.2.ebuild b/media-video/libav/libav-0.6.2.ebuild new file mode 100644 index 0000000..b12dc87 --- /dev/null +++ b/media-video/libav/libav-0.6.2.ebuild @@ -0,0 +1,260 @@ +# 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" +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=" + 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 ) + !media-video/qt-faststart +" + +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 +} diff --git a/media-video/libav/libav-9999.ebuild b/media-video/libav/libav-9999.ebuild new file mode 100644 index 0000000..b12dc87 --- /dev/null +++ b/media-video/libav/libav-9999.ebuild @@ -0,0 +1,260 @@ +# 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" +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=" + 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 ) + !media-video/qt-faststart +" + +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 +} diff --git a/media-video/libav/metadata.xml b/media-video/libav/metadata.xml new file mode 100644 index 0000000..fb6df0a --- /dev/null +++ b/media-video/libav/metadata.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>video</herd> + <maintainer> + <email>media-video@gentoo.org</email> + </maintainer> + <use> + <flag name="3dnowext"> + Enable manually-optimised routines using the AMD 3DNow!Ex SIMD + instruction set, present in modern AMD CPUs. (Check for + 3dnowext in /proc/cpuinfo to know whether your CPU supports it). + </flag> + <flag name="amr">Enables Adaptive Multi-Rate Audio support</flag> + <flag name="cpudetection">Enables runtime CPU detection (useful for bindist, compatibility on other CPUs)</flag> + <flag name="dirac">Enable Dirac video support (an advanced royalty-free video compression format) via the reference library: dirac.</flag> + <flag name="faac">Use external faac library for AAC encoding</flag> + <flag name="faad">Use external faad library for AAC decoding (instead of internal libavcodec support)</flag> + <flag name="frei0r">Enable frei0r wrapping in libavfilter</flag> + <flag name="hardcoded-tables">Use pre-calculated tables rather than calculating them on the fly.</flag> + <flag name="mmxext">Enables mmx2 support</flag> + <flag name="network">Enables network streaming support</flag> + <flag name="pic">Force shared libraries to be built as PIC (this is slower)</flag> + <flag name="qt-faststart">Build and install qt-faststart application</flag> + <flag name="rtmp">Enable Real Time Messaging Protocol using librtmp</flag> + <flag name="schroedinger">Enable Dirac video support (an advanced royalty-free video compression format) via libschroedinger (high-speed implementation in C of the Dirac codec).</flag> + <flag name="ssse3">faster floating point optimization for SSSE3 capable chips (Intel Core 2 and later chips)</flag> + <flag name="vaapi">Enables VAAPI (Video Acceleration API) for hardware decoding</flag> + <flag name="vdpau">Enables VDPAU decoders (requires nVidia video cards to offload CPU processing to video card</flag> + <flag name="vpx">Enables vp8 codec support using libvpx: Decoding vp8 does not require this to be enabled but libvpx can also be used for decoding; encoding vp8 requires this useflag to be enabled though.</flag> + </use> +</pkgmetadata> |