guix_mirror_bot pushed a commit to branch audio-team
in repository guix.

commit 2259b95a6978905578a7588fbcb7ba2f7a688387
Author: SilverlightningY <[email protected]>
AuthorDate: Sun Apr 26 19:34:43 2026 +0200

    gnu: mpg123: Split into libs and binary packages.
    
    * gnu/packages/mp3.scm (libmpg123, libout123, libsyn123): New variables.
    * gnu/packages/mp3.scm (mpg123): Split libraries from main package.  Use 
them
    as inputs.
    [arguments]: Link the pre-built libraries.
    [inputs]: Add mpg123 libraries.
    [synopsis, description]: Remove references to mpg123 libraries.
    
    Change-Id: Ia0ca2b6f7233f56b7d132518c9ad6b36d4259505
    Signed-off-by: Gabriel Wicki <[email protected]>
---
 gnu/packages/mp3.scm | 72 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 67 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index f29b54f16e..3ff5bb792d 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -451,17 +451,79 @@ This package contains the binary.")
         (base32 "1pfnz4wsgwwraj65ns2nn9dyw0p4vdm5lswc7hwcmwxgl26vqzhd"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--with-default-audio=pulse")))
+     (list
+      #:configure-flags
+      #~(list "--disable-components" "--enable-programs"
+              "--with-default-audio=pulse" "CFLAGS=-lmpg123 -lout123 
-lsyn123")))
     (native-inputs (list pkg-config))
-    (inputs (list alsa-lib pulseaudio))
+    (inputs (list libmpg123 libout123 libsyn123))
     (home-page "https://www.mpg123.org/";)
-    (synopsis "Console MP3 player and decoder library")
+    (synopsis "Console audio player")
     (description
      "Mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers
-1,2 and 3 (MPEG 1.0 layer 3 aka MP3 most commonly tested).  It comes with a
-command-line tool as well as a C library, libmpg123.")
+1,2 and 3 (MPEG 1.0 layer 3 aka MP3 most commonly tested).")
     (license license:lgpl2.1)))
 
+(define-public libmpg123
+  (package
+    (inherit mpg123)
+    (name "libmpg123")
+    (arguments
+     (list
+      #:configure-flags
+      #~(list "--disable-components" "--enable-libmpg123")))
+    (inputs '())
+    (synopsis "Decoder library")
+    (description
+     "Libmpg123 is a MPEG 1.0/2.0/2.5 audio decoder library for layers 1, 2
+and 3 (MPEG 1.0 layer 3 aka MP3 most commonly tested).")))
+
+(define-public libout123
+  (package
+    (inherit mpg123)
+    (name "libout123")
+    (arguments
+     (list
+      #:configure-flags
+      #~(list "--disable-components" "--enable-libout123"
+              "--enable-libout123-modules")))
+    (inputs (list alsa-lib pulseaudio))
+    (synopsis "Audio playback abstraction")
+    (description
+     "Libout123 is focused on continuous playback of audio streams
+via various platform-specific output methods.  It glosses over details of the
+native APIs to give an interface close to simply writing data to a file.  The
+focus of the library is to ease the use case of just getting raw audio data out
+there, without interruptions.")))
+
+(define-public libsyn123
+  (package
+    (inherit mpg123)
+    (name "libsyn123")
+    (arguments
+     (list
+      #:configure-flags
+      #~(list "--disable-components" "--enable-libsyn123")))
+    (inputs '())
+    (synopsis "Audio signal generation")
+    (description
+     "Libsyn123 provides functionality to generate synthetic audio signal
+data.  It serves to verify the decoding of libmpg123 in automated testing.
+Libsyn123 offers:
+
+@itemize
+@item
+signal generation (mix of differing wave shapes, noise, a simulated Geiger
+counter)
+@item
+format conversion and channel mixing and amplification, with hard and soft
+clipping, also optional dithering
+@item
+near-zero-latency good-enough quite-fast resampling
+@item
+applying digital filters with user-provided coefficients
+@end itemize")))
+
 (define-public mpg321
   (package
     (name "mpg321")

Reply via email to