guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

08/09: gnu: Support rav1e in FFmpeg.


From: guix-commits
Subject: 08/09: gnu: Support rav1e in FFmpeg.
Date: Sun, 5 Apr 2020 13:36:22 -0400 (EDT)

lfam pushed a commit to branch wip-rav1e
in repository guix.

commit 68269a21985a946111237bd6c71149a8f95addc8
Author: Leo Famulari <address@hidden>
AuthorDate: Thu Feb 20 13:34:20 2020 -0500

    gnu: Support rav1e in FFmpeg.
    
    * gnu/packages/video.scm (ffmpeg): Update to dev version.
    [source]: Remove obsolete patch.
    [inputs]: Add rust-rav1e-0.3.
    [arguments]: Pass --enable-librav1e to #:configure-flags.
    (ffmpeg-3.4): Remove rav1e from the inputs and #:configure-flags.
    * gnu/packages/patches/ffmpeg-prefer-dav1d.patch: Delete file.
    * gnu/local.mk (dist_patch_DATA): Remove it.
---
 gnu/local.mk                                   |  1 -
 gnu/packages/patches/ffmpeg-prefer-dav1d.patch | 43 --------------------------
 gnu/packages/video.scm                         | 32 ++++++++++++-------
 3 files changed, 20 insertions(+), 56 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 9020c3e..086e584 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -876,7 +876,6 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/fasthenry-spSolve.patch                 \
   %D%/packages/patches/fasthenry-spFactor.patch                        \
   %D%/packages/patches/fbreader-curl-7.62.patch                \
-  %D%/packages/patches/ffmpeg-prefer-dav1d.patch               \
   %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch                \
   %D%/packages/patches/fifo-map-remove-catch.hpp.patch         \
   %D%/packages/patches/file-CVE-2018-10360.patch               \
diff --git a/gnu/packages/patches/ffmpeg-prefer-dav1d.patch 
b/gnu/packages/patches/ffmpeg-prefer-dav1d.patch
deleted file mode 100644
index 95e3712..0000000
--- a/gnu/packages/patches/ffmpeg-prefer-dav1d.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-When decoding AV1 files, prefer dav1d over libaom for performance
-reasons.
-
-Patch copied from upstream source repository:
-
-<https://git.videolan.org/gitweb.cgi/ffmpeg.git/?p=ffmpeg.git;a=commitdiff;h=dc0806dd25882f41f6085c8356712f95fded56c7>
-
-From dc0806dd25882f41f6085c8356712f95fded56c7 Mon Sep 17 00:00:00 2001
-From: James Almer <address@hidden>
-Date: Sun, 15 Sep 2019 11:29:56 -0300
-Subject: [PATCH] avcodec/allcodecs: make libdav1d the preferred AV1 decoder
-
-It's considerably faster than libaom in most systems.
-
-Reviewed-by: BBB
-Signed-off-by: James Almer <address@hidden>
----
- libavcodec/allcodecs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
-index 5130fca026..d5dfba1877 100644
---- a/libavcodec/allcodecs.c
-+++ b/libavcodec/allcodecs.c
-@@ -680,7 +680,6 @@ 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_libaom_av1_decoder;
- extern AVCodec ff_libaom_av1_encoder;
- extern AVCodec ff_libaribb24_decoder;
- extern AVCodec ff_libcelt_decoder;
-@@ -738,6 +737,7 @@ extern AVCodec ff_idf_decoder;
- /* external libraries, that shouldn't be used by default if one of the
-  * above is available */
- extern AVCodec ff_h263_v4l2m2m_encoder;
-+extern AVCodec ff_libaom_av1_decoder;
- extern AVCodec ff_libopenh264_encoder;
- extern AVCodec ff_libopenh264_decoder;
- extern AVCodec ff_h264_amf_encoder;
--- 
-2.20.1
-
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c62e651..162f8bd 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -136,6 +136,7 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages rav1e)
   #:use-module (gnu packages rdesktop)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
@@ -917,21 +918,24 @@ operate properly.")
     (license license:expat)))
 
 (define-public ffmpeg
+  (let ((commit "bb01baae269cd2d7a0e61dc9bf327168edd43b04")
+        (revision "0"))
   (package
     (name "ffmpeg")
-    (version "4.2.2")
+    (version (git-version "4.2.2" revision commit))
     (source (origin
-             (method url-fetch)
-             (uri (string-append "https://ffmpeg.org/releases/ffmpeg-";
-                                 version ".tar.xz"))
-             ;; See <https://issues.guix.gnu.org/issue/39719>
-             (patches (search-patches "ffmpeg-prefer-dav1d.patch"))
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/FFmpeg/FFmpeg.git";)
+                    (commit commit)))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "176jn1lcdf0gk7sa5l2mv0faqp5dsqdhx1gqcrgymqhfmdal4xfb"))))
+               "18rywv54bjr4xqzwc1fgc9hh1zwrfcgxfks6r58j92dkblbgyjjp"))))
     (build-system gnu-build-system)
     (inputs
      `(("dav1d" ,dav1d)
+       ("rav1e" ,rust-rav1e-0.3)
        ("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
        ("frei0r-plugins" ,frei0r-plugins)
@@ -1049,6 +1053,7 @@ operate properly.")
          "--enable-openal"
          "--enable-opengl"
          "--enable-libdrm"
+         "--enable-librav1e"
 
          "--enable-runtime-cpudetect"
 
@@ -1098,7 +1103,7 @@ operate properly.")
     (description "FFmpeg is a complete, cross-platform solution to record,
 convert and stream audio and video.  It includes the libavcodec
 audio/video codec library.")
-    (license license:gpl2+)))
+    (license license:gpl2+))))
 
 (define-public ffmpeg-3.4
   (package
@@ -1114,10 +1119,13 @@ audio/video codec library.")
     (arguments
      (substitute-keyword-arguments (package-arguments ffmpeg)
        ((#:configure-flags flags)
-        `(delete "--enable-libdav1d" (delete "--enable-libaom"
-                 ,flags)))))
-    (inputs (alist-delete "dav1d" (alist-delete "libaom"
-                          (package-inputs ffmpeg))))))
+        `(delete "--enable-librav1e"
+                 (delete "--enable-libdav1d"
+                         (delete "--enable-libaom" ,flags))))))
+    (inputs (alist-delete "rav1e"
+                          (alist-delete "dav1d"
+                                        (alist-delete "libaom"
+                                                      (package-inputs 
ffmpeg)))))))
 
 (define-public ffmpeg-for-stepmania
   (hidden-package



reply via email to

[Prev in Thread] Current Thread [Next in Thread]