linux-initrd: Add USB kernel modules to the default initrd.
[jackhill/guix/guix.git] / gnu / packages / gstreamer.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright 2014 John Darrington <jmd@gnu.org>
4 ;;;
5 ;;; This file is part of GNU Guix.
6 ;;;
7 ;;; GNU Guix is free software; you can redistribute it and/or modify it
8 ;;; under the terms of the GNU General Public License as published by
9 ;;; the Free Software Foundation; either version 3 of the License, or (at
10 ;;; your option) any later version.
11 ;;;
12 ;;; GNU Guix is distributed in the hope that it will be useful, but
13 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 ;;; GNU General Public License for more details.
16 ;;;
17 ;;; You should have received a copy of the GNU General Public License
18 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20 (define-module (gnu packages gstreamer)
21 #:use-module ((guix licenses) #:select (lgpl2.0+))
22 #:use-module (guix packages)
23 #:use-module (guix download)
24 #:use-module (guix build-system gnu)
25 #:use-module (gnu packages)
26 #:use-module (gnu packages bison)
27 #:use-module (gnu packages compression)
28 #:use-module (gnu packages flex)
29 #:use-module (gnu packages glib)
30 #:use-module (gnu packages gtk)
31 #:use-module (gnu packages image)
32 #:use-module (gnu packages linux)
33 #:use-module (gnu packages perl)
34 #:use-module (gnu packages pulseaudio)
35 #:use-module (gnu packages xorg)
36 #:use-module (gnu packages xiph)
37 #:use-module (gnu packages pkg-config)
38 #:use-module (gnu packages python)
39 #:use-module (gnu packages xml))
40
41 (define-public gstreamer
42 (package
43 (name "gstreamer")
44 (version "1.0.10")
45 (source
46 (origin
47 (method url-fetch)
48 (uri (string-append "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
49 version ".tar.xz"))
50 (sha256
51 (base32
52 "0c0irk85jd2cihm5pmf4zxhlpg08qpxjcqv1l9qn2n3h2gsaj2lf"))))
53 (build-system gnu-build-system)
54 (arguments
55 ;; XXX: Temporarily disable tests to work around 'gst/gstbus' test
56 ;; failure: <https://bugzilla.gnome.org/show_bug.cgi?id=724073>.
57 '(#:tests? #f))
58 (inputs `(("glib" ,glib)))
59 (native-inputs
60 `(("bison" ,bison)
61 ("flex" ,flex)
62 ("glib" ,glib "bin")
63 ("perl" ,perl)
64 ("pkg-config" ,pkg-config)
65 ("python-wrapper" ,python-wrapper)))
66 (home-page "http://gstreamer.freedesktop.org/")
67 (synopsis "Multimedia library")
68 (description
69 "GStreamer is a library for constructing graphs of media-handling
70 components. The applications it supports range from simple Ogg/Vorbis
71 playback, audio/video streaming to complex audio (mixing) and video
72 (non-linear editing) processing.
73
74 Applications can take advantage of advances in codec and filter technology
75 transparently. Developers can add new codecs and filters by writing a
76 simple plugin with a clean, generic interface.
77
78 This package provides the core library and elements.")
79 (license lgpl2.0+)))
80
81 (define-public gstreamer-0.10
82 (package (inherit gstreamer)
83 (version "0.10.36")
84 (source
85 (origin
86 (method url-fetch)
87 (uri (string-append "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
88 version ".tar.xz"))
89 (sha256
90 (base32
91 "1nkid1n2l3rrlmq5qrf5yy06grrkwjh3yxl5g0w58w0pih8allci"))
92 (patches
93 (list (search-patch "gstreamer-0.10-bison3.patch")
94 (search-patch "gstreamer-0.10-silly-test.patch")))))
95 (propagated-inputs
96 `(("libxml2" ,libxml2)))
97 (inputs `(("glib" ,glib)))
98 (native-inputs
99 `(("bison" ,bison)
100 ("flex" ,flex)
101 ("perl" ,perl)
102 ("pkg-config" ,pkg-config)
103 ("glib" ,glib "bin")
104 ("python" ,python-2)))))
105
106
107 (define-public gst-plugins-base
108 (package
109 (name "gst-plugins-base")
110 (version "1.0.10")
111 (source
112 (origin
113 (method url-fetch)
114 (uri (string-append "http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-"
115 version ".tar.xz"))
116 (sha256
117 (base32
118 "1s4pphbb5kpdh4rrmb8rala4sp499k4by59925k15xiz58xyhm4p"))))
119 (build-system gnu-build-system)
120 (inputs
121 `(("glib" ,glib)
122 ("pango" ,pango)
123 ("libogg" ,libogg)
124 ("libtheora" ,libtheora)
125 ("libvorbis" ,libvorbis)
126 ("libx11" ,libx11)
127 ("zlib" ,zlib)
128 ("libXext" ,libxext)
129 ("libxv" ,libxv)
130 ("alsa-lib" ,alsa-lib)
131 ("gstreamer" ,gstreamer)))
132 (native-inputs
133 `(("pkg-config" ,pkg-config)
134 ("glib" ,glib "bin")
135 ("python-wrapper" ,python-wrapper)))
136 (arguments
137 `(#:tests? #f))
138 ;; All tests pass except for one:
139 ;; Running suite(s): pbutils library
140 ;; 85%: Checks: 7, Failures: 1, Errors: 0
141 ;; libs/pbutils.c:522:F:general:test_pb_utils_install_plugins:0: gst_install_plugins_sync() failed ;; with unexpected ret 201, which is neither HELPER_MISSING nor 1
142 ;; FAIL: libs/pbutils
143 ;; According to the documentation, "gst_install_plugins_sync (...)
144 ;; should almost never be used".
145 (home-page "http://gstreamer.freedesktop.org/")
146 (synopsis
147 "Plugins for the GStreamer multimedia library")
148 (description "This package provides an essential exemplary set of plug-ins
149 for the GStreamer multimedia library.")
150 (license lgpl2.0+)))
151
152
153 (define-public gst-plugins-good
154 (package
155 (name "gst-plugins-good")
156 (version "1.0.10")
157 (source
158 (origin
159 (method url-fetch)
160 (uri (string-append
161 "http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-"
162 version ".tar.xz"))
163 (sha256
164 (base32
165 "1bi8ci0jssi8bsa7wbmqcwphl579vvxpshn2qnaggiha13b440y6"))))
166 (build-system gnu-build-system)
167 (inputs
168 `(("glib" ,glib)
169 ("cairo" ,cairo)
170 ("gdk-pixbuf" ,gdk-pixbuf)
171 ("flac" ,flac)
172 ("speex" ,speex)
173 ("libogg" ,libogg) ;; should be a propagated input of the above
174 ("libx11" ,libx11)
175 ("zlib" ,zlib)
176 ("libpng" ,libpng)
177 ("libjpeg" ,libjpeg)
178 ("libXext" ,libxext)
179 ("libxv" ,libxv)
180 ("pulseaudio" ,pulseaudio)
181 ("gstreamer" ,gstreamer)))
182 (native-inputs
183 `(("pkg-config" ,pkg-config)
184 ("glib" ,glib "bin")
185 ("gst-plugins-base" ,gst-plugins-base)
186 ("python-wrapper" ,python-wrapper)))
187 (arguments
188 `(#:configure-flags (list "--disable-osx_audio"
189 "--disable-osx_video"
190 "--disable-directsound"
191 "--disable-waveform")))
192 (home-page "http://gstreamer.freedesktop.org/")
193 (synopsis
194 "Plugins for the GStreamer multimedia library")
195 (description "GStreamer Good Plug-ins is a set of plug-ins for the
196 GStreamer multimedia library. This set contains those plug-ins which the
197 developers consider to have good quality code and correct functionality.")
198 (license lgpl2.0+)))
199
200 (define-public gst-plugins-base-0.10
201 (package (inherit gst-plugins-base)
202 (version "0.10.36")
203 (source
204 (origin
205 (method url-fetch)
206 (uri (string-append
207 "http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-"
208 version ".tar.xz"))
209 (sha256
210 (base32
211 "0jp6hjlra98cnkal4n6bdmr577q8mcyp3c08s3a02c4hjhw5rr0z"))))
212 (inputs
213 `(("glib" ,glib)
214 ("gstreamer" ,gstreamer-0.10)))
215 (native-inputs
216 `(("pkg-config" ,pkg-config)
217 ("glib" ,glib "bin")
218 ("python" ,python-2)))))