Merge pull request #67205 from primeos/ffmpeg-full

ffmpeg-full: 4.1.4 -> 4.2
This commit is contained in:
Michael Weiss 2019-08-23 15:36:15 +02:00 committed by GitHub
commit 7126eedd4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 12 deletions

View File

@ -52,6 +52,7 @@
, bzip2 ? null , bzip2 ? null
, celt ? null # CELT decoder , celt ? null # CELT decoder
#, crystalhd ? null # Broadcom CrystalHD hardware acceleration #, crystalhd ? null # Broadcom CrystalHD hardware acceleration
, dav1d ? null # AV1 decoder (focused on speed and correctness)
#, decklinkExtlib ? false, blackmagic-design-desktop-video ? null # Blackmagic Design DeckLink I/O support #, decklinkExtlib ? false, blackmagic-design-desktop-video ? null # Blackmagic Design DeckLink I/O support
, fdkaacExtlib ? false, fdk_aac ? null # Fraunhofer FDK AAC de/encoder , fdkaacExtlib ? false, fdk_aac ? null # Fraunhofer FDK AAC de/encoder
#, flite ? null # Flite (voice synthesis) support #, flite ? null # Flite (voice synthesis) support
@ -97,7 +98,7 @@
, libXv ? null # Xlib support , libXv ? null # Xlib support
, libXext ? null # Xlib support , libXext ? null # Xlib support
, lzma ? null # xz-utils , lzma ? null # xz-utils
, nvenc ? !stdenv.isDarwin, nv-codec-headers ? null # NVIDIA NVENC support , nvenc ? !stdenv.isDarwin && !stdenv.isAarch64, nv-codec-headers ? null # NVIDIA NVENC support
, 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
@ -163,6 +164,9 @@
* libvpx(stable 1.3.0) openal openjpeg pulseaudio rtmpdump samba vid-stab * libvpx(stable 1.3.0) openal openjpeg pulseaudio rtmpdump samba vid-stab
* wavpack x265 xavs * wavpack x265 xavs
* *
* Need fixes to support AArch64:
* libmfx(intel-media-sdk) nvenc
*
* Not supported: * Not supported:
* stagefright-h264(android only) * stagefright-h264(android only)
* *
@ -175,7 +179,7 @@
*/ */
let let
inherit (stdenv) isCygwin isDarwin isFreeBSD isLinux; inherit (stdenv) isCygwin isDarwin isFreeBSD isLinux isAarch64;
inherit (stdenv.lib) optional optionals optionalString enableFeature; inherit (stdenv.lib) optional optionals optionalString enableFeature;
in in
@ -234,17 +238,14 @@ assert opensslExtlib -> gnutls == null && openssl != null && nonfreeLicensing;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ffmpeg-full-${version}"; name = "ffmpeg-full-${version}";
version = "4.1.4"; version = "4.2";
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 = "1qd7a10gs12ifcp31gramcgqjl77swskjfp7cijibgyg5yl4kw7i"; sha256 = "1mgcxm7sqkajx35px05szsmn9mawwm03cfpmk3br7bcp3a1i0gq2";
}; };
patches = [(fetchpatch { # remove on update
name = "fix-hardcoded-tables.diff"; patches = [ ./prefer-libdav1d-over-libaom.patch ];
url = "http://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/c8232e50074f";
sha256 = "0jlksks4fjajby8fjk7rfp414gxfdgd6q9khq26i52xvf4kg2dw6";
})];
prePatch = '' prePatch = ''
patchShebangs . patchShebangs .
@ -327,6 +328,7 @@ stdenv.mkDerivation rec {
(enableFeature (bzip2 != null) "bzlib") (enableFeature (bzip2 != null) "bzlib")
(enableFeature (celt != null) "libcelt") (enableFeature (celt != null) "libcelt")
#(enableFeature crystalhd "crystalhd") #(enableFeature crystalhd "crystalhd")
(enableFeature (dav1d != null) "libdav1d")
#(enableFeature decklinkExtlib "decklink") #(enableFeature decklinkExtlib "decklink")
(enableFeature (fdkaacExtlib && gplLicensing) "libfdk-aac") (enableFeature (fdkaacExtlib && gplLicensing) "libfdk-aac")
#(enableFeature (flite != null) "libflite") #(enableFeature (flite != null) "libflite")
@ -351,7 +353,7 @@ stdenv.mkDerivation rec {
(enableFeature (if isLinux then libdc1394 != null && libraw1394 != null else false) "libdc1394") (enableFeature (if isLinux then libdc1394 != null && libraw1394 != null else false) "libdc1394")
(enableFeature (libiconv != null) "iconv") (enableFeature (libiconv != null) "iconv")
#(enableFeature (if isLinux then libiec61883 != null && libavc1394 != null && libraw1394 != null else false) "libiec61883") #(enableFeature (if isLinux then libiec61883 != null && libavc1394 != null && libraw1394 != null else false) "libiec61883")
(enableFeature (if isLinux then libmfx != null else false) "libmfx") (enableFeature (if isLinux && !isAarch64 then libmfx != null else false) "libmfx")
(enableFeature (libmodplug != null) "libmodplug") (enableFeature (libmodplug != null) "libmodplug")
(enableFeature (libmysofa != null) "libmysofa") (enableFeature (libmysofa != null) "libmysofa")
#(enableFeature (libnut != null) "libnut") #(enableFeature (libnut != null) "libnut")
@ -414,7 +416,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ perl pkgconfig texinfo yasm ]; nativeBuildInputs = [ perl pkgconfig texinfo yasm ];
buildInputs = [ buildInputs = [
bzip2 celt fontconfig freetype frei0r fribidi game-music-emu gnutls gsm bzip2 celt dav1d fontconfig freetype frei0r fribidi game-music-emu gnutls gsm
libjack2 ladspaH lame libaom libass libbluray libbs2b libcaca libdc1394 libmodplug libmysofa libjack2 ladspaH lame libaom libass libbluray libbs2b libcaca libdc1394 libmodplug libmysofa
libogg libopus libssh libtheora libvdpau libvorbis libvpx libwebp libX11 libogg libopus libssh libtheora libvdpau libvorbis libvpx libwebp libX11
libxcb libXv libXext lzma openal openjpeg libpulseaudio rtmpdump opencore-amr libxcb libXv libXext lzma openal openjpeg libpulseaudio rtmpdump opencore-amr
@ -424,7 +426,7 @@ stdenv.mkDerivation rec {
++ 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 ]
++ optional (isLinux && libmfx != null) libmfx ++ optional (isLinux && !isAarch64 && libmfx != null) libmfx
++ optional nvenc nv-codec-headers ++ optional nvenc nv-codec-headers
++ optionals stdenv.isDarwin [ Cocoa CoreServices CoreAudio AVFoundation ++ optionals stdenv.isDarwin [ Cocoa CoreServices CoreAudio AVFoundation
MediaToolbox VideoDecodeAcceleration MediaToolbox VideoDecodeAcceleration

View File

@ -0,0 +1,19 @@
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index d2f9a39ce5..2342399a8e 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -679,13 +679,13 @@ extern AVCodec ff_pcm_mulaw_at_encoder;
extern AVCodec ff_pcm_mulaw_at_decoder;
extern AVCodec ff_qdmc_at_decoder;
extern AVCodec ff_qdm2_at_decoder;
+extern AVCodec ff_libdav1d_decoder;
extern AVCodec ff_libaom_av1_decoder;
extern AVCodec ff_libaom_av1_encoder;
extern AVCodec ff_libaribb24_decoder;
extern AVCodec ff_libcelt_decoder;
extern AVCodec ff_libcodec2_encoder;
extern AVCodec ff_libcodec2_decoder;
-extern AVCodec ff_libdav1d_decoder;
extern AVCodec ff_libdavs2_decoder;
extern AVCodec ff_libfdk_aac_encoder;
extern AVCodec ff_libfdk_aac_decoder;