Source: gst-plugins-base1.0
Section: libs
Priority: optional
Maintainer: Maintainers of GStreamer packages <gst-plugins-base1.0@packages.debian.org>
Uploaders: Loïc Minier <lool@debian.org>,
           Sebastien Bacher <seb128@debian.org>,
           Sebastian Dröge <slomo@debian.org>,
           Sjoerd Simons <sjoerd@debian.org>
Build-Depends: libgstreamer1.0-dev (>= 1.14.4), libasound2-dev (>= 0.9.0) [linux-any] , libgudev-1.0-dev (>= 143) [linux-any], autotools-dev, automake (>= 1.14), autoconf (>= 2.69), libtool (>= 2.2.6), dh-autoreconf, autopoint (>= 0.17), cdbs (>= 0.4.93~), debhelper (>= 10), gnome-pkg-tools (>= 0.7), pkg-config (>= 0.11.0), libxv-dev (>= 6.8.2.dfsg.1-3), libxt-dev (>= 6.8.2.dfsg.1-3), libvorbis-dev (>= 1.0.0-2), libcdparanoia-dev (>= 3.10.2) [!hurd-i386], liborc-0.4-dev (>= 1:0.4.24), libpango1.0-dev (>= 1.16.0), libtheora-dev (>= 1.1), libglib2.0-dev (>= 2.40), zlib1g-dev (>= 1:1.1.4), libvisual-0.4-dev (>= 0.4.0), dpkg-dev (>= 1.15.1), iso-codes, libgtk-3-dev (>= 3.10), zlib1g-dev, libopus-dev (>= 0.9.4), libgl1-mesa-dev, libegl1-mesa-dev, libgles2-mesa-dev, libgraphene-1.0-dev, libpng-dev, libjpeg-dev
Standards-Version: 3.9.8
Vcs-Git: https://salsa.debian.org/gstreamer-team/gst-plugins-base1.0.git
Vcs-Browser: https://salsa.debian.org/gstreamer-team/gst-plugins-base1.0/
Homepage: https://gstreamer.freedesktop.org

Package: gstreamer1.0-plugins-base-apps
Architecture: any
Section: utils
Depends: ${shlibs:Depends},
         ${misc:Depends},
         ${perl:Depends},
         gstreamer1.0-tools
Description: GStreamer helper programs from the "base" 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.
 .
 This package contains helper programs from the "base" set, an essential
 exemplary set of elements.

Package: libgstreamer-plugins-base1.0-0
Architecture: any
Multi-Arch: same
Section: libs
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends},
         ${shlibs:Depends},
         iso-codes
Breaks: totem-gstreamer (<= 2.17.92-0ubuntu1),
        gstreamer1.0-plugins-bad (<< 1.7.1),
        libgstreamer-plugins-bad1.0-0 (<< 1.13.1)
Conflicts: libgstreamer-plugins-bad1.0-0 (<< 1.13.1)
Recommends: gstreamer1.0-plugins-base
Suggests: libvisual-0.4-plugins
Description: GStreamer libraries from the "base" 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.
 .
 This package contains libraries from the "base" set, an essential
 exemplary set of elements.

Package: libgstreamer-plugins-base1.0-dev
Architecture: any
Multi-Arch: same
Section: libdevel
Depends: ${misc:Depends},
         ${shlibs:Depends},
         libgstreamer-plugins-base1.0-0 (= ${binary:Version}),
         libgstreamer-gl1.0-0 (= ${binary:Version}),
         libc6-dev | libc-dev,
         pkg-config,
         libgstreamer1.0-dev (>= 1.14.4),
         libglib2.0-dev,
         liborc-0.4-dev (>= 1:0.4.24),
         libgl1-mesa-dev,
         libegl1-mesa-dev,
         libgles2-mesa-dev
Breaks: libgstreamer-plugins-bad1.0-dev (<< 1.13.1)
Conflicts: libgstreamer-plugins-bad1.0-dev (<< 1.13.1)
Description: GStreamer development files for libraries from the "base" 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.
 .
 This package contains development files for GStreamer libraries from
 the "base" set, an essential exemplary set of elements.

Package: libgstreamer-gl1.0-0
Architecture: any
Multi-Arch: same
Section: libs
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends},
         ${shlibs:Depends}
Recommends: gstreamer1.0-gl
Breaks: libgstreamer-plugins-bad1.0-0 (<< 1.13.1)
Replaces: libgstreamer-plugins-bad1.0-0 (<< 1.13.1)
Description: GStreamer GL libraries
 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 the GL library.

Package: gstreamer1.0-alsa
Architecture: linux-any
Multi-Arch: same
Section: libs
Depends: ${misc:Depends},
         ${shlibs:Depends},
         libgstreamer-plugins-base1.0-0 (>= 1.14.4)
Suggests: alsa-utils (>= 0.9.0)
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}
Provides: ${gstreamer:Provides}
Description: GStreamer plugin for ALSA
 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 the GStreamer plugin for the ALSA library.  ALSA
 is the Advanced Linux Sound Architecture.

Package: gstreamer1.0-plugins-base
Architecture: any
Multi-Arch: same
Section: libs
Depends: ${misc:Depends},
         ${shlibs:Depends},
         libgstreamer-plugins-base1.0-0 (>= 1.14.4)
Breaks: gstreamer1.0-plugins-bad (<< 1.13.1)
Replaces: gstreamer1.0-plugins-bad (<< 1.13.1)
Suggests: gvfs
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}
Provides: ${gstreamer:Provides}
Description: GStreamer plugins from the "base" 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.
 .
 This package contains the GStreamer plugins from the "base" set, an
 essential exemplary set of elements.

Package: gstreamer1.0-plugins-base-dbg
Architecture: any
Multi-Arch: same
Section: debug
Priority: optional
Depends: gstreamer1.0-alsa (= ${binary:Version}) [linux-any],
         gstreamer1.0-plugins-base (= ${binary:Version}),
         gstreamer1.0-x (= ${binary:Version}),
         libgstreamer-plugins-base1.0-0 (= ${binary:Version}),
         ${misc:Depends}
Breaks: gstreamer1.0-plugins-bad-dbg (<< 1.11.90)
Replaces: gstreamer1.0-plugins-bad-dbg (<< 1.11.90)
Description: GStreamer plugins from the "base" 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.
 .
 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: gstreamer1.0-x
Architecture: any
Multi-Arch: same
Section: libs
Depends: ${misc:Depends},
         ${shlibs:Depends},
         libgstreamer-plugins-base1.0-0 (>= 1.14.4)
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}
Provides: ${gstreamer:Provides}
Description: GStreamer plugins for X11 and Pango
 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 the GStreamer plugins for X11 video output, both
 for standard Xlib support and for the Xv extension, as well as the
 plugin for Pango-based text rendering and overlay.

Package: gstreamer1.0-gl
Architecture: any
Multi-Arch: same
Section: libs
Depends: ${misc:Depends},
         ${shlibs:Depends},
         libgstreamer-plugins-base1.0-0 (>= 1.14.4),
         libgstreamer-gl1.0-0 (>= 1.14.4)
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}
Provides: ${gstreamer:Provides}
Breaks: gstreamer1.0-plugins-bad (<< 1.13.1)
Replaces: gstreamer1.0-plugins-bad (<< 1.13.1)
Description: GStreamer plugins for GL
 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 the GStreamer plugins for GL.

