Source: gst-plugins-bad1.0
Section: libs
Priority: extra
Maintainer: AIY Projects <support-aiyprojects@google.com>
Build-Depends: autoconf (>= 2.69),
               automake (>= 1.14),
               autopoint (>= 0.17),
               autotools-dev,
               cdbs (>= 0.4.93),
               debhelper (>= 9),
               dh-autoreconf,
               dpkg-dev (>= 1.15.1),
               flite-dev,
               gir1.2-freedesktop,
               gir1.2-glib-2.0,
               gir1.2-gst-plugins-base-1.0,
               gir1.2-gstreamer-1.0,
               gobject-introspection (>= 0.9.12-4~),
               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],
               libbluetooth-dev (>= 5) [linux-any],
               libsbc-dev (>= 1.1) [linux-any],
               libwayland-dev (>= 1.4.0) [linux-any],
               libdrm-dev (= 2.4.84+imx),
               wayland-protocols (>= 1.4) [linux-any],
               libvulkan-dev [linux-any],
               libgstreamer1.0-dev (>= 1.12.0),
               gstreamer1.0-plugins-base (>= 1.12.0),
               gtk-doc-tools (>= 1.12),
               ladspa-sdk,
               libass-dev (>= 0.10.4),
               libbs2b-dev,
               libbz2-dev,
               libcairo2-dev,
               libchromaprint-dev,
               libcurl4-gnutls-dev (>= 7.35.0),
               libdca-dev,
               libde265-dev,
               libdvdnav-dev (>= 4.1.2) [!hurd-any],
               libegl1-mesa-dev,
               libexempi-dev,
               libexif-dev (>= 0.6.16),
               libfaad-dev (>= 2.7),
               libfluidsynth-dev (>= 1.0),
               libgirepository1.0-dev (>= 0.9.12-4~),
               libgl1-mesa-dev,
               libgles2-mesa-dev,
               libglib2.0-dev (>= 2.40),
               libglu1-mesa-dev,
               libgme-dev,
               libgnutls28-dev (>= 2.11.3),
               libgsm1-dev,
               libgstreamer-plugins-base1.0-dev (>= 1.12.0),
               libiptcdata0-dev (>= 1.0.2),
               libkate-dev (>= 0.1.7),
               liblilv-dev (>= 0.16),
               libmjpegtools-dev,
               libmms-dev (>= 0.4),
               libmodplug-dev,
               libmpcdec-dev,
               libofa0-dev (>= 0.9.3),
               libopenal-dev (>= 1:1.14),
               libopencv-dev (>= 2.3.0),
               libopenexr-dev,
               libopenjp2-7-dev,
               libopus-dev (>= 0.9.4),
               liborc-0.4-dev (>= 1:0.4.17),
               libpng-dev,
               librsvg2-dev (>= 2.36.2),
               librtmp-dev,
               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),
               libwebrtc-audio-processing-dev (>= 0.2),
               libwildmidi-dev (>= 0.2.3),
               libx11-dev,
               libx11-xcb-dev,
               libx265-dev,
               libxml2-dev (>= 2.8),
               libxvidcore-dev,
               libzbar-dev (>= 0.9),
               libzvbi-dev,
               nettle-dev,
               pkg-config (>= 0.11.0)
Standards-Version: 3.9.3
Homepage: http://gstreamer.freedesktop.org/modules/gst-plugins-bad.html

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: gstreamer1.0-plugins-bad-videoparsers,
          gstreamer1.0-plugins-bad-faad,
          ${gstreamer:Provides}
Suggests: frei0r-plugins
Conflicts: gstreamer1.0-plugins-bad-videoparsers (<< 1.11.91-1ubuntu1),
           gstreamer1.0-plugins-bad-faad (<< 1.11.91-1ubuntu1)
Replaces: gstreamer1.0-plugins-base (<< 0.11.94), gstreamer1.0-plugins-good (<< 1.1.2),
          gstreamer1.0-plugins-bad-videoparsers (<< 1.11.91-1ubuntu1),
          gstreamer1.0-plugins-bad-faad (<< 1.11.91-1ubuntu1)
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}),
         libgstreamer1.0-dev,
         libgstreamer-plugins-base1.0-dev,
         gir1.2-gst-plugins-bad-1.0 (= ${binary:Version}),
         libopencv-dev (>= 2.3.0)
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.

Package: gir1.2-gst-plugins-bad-1.0
Section: introspection
Architecture: any
Depends: ${gir:Depends},
         ${shlibs:Depends},
         ${misc:Depends},
         ${gir:Depends}
Description: GObject introspection data for the GStreamer 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 introspection data for the GStreamer libraries from
 the "bad" set. It can be used by packages using the GIRepository format to
 generate dynamic bindings.

