Source: gst-plugins-bad1.0
Section: libs
Priority: extra
Maintainer: Maintainers of GStreamer packages <pkg-gstreamer-maintainers@lists.alioth.debian.org>
Uploaders: Sebastian Dröge <slomo@debian.org>,
           Sjoerd Simons <sjoerd@debian.org>
Build-Depends: autoconf (>= 2.62),
               automake (>= 1.11),
               autopoint (>= 0.17),
               autotools-dev,
               cdbs (>= 0.4.93),
               debhelper (>= 9),
               dh-autoreconf,
               dpkg-dev (>= 1.15.1),
               flite-dev,
               libasound2-dev (>= 0.9.1) [linux-any],
               libcdaudio-dev [linux-any],
               libdc1394-22-dev (>= 2.0.0) [linux-any],
               libgudev-1.0-dev (>= 143) [linux-any],
               libusb-1.0-0-dev [linux-any],
               libsbc-dev (>= 1.1) [linux-any],
               libwayland-dev (>= 1.0) [linux-any],
               libgstreamer1.0-dev (>= 1.4.0),
               gstreamer1.0-doc,
               gstreamer1.0-plugins-base (>= 1.4.0),
               gstreamer1.0-plugins-base-doc,
               gtk-doc-tools (>= 1.12),
               ladspa-sdk,
               libass-dev (>= 0.9.4),
               libbz2-dev,
               libcairo2-dev,
               libchromaprint-dev,
               libcurl4-gnutls-dev (>= 7.21.0),
               libdca-dev,
               libdirac-dev (>= 0.10),
               libdirectfb-dev (>= 0.9.25),
               libdvdnav-dev (>= 4.1.2) [!hurd-any],
               libegl1-mesa-dev,
               libexempi-dev,
               libexif-dev (>= 0.6.16),
               libfaad-dev,
               libfluidsynth-dev (>= 1.0),
               libgl1-mesa-dev,
               libgles2-mesa-dev,
               libglib2.0-dev (>= 2.32),
               libglu1-mesa-dev,
               libgme-dev,
               libgnutls-dev (>= 2.11.3),
               libgsm1-dev,
               libgstreamer-plugins-base1.0-dev (>= 1.4.0),
               libgtk2.0-dev (>= 2.14.0),
               libiptcdata0-dev (>= 1.0.2),
               libjasper-dev,
               libkate-dev (>= 0.1.7),
               libmimic-dev (>= 1.0),
               libmjpegtools-dev,
               libmms-dev (>= 0.4),
               libmodplug-dev,
               libmpcdec-dev,
               libmpg123-dev (>= 1.13),
               libofa0-dev (>= 0.9.3),
               libopenal-dev (>= 1:1.14),
               libopencv-dev (>= 2.0.0),
               libopenexr-dev,
               libopenjpeg-dev,
               libopus-dev (>= 0.9.4),
               liborc-0.4-dev (>= 1:0.4.17),
               libpng-dev,
               librsvg2-dev (>= 2.36),
               librtmp-dev,
               libschroedinger-dev (>= 1.0.7),
               libsndfile1-dev (>= 1.0.16),
               libsoundtouch-dev (>= 1.5.0),
               libspandsp-dev,
               libsrtp0-dev,
               libssl-dev,
               libtool (>= 2.2.6),
               libvo-aacenc-dev,
               libvo-amrwbenc-dev,
               libwebp-dev (>= 0.2.1),
               libwildmidi-dev (>= 0.2.3),
               libx11-dev,
               libxml2-dev (>= 2.4),
               libxvidcore-dev,
               libzbar-dev (>= 0.9),
               libzvbi-dev,
               nettle-dev,
               pkg-config (>= 0.11.0)
Standards-Version: 3.9.3
Vcs-Git: git://anonscm.debian.org/pkg-gstreamer/gst-plugins-bad1.0.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-gstreamer/gst-plugins-bad1.0.git;a=summary
Homepage: http://gstreamer.freedesktop.org/modules/gst-plugins-bad.html

Package: gstreamer1.0-plugins-bad-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         gstreamer1.0-doc,
         gstreamer1.0-plugins-base-doc
Description: GStreamer documentation for plugins from the "bad" set
 GStreamer is a streaming media framework, based on graphs of filters
 which operate on media data.  Applications using this library can do
 anything from real-time sound processing to playing videos, and just
 about anything else media-related.  Its plugin-based architecture means
 that new data types or processing capabilities can be added simply by
 installing new plug-ins.
 .
 GStreamer Bad Plug-ins is a set of plug-ins that aren't up to par compared
 to the rest. They might be close to being good quality, but they're missing
 something - be it a good code review, some documentation, a set of tests, a
 real live maintainer, or some actual wide use.
 .
 This package contains the documentation for plugins from the "bad" set.
 
Package: gstreamer1.0-plugins-bad
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends},
         ${shlibs:Depends},
         gstreamer1.0-plugins-base,
         libgstreamer-plugins-bad1.0-0 (= ${binary:Version}),
Provides: ${gstreamer:Provides}
Suggests: frei0r-plugins
Replaces: gstreamer1.0-plugins-base (<< 0.11.94), gstreamer1.0-plugins-good (<< 1.1.2)
Breaks: gstreamer1.0-plugins-base (<< 0.11.94), gstreamer1.0-plugins-good (<< 1.1.2)
XB-GStreamer-Version: ${gstreamer:Version}
XB-GStreamer-Elements: ${gstreamer:Elements}
XB-GStreamer-URI-Sources: ${gstreamer:URISources}
XB-GStreamer-URI-Sinks: ${gstreamer:URISinks}
XB-GStreamer-Encoders: ${gstreamer:Encoders}
XB-GStreamer-Decoders: ${gstreamer:Decoders}
Description: GStreamer plugins from the "bad" set
 GStreamer is a streaming media framework, based on graphs of filters
 which operate on media data.  Applications using this library can do
 anything from real-time sound processing to playing videos, and just
 about anything else media-related.  Its plugin-based architecture means
 that new data types or processing capabilities can be added simply by
 installing new plug-ins.
 .
 GStreamer Bad Plug-ins is a set of plug-ins that aren't up to par compared
 to the rest. They might be close to being good quality, but they're missing
 something - be it a good code review, some documentation, a set of tests, a
 real live maintainer, or some actual wide use.

Package: gstreamer1.0-plugins-bad-dbg
Architecture: any
Multi-Arch: same
Section: debug
Priority: extra
Depends: gstreamer1.0-plugins-bad (= ${binary:Version}),
         ${misc:Depends}
Replaces: gstreamer1.0-plugins-base-dbg (<< 0.11.94), gstreamer1.0-plugins-good (<< 1.1.2)
Breaks: gstreamer1.0-plugins-base-dbg (<< 0.11.94), gstreamer1.0-plugins-good (<< 1.1.2)
Description: GStreamer plugins from the "bad" set (debug symbols)
 GStreamer is a streaming media framework, based on graphs of filters
 which operate on media data.  Applications using this library can do
 anything from real-time sound processing to playing videos, and just
 about anything else media-related.  Its plugin-based architecture means
 that new data types or processing capabilities can be added simply by
 installing new plug-ins.
 .
 This package contains unstripped shared libraries. It is provided primarily
 to provide a backtrace with names in a debugger, this makes it somewhat
 easier to interpret core dumps. The libraries are installed in
 /usr/lib/debug and are automatically used by gdb.

Package: libgstreamer-plugins-bad1.0-0
Architecture: any
Section: libs
Priority: extra
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends},
         ${shlibs:Depends},
Description: GStreamer development files for libraries from the "bad" set
 GStreamer is a streaming media framework, based on graphs of filters
 which operate on media data.  Applications using this library can do
 anything from real-time sound processing to playing videos, and just
 about anything else media-related.  Its plugin-based architecture means
 that new data types or processing capabilities can be added simply by
 installing new plug-ins.
 .
 GStreamer Bad Plug-ins is a set of plug-ins that aren't up to par compared
 to the rest. They might be close to being good quality, but they're missing
 something - be it a good code review, some documentation, a set of tests, a
 real live maintainer, or some actual wide use.
 .
 This package contains shared GStreamer libraries from the "bad" set. The API
 is not guaranteed to be stable.

Package: libgstreamer-plugins-bad1.0-dev
Architecture: any
Section: libdevel
Priority: extra
Depends: ${misc:Depends},
	 libgstreamer-plugins-bad1.0-0 (= ${binary:Version}),
Description: GStreamer development files for libraries from the "bad" set
 GStreamer is a streaming media framework, based on graphs of filters
 which operate on media data.  Applications using this library can do
 anything from real-time sound processing to playing videos, and just
 about anything else media-related.  Its plugin-based architecture means
 that new data types or processing capabilities can be added simply by
 installing new plug-ins.
 .
 GStreamer Bad Plug-ins is a set of plug-ins that aren't up to par compared
 to the rest. They might be close to being good quality, but they're missing
 something - be it a good code review, some documentation, a set of tests, a
 real live maintainer, or some actual wide use.
 .
 This package contains development files for GStreamer libraries from the
 "bad" set. The API is not guaranteed to be stable.
