Skip to content

Commit

Permalink
Adding nvenc support to ffmpeg (default off)
Browse files Browse the repository at this point in the history
I add the nvidia-video-sdk header files, required to make it work.

You have to set nvenct=true to ffmpeg-full and nonfreeLicensing=true to
ffmpeg-full to use this.
  • Loading branch information
viric committed Jun 14, 2016
1 parent 186a6a2 commit 93912d9
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
6 changes: 4 additions & 2 deletions pkgs/development/libraries/ffmpeg-full/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
, libxcbshapeExtlib ? true # X11 grabbing shape rendering
, libXv ? null # Xlib support
, lzma ? null # xz-utils
#, nvenc ? null # NVIDIA NVENC support
, nvenc ? false, nvidia-video-sdk ? null # NVIDIA NVENC support
, openal ? null # OpenAL 1.1 capture support
#, opencl ? null # OpenCL code
#, opencore-amr ? null # AMR-NB de/encoder & AMR-WB decoder
Expand Down Expand Up @@ -232,6 +232,7 @@ assert libxcbshapeExtlib -> libxcb != null;
assert openglExtlib -> mesa != null;
assert opensslExtlib -> gnutls == null && openssl != null && nonfreeLicensing;
assert x11grabExtlib -> libX11 != null && libXv != null;
assert nvenc -> nvidia-video-sdk != null && nonfreeLicensing;

stdenv.mkDerivation rec {
name = "ffmpeg-full-${version}";
Expand Down Expand Up @@ -356,7 +357,7 @@ stdenv.mkDerivation rec {
(enableFeature libxcbxfixesExtlib "libxcb-xfixes")
(enableFeature libxcbshapeExtlib "libxcb-shape")
(enableFeature (lzma != null) "lzma")
#(enableFeature nvenc "nvenc")
(enableFeature nvenc "nvenc")
(enableFeature (openal != null) "openal")
#(enableFeature opencl "opencl")
#(enableFeature (opencore-amr != null && version3Licensing) "libopencore-amrnb")
Expand Down Expand Up @@ -410,6 +411,7 @@ stdenv.mkDerivation rec {
++ optionals nonfreeLicensing [ faac fdk_aac openssl ]
++ optional ((isLinux || isFreeBSD) && libva != null) libva
++ optionals isLinux [ alsaLib libraw1394 libv4l ]
++ optionals nvenc [ nvidia-video-sdk ]
++ optionals stdenv.isDarwin [ Cocoa CoreServices AVFoundation MediaToolbox
VideoDecodeAcceleration ];

Expand Down
27 changes: 27 additions & 0 deletions pkgs/development/libraries/nvidia-video-sdk/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{ stdenv, fetchurl, unzip }:

stdenv.mkDerivation rec {
name = "nvidia-video-sdk-6.0.1";

src = fetchurl {
url = "https://developer.nvidia.com/video-sdk-601";
name = "nvidia_video_sdk_6.0.1.zip";
sha256 = "08h1vnqsv22js9v3pyim5yb80z87baxb7s2g5gsvvjax07j7w8h5";
};

buildInputs = [ unzip ];

# We only need the header files. The library files are
# in the nvidia_x11 driver.
installPhase = ''
mkdir -p $out/include
cp -R Samples/common/inc/* $out/include
'';

meta = with stdenv.lib; {
description = "The NVIDIA Video Codec SDK";
homepage = https://developer.nvidia.com/nvidia-video-codec-sdk;
license = licenses.unfree;
};
}

2 changes: 2 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8586,6 +8586,8 @@ in

nvidia-texture-tools = callPackage ../development/libraries/nvidia-texture-tools { };

nvidia-video-sdk = callPackage ../development/libraries/nvidia-video-sdk { };

ocl-icd = callPackage ../development/libraries/ocl-icd { };

ode = callPackage ../development/libraries/ode { };
Expand Down

0 comments on commit 93912d9

Please sign in to comment.