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