gnu: facter: Update to 4.0.33.
[jackhill/guix/guix.git] / gnu / packages / gstreamer.scm
index 1e26a3c..69fb1d8 100644 (file)
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -103,6 +104,17 @@ arrays of data.")
     ;; under the 3-clause BSD license, the rest is under 2-clause BSD license.
     (license (list license:bsd-2 license:bsd-3))))
 
+;; Increase the test timeouts to accommodate slow or busy machines.
+(define %common-gstreamer-phases
+  '((add-after 'unpack 'increase-test-timeout
+      (lambda _
+        (substitute* "tests/check/meson.build"
+          (("'CK_DEFAULT_TIMEOUT', '20'")
+           "'CK_DEFAULT_TIMEOUT', '60'")
+          (("timeout ?: 3 \\* 60")
+           "timeout: 9 * 60"))
+        #t))))
+
 (define-public gstreamer
   (package
     (name "gstreamer")
@@ -121,6 +133,7 @@ arrays of data.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ,@%common-gstreamer-phases
          ;; FIXME: Since switching to the meson-build-system, two tests
          ;; started failing on i686.  See
          ;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/499>.
@@ -219,12 +232,13 @@ This package provides the core library and elements.")
         ("gobject-introspection" ,gobject-introspection)
         ("python-wrapper" ,python-wrapper)))
     (arguments
-     '(#:configure-flags '("-Dgl=disabled"
+     `(#:configure-flags '("-Dgl=disabled"
                            ;; FIXME: Documentation fails to build without
                            ;; enabling GL above, which causes other problems.
                            "-Ddoc=false")
        #:phases
        (modify-phases %standard-phases
+         ,@%common-gstreamer-phases
          (add-before 'configure 'patch
            (lambda _
              (substitute* "tests/check/libs/pbutils.c"
@@ -264,7 +278,7 @@ for the GStreamer multimedia library.")
        ("libcaca" ,libcaca)
        ("libdv" ,libdv)
        ("libiec61883" ,libiec61883)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libshout" ,libshout)
        ("libsoup" ,libsoup)
@@ -283,6 +297,7 @@ for the GStreamer multimedia library.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ,@%common-gstreamer-phases
          ,@(if (string-prefix? "arm" (or (%current-target-system)
                                          (%current-system)))
                ;; FIXME: These tests started failing on armhf after switching to Meson.
@@ -331,6 +346,7 @@ developers consider to have good quality code and correct functionality.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ,@%common-gstreamer-phases
          ,@(if (string-prefix? "arm" (or (%current-target-system)
                                          (%current-system)))
                ;; Disable test that fails on ARMv7.
@@ -420,6 +436,9 @@ par compared to the rest.")
         (base32
          "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
     (build-system meson-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  ,@%common-gstreamer-phases)))
     (inputs
      `(("gst-plugins-base" ,gst-plugins-base)
        ("liba52" ,liba52)
@@ -476,6 +495,41 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
 compression formats through the use of the libav library.")
     (license license:gpl2+)))
 
+(define-public gst-editing-services
+  (package
+    (name "gst-editing-services")
+    (version "1.16.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://gstreamer.freedesktop.org/src/" name "/"
+                    "gstreamer-editing-services-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf"))))
+    (build-system meson-build-system)
+    (arguments
+     ;; FIXME: 16/22 failing tests.
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  ,@%common-gstreamer-phases)))
+    (inputs
+     `(("gst-plugins-base" ,gst-plugins-base)
+       ("libxml2" ,libxml2)))
+    (native-inputs
+     `(("flex" ,flex)
+       ("gst-plugins-bad" ,gst-plugins-bad)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)))
+    (home-page "https://gstreamer.freedesktop.org/")
+    (synopsis "GStreamer library for non-linear editors")
+    (description
+     "This is a high-level library for facilitating the creation of audio/video
+non-linear editors.")
+    (license license:gpl2+)))
+
 (define-public python-gst
   (package
     (name "python-gst")
@@ -487,7 +541,9 @@ compression formats through the use of the libav library.")
                     "gst-python-" version ".tar.xz"))
               (sha256
                (base32
-                "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"))))
+                "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"))
+              (patches
+               (search-patches "python-gst-fix-build-with-python-3.8.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:modules ((guix build meson-build-system)