Source: gstreamer0.11
Section: libs
Priority: optional
Maintainer: Maintainers of GStreamer packages <pkg-gstreamer-maintainers@lists.alioth.debian.org>
Uploaders: Loic Minier <lool@dooz.org>,
           Sebastien Bacher <seb128@debian.org>,
           Sebastian Dröge <slomo@debian.org>,
           Sjoerd Simons <sjoerd@debian.org>
Build-Depends: debhelper (>= 7),
               cdbs (>= 0.4.20),
               gnome-pkg-tools (>= 0.7),
               autotools-dev,
               dh-autoreconf,
               autopoint,
               libxml2-dev (>= 2.6.0),
               zlib1g-dev (>= 1:1.1.4),
               libglib2.0-dev (>= 2.22),
               libgmp3-dev,
               libgsl0-dev,
               pkg-config (>= 0.11.0),
               bison (>= 1.875),
               flex (>= 2.5.34),
               dpkg-dev (>= 1.15.1),
               perl-doc,
               libgirepository1.0-dev (>= 0.9.12-4~),
               gobject-introspection (>= 0.9.12-4~),
               gir1.2-glib-2.0,
               gir1.2-freedesktop
Build-Depends-Indep: python (>= 2.2),
                     gtk-doc-tools (>= 0.7),
                     jade (>= 1.2.1),
                     transfig (>= 3.2.3.c),
                     docbook-utils (>= 0.6.9),
                     docbook-xml,
                     docbook-xsl,
                     xsltproc (>= 1.0.21),
                     ghostscript,
                     xmlto,
                     netpbm,
                     libxml2-doc,
                     libglib2.0-doc
Standards-Version: 3.8.4
Homepage: http://gstreamer.freedesktop.org

Package: libgstreamer0.11-0
Architecture: any
Section: libs
Depends: ${shlibs:Depends},
         ${misc:Depends}
Suggests: gstreamer0.11-tools,
          gstreamer0.11-plugins-base
Replaces: gobject-introspection-repository (<< 0.6.5-2)
Description: Core GStreamer libraries and elements
 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 core library and elements.

Package: libgstreamer0.11-0-dbg
Architecture: any
Section: debug
Priority: extra
Depends: libgstreamer0.11-0 (= ${binary:Version}),
         ${misc:Depends}
Description: Core GStreamer libraries and elements
 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: libgstreamer0.11-dev
Architecture: any
Section: libdevel
Depends: libgstreamer0.11-0 (= ${binary:Version}),
         libc6-dev | libc-dev,
         pkg-config,
         libglib2.0-dev,
         libxml2-dev,
         ${shlibs:Depends},
         ${misc:Depends},
         gir1.2-gstreamer-0.11 (= ${binary:Version})
Recommends: debhelper
Suggests: gstreamer0.11-doc
Description: GStreamer core development files
 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 the core library and
 elements.

Package: gstreamer0.11-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
         libxml2-doc,
         libglib2.0-doc
Recommends: libgstreamer0.11-dev (= ${source:Version})
Description: GStreamer core documentation and manuals
 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 documentation for core libraries and elements as
 well as:
  * the GStreamer Manual
  * the GStreamer Plugin Writers Guide
  * Various API docs

Package: gstreamer0.11-tools
Architecture: any
Section: utils
Depends: ${shlibs:Depends},
         ${misc:Depends},
         pkg-config,
         libgstreamer0.11-0 (>= 0.11.1)
Suggests: gstreamer0.11-plugins-base
Description: Tools for use with GStreamer
 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 versioned command-line tools for GStreamer.

Package: gir1.2-gstreamer-0.11
Section: libs
Architecture: any
Depends: ${gir:Depends},
         ${shlibs:Depends},
         ${misc:Depends},
         ${gir:Depends}
Description: Description: GObject introspection data for the GStreamer library
 This package contains introspection data for the GStreamer streaming media
 framework.
 .
 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.
 .
 It can be used by packages using the GIRepository format to generate
 dynamic bindings.

