mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 23:03:40 +01:00
ffmpeg-full: 3.4.2 -> 4.0
init local package nv-codec-headers, which are external nvidia headers, now used when nvenc is enabled
This commit is contained in:
parent
fd5ca417f2
commit
dd7f08a1a6
3 changed files with 44 additions and 10 deletions
|
@ -25,7 +25,6 @@
|
||||||
, ffmpegProgram ? true # Build ffmpeg executable
|
, ffmpegProgram ? true # Build ffmpeg executable
|
||||||
, ffplayProgram ? true # Build ffplay executable
|
, ffplayProgram ? true # Build ffplay executable
|
||||||
, ffprobeProgram ? true # Build ffprobe executable
|
, ffprobeProgram ? true # Build ffprobe executable
|
||||||
, ffserverProgram ? true # Build ffserver executable
|
|
||||||
, qtFaststartProgram ? true # Build qt-faststart executable
|
, qtFaststartProgram ? true # Build qt-faststart executable
|
||||||
/*
|
/*
|
||||||
* Library options
|
* Library options
|
||||||
|
@ -98,13 +97,14 @@
|
||||||
, libXv ? null # Xlib support
|
, libXv ? null # Xlib support
|
||||||
, lzma ? null # xz-utils
|
, lzma ? null # xz-utils
|
||||||
, nvenc ? false, nvidia-video-sdk ? null # NVIDIA NVENC support
|
, nvenc ? false, nvidia-video-sdk ? null # NVIDIA NVENC support
|
||||||
|
, callPackage # needed for NVENC to access external ffmpeg nvidia headers
|
||||||
, openal ? null # OpenAL 1.1 capture support
|
, openal ? null # OpenAL 1.1 capture support
|
||||||
#, opencl ? null # OpenCL code
|
#, opencl ? null # OpenCL code
|
||||||
, opencore-amr ? null # AMR-NB de/encoder & AMR-WB decoder
|
, opencore-amr ? null # AMR-NB de/encoder & AMR-WB decoder
|
||||||
#, opencv ? null # Video filtering
|
#, opencv ? null # Video filtering
|
||||||
, openglExtlib ? false, libGLU_combined ? null # OpenGL rendering
|
, openglExtlib ? false, libGLU_combined ? null # OpenGL rendering
|
||||||
#, openh264 ? null # H.264/AVC encoder
|
#, openh264 ? null # H.264/AVC encoder
|
||||||
, openjpeg_1 ? null # JPEG 2000 de/encoder
|
, openjpeg ? null # JPEG 2000 de/encoder
|
||||||
, opensslExtlib ? false, openssl ? null
|
, opensslExtlib ? false, openssl ? null
|
||||||
, libpulseaudio ? null # Pulseaudio input support
|
, libpulseaudio ? null # Pulseaudio input support
|
||||||
, rtmpdump ? null # RTMP[E] support
|
, rtmpdump ? null # RTMP[E] support
|
||||||
|
@ -159,7 +159,7 @@
|
||||||
* utvideo vo-aacenc vo-amrwbenc xvmc zvbi blackmagic-design-desktop-video
|
* utvideo vo-aacenc vo-amrwbenc xvmc zvbi blackmagic-design-desktop-video
|
||||||
*
|
*
|
||||||
* Need fixes to support Darwin:
|
* Need fixes to support Darwin:
|
||||||
* frei0r, game-music-emu, gsm, libjack2, libssh, libvpx(stable 1.3.0), openal, openjpeg_1,
|
* frei0r, game-music-emu, gsm, libjack2, libssh, libvpx(stable 1.3.0), openal, openjpeg,
|
||||||
* pulseaudio, rtmpdump, samba, vid-stab, wavpack, x265. xavs
|
* pulseaudio, rtmpdump, samba, vid-stab, wavpack, x265. xavs
|
||||||
*
|
*
|
||||||
* Not supported:
|
* Not supported:
|
||||||
|
@ -176,6 +176,8 @@
|
||||||
let
|
let
|
||||||
inherit (stdenv) isCygwin isFreeBSD isLinux;
|
inherit (stdenv) isCygwin isFreeBSD isLinux;
|
||||||
inherit (stdenv.lib) optional optionals optionalString enableFeature;
|
inherit (stdenv.lib) optional optionals optionalString enableFeature;
|
||||||
|
|
||||||
|
nv-codec-headers = callPackage ./nv-codec-headers.nix { };
|
||||||
in
|
in
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -201,7 +203,6 @@ assert ffplayProgram -> avcodecLibrary
|
||||||
&& swresampleLibrary
|
&& swresampleLibrary
|
||||||
&& SDL2 != null;
|
&& SDL2 != null;
|
||||||
assert ffprobeProgram -> avcodecLibrary && avformatLibrary;
|
assert ffprobeProgram -> avcodecLibrary && avformatLibrary;
|
||||||
assert ffserverProgram -> avformatLibrary;
|
|
||||||
/*
|
/*
|
||||||
* Library dependencies
|
* Library dependencies
|
||||||
*/
|
*/
|
||||||
|
@ -231,11 +232,11 @@ assert nvenc -> nvidia-video-sdk != null && nonfreeLicensing;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "ffmpeg-full-${version}";
|
name = "ffmpeg-full-${version}";
|
||||||
version = "3.4.2";
|
version = "4.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz";
|
url = "https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz";
|
||||||
sha256 = "0h6prjn1ijkzzhkyj8mazp0wpx7m0n9ycadjxagf9czqirbyk4ib";
|
sha256 = "0gx4ngnhi5glmxh38603qy5n6vq8bl1cr4sqd1xff95i82pmv57d";
|
||||||
};
|
};
|
||||||
|
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
|
@ -286,7 +287,6 @@ stdenv.mkDerivation rec {
|
||||||
(enableFeature ffmpegProgram "ffmpeg")
|
(enableFeature ffmpegProgram "ffmpeg")
|
||||||
(enableFeature ffplayProgram "ffplay")
|
(enableFeature ffplayProgram "ffplay")
|
||||||
(enableFeature ffprobeProgram "ffprobe")
|
(enableFeature ffprobeProgram "ffprobe")
|
||||||
(enableFeature ffserverProgram "ffserver")
|
|
||||||
/*
|
/*
|
||||||
* Library flags
|
* Library flags
|
||||||
*/
|
*/
|
||||||
|
@ -365,7 +365,7 @@ stdenv.mkDerivation rec {
|
||||||
#(enableFeature (opencv != null) "libopencv")
|
#(enableFeature (opencv != null) "libopencv")
|
||||||
(enableFeature openglExtlib "opengl")
|
(enableFeature openglExtlib "opengl")
|
||||||
#(enableFeature (openh264 != null) "openh264")
|
#(enableFeature (openh264 != null) "openh264")
|
||||||
(enableFeature (openjpeg_1 != null) "libopenjpeg")
|
(enableFeature (openjpeg != null) "libopenjpeg")
|
||||||
(enableFeature (opensslExtlib && gplLicensing) "openssl")
|
(enableFeature (opensslExtlib && gplLicensing) "openssl")
|
||||||
(enableFeature (libpulseaudio != null) "libpulse")
|
(enableFeature (libpulseaudio != null) "libpulse")
|
||||||
#(enableFeature quvi "libquvi")
|
#(enableFeature quvi "libquvi")
|
||||||
|
@ -404,14 +404,14 @@ stdenv.mkDerivation rec {
|
||||||
bzip2 celt fontconfig freetype frei0r fribidi game-music-emu gnutls gsm
|
bzip2 celt fontconfig freetype frei0r fribidi game-music-emu gnutls gsm
|
||||||
libjack2 ladspaH lame libass libbluray libbs2b libcaca libdc1394 libmodplug
|
libjack2 ladspaH lame libass libbluray libbs2b libcaca libdc1394 libmodplug
|
||||||
libogg libopus libssh libtheora libvdpau libvorbis libvpx libwebp libX11
|
libogg libopus libssh libtheora libvdpau libvorbis libvpx libwebp libX11
|
||||||
libxcb libXv lzma openal openjpeg_1 libpulseaudio rtmpdump opencore-amr
|
libxcb libXv lzma openal openjpeg libpulseaudio rtmpdump opencore-amr
|
||||||
samba SDL2 soxr speex vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore
|
samba SDL2 soxr speex vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore
|
||||||
zeromq4 zlib
|
zeromq4 zlib
|
||||||
] ++ optional openglExtlib libGLU_combined
|
] ++ optional openglExtlib libGLU_combined
|
||||||
++ optionals nonfreeLicensing [ fdk_aac openssl ]
|
++ optionals nonfreeLicensing [ fdk_aac openssl ]
|
||||||
++ optional ((isLinux || isFreeBSD) && libva != null) libva
|
++ optional ((isLinux || isFreeBSD) && libva != null) libva
|
||||||
++ optionals isLinux [ alsaLib libraw1394 libv4l ]
|
++ optionals isLinux [ alsaLib libraw1394 libv4l ]
|
||||||
++ optionals nvenc [ nvidia-video-sdk ]
|
++ optionals nvenc [ nvidia-video-sdk nv-codec-headers ]
|
||||||
++ optionals stdenv.isDarwin [ Cocoa CoreServices CoreAudio AVFoundation
|
++ optionals stdenv.isDarwin [ Cocoa CoreServices CoreAudio AVFoundation
|
||||||
MediaToolbox VideoDecodeAcceleration
|
MediaToolbox VideoDecodeAcceleration
|
||||||
libiconv ];
|
libiconv ];
|
||||||
|
|
22
pkgs/development/libraries/ffmpeg-full/nv-codec-headers.nix
Normal file
22
pkgs/development/libraries/ffmpeg-full/nv-codec-headers.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ stdenv, fetchgit }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "nv-codec-headers-${version}";
|
||||||
|
version = "n8.1.24.2";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git";
|
||||||
|
rev = "${version}";
|
||||||
|
sha256 = "122i3f6whiz5yp44dhk73ifr1973z8vvfbg4216vb782bl8b5bam";
|
||||||
|
};
|
||||||
|
|
||||||
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "ffmpeg nvidia headers for NVENC";
|
||||||
|
homepage = http://ffmpeg.org/;
|
||||||
|
license = stdenv.lib.licenses.gpl3Plus;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.MP2E ];
|
||||||
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
};
|
||||||
|
}
|
12
pkgs/development/libraries/ffmpeg/4.0.nix
Normal file
12
pkgs/development/libraries/ffmpeg/4.0.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ stdenv, callPackage, fetchpatch
|
||||||
|
# Darwin frameworks
|
||||||
|
, Cocoa, CoreMedia
|
||||||
|
, ...
|
||||||
|
}@args:
|
||||||
|
|
||||||
|
callPackage ./generic.nix (args // rec {
|
||||||
|
version = "${branch}";
|
||||||
|
branch = "4.0";
|
||||||
|
sha256 = "1f3k8nz5ag6szsfhlrz66qm8s1yxk1vphqvcfr4ps4690vckk2ii";
|
||||||
|
darwinFrameworks = [ Cocoa CoreMedia ];
|
||||||
|
})
|
Loading…
Reference in a new issue