media-video/libav: Add nvidia-video-codec support
authorLuca Barbato <lu_zero@gentoo.org>
Sun, 22 Jan 2017 16:06:04 +0000 (16:06 +0000)
committerLuca Barbato <lu_zero@gentoo.org>
Sun, 22 Jan 2017 16:06:58 +0000 (16:06 +0000)
Package-Manager: portage-2.3.3

media-video/libav/libav-12.ebuild
media-video/libav/metadata.xml
profiles/arch/x86/package.use.mask

index 57a650750f271393706752a60556e10626380153..214466a166a3af195b343c2a2ce74c8ffae9695f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -37,7 +37,7 @@ SLOT="0/12"
 ~x64-solaris ~x86-solaris"
 IUSE="aac alsa amr bs2b +bzip2 cdio cpudetection custom-cflags debug doc +encode faac fdk
        frei0r fontconfig +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k libressl mp3
-       +network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
+       +network nvidia openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
        static-libs test theora threads tools truetype twolame v4l vaapi vdpau vorbis vpx X
        wavpack webp x264 x265 xvid +zlib"
 
@@ -79,6 +79,7 @@ RDEPEND="
                x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
                xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
        )
+       nvidia? ( media-video/nvidia-video-codec[${MULTILIB_USEDEP}] )
        fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
        frei0r? ( media-plugins/frei0r-plugins )
        gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
@@ -139,7 +140,7 @@ REQUIRED_USE="
        test? ( encode zlib )
        fontconfig? ( truetype )
 "
-RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist )"
+RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist ) nvidia? ( bindist )"
 
 MULTILIB_WRAPPED_HEADERS=(
        /usr/include/libavutil/avconfig.h
@@ -200,12 +201,18 @@ multilib_src_configure() {
 
        use vaapi && myconf+=( --enable-vaapi )
 
+       NVIDIA_INCLUDES="-I/opt/nvidia-video-codec/include -I/opt/cuda/include"
+       NVIDIA_LIBS="-L/opt/cuda/lib64"
+       use nvidia && myconf+=( --enable-nonfree --enable-cuda --enable-libnpp
+                                                   --extra-cflags="$NVIDIA_INCLUDES" --extra-ldflags="$NVIDIA_LIBS" )
+
        # Encoders
        if use encode; then
                use faac && myconf+=( --enable-nonfree )
                use mp3 && myconf+=( --enable-libmp3lame )
                use amr && myconf+=( --enable-libvo-amrwbenc )
                use aac && myconf+=( --enable-libvo-aacenc )
+               use nvidia && myconf+=( --enable-nvenc )
                uses="faac theora twolame vorbis wavpack webp x264 x265 xvid"
                for i in ${uses}; do
                        use ${i} && myconf+=( --enable-lib${i} )
index 9277436519b1e1b98d30540b402ed1b62aa66e49..222399a183060c89abc05cbd68835cde6284f0a9 100644 (file)
@@ -20,6 +20,7 @@
        <flag name="gpl">Build all GPL licensed code. Without this flag set the package is build under LGPL license.</flag>
        <flag name="hardcoded-tables">Use pre-calculated tables rather than calculating them on the fly.</flag>
        <flag name="network">Enable network streaming support.</flag>
+       <flag name="nvidia">Enable nvidia video codec hardware acceleration support.</flag>
        <flag name="openssl">Prefer <pkg>dev-libs/openssl</pkg> over <pkg>net-libs/gnutls</pkg> to provide SSL/TLS support (notice: the resulting binaries are unredistributable).</flag>
        <flag name="opus">Use the external opus library for encoding and decoding.</flag>
        <flag name="pulseaudio">Enable pulseaudio input support.</flag>
index 8bb03a7d8a386392d145c3e8068631f1711fc92b..7d028f6693bf9cf463450a55882a09b9923b225a 100644 (file)
@@ -4,6 +4,10 @@
 
 # This file requires >=portage-2.1.1
 
+# Luca Barbato <lu_zero@gentoo.org> (22 Jan 2017)
+# cuda is not available on x86 nvidia-video-codec depends on it
+media-video/libav nvidia
+
 # Ilya Tumaykin <itumaykin+gentoo@gmail.com> (19 Jan 2017)
 # Requires yet unavailable >=media-video/ffmpeg-3.3.
 >=media-video/mpv-0.23.0 cuda