summary refs log tree commit diff
path: root/gnu/packages/xiph.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/xiph.scm')
-rw-r--r--gnu/packages/xiph.scm138
1 files changed, 83 insertions, 55 deletions
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index fbbcbd6e61..a240ce7c4a 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -11,6 +11,8 @@
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,14 +52,14 @@
 (define-public libogg
   (package
    (name "libogg")
-   (version "1.3.4")
+   (version "1.3.5")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://downloads.xiph.org/releases/ogg/libogg-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "1zlk33vxvxr0l9lhkbhkdwvylw96d2n0fnd3d8dl031hph9bqqy1"))))
+              "01b7050bghdvbxvw0gzv588fn4a27zh42ljpwzm4vrf8dziipnf4"))))
    (build-system gnu-build-system)
    (arguments
     '(#:configure-flags '("--disable-static")))
@@ -84,7 +86,7 @@ periodic timestamps for seeking.")
              (base32
               "0jwmf87x5sdis64rbv0l87mdpah1rbilkkxszipbzg128f9w8g5k"))))
    (build-system gnu-build-system)
-   (propagated-inputs `(("libogg" ,libogg)))
+   (propagated-inputs (list libogg))
    (arguments `(#:configure-flags '("LDFLAGS=-lm"
                                     "--disable-static")
                 #:parallel-tests? #f))
@@ -114,9 +116,9 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
-    (inputs `(("libvorbis" ,libvorbis)))
+    (inputs (list libvorbis))
     ;; The .pc files refer to libogg.
-    (propagated-inputs `(("libogg" ,libogg)))
+    (propagated-inputs (list libogg))
     (synopsis "Library implementing the Theora video format")
     (description
      "The libtheora library implements the ogg theora video format,
@@ -141,10 +143,9 @@ compressed video format.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libogg" ,libogg)
-       ("speexdsp" ,speexdsp)))
+     (list libogg speexdsp))
     (home-page "https://gnu.org/software/speex")
     (synopsis "Library for patent-free audio compression format")
     (description
@@ -202,13 +203,9 @@ work from the @code{speex} codec.")
     ;; "out" would include only the ALSA back-end, while "pulse" would
     ;; contain 'lib/ao/plugins-4/libpulse.*'.
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib pulseaudio))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list pkg-config autoconf automake libtool))
     (synopsis "Cross platform audio library")
     (description
      "Libao is a cross-platform audio library that allows programs to
@@ -253,7 +250,7 @@ It currently supports:
    (arguments
     `(#:parallel-tests? #f))
    ;; FIXME: configure also looks for xmms, input could be added once it exists
-   (propagated-inputs `(("libogg" ,libogg))) ; required by flac.pc
+   (propagated-inputs (list libogg)) ; required by flac.pc
    (synopsis "Free lossless audio codec")
    (description
 "FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,
@@ -274,14 +271,9 @@ meaning that audio is compressed in FLAC without any loss in quality.")
              (base32
               "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4"))))
    (build-system gnu-build-system)
-   (native-inputs `(("doxygen" ,doxygen)
-                    ("bison" ,bison)
-                    ("pkg-config" ,pkg-config)))
+   (native-inputs (list doxygen bison pkg-config))
    ;; FIXME: Add optional input liboggz
-   (inputs `(("libogg" ,libogg)
-             ("libpng" ,libpng)
-             ("python" ,python-wrapper)
-             ("zlib" ,zlib)))
+   (inputs (list libogg libpng python-wrapper zlib))
    (synopsis "Karaoke and text codec for embedding in ogg")
    (description
     "Kate is an overlay codec, originally designed for karaoke and text,
@@ -310,14 +302,14 @@ Kate stream.")
              (base32
               "1c7h4ivgfdyygz2hyh6nfibxlkz8kdk868a576qkkjgj5gn78xyv"))))
    (build-system gnu-build-system)
-   (inputs `(("ao" ,ao)
-             ("curl" ,curl)
-             ("flac" ,flac)
-             ("libkate" ,libkate)
-             ("libogg" ,libogg)
-             ("libvorbis" ,libvorbis)
-             ("speex" ,speex)))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (inputs (list ao
+                 curl
+                 flac
+                 libkate
+                 libogg
+                 libvorbis
+                 speex))
+   (native-inputs (list pkg-config))
    (synopsis "Ogg vorbis tools")
    (description
     "Ogg vorbis is a non-proprietary, patent-and-royalty-free,
@@ -379,11 +371,9 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
                                               (assoc-ref %build-inputs "opus")
                                               "/include/opus"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libopusenc" ,libopusenc)
-       ("opusfile" ,opusfile)
-       ("flac" ,flac)))
+     (list libopusenc opusfile flac))
     (synopsis
      "Command line utilities to encode, inspect, and decode .opus files")
     (description "Opus is a royalty-free, highly versatile audio codec.
@@ -406,14 +396,21 @@ decoding .opus files.")
                 "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     '(#:configure-flags '("--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-multistream
+           ;; Opus include directory should be passed explicitly:
+           ;; https://github.com/xiph/opusfile/issues/10 however,
+           ;; opus_multistream.h still can't be found by the compiler.
+           (lambda _
+             (substitute* "include/opusfile.h"
+               (("opus_multistream\\.h") "opus/opus_multistream.h")))))))
     ;; Required by opusfile.pc and opusurl.pc.
     (propagated-inputs
-     `(("libogg" ,libogg)
-       ("openssl" ,openssl)
-       ("opus" ,opus)))
+     (list libogg openssl opus))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Versatile audio codec")
     (description
      "The opusfile library provides seeking, decode, and playback of Opus
@@ -435,10 +432,10 @@ windows systems.")
                 "1ffb0vhlymlsq70pxsjj0ksz77yfm2x0a1x8q50kxmnkm1hxp642"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("opus" ,opus)))
-    (synopsis "Library for encoding Opus audio files and streams ")
+     (list opus))
+    (synopsis "Library for encoding Opus audio files and streams")
     (description "The libopusenc libraries provide a high-level API for
 encoding Opus files and streams.")
     (home-page "https://www.opus-codec.org/")
@@ -458,16 +455,16 @@ encoding Opus files and streams.")
                 "0i2d9rhav0x6js2qhjf5iy6j2a7f0d11ail0lfv40hb1kygrgda9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libxslt" ,libxslt)
-       ("libxml2" ,libxml2)
-       ("openssl" ,openssl)
-       ("curl" ,curl)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("libtheora" ,libtheora)
-       ("speex" ,speex)))
+     (list libxslt
+           libxml2
+           openssl
+           curl
+           libogg
+           libvorbis
+           libtheora
+           speex))
     (synopsis "Streaming media server")
     (description "Icecast is a streaming media server which currently supports
 Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.  It can be used to
@@ -490,12 +487,10 @@ things in between.")
                 "1438da40y73y9068saxrbmm27qq6xqmmzsziwgmr8fb7i9k6irfr"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      ;; shout.pc refers to all these.
-     `(("libtheora" ,libtheora)
-       ("libvorbis" ,libvorbis)
-       ("speex"     ,speex)))
+     (list libtheora libvorbis speex))
     (home-page "https://icecast.org/")
     (synopsis "Audio streaming library for icecast encoders")
     (description
@@ -503,3 +498,36 @@ things in between.")
 icecast server.  It handles the socket connection, the timing of the data,
 and prevents bad data from getting to the icecast server.")
     (license license:gpl2+)))
+
+(define-public xiph-rnnoise
+  ;; No upstream release
+  (let ((commit "7f449bf8bd3b933891d12c30112268c4090e4d59")
+        (revision "0"))
+   (package
+     (name "rnnoise")
+     (version (git-version "0" revision commit))
+     (source (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://gitlab.xiph.org/xiph/rnnoise")
+                     (commit commit)))
+               (file-name (git-file-name name version))
+               (sha256
+                (base32
+                 "0y8jdvxd9namw4f9hcmcmm2q0f32mnhfyjap8906hl308cws3rkj"))))
+     (build-system gnu-build-system)
+     (native-inputs
+      `(("autoconf" ,autoconf)
+        ("automake" ,automake)
+        ("libtool" ,libtool)))
+     (home-page "https://gitlab.xiph.org/xiph/rnnoise")
+     (synopsis "Real-time noise suppression")
+     (description "RNNoise is a noise suppression library based on a recurrent
+neural network.  The algorithm is described in Jean-Marc Valin's paper
+@cite{A Hybrid DSP/Deep Learning Approach to Real-Time Full-Band Speech
+Enhancement}.")
+     (license license:bsd-3)
+     (properties
+      ;; There's no public release and a conflicting package, so hide it for
+      ;; now.
+      `((hidden? . #t))))))