gnu: Replace uses of 'libjpeg' with 'libjpeg-turbo'.
[jackhill/guix/guix.git] / gnu / packages / gstreamer.scm
CommitLineData
22885fb8 1;;; GNU Guix --- Functional package management for GNU
71a4b2ab 2;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
ce4a347f 3;;; Copyright © 2014 John Darrington <jmd@gnu.org>
b3585d9b 4;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
0392030d 5;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
0d3ecf77 6;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
399c5faf 7;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
51895712 8;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
d22d7468 9;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
cc1b2b3e 10;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
22885fb8
AE
11;;;
12;;; This file is part of GNU Guix.
13;;;
14;;; GNU Guix is free software; you can redistribute it and/or modify it
15;;; under the terms of the GNU General Public License as published by
16;;; the Free Software Foundation; either version 3 of the License, or (at
17;;; your option) any later version.
18;;;
19;;; GNU Guix is distributed in the hope that it will be useful, but
20;;; WITHOUT ANY WARRANTY; without even the implied warranty of
21;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22;;; GNU General Public License for more details.
23;;;
24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26
27(define-module (gnu packages gstreamer)
5cde47ec 28 #:use-module ((guix licenses) #:prefix license:)
22885fb8
AE
29 #:use-module (guix packages)
30 #:use-module (guix download)
31 #:use-module (guix build-system gnu)
45b01f2e 32 #:use-module (guix build-system meson)
201cfb81 33 #:use-module (guix utils)
f506ed92 34 #:use-module (gnu packages)
40f6f76e 35 #:use-module (gnu packages audio)
22885fb8 36 #:use-module (gnu packages bison)
e9a0b5e7 37 #:use-module (gnu packages cdrom)
db12dac0 38 #:use-module (gnu packages curl)
1fcf67f4 39 #:use-module (gnu packages compression)
22885fb8 40 #:use-module (gnu packages flex)
db12dac0
SB
41 #:use-module (gnu packages freedesktop)
42 #:use-module (gnu packages gl)
22885fb8 43 #:use-module (gnu packages glib)
40f6f76e 44 #:use-module (gnu packages gnome)
db12dac0
SB
45 #:use-module (gnu packages gnupg)
46 #:use-module (gnu packages graphics)
1fcf67f4 47 #:use-module (gnu packages gtk)
a4d89136 48 #:use-module (gnu packages image)
db12dac0 49 #:use-module (gnu packages libusb)
1fcf67f4 50 #:use-module (gnu packages linux)
40f6f76e 51 #:use-module (gnu packages mp3)
51895712 52 #:use-module (gnu packages ncurses)
22885fb8 53 #:use-module (gnu packages perl)
a4d89136 54 #:use-module (gnu packages pulseaudio)
db12dac0
SB
55 #:use-module (gnu packages qt)
56 #:use-module (gnu packages rdf)
04a20db2 57 #:use-module (gnu packages video)
1fcf67f4
JD
58 #:use-module (gnu packages xorg)
59 #:use-module (gnu packages xiph)
22885fb8 60 #:use-module (gnu packages pkg-config)
f506ed92 61 #:use-module (gnu packages python)
db12dac0
SB
62 #:use-module (gnu packages ssh)
63 #:use-module (gnu packages telephony)
64 #:use-module (gnu packages tls)
65 #:use-module (gnu packages version-control)
09b87aff 66 #:use-module (gnu packages assembly)
f506ed92 67 #:use-module (gnu packages xml))
22885fb8 68
195857b0
SB
69(define-public orc
70 (package
71 (name "orc")
99732a8f 72 (version "0.4.31")
195857b0
SB
73 (source (origin
74 (method url-fetch)
5cc3096c 75 (uri (string-append "https://gstreamer.freedesktop.org/data/src/"
195857b0
SB
76 "orc/orc-" version ".tar.xz"))
77 (sha256
78 (base32
99732a8f 79 "0xb0c7q3xv1ldmz5ipybazb01gy3cijj8622dcx7rbm9lq85zax0"))))
45b01f2e 80 (build-system meson-build-system)
462b5676
EF
81 (arguments
82 `(#:phases
83 (modify-phases %standard-phases
45b01f2e 84 (add-after 'unpack 'disable-faulty-test
462b5676
EF
85 (lambda _
86 ;; XXX Disable the 'test-limits' and 'exec_opcodes_sys'
87 ;; tests, which fail on some machines. See:
88 ;; https://bugzilla.gnome.org/show_bug.cgi?id=735273
89 (substitute* '("testsuite/test-limits.c"
90 "testsuite/exec_opcodes_sys.c")
91 (("if \\(error\\) return 1;")
0392030d
MW
92 "if (error) return 77;"))
93 #t)))))
45b01f2e
MB
94 (native-inputs
95 `(("gtk-doc" ,gtk-doc)))
57e7d748 96 (home-page "https://gstreamer.freedesktop.org/modules/orc.html")
195857b0
SB
97 (synopsis "Oil runtime compiler")
98 (description
99 "Orc is a just-in-time compiler implemented as a library and set of
100associated tools for compiling and executing simple programs that operate on
101arrays of data.")
102 ;; The source code implementing the Marsenne Twister algorithm is licensed
103 ;; under the 3-clause BSD license, the rest is under 2-clause BSD license.
5cde47ec 104 (license (list license:bsd-2 license:bsd-3))))
195857b0 105
22885fb8
AE
106(define-public gstreamer
107 (package
108 (name "gstreamer")
94249ba8 109 (version "1.16.2")
22885fb8
AE
110 (source
111 (origin
112 (method url-fetch)
a124bbd2 113 (uri (string-append
5cc3096c 114 "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
a124bbd2 115 version ".tar.xz"))
22885fb8
AE
116 (sha256
117 (base32
94249ba8 118 "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73"))))
9792adaa 119 (build-system meson-build-system)
2fb016b8
SB
120 (outputs '("out" "doc"))
121 (arguments
0025a1d3 122 `(#:phases
9792adaa 123 (modify-phases %standard-phases
0025a1d3
MB
124 ;; FIXME: Since switching to the meson-build-system, two tests
125 ;; started failing on i686. See
126 ;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/499>.
127 ,@(if (string-prefix? "i686" (or (%current-target-system)
128 (%current-system)))
129 `((add-after 'unpack 'disable-some-tests
130 (lambda _
131 (substitute* "tests/check/gst/gstsystemclock.c"
132 (("tcase_add_test \\(tc_chain, test_stress_cleanup_unschedule.*")
133 "")
134 (("tcase_add_test \\(tc_chain, test_stress_reschedule.*")
135 ""))
136 #t)))
137 '())
9792adaa
MB
138 (add-after 'install 'move-docs
139 (lambda* (#:key outputs #:allow-other-keys)
140 (let ((out (assoc-ref outputs "out"))
141 (doc (assoc-ref outputs "doc")))
142 (mkdir-p (string-append doc "/share"))
143 (copy-recursively (string-append out "/share/gtk-doc")
144 (string-append doc "/share/gtk-doc"))
145 (delete-file-recursively (string-append out "/share/gtk-doc"))
146 #t))))))
e244dc6d 147 (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
c4c4cc05 148 (native-inputs
22885fb8
AE
149 `(("bison" ,bison)
150 ("flex" ,flex)
426adbe8 151 ("glib" ,glib "bin")
0f998a14 152 ("gobject-introspection" ,gobject-introspection)
9792adaa 153 ("gtk-doc" ,gtk-doc)
22885fb8
AE
154 ("perl" ,perl)
155 ("pkg-config" ,pkg-config)
144f9f25 156 ("python-wrapper" ,python-wrapper)))
96693d1d
SB
157 (native-search-paths
158 (list (search-path-specification
159 (variable "GST_PLUGIN_SYSTEM_PATH")
160 (files '("lib/gstreamer-1.0")))))
5cc3096c 161 (home-page "https://gstreamer.freedesktop.org/")
93bfe3e2 162 (synopsis "Multimedia library")
22885fb8
AE
163 (description
164 "GStreamer is a library for constructing graphs of media-handling
165components. The applications it supports range from simple Ogg/Vorbis
e881752c
AK
166playback, audio/video streaming to complex audio mixing and video
167non-linear editing.
22885fb8
AE
168
169Applications can take advantage of advances in codec and filter technology
170transparently. Developers can add new codecs and filters by writing a
171simple plugin with a clean, generic interface.
172
173This package provides the core library and elements.")
5cde47ec 174 (license license:lgpl2.0+)))
477c91ce
AE
175
176(define-public gst-plugins-base
177 (package
178 (name "gst-plugins-base")
94249ba8 179 (version "1.16.2")
477c91ce
AE
180 (source
181 (origin
182 (method url-fetch)
8cf39f7f 183 (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
a124bbd2 184 name "-" version ".tar.xz"))
477c91ce
AE
185 (sha256
186 (base32
94249ba8 187 "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
738923b6 188 (build-system meson-build-system)
34ff76fd 189 (propagated-inputs
a53f4311
MB
190 `(("glib" ,glib) ;required by gstreamer-sdp-1.0.pc
191 ("gstreamer" ,gstreamer) ;required by gstreamer-plugins-base-1.0.pc
cc1b2b3e
MB
192
193 ;; XXX: Do not enable Orc optimizations on ARM systems because
194 ;; it leads to two test failures.
195 ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/683
196 ,@(if (string-prefix? "arm" (or (%current-target-system)
197 (%current-system)))
198 '()
199 `(("orc" ,orc))))) ;required by gstreamer-audio-1.0.pc
477c91ce 200 (inputs
e9a0b5e7 201 `(("cdparanoia" ,cdparanoia)
1fcf67f4
JD
202 ("pango" ,pango)
203 ("libogg" ,libogg)
204 ("libtheora" ,libtheora)
205 ("libvorbis" ,libvorbis)
206 ("libx11" ,libx11)
207 ("zlib" ,zlib)
208 ("libXext" ,libxext)
209 ("libxv" ,libxv)
399c5faf
LF
210 ("alsa-lib" ,alsa-lib)
211 ;; XXX Don't build with opus on 32-bit systems:
212 ;; <https://bugs.gnu.org/32360>
213 ,@(if (target-64bit?)
214 `(("opus" ,opus))
215 '())))
c4c4cc05
JD
216 (native-inputs
217 `(("pkg-config" ,pkg-config)
a53f4311 218 ("glib:bin" ,glib "bin")
4ec48644 219 ("gobject-introspection" ,gobject-introspection)
c4c4cc05 220 ("python-wrapper" ,python-wrapper)))
477c91ce 221 (arguments
738923b6
MB
222 '(#:configure-flags '("-Dgl=disabled"
223 ;; FIXME: Documentation fails to build without
224 ;; enabling GL above, which causes other problems.
225 "-Ddoc=false")
e9a82129 226 #:phases
cda6aaf0
EF
227 (modify-phases %standard-phases
228 (add-before 'configure 'patch
229 (lambda _
230 (substitute* "tests/check/libs/pbutils.c"
de0e591a
EF
231 (("/bin/sh") (which "sh")))
232 #t)))))
70e863e5 233 (home-page "https://gstreamer.freedesktop.org/")
477c91ce 234 (synopsis
1fcf67f4
JD
235 "Plugins for the GStreamer multimedia library")
236 (description "This package provides an essential exemplary set of plug-ins
237for the GStreamer multimedia library.")
5cde47ec 238 (license license:lgpl2.0+)))
477c91ce 239
1fcf67f4
JD
240(define-public gst-plugins-good
241 (package
242 (name "gst-plugins-good")
94249ba8 243 (version "1.16.2")
1fcf67f4
JD
244 (source
245 (origin
246 (method url-fetch)
e881752c 247 (uri (string-append
48caecb7
SB
248 "https://gstreamer.freedesktop.org/src/" name "/"
249 name "-" version ".tar.xz"))
1fcf67f4
JD
250 (sha256
251 (base32
94249ba8 252 "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0"))))
321f47c2 253 (build-system meson-build-system)
1fcf67f4 254 (inputs
40f6f76e 255 `(("aalib" ,aalib)
a4d89136 256 ("cairo" ,cairo)
a4d89136 257 ("flac" ,flac)
40f6f76e
SB
258 ("gdk-pixbuf" ,gdk-pixbuf)
259 ("gst-plugins-base" ,gst-plugins-base)
b3aba78b 260 ("gtk+" ,gtk+)
0dc2e348 261 ("jack" ,jack-1)
02d5ed4a 262 ("lame" ,lame)
40f6f76e
SB
263 ("libavc1394" ,libavc1394)
264 ("libcaca" ,libcaca)
265 ("libdv" ,libdv)
266 ("libiec61883" ,libiec61883)
4bd428a7 267 ("libjpeg" ,libjpeg-turbo)
40f6f76e
SB
268 ("libpng" ,libpng)
269 ("libshout" ,libshout)
270 ("libsoup" ,libsoup)
271 ("libvpx" ,libvpx)
02d5ed4a 272 ("mpg123" ,mpg123)
40f6f76e 273 ("orc" ,orc)
a4d89136 274 ("pulseaudio" ,pulseaudio)
40f6f76e
SB
275 ("speex" ,speex)
276 ("taglib" ,taglib)
02d5ed4a 277 ("twolame" ,twolame)
40f6f76e 278 ("wavpack" ,wavpack)))
1fcf67f4 279 (native-inputs
40f6f76e
SB
280 `(("glib:bin" ,glib "bin")
281 ("pkg-config" ,pkg-config)
282 ("python-wrapper" ,python-wrapper)))
0ba652b2 283 (arguments
c9c63edb 284 `(#:phases
0ba652b2 285 (modify-phases %standard-phases
b3c2ebda
MB
286 ,@(if (string-prefix? "arm" (or (%current-target-system)
287 (%current-system)))
288 ;; FIXME: These tests started failing on armhf after switching to Meson.
289 ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/689
290 `((add-after 'unpack 'disable-tests-for-armhf
291 (lambda _
292 (substitute* "tests/check/elements/rtpbin_buffer_list.c"
293 (("tcase_add_test \\(tc_chain, test_bufferlist\\);")
294 ""))
295 (substitute* "tests/check/elements/rtpulpfec.c"
296 (("tcase_add_loop_test.*rtpulpfecdec_recovered_from_many.*")
297 "")
298 (("tcase_add.*rtpulpfecdec_recovered_using_recovered_packet.*")
299 ""))
300 #t)))
301 '())
0ba652b2 302 (add-after
d1ceedf8 303 'unpack 'disable-failing-tests
0ba652b2 304 (lambda _
d1ceedf8 305 ;; Disable tests that fail non-deterministically.
0d3ecf77
EF
306 ;; This test fails on aarch64 on 1.12.x.
307 (substitute* "tests/check/elements/alpha.c"
308 (("tcase_add_test \\(tc_chain, test_chromakeying\\);" all)
0ba652b2
MW
309 (string-append "/* " all " */")))
310 #t)))))
d1ceedf8 311 (home-page "https://gstreamer.freedesktop.org/")
1fcf67f4
JD
312 (synopsis
313 "Plugins for the GStreamer multimedia library")
314 (description "GStreamer Good Plug-ins is a set of plug-ins for the
315GStreamer multimedia library. This set contains those plug-ins which the
316developers consider to have good quality code and correct functionality.")
5cde47ec 317 (license license:lgpl2.0+)))
4e9b38eb 318
db12dac0
SB
319(define-public gst-plugins-bad
320 (package
321 (name "gst-plugins-bad")
94249ba8 322 (version "1.16.2")
db12dac0
SB
323 (source (origin
324 (method url-fetch)
325 (uri (string-append "https://gstreamer.freedesktop.org/src/"
326 name "/" name "-" version ".tar.xz"))
327 (sha256
328 (base32
94249ba8 329 "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"))))
2dc277dd 330 (build-system meson-build-system)
db12dac0 331 (arguments
e003b759 332 `(#:phases
2dc277dd 333 (modify-phases %standard-phases
e003b759
MB
334 ,@(if (string-prefix? "arm" (or (%current-target-system)
335 (%current-system)))
336 ;; Disable test that fails on ARMv7.
337 ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1188
338 `((add-after 'unpack 'disable-asfmux-test
339 (lambda _
340 (substitute* "tests/check/meson.build"
341 (("\\[\\['elements/asfmux\\.c'\\]\\],")
342 ""))
343 #t)))
344 '())
2dc277dd
MB
345 (add-after 'unpack 'disable-failing-test
346 (lambda _
347 ;; FIXME: Why is this failing.
348 (substitute* "tests/check/meson.build"
349 ((".*elements/dash_mpd\\.c.*")
350 ""))
351 #t)))))
db12dac0
SB
352 (propagated-inputs
353 `(("gst-plugins-base" ,gst-plugins-base)))
354 (native-inputs
355 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
356 ("gobject-introspection" ,gobject-introspection)
2dc277dd
MB
357 ;; TODO: Enable documentation for 1.18.
358 ;;("gtk-doc" ,gtk-doc)
db12dac0
SB
359 ("pkg-config" ,pkg-config)
360 ("python" ,python)))
361 (inputs
362 ;; XXX: The following dependencies are missing:
363 ;; vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts,
364 ;; faac, flite, libgsm, libde265, libmms, libmimic, mjpegtools,
365 ;; mpeg2enc, libofa, opencv, openh264, openni2, libtimemmgr, wildmidi,
e3cb00d2 366 ;; openspc, gme, sbc, schroedinger, zbar, librtmp, spandsp
db12dac0
SB
367 `(("bluez" ,bluez)
368 ("curl" ,curl)
369 ("faad2" ,faad2)
370 ("fluidsynth" ,fluidsynth)
371 ("gtk+" ,gtk+)
372 ("ladspa" ,ladspa)
373 ("libass" ,libass)
374 ("libdvdnav" ,libdvdnav)
375 ("libdvdread" ,libdvdread)
376 ("libgcrypt" ,libgcrypt)
377 ("libgudev" ,libgudev)
378 ("libkate" ,libkate)
379 ("libmodplug" ,libmodplug)
380 ("librsvg" ,librsvg)
381 ("libsndfile" ,libsndfile)
382 ("libsrtp" ,libsrtp)
383 ("libssh2" ,libssh2)
384 ("libusb" ,libusb)
385 ("libvdpau" ,libvdpau)
386 ("libwebp" ,libwebp)
387 ("libxml2" ,libxml2)
388 ("lrdf" ,lrdf)
389 ("mesa" ,mesa)
db12dac0
SB
390 ("neon" ,neon)
391 ("openal" ,openal)
392 ("openexr" ,openexr)
393 ("openjpeg" ,openjpeg)
394 ("openssl" ,openssl)
395 ("opus" ,opus)
396 ("orc" ,orc)
6779b932
EF
397 ;("qtbase" ,qtbase)
398 ;("qtdeclarative" ,qtdeclarative)
399 ;("qtx11extras" ,qtx11extras)
db12dac0 400 ("soundtouch" ,soundtouch)
e3cb00d2 401 ("x265" ,x265)
94b179c6 402 ("wayland" ,wayland)))
0cee33ac 403 (home-page "https://gstreamer.freedesktop.org/")
db12dac0
SB
404 (synopsis "Plugins for the GStreamer multimedia library")
405 (description
406 "GStreamer Bad Plug-ins is a set of plug-ins whose quality aren't up to
407par compared to the rest.")
5cde47ec 408 (license license:lgpl2.0+)))
db12dac0 409
92f1b4a5
MW
410(define-public gst-plugins-ugly
411 (package
412 (name "gst-plugins-ugly")
94249ba8 413 (version "1.16.2")
92f1b4a5
MW
414 (source
415 (origin
416 (method url-fetch)
5cc3096c 417 (uri (string-append "https://gstreamer.freedesktop.org/src/"
92f1b4a5
MW
418 name "/" name "-" version ".tar.xz"))
419 (sha256
420 (base32
94249ba8 421 "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
1bf1e32b 422 (build-system meson-build-system)
92f1b4a5
MW
423 (inputs
424 `(("gst-plugins-base" ,gst-plugins-base)
425 ("liba52" ,liba52)
92f1b4a5 426 ("libcdio" ,libcdio)
92f1b4a5
MW
427 ("libmpeg2" ,libmpeg2)
428 ("libdvdread" ,libdvdread)
429 ("libx264" ,libx264)
430 ;; TODO:
431 ;; * opencore-amr (for the AMR-NB decoder and encoder and the
432 ;; AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/>
433 ("orc" ,orc)))
434 (native-inputs
435 `(("glib:bin" ,glib "bin")
436 ("pkg-config" ,pkg-config)
437 ("python-wrapper" ,python-wrapper)))
40dad30c 438 (home-page "https://gstreamer.freedesktop.org/")
e881752c 439 (synopsis "GStreamer plugins from the \"ugly\" set")
92f1b4a5
MW
440 (description "GStreamer Ugly Plug-ins. This set contains those plug-ins
441which the developers consider to have good quality code but that might pose
442distribution problems in some jurisdictions, e.g. due to patent threats.")
5cde47ec 443 (license license:lgpl2.0+)))
92f1b4a5 444
1b922590
SB
445(define-public gst-libav
446 (package
447 (name "gst-libav")
94249ba8 448 (version "1.16.2")
1b922590
SB
449 (source (origin
450 (method url-fetch)
451 (uri (string-append
5cc3096c 452 "https://gstreamer.freedesktop.org/src/" name "/"
1b922590
SB
453 name "-" version ".tar.xz"))
454 (sha256
455 (base32
94249ba8 456 "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"))
4b7e861b
MB
457 (modules '((guix build utils)))
458 (snippet
459 '(begin
460 ;; Drop bundled ffmpeg.
461 (delete-file-recursively "gst-libs/ext/libav")
462 #t))))
4bebd7e4 463 (build-system meson-build-system)
1b922590
SB
464 (native-inputs
465 `(("pkg-config" ,pkg-config)
04a20db2 466 ("python" ,python)))
1b922590
SB
467 (inputs
468 `(("gst-plugins-base" ,gst-plugins-base)
c9c63edb 469 ("ffmpeg" ,ffmpeg)
1b922590
SB
470 ("orc" ,orc)
471 ("zlib" ,zlib)))
57e7d748 472 (home-page "https://gstreamer.freedesktop.org/")
1b922590
SB
473 (synopsis "Plugins for the GStreamer multimedia library")
474 (description
475 "This GStreamer plugin supports a large number of audio and video
476compression formats through the use of the libav library.")
5cde47ec 477 (license license:gpl2+)))
201cfb81
SB
478
479(define-public python-gst
480 (package
481 (name "python-gst")
94249ba8 482 (version "1.16.2")
201cfb81
SB
483 (source (origin
484 (method url-fetch)
485 (uri (string-append
486 "https://gstreamer.freedesktop.org/src/gst-python/"
487 "gst-python-" version ".tar.xz"))
488 (sha256
489 (base32
94249ba8 490 "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"))))
c450ee97 491 (build-system meson-build-system)
201cfb81 492 (arguments
c450ee97
MB
493 `(#:modules ((guix build meson-build-system)
494 (guix build utils)
a5c2e796 495 ((guix build python-build-system) #:prefix python:))
c450ee97 496 #:imported-modules (,@%meson-build-system-modules
201cfb81
SB
497 (guix build python-build-system))
498 #:configure-flags
a5c2e796 499 (list (string-append
c450ee97 500 "-Dpygi-overrides-dir="
a5c2e796 501 (python:site-packages %build-inputs %outputs) "gi/overrides"))))
201cfb81
SB
502 (native-inputs
503 `(("pkg-config" ,pkg-config)
504 ("python" ,python)))
505 (propagated-inputs
506 `(("gst-plugins-base" ,gst-plugins-base)
507 ("python-pygobject" ,python-pygobject)))
d2b5dec5 508 (home-page "https://gstreamer.freedesktop.org/")
201cfb81
SB
509 (synopsis "GStreamer GObject Introspection overrides for Python")
510 (description
511 "This package contains GObject Introspection overrides for Python that can
512be used by Python applications using GStreamer.")
5cde47ec 513 (license license:lgpl2.1+)
201cfb81
SB
514 (properties `((python2-variant . ,(delay python2-gst))))))
515
516(define-public python2-gst
517 (package (inherit python-gst)
518 (name "python2-gst")
519 (native-inputs
520 `(("pkg-config" ,pkg-config)
521 ("python" ,python-2)))
522 (propagated-inputs
523 `(("gst-plugins-base" ,gst-plugins-base)
524 ("python-pygobject" ,python2-pygobject)))))
51895712
RW
525
526(define-public gst123
527 (package
528 (name "gst123")
529 (version "0.3.5")
530 (source (origin
531 (method url-fetch)
532 (uri (string-append "http://space.twc.de/~stefan/gst123/gst123-"
533 version ".tar.bz2"))
534 (sha256
535 (base32
536 "0zaa117n4wkya9p903vkj8hj58lmdb66pxsdx5wwcv7nffbp5d67"))))
537 (build-system gnu-build-system)
538 (inputs
539 `(("gtk+" ,gtk+-2)
540 ("ncurses" ,ncurses)
541 ("gstreamer" ,gstreamer)
542 ("gst-plugins-base" ,gst-plugins-base)))
543 (native-inputs
544 `(("pkg-config" ,pkg-config)))
545 (home-page "http://space.twc.de/~stefan/gst123.php")
546 (synopsis "Flexible command line media player based on gstreamer")
547 (description "The program gst123 is designed to be a more flexible command
548line player in the spirit of ogg123 and mpg123, based on the gstreamer media
549framework. It plays all file formats gstreamer supports, so if you have a
550music collection which contains different file formats, like flac, ogg and
551mp3, you can use gst123 to play all your music files.")
552 (license license:lgpl2.0+)))