gst-plugins-bad1.0 (1.10.3-1) unstable; urgency=medium

  * New upstream bugfix release

 -- Sebastian Dröge <slomo@debian.org>  Mon, 30 Jan 2017 15:51:48 +0200

gst-plugins-bad1.0 (1.10.2-1) unstable; urgency=medium

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Drop mimic plugin (Closes: #765534). Library is RM candidate and
      upstream just removed the plugin today.
    + Drop schroedinger plugin, see #845037.
  * New upstream bugfix release

 -- Sebastian Dröge <slomo@debian.org>  Tue, 29 Nov 2016 15:53:26 +0200

gst-plugins-bad1.0 (1.10.1-1) unstable; urgency=medium

  * debian/rules:
    + Add wayland-protocols to the build-dependencies as required for jessie.
      Nowadays it is automatically pulled in somehow. Patch by Marc Leeman.
  * New upstream bugfix release

 -- Sebastian Dröge <slomo@debian.org>  Thu, 17 Nov 2016 15:04:49 +0200

gst-plugins-bad1.0 (1.10.0-1) unstable; urgency=medium

  [ Helmut Grohne ]
  * Mark gstreamer1.0-doc Multi-Arch: foreign (Closes: #842526).

  [ Sebastian Dröge ]
  * New upstream stable release (Closes: #841413, #828335).

 -- Sebastian Dröge <slomo@debian.org>  Tue, 01 Nov 2016 17:52:23 +0200

gst-plugins-bad1.0 (1.9.90-1) experimental; urgency=medium

  * New upstream unstable release:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GStreamer >= 1.9.90.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 30 Sep 2016 12:38:21 +0300

gst-plugins-bad1.0 (1.9.2-1) experimental; urgency=medium

  * New upstream unstable release:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GStreamer >= 1.9.2.
    + debian/build-deps.in,
      debian/gstreamer-plugins-bad.install:
      - Include new timecode and webrtcdsp plugins.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 01 Sep 2016 12:13:09 +0300

gst-plugins-bad1.0 (1.9.1-1) experimental; urgency=medium

  * New upstream unstable release:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GStreamer >= 1.9.1.
    + debian/build-deps.in,
      debian/gstreamer-plugins-bad.install:
      - Include new musepack, dc1394 and lv2 plugins.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 06 Jul 2016 13:01:53 +0300

gst-plugins-bad1.0 (1.8.2-1) unstable; urgency=medium

  * New upstream bugfix release.
  * debian/build-deps.in:
    + Switch from OpenJPEG 1.5 to 2.1.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 09 Jun 2016 11:32:08 +0300

gst-plugins-bad1.0 (1.8.1-2) unstable; urgency=medium

  * debian/build-deps.in:
    + Patch by Tobias Frost to fix FTBFS on Hurd (Closes: #822675).

 -- Sebastian Dröge <slomo@debian.org>  Mon, 02 May 2016 08:55:41 +0300

gst-plugins-bad1.0 (1.8.1-1) unstable; urgency=medium

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 20 Apr 2016 18:18:02 +0300

gst-plugins-bad1.0 (1.8.0-1) unstable; urgency=medium

  * New upstream stable release:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GStreamer >= 1.8.0.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 24 Mar 2016 12:32:02 +0200

gst-plugins-bad1.0 (1.7.91-1) experimental; urgency=medium

  * debian/build-deps.in:
    + Remove libjasper-dev. It's unused and supposed to be removed soon.
      (Closes: #818213).
  * New upstream release candidate:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GStreamer >= 1.7.91.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 02 Mar 2016 16:45:09 +0200

gst-plugins-bad1.0 (1.7.90-1) experimental; urgency=medium

  [ Iain Lane ]
  * debian/watch: Fix to work with upstream locations

  [ Sebastian Dröge ]
  * New upstream release candidate:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GStreamer >= 1.7.90.
    + debian/gstreamer-plugins-bad.install:
      - Ship new opusparse plugin, renamed from opus and only contains
        the parser now.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 01 Mar 2016 17:25:00 +0200

gst-plugins-bad1.0 (1.7.2-1) experimental; urgency=medium

  * New upstream unstable release:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GStreamer >= 1.7.2.
      - Update faad dependency to >= 2.7 and rsvg to >= 2.36.2.
    + debian/gstreamer-plugins-bad.install:
      - Drop mpg123 (moved to -ugly) and rtpbad (moved to -good) plugins.
      - Add new netsim plugin.
    + debian/libgstreamer-plugins-bad*.install:
      - Add new badaudio library.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 19 Feb 2016 11:29:54 +0200

gst-plugins-bad1.0 (1.7.1-1) experimental; urgency=medium

  * New upstream unstable release:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GLib >= 2.40 and GStreamer >= 1.7.1.
      - Build-depend on libass >= 0.10.2.
      - Build-depend on libdrm-dev.
    + debian/gstreamer-plugins-base.install:
      - Drop liveadder plugin and add new videoframe_audiolevel plugin.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 24 Dec 2015 14:23:55 +0100

gst-plugins-bad1.0 (1.6.2-1) unstable; urgency=medium

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 14 Dec 2015 19:33:55 +0100

gst-plugins-bad1.0 (1.6.1-1) unstable; urgency=medium

  * debian/control.in:
    + Remove duplicated word from description (Closes: #800138).
  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 02 Oct 2015 10:13:01 +0300

gst-plugins-bad1.0 (1.6.0-1) unstable; urgency=medium

  * New upstream stable release.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 25 Sep 2015 23:02:02 +0200

gst-plugins-bad1.0 (1.5.91-1) experimental; urgency=medium

  * New upstream release candidate.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 18 Sep 2015 19:39:16 +0200

gst-plugins-bad1.0 (1.5.90-1) experimental; urgency=medium

  * New upstream release candidate.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 19 Aug 2015 13:35:43 +0300

gst-plugins-bad1.0 (1.5.2-1) experimental; urgency=medium

  * New unstable upstream release.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 24 Jun 2015 23:29:59 +0200

gst-plugins-bad1.0 (1.5.1-1) experimental; urgency=medium

  * New unstable upstream release.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 07 Jun 2015 11:03:58 +0200

gst-plugins-bad1.0 (1.5.0.1+git20150513-1) experimental; urgency=medium

  * New upstream GIT snapshot.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 13 May 2015 15:48:32 +0300

gst-plugins-bad1.0 (1.5.0.1+git20150316-2) experimental; urgency=medium

  * debian/libgstreamer-plugins-bad-dev.install:
    + Include platform dependent GL headers.
  * debian/libgstreamer-plugins-bad-dev.install,
    debian/rules,
    debian/build-deps.in:
    + Include GObject-Introspection files for the libraries.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 23 Mar 2015 10:04:25 +0100

gst-plugins-bad1.0 (1.5.0.1+git20150316-1) experimental; urgency=medium

  * New upstream GIT snapshot:
    + Add new bs2b, de265, x265, dtls, rtp plugins.
    + Add ported vcd and bluez5 plugins.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 17 Mar 2015 09:42:54 +0100

gst-plugins-bad1.0 (1.4.5-1) experimental; urgency=medium

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 18 Dec 2014 12:25:07 +0100

gst-plugins-bad1.0 (1.4.4-2) unstable; urgency=medium

  * Upload to unstable.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 11 Nov 2014 13:40:12 +0100

gst-plugins-bad1.0 (1.4.4-1) experimental; urgency=medium

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 06 Nov 2014 12:56:37 +0100

gst-plugins-bad1.0 (1.4.3-2) unstable; urgency=medium

  * debian/build-deps.in:
    + Build-depend on libgnutls28-dev instead of libgnutls-dev. The latter is
      removed. We don't actually need to build-depend on it anymore but because
      of a missing dependency in librtmp-dev we still need it (Closes: #764100).
  * debian/build-deps.in:
    + Remove unused libdirac-dev build dependency (Closes: #761012).

 -- Sebastian Dröge <slomo@debian.org>  Sun, 05 Oct 2014 20:30:36 +0300

gst-plugins-bad1.0 (1.4.3-1) unstable; urgency=medium

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 24 Sep 2014 12:14:37 +0300

gst-plugins-bad1.0 (1.4.2-1) unstable; urgency=medium

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 19 Sep 2014 14:40:05 +0300

gst-plugins-bad1.0 (1.4.1-1) unstable; urgency=medium

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 27 Aug 2014 14:45:20 +0300

gst-plugins-bad1.0 (1.4.0-1) unstable; urgency=medium

  * New upstream stable release.
  * debian/rules:
    + Disable bluez plugin for now until someone ports it to bluez5 (Closes: #755157).

 -- Sebastian Dröge <slomo@debian.org>  Sat, 19 Jul 2014 17:22:10 +0200

gst-plugins-bad1.0 (1.3.91-1) experimental; urgency=medium

  * New upstream release candidate:
    + debian/rules,
      debian/build-deps.in:
      - Build-depend on GStreamer core and base >= 1.3.91.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 11 Jul 2014 11:51:10 +0200

gst-plugins-bad1.0 (1.3.90-2) experimental; urgency=medium

  [ Sebastian Dröge ]
  * debian/gstreamer-plugins-bad.install:
    + Include mpeg2enc plugin.

  [ Sjoerd Simons ]
  * debian/patches/01_fix-modplug-linking.patch
    - Re-add. Fixes FTBS on i386

 -- Sjoerd Simons <sjoerd@debian.org>  Tue, 01 Jul 2014 15:01:07 +0200

gst-plugins-bad1.0 (1.3.90-1) experimental; urgency=medium

  * New upstream release candidate:
    + debian/rules,
      debian/build-deps.in:
      - Build-depend on GStreamer core and base >= 1.3.90.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 28 Jun 2014 11:55:38 +0200

gst-plugins-bad1.0 (1.3.3-2) experimental; urgency=medium

  * Team upload.

  * debian/gbp.conf:
    + Fix branch names for experimental.
  * debian/gstreamer-plugins-bad.install,
    debian/rules:
    + Install the wayland sink on linux.

 -- Emilio Pozuelo Monfort <pochu@debian.org>  Thu, 26 Jun 2014 18:47:12 +0200

gst-plugins-bad1.0 (1.3.3-1) experimental; urgency=medium

  * New upstream development release:
    + debian/rules,
      debian/build-deps.in:
      - Build-depend on GStreamer core and base >= 1.3.3.
    + debian/gstreamer-plugins-bad.install,
      debian/libgstreamer-plugins-bad*.install:
      - Add new compositor plugin and new libraries.
  * debian/rules:
    + Run autopoint during autoreconf.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 22 Jun 2014 18:14:52 +0200

gst-plugins-bad1.0 (1.3.2-1) experimental; urgency=medium

  * New upstream development release:
    + debian/rules,
      debian/build-deps.in:
      - Build-depend on GStreamer core and base >= 1.3.2.
      - Disable libssh2-1-dev support until it's installable again.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 21 May 2014 12:54:58 +0200

gst-plugins-bad1.0 (1.3.1-1) experimental; urgency=medium

  * New upstream development release:
    + debian/rules,
      debian/build-deps.in:
      - Build-depend on GStreamer core and base >= 1.3.1.
      - Build-depend on libopenexr.
      - Build-depend on libssh2-1-dev.
      - Build-depend on nettle-dev.
      - Build-depend on libgl1-mesa-dev and libglu1-mesa-dev.
      - Drop build-dependency on liblv2-dev, it was not used
        at all (Closes: #740831).
    + debian/libgstreamer-plugins-bad.install,
      debian/gstreamer-plugins-bad.install:
      - Drop the removed eglglessink plugin and libgstegl library.
      - Add the new opengl plugin and libgstgl library.
      - Add new audiomixer, ivfparse, jp2kdecimator, openexr,
        sndfile, stereo, videosignal and vmnc plugins.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 03 May 2014 19:26:42 +0200

gst-plugins-bad1.0 (1.2.4-1) unstable; urgency=medium

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Enable mplex plugin (Closes: #726064).
  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 18 Apr 2014 15:39:35 +0200

gst-plugins-bad1.0 (1.2.3-1) unstable; urgency=medium

  [ Iain Lane ]
  * Drop ltmain-as-needed patch and do the same with dh_autoreconf
    --as-needed.
  * Enable parallel builds.

  [ Sebastian Dröge ]
  * New upstream bugfix release.
  * debian/patches/02_opencv-linking.patch:
    + Fix linking of opencv plugin by working around yet again broken
      opencv pkg-config file.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 09 Feb 2014 11:37:09 +0100

gst-plugins-bad1.0 (1.2.2-1) unstable; urgency=medium

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 27 Dec 2013 11:02:32 +0100

gst-plugins-bad1.0 (1.2.1-2) unstable; urgency=medium

  * debian/rules,
    debian/gstreamer-plugins-bad.install:
    + Enable the OpenCV plugin again, now that all the linking errors are gone.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 15 Dec 2013 15:11:34 +0100

gst-plugins-bad1.0 (1.2.1-1) unstable; urgency=low

  [ Fabian Greffrath ]
  * Team upload.
  * Update Vcs-Browser field in debian/control{,.in}.
  * Turn versioned Conflicts into Breaks to simplify lockstep upgrades.

  [ Sebastian Dröge ]
  * New upstream bugfix release:
    + debian/patches/0001-bluez-Fix-compilation-on-big-endian-systems.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 09 Nov 2013 17:10:09 +0100

gst-plugins-bad1.0 (1.2.0-4) unstable; urgency=low

  * debian/rules,
    debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Only enable sbc plugin on Linux, it's not available elsewhere.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 04 Oct 2013 10:06:43 +0200

gst-plugins-bad1.0 (1.2.0-3) unstable; urgency=low

  * debian/rules,
    debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Only enable bluez plugin on Linux, it's not available elsewhere.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 27 Sep 2013 13:52:58 +0200

gst-plugins-bad1.0 (1.2.0-2) unstable; urgency=low

  * debian/patches/0001-bluez-Fix-compilation-on-big-endian-systems.patch:
    + Fix compilation on big endian systems.
  * debian/build-deps.in:
    + Tighten build dependency on libopenal-dev to >= 1:1.14 (Closes: #724669).

 -- Sebastian Dröge <slomo@debian.org>  Thu, 26 Sep 2013 15:02:54 +0200

gst-plugins-bad1.0 (1.2.0-1) unstable; urgency=low

  * New upstream stable release:
    + debian/rules,
      debian/build-deps.in:
      - Build depend on GStreamer and gst-plugins-base >= 1.2.0.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 24 Sep 2013 16:59:40 +0200

gst-plugins-bad1.0 (1.1.90-1) experimental; urgency=low

  * New upstream release candidate:
    + debian/rules,
      debian/build-deps.in:
      - Build depend on GStreamer and gst-plugins-base >= 1.1.90.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 19 Sep 2013 12:53:58 +0200

gst-plugins-bad1.0 (1.1.4-3) experimental; urgency=low

  * debian/patches/03_modplug-includes.patch:
    + Fix build with the new modplug version by including the
      modplug headers properly. Thanks to Iain Lane for the patch.
  * debian/patches/04_opencv-2.4.6.1.patch:
    + Fix build with OpenCV 2.4.6.1.
  * debian/gstreamer-plugins-bad.install:
    + Disable OpenCV plugin again for now until the libraries
      are --as-needed clean again.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 10 Sep 2013 11:12:25 +0200

gst-plugins-bad1.0 (1.1.4-2) experimental; urgency=low

  * debian/patches/02_soundtouch-int.patch:
    + Fix compilation on armel, where soundtouch is compiled as an integer
      version instead of floats as everywhere else.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 02 Sep 2013 10:38:03 +0200

gst-plugins-bad1.0 (1.1.4-1) experimental; urgency=low

  * New upstream development snapshot:
    + debian/rules,
      debian/build-deps.in:
      - Build depend on GStreamer and gst-plugins-base >= 1.1.4.
    + debian/build-deps.in,
      debian/gstreamer-plugins-bad.install:
      - Add webp plugin.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 30 Aug 2013 13:06:41 +0200

gst-plugins-bad1.0 (1.1.3-1) experimental; urgency=low

  * New upstream development snapshot:
    + debian/rules,
      debian/build-deps.in:
      - Build depend on GStreamer and gst-plugins-base >= 1.1.3.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 30 Jul 2013 08:51:10 +0200

gst-plugins-bad1.0 (1.1.2-1) experimental; urgency=low

  * New upstream development snapshot:
    + debian/rules,
      debian/build-deps.in:
      - Build depend on GStreamer and gst-plugins-base >= 1.1.2.
      - Build depend on orc >= 0.4.17.
      - Build depend on gnutls.
      - Build depend on rsvg >= 2.36.
    + debian/build-deps.in,
      debian/gstreamer-plugins-bad.install:
      - Add new bluez, fluidsynth, dash, smoothstreaming, opencv,
        openjpeg, sbc, srtp, accurip, audiofxbad, ivtc, midi,
        videofiltersbad, yadif, chromaprint plugins (Closes: #702341).
      - Add newly ported aiff, freeverbm, kate, ladspa, mxf, rsvg
        wildmidi, decklink, fbdev, uvch264, ofa, rfbsrc, openal
        plugins (Closes: #712966).
    + debian/libgstreamer-plugins-bad.install:
      - Add new EGL, insertbin, mpegts and uridownloader libs.
      - Remove removed basevideo library.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 14 Jul 2013 12:44:45 +0200

gst-plugins-bad1.0 (1.0.8-1) unstable; urgency=low

  * New upstream bugfix release.
  * debian/build-deps.in:
    + Build-depend on gst-plugins-base >= 1.0.8 for a macro fix.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 13 Jul 2013 11:33:12 +0200

gst-plugins-bad1.0 (1.0.7-1) unstable; urgency=low

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 26 Apr 2013 14:10:58 +0200

gst-plugins-bad1.0 (1.0.6-1) unstable; urgency=low

  * New upstream bugfix release:
    + debian/gstreamer-plugins-bad.install,
      debian/build-deps.in:
      - Add newly ported OpenGLES2/EGL plugin.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 22 Mar 2013 18:24:57 +0100

gst-plugins-bad1.0 (1.0.5-1) unstable; urgency=low

  * New upstream bugfix release:
    + debian/gstreamer-plugins-bad.install:
      - Add newly ported mpegpsmux plugin.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 08 Jan 2013 13:56:44 +0100

gst-plugins-bad1.0 (1.0.4-1) unstable; urgency=low

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 19 Dec 2012 10:35:07 +0100

gst-plugins-bad1.0 (1.0.3-1) unstable; urgency=low

  * New upstream bugfix release.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 21 Nov 2012 15:05:51 +0100

gst-plugins-bad1.0 (1.0.2-1) unstable; urgency=low

  * New upstream bugfix release:
    + debian/gstreamer-plugins-bad.install:
      - Add subenc and fieldanalysis plugins.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 25 Oct 2012 14:13:33 +0200

gst-plugins-bad1.0 (1.0.1-1) unstable; urgency=low

  * New upstream bugfix release:
    + debian/gstreamer-plugins-bad.install:
      - Add frei0r plugin.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 08 Oct 2012 11:12:00 +0200

gst-plugins-bad1.0 (1.0.0-1) unstable; urgency=low

  * New upstream release:
    + debian/build-deps.in,
      debian/rules:
      - Build depend on GStreamer core/base >= 1.0.0.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 25 Sep 2012 00:29:02 +0200

gst-plugins-bad1.0 (0.11.99-1) experimental; urgency=low

  * New upstream release:
    + debian/build-deps.in,
      debian/rules:
      - Build depend on GStreamer core/base >= 0.11.99.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 18 Sep 2012 11:26:04 +0200

gst-plugins-bad1.0 (0.11.94-1) experimental; urgency=low

  * New upstream release:
    + debian/build-deps.in,
      debian/rules:
      - Build depend on GStreamer core/base >= 0.11.94.
      - Build depend on gtk-doc >= 1.12.
    + debian/gstreamer-plugins-bad.install,
      debian/rules:
      - Add the freeze, gdp, id3tag, inter, jpegformat, liveadder,
        pnm, siren, spandsp, speed, dvb, resindvd plugins.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 14 Sep 2012 11:30:28 +0200

gst-plugins-bad1.0 (0.11.93-1) experimental; urgency=low

  * New upstream release:
    + debian/build-deps.in,
      debian/rules:
      - Build depend on GStreamer core/base >= 0.11.93.
    + debian/build-deps.in:
      - Build depend on libmpg123-dev (>= 1.13).
      - Build depend on GLIB >= 2.32.
    + debian/gstreamer-plugins-bad.install:
      - Add festival, interlace, mimic, mpegtsmux, mpg123
        and soundtouch plugins.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 09 Aug 2012 11:40:32 +0200

gst-plugins-bad1.0 (0.11.92-1) experimental; urgency=low

  * debian/rules,
    debian/gstreamer-plugins-bad.install:
    + Build the cdaudio plugin on kfreebsd too.
  * New upstream release, "Shine On You Crazy Diamond":
    + debian/build-deps.in,
      debian/rules:
      - Build depend on GStreamer core/base >= 0.11.92.
    + debian/build-deps.in:
      - Require orc >= 0.4.16.
    + debian/patches/0001-vp8enc-fix-target-bitrate-config-with-libvpx-1.1.0.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 08 Jun 2012 13:13:33 +0200

gst-plugins-bad1.0 (0.11.91-3) experimental; urgency=low

  * debian/build-deps.in:
    + Drop unconditional libcdaudio build dependency.
      It's not available on hurd.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 04 Jun 2012 12:42:49 +0200

gst-plugins-bad1.0 (0.11.91-2) experimental; urgency=low

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Drop CELT plugin and add OPUS plugin.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 30 May 2012 15:11:21 +0200

gst-plugins-bad1.0 (0.11.91-1) experimental; urgency=low

  * New upstream release, "Be he alive, or be he dead":
    + debian/build-deps.in,
      debian/rules:
      - Build depend on GStreamer core/base >= 0.11.91.
    + debian/gstreamer-plugins-bad.install:
      - Re-add plugins that are ported now.
  * debian/control.in,
    debian/rules:
    + Update automake, autoconf, libtool, debhelper dependencies.
    + Update Standards-Version.
  * debian/build-deps.in:
    + Drop lv2core dependency, not needed anymore.
  * debian/patches/0001-vp8enc-fix-target-bitrate-config-with-libvpx-1.1.0.patch:
    + Patch from upstream GIT to fix vp8 encoder with libvpx 1.1.0.
  * debian/libgstreamer-plugins-bad-dev.install:
    + Drop .a files from the -dev package.
  * debian/rules:
    + Fix dh_gstscancodecs call.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 21 May 2012 16:00:47 +0200

gst-plugins-bad1.0 (0.11.90-1) experimental; urgency=low

  [ Olivier Naudan ]
  * Imported Upstream version 0.11.90
  * Imported debian/ from gst-plugins-bad 0.10.23-1
  * Updated debian/ for GStreamer 1.0
  * Removed gstreamer-sdl, not ported to 0.11
  * gstreamer-plugins-bad.install: Removed the plugins that have not been ported
  * gstreamer-plugins-bad.install: Removed schemas
  * gstreamer-plugins-bad.install: Added presets (.prs)
  * debian/rules: disable pvrvideosink, until it is ported to gst 0.11

  [ Sebastian Dröge ]
  * Build-depend on GLib >= 2.31.14.
  * Remove obsolete Provides and Replaces
  * Merge changes from 0.10.23-2.
  * Update copyright

 -- Sebastian Dröge <slomo@debian.org>  Thu, 03 May 2012 20:06:18 +0200

gst-plugins-bad0.11 (0.11.1-1~ppa1) oneiric; urgency=low

  * New upstream release, 0.11.1

 -- Olivier Naudan <o-naudan@ti.com>  Thu, 01 Mar 2012 13:02:01 +0100

gst-plugins-bad0.10 (0.10.23-1) unstable; urgency=low

  * New upstream stable release, "The Game Has Changed":
    + debian/rules,
      debian/build-deps.in:
      - (Build-) depend on GStreamer core/base >= 0.10.36.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 21 Feb 2012 10:58:52 +0100

gst-plugins-bad0.10 (0.10.22.3-2) experimental; urgency=low

  * debian/control.in,
    debian/gstreamer-plugins-bad.install,
    debian/libgstreamer-plugins-bad-dev.install,
    debian/libgstreamer-plugins-bad.install,
    debian/rules:
    + Split the libraries into their own package and add a -dev package.
      The API of the library is not guaranteed to be stable and as such
      the shlibs of the library package are very strict and will require
      dependant libraries to get a rebuild after every new upstream version.
      The libraries will be required by gstreamer-vaapi.
      Thanks to Timo Aaltonen <tjaalton@ubuntu.com> for the patch.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 08 Feb 2012 09:45:25 +0100

gst-plugins-bad0.10 (0.10.22.3-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/patches/01_dtsdec-libs.patch,
      debian/patches/02_teletextdec-subdirs.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 06 Feb 2012 10:52:44 +0100

gst-plugins-bad0.10 (0.10.22.2-2) experimental; urgency=low

  * debian/control.in:
    + Build-depend on automake (>= 1.10), autoconf (>= 2.60) and
      libtool (>= 2.0) to make dh-autoreconf actually work.
  * debian/control.in:
    + Pre-depend on ${misc:Pre-Depends} for multi-arch.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 14 Dec 2011 10:18:38 +0100

gst-plugins-bad0.10 (0.10.22.2-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/build-deps.in,
      debian/rules:
      - Build-depend on GStreamer core/base 0.10.35.2.
      - Build-depend on GLib 2.24.
    + debian/build-deps.in,
      debian/gstreamer-plugins-bad.install,
      debian/gstreamer-amrwbenc.install,
      debian/README.Debian:
      - Add audiovisualizers, cdaudio, faceoverlay, freeverb,
        inter, openal, removesilence, smooth, spandsp, teletextdec,
        voaacenc, voamrwbenc plugins.
      - Remove invtelecine, mpeg4videoparse plugins.
      - Remove amrwbenc extra plugin.
    + debian/patches/01_path-max.patch:
      - Dropped, merged upstream.
    + debian/patches/99_ltmain_as-needed.patch:
      - Refreshed to apply cleanly again.
    + debian/patches/01_dtsdec-libs.patch:
      - Add libgstbase to the libraries of dtsdec.
    + debian/patches/02_teletextdec-subdirs.patch:
      - Add the teletextdec directory to SUBDIRS.
  * debian/control.in:
    + Suggest frei0r-plugins (Closes: #633097).
  * debian/build-deps.in,
    debian/compat,
    debian/control.in,
    debian/gstreamer-amrwbenc.install,
    debian/gstreamer-faac.install,
    debian/gstreamer-mpeg2enc.install,
    debian/gstreamer-plugins-bad.install,
    debian/gstreamer-sdl.install,
    debian/rules:
    + Transition package to multi-arch (Closes: #647487).
      Patch taken from the Ubuntu package.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 12 Dec 2011 10:41:20 +0100

gst-plugins-bad0.10 (0.10.22-3) unstable; urgency=low

  * Add xvid to the bad plugin set as it's available in debian now.
  * Remove any reference to LAME or MP3 from README.Debian.

 -- Fabian Greffrath <fabian+debian@greffrath.com>  Fri, 29 Jul 2011 13:24:53 +0200

gst-plugins-bad0.10 (0.10.22-2) unstable; urgency=low

  * debian/patches/01_path-max.patch:
    + Don't use PATH_MAX, it's not defined on GNU Hurd and others.
      Thanks to Pino Toscano for the patch (Closes: #626795).

 -- Sebastian Dröge <slomo@debian.org>  Mon, 16 May 2011 09:13:54 +0200

gst-plugins-bad0.10 (0.10.22-1) unstable; urgency=low

  * New upstream release, "Toy Piano":
    + debian/patches/99_decklink.patch,
      debian/patches/99_decklink-linking.patch:
      - Dropped, merged upstream.    
    + debian/rules,
      debian/build-deps.in:
      - Build-depend on GStreamer core/base 0.10.33.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 10 May 2011 15:55:38 +0200

gst-plugins-bad0.10 (0.10.21.3-1) experimental; urgency=low

  * New upstream pre-release.
  * debian/rules,
    debian/gstreamer-plugins-bad.install:
    + Enable the decklink and linsys plugins.
  * debian/patches/99_decklink.patch,
    debian/patches/99_decklink-linking.patch:
    + Add decklink to sys/Makefile.am SUBDIRS and check
      for pthread.h and link to pthread.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 28 Apr 2011 09:20:34 +0200

gst-plugins-bad0.10 (0.10.21.2-1) experimental; urgency=low

  [ Alessandro Decina ]
  * debian/rules:
    + Include dh-autoreconf cdbs rule
  * debian/build-deps.in:
    + Add dependency on dh-autoreconf

  [ Loïc Minier ]
  * Use linux-any in build-deps instead of type-handling.
  * Rework sed calls to avoid cat | sed and sed | sed.
  * s/amrwb/amrwbenc/ in a leftover case statement in debian/extra; thanks
    Mohamed Amine IL Idrissi; closes: #592757.

  [ Sebastian Dröge ]
  * New upstream pre-release:
    + debian/patches/01_soundtouch-pc.patch,
      debian/patches/02_shm_fixes.patch:
      - Dropped, merged upstream.
    + debian/build-deps.in:
      - Update ORC build dependency to >= 0.4.11.
    + debian/rules,
      debian/build-deps.in:
      - Build-depend on GStreamer core/base >= 0.10.32.2.
    + debian/build-deps.in,
      debian/rules,
      debian/gstreamer-plugins-bad.install:
      - Remove audioparsersbad and qtmux plugins, they moved to -good.
      - Add curl, fieldanalysis, fragmented, mpegtsdemux, patchdetect,
        rtpvp8, sdi, videofiltersbad and videoparsersbad plugins.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 17 Apr 2011 11:10:36 +0200

gst-plugins-bad0.10 (0.10.21-4) unstable; urgency=low

  * Upload to unstable.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 22 Mar 2011 15:33:52 +0100

gst-plugins-bad0.10 (0.10.21-3) experimental; urgency=low

  [ Sebastian Dröge ]
  * debian/build-deps.in:
    + Build depend on libsoundtouch-dev (>= 1.5.0).
  * debian/control.in:
    + Remove conflicts for the Fluendo MPEG demuxer/muxer packages. They're
      not in the archive anymore and if they were they wouldn't conflict
      anymore because of changes in gst-plugins-bad.

  [ Sjoerd Simons ]
  * debian/patches/02_shm_fixes.patch
    * Added, various fixes for the SHM plugin (crasher, potential race
      conditions). From upstream git

 -- Sjoerd Simons <sjoerd@debian.org>  Wed, 16 Mar 2011 21:59:38 +0000

gst-plugins-bad0.10 (0.10.21-2) experimental; urgency=low

  * debian/build-deps.in,
    debian/patches/01_soundtouch-pc.patch:
    + The soundtouch pkg-config file is nowadays called soundtouch.pc and
      the name of the -dev package changed too (Closes: #612050).

 -- Sebastian Dröge <slomo@debian.org>  Mon, 07 Mar 2011 10:40:46 +0100

gst-plugins-bad0.10 (0.10.21-1) experimental; urgency=low

  * New upstream stable release, "Pink Noise":
    + debian/control.in,
      debian/build-deps.in:
      - Require GStreamer, gst-plugins-base >= 0.10.32.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 22 Jan 2011 14:12:31 +0100

gst-plugins-bad0.10 (0.10.20.4-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/control.in,
      debian/build-deps.in:
      - Require GStreamer, gst-plugins-base >= 0.10.31.4.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 19 Jan 2011 21:20:29 +0100

gst-plugins-bad0.10 (0.10.20.3-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/control.in,
      debian/build-deps.in:
      - Require GStreamer, gst-plugins-base >= 0.10.31.3

 -- Sebastian Dröge <slomo@debian.org>  Thu, 13 Jan 2011 13:59:14 +0100

gst-plugins-bad0.10 (0.10.20.2-1) experimental; urgency=low

  [ Emilio Pozuelo Monfort ]
  * debian/build-deps.in,
    debian/rules:
    + Use dpkg-vendor instead of lsb_release.

  [ Sebastian Dröge ]
  * New upstream pre-release:
    + debian/control.in,
      debian/build-deps.in:
      - Require GStreamer, gst-plugins-base >= 0.10.31.2
      - Require ORC >= 0.4.7.
    + debian/rules,
      debian/gstreamer-plugins-bad.install:
      - Drop the alsaspdif plugin, the functionality is in the alsa plugin now.
      - Drop the selector and valve plugins, they're in GStreamer core now.
      - Drop the jack plugin, it's in gst-plugins-good now.
      - Add the new camerabin2, colorspace, dvbsuboverlay, interlace,
        jp2kdecimator and y4mdec plugins.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 10 Jan 2011 15:17:04 +0100

gst-plugins-bad0.10 (0.10.20-2) experimental; urgency=low

  * debian/build-deps.in:
    + Add the epoch to the orc build dependency to get dependencies on
      the correct version.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 17 Sep 2010 13:26:42 +0200

gst-plugins-bad0.10 (0.10.20-1) experimental; urgency=low

  * New upstream release, "For it is a Human Number".

 -- Sebastian Dröge <slomo@debian.org>  Fri, 03 Sep 2010 12:37:05 +0200

gst-plugins-bad0.10 (0.10.19.5-1) experimental; urgency=low

  * New upstream pre-release.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 30 Aug 2010 16:13:21 +0200

gst-plugins-bad0.10 (0.10.19.4-1) experimental; urgency=low

  * New upstream pre-release.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 21 Aug 2010 22:00:02 +0200

gst-plugins-bad0.10 (0.10.19.3-1) experimental; urgency=low

  * debian/build-deps.in:
    + Fix build dependency on libdvdnav-dev to be ignored
      on GNU Hurd for real now (Closes: #585095).
  * New upstream pre-release:
    + debian/patches/01_wildmidi-0.2.3.patch,
      debian/patches/99_autoreconf.patch:
      - Dropped, merged upstream.
    + debian/build-deps.in,
      debian/rules:
      - Build depend on GStreamer and gst-plugins-base 0.10.30.
      - Build depend on orc instead of liboil.
      - Build depend on GLib >= 2.20 and GTK >= 2.14.
      - Build depend on celt >= 0.5.0.
    + debian/build-deps.in,
      debian/gstreamer-plugins-bad.install:
      - Add the new coloreffects, gaudieffects, geometrictransform,
        gsettingselements, ivfparse, rtmpsrc, shm and videomaxrate
        plugins.
  * debian/rules,
    debian/compat,
    debian/control.in,
    debian/source/format,
    debian/patches/*:
    + Update to debhelper compat level 7.
    + Update to source format 3.0 (quilt).

 -- Sebastian Dröge <slomo@debian.org>  Wed, 11 Aug 2010 11:44:23 +0200

gst-plugins-bad0.10 (0.10.19-2) unstable; urgency=low

  [Loïc Minier]
  * Fail before generating control if type-handling isn't installed; avoids
    silently generating a bogus control file.

  [Sebastian Dröge]
  * debian/rules,
    debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Don't build the resindvd plugin on GNU Hurd (Closes: #585095).
  * debian/patches/99_autoreconf.patch,
    debian/patches/01_wildmidi-0.2.3.patch,
    debian/build-deps.in:
    + Build against wildmidi 0.2.3 because of API changes and many
      bugfixes.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 07 Jul 2010 08:46:02 +0200

gst-plugins-bad0.10 (0.10.19-1) unstable; urgency=low

  * New upstream release, "The World Kicked Back".

 -- Sebastian Dröge <slomo@debian.org>  Mon, 31 May 2010 05:43:20 +0200

gst-plugins-bad0.10 (0.10.18.3-2) unstable; urgency=low

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Enable and ship the VP8 encoder/decoder plugin.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 29 May 2010 07:10:49 +0200

gst-plugins-bad0.10 (0.10.18.3-1) unstable; urgency=low

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Add the zbar plugin, now that zbar >= 0.9 is available.
  * New upstream pre-release:
    + debian/patches/*:
      - Drop all VP8/WebM patches and other patches that are upstream
        now. VP8 plugin is still not enabled and waiting for libvpx.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 26 May 2010 15:35:21 +0200

gst-plugins-bad0.10 (0.10.18.2-2) unstable; urgency=low

  * debian/patches/00*,
    debian/patches/98_autoreconf.patch,
    debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Add VP8 plugin.
  * debian/control.in:
    + Let the -doc package depend on the GStreamer core/base documentation
      for cross references.
  * Upload to unstable, the VP8 plugin is disabled until libvpx
    is accepted.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 22 May 2010 08:09:15 +0200

gst-plugins-bad0.10 (0.10.18.2-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/gstreamer-plugins-bad.install:
      - Remove the oss4audio plugin, it was moved to gstreamer0.10-plugins-good.
      - Add the segmentclip and invtelecine plugins.
    + debian/control.in,
      debian/build-deps.in:
      - Require GStreamer core/base >= 0.10.29.
  * debian/build-deps.in:
    + Build depend on GStreamer core/base documentation to get
      correct cross references.
  * debian/patches/01_resindvdbin-linking.patch:
    + Fix linking of the resindvdbin plugin.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 15 May 2010 10:03:19 +0200

gst-plugins-bad0.10 (0.10.18-2) unstable; urgency=low

  * debian/gstreamer-plugins-bad.install:
    + Add camerabin plugin.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 17 Mar 2010 14:54:11 +0100

gst-plugins-bad0.10 (0.10.18-1) unstable; urgency=low

  * New upstream stable release, "Dimishing Returns":
    + debian/rules,
      debian/build-deps.in:
      - Build depend on gstreamer and gst-plugins-base >= 0.10.27.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 08 Mar 2010 10:06:36 +0000

gst-plugins-bad0.10 (0.10.17.3-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/rules,
      debian/build-deps.in:
      - Build depend on gstreamer and gst-plugins-base >= 0.10.26.3.
    + debian/patches/01_faad-linking.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 25 Feb 2010 08:29:47 +0100

gst-plugins-bad0.10 (0.10.17.2-1) experimental; urgency=low

  * New upstream pre-release:
    + Fixes midi plugin that claims that it sometimes doesn't
      support files (Closes: #502952, #468083).
    + debian/build-deps.in,
      debian/rules:
      - Build depend on gstreamer and gst-plugins-base >= 0.10.26.2.
    + debian/build-deps.in:
      - Update orc and gtk build dependencies.
    + debian/gstreamer-plugins-bad.install,
      debian/build-deps.in:
      - Add adpcmdec, adpcmenc, dataurisrc, flite, jpegformat plugins.
      - Remove shapewipe plugin, it was moved to gst-plugins-good. 
    + debian/patches/01_cog-orc-memcpy.patch,
      debian/patches/02_cog-link-lm.patch,
      debian/patches/03_frei0r.patch:
      - Dropped, merged upstream.
    + debian/control.in:
      - Add Conflict with gst-plugins-ugly << 0.10.13.2 because of the
        id3mux plugin.
  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Add LV2 plugin again, now that broken plugins
      can't crash the main process anymore.
  * debian/patches/01_faad-linking.patch:
    + Fix linking of the faad plugin.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 19 Feb 2010 14:06:38 +0100

gst-plugins-bad0.10 (0.10.17-4) unstable; urgency=low

  * debian/build-deps.in:
    + And remove the unnecessary build dependencies for SDL again as
      bug #565579 is fixed now (Closes: #567775).

 -- Sebastian Dröge <slomo@debian.org>  Mon, 01 Feb 2010 05:35:12 +0100

gst-plugins-bad0.10 (0.10.17-3) unstable; urgency=low

  * debian/patches/03_frei0r.patch:
    + Patch from upstream GIT to ensure correct GObject property
      names (Closes: #565505).
  * debian/build-deps.in:
    + Add some unnecessary build dependencies to be able to build the
      SDL plugin, see libsdl1.2 bug #565579.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 16 Jan 2010 17:04:34 +0100

gst-plugins-bad0.10 (0.10.17-2) unstable; urgency=low

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Enable cog plugin.
  * debian/patches/01_cog-orc-memcpy.patch,
    debian/patches/02_cog-link-lm.patch:
    + Fix build of the cog plugin.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 14 Dec 2009 13:20:24 +0100

gst-plugins-bad0.10 (0.10.17-1) unstable; urgency=low

  * New upstream release, "Anny bobany".

 -- Sebastian Dröge <slomo@debian.org>  Tue, 17 Nov 2009 09:18:15 +0100

gst-plugins-bad0.10 (0.10.16.3-1) experimental; urgency=low

  * New upstream pre-release:
    + Fixes build with celt >= 0.7.0.
  * debian/rules:
    + Add gstreamer0.10-plugins-bad's library directory to LD_LIBRARY_PATH
      before calling dh_gstscancodecs. Otherwise some plugins can't be
      loaded because of missing libraries.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 13 Nov 2009 07:58:42 +0100

gst-plugins-bad0.10 (0.10.16.2-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/gstreamer-plugins-bad.install:
      - Rename aiffparse plugin to aiff.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 10 Nov 2009 10:28:32 +0100

gst-plugins-bad0.10 (0.10.16-1) unstable; urgency=low

  [ Fabian Greffrath ]
  * debian/extra, debian/gstreamer-amrwbenc.install, debian/README.Debian:
    + Renamed the gstreamer-amrwb extra package to gstreamer-amrwbenc. There's
      still the amrwb encoder in gst-plugins-bad because the opencore-amr
      codecs in gst-plugins-ugly have no amrwb encoder.

  [ Sebastian Dröge ]
  * New upstream bugfix release, "Sensible Precaution":
    + Fixes build of the faac plugin (Closes: #552080).

 -- Sebastian Dröge <slomo@debian.org>  Sat, 24 Oct 2009 06:17:23 +0200

gst-plugins-bad0.10 (0.10.15-1) unstable; urgency=low

  * New upstream release, "Ending the war".

 -- Sebastian Dröge <slomo@debian.org>  Wed, 21 Oct 2009 19:48:35 +0200

gst-plugins-bad0.10 (0.10.14.4-1) experimental; urgency=low

  * New upstream pre-release.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 16 Oct 2009 14:36:20 +0200

gst-plugins-bad0.10 (0.10.14.3-1) experimental; urgency=low

  * New upstream pre-release.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 16 Oct 2009 09:02:55 +0200

gst-plugins-bad0.10 (0.10.14.2-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/build-deps.in,
      debian/gstreamer-plugins-bad.install:
      - Remove xdgmime plugin, it's in gst-plugins-base now.
      - Add videomeasure, pnm, rsvg and mpegpsmux plugins.
    + debian/rules,
      debian/build-deps.in:
      - Update GStreamer and gst-plugins-base build dependencies.
    + debian/patches/02_libass-0.9.7.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 12 Oct 2009 17:14:50 +0200

gst-plugins-bad0.10 (0.10.14-4) unstable; urgency=low

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Disable the LV2 plugin until it works reliable and doesn't crash
      GStreamer on startup every time (Closes: #549189).
      Unfortunately I can't reproduce that crash...

 -- Sebastian Dröge <slomo@debian.org>  Sat, 03 Oct 2009 14:09:46 +0200

gst-plugins-bad0.10 (0.10.14-3) unstable; urgency=low

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Add the LV2 plugin.
  * debian/gstreamer-plugins-bad.install,
    debian/patches/01_static-unstable-libraries.patch:
    + Install the experimental helper libraries into /usr/lib but
      don't ship any headers or anything else. Static linking
      causes problems if multiple plugins use the same library.
  * debian/patches/99_automake.patch:
    + Dropped, not needed anymore.
  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Drop the neonhttpsrc plugin, the souphttpsrc plugin from
      gst-plugins-good is better in all cases.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 30 Sep 2009 12:43:23 +0200

gst-plugins-bad0.10 (0.10.14-2) unstable; urgency=low

  * debian/control.in:
    + Add a Replaces for gstreamer0.10-plugins-really-bad from the
      Debian Multimedia repository, which also contains the Dirac plugin
      (Closes: #544667).

 -- Sebastian Dröge <slomo@debian.org>  Wed, 02 Sep 2009 11:43:32 +0200

gst-plugins-bad0.10 (0.10.14-1) unstable; urgency=low

  * New upstream release, 'Your New Best Friends'.
  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Add game-music-emu plugin.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 30 Aug 2009 11:02:59 +0200

gst-plugins-bad0.10 (0.10.13.5-2) experimental; urgency=low

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Add mimic plugin.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 26 Aug 2009 19:02:30 +0200

gst-plugins-bad0.10 (0.10.13.5-1) experimental; urgency=low

  * New upstream pre-release.
  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Add Dirac plugin that uses the Dirac reference implementation.
  * debian/control.in:
    + Update Standards-Version to 3.8.3, no additional changes needed.
  * debian/build-deps.in,
    debian/patches/02_libass-0.9.7.patch:
    + Add support for building against libass >= 0.9.7.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 26 Aug 2009 17:40:24 +0200

gst-plugins-bad0.10 (0.10.13.3-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/build-deps.in:
      - Build depend on libass-dev (<< 0.9.7) because of API changes
        in that version that we don't support yet.
  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Remove gmyth plugin because libgmyth will be removed (Closes: #542128).

 -- Sebastian Dröge <slomo@debian.org>  Wed, 19 Aug 2009 08:55:24 +0200

gst-plugins-bad0.10 (0.10.13.2-1) experimental; urgency=low

  [ Fabian Greffrath ]
  * debian/extra:
    + Use @GST_PKGNAME@ instead of hard-coded "gstreamer0.10".
  * debian/extra, debian/gstreamer-x264.install, debian/README.Debian:
    + Removed all references to the x264 plugin which has been moved to
      gst-plugins-ugly0.10.

  [ Sebastian Dröge ]
  * New upstream pre-release:
    + Fixes integer overflow in MPEG demuxer that prevents playback of files
      larger than 4GB (Closes: #537392).
    + debian/patches/01_static-unstable-libraries.patch,
      debian/patches/99_automake.patch:
      - Only build static libraries, they're not API/ABI stable yet
        but are used by some plugins already.
    + debian/rules,
      debian/build-deps.in:
      - Update build dependencies.
    + debian/gstreamer-plugins-bad.install:
      - Add new asfmux, frei0r, kate and schroedinger plugins.
      - Remove rtpmanager plugin, which was moved to gst-plugins-good.
    + debian/control.in:
      - Add Conflicts/Replaces/Provides for gstreamer0.10-schroedinger.
  * debian/control.in:
    + Update Standards-Version to 3.8.2, no additional changes needed.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 12 Aug 2009 07:20:46 +0200

gst-plugins-bad0.10 (0.10.13-1) unstable; urgency=low

  * New upstream release, 'Supersonic Rocket':
    + debian/patches/01_hdvparse-link-libm.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 18 Jun 2009 13:47:30 +0200

gst-plugins-bad0.10 (0.10.12.2-1) experimental; urgency=low

  [ Fabian Greffrath ]
  * debian/extra:
    + gstreamer0.10-faac recommends gstreamer0.10-ffmpeg for
      the ffmux_mp4 element.

  [ Sebastian Dröge ]
  * New upstream pre-release:
    + debian/gstreamer-plugins-bad.install:
      - Add new plugins: hdvparse, id3tag and shapewipe.
    + debian/control.in:
      - Conflict with gst-plugins-ugly << 0.10.11.2 because of
        the id3tag plugin.
    + debian/patches/01_hdvparse-link-libm.patch:
      - Link hdvparse with -lm to fix unresolved symbols.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 06 Jun 2009 19:35:24 +0200

gst-plugins-bad0.10 (0.10.12-1) unstable; urgency=low

  * debian/build-deps.in:
    + Remove liblrdf build dependency as it only causes crashes
      in dependend packages like pidgin. There seems to be some
      kind of conflict if libraptor/liblrdf and libxml2 are used
      in the same process (Closes: #523345).
  * New upstream release, 'More than I can handle'.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 20 May 2009 23:19:08 +0200

gst-plugins-bad0.10 (0.10.11.3-1) experimental; urgency=low

  [ Sebastian Dröge ]
  * debian/control.in:
    + Update Standards-Version to 3.8.1, no additional changes needed.
  * New upstream pre-release:
    + debian/gstreamer-plugins-bad.install:
      - Remove flv, deinterlace and y4menc plugins that were moved
        to gst-plugins-good.

  [ Fabian Greffrath ]
  * debian/control, debian/control.in, debian/extra:
    + Removed duplicate Section fields from gstreamer0.10-plugins-bad and
      the extra plugins.
    + Changed Section to debug for gstreamer0.10-plugins-bad-dbg.
    + Added Depends on ${misc:Depends} to gstreamer0.10-plugins-bad-dbg and
      the extra plugins.
    + Improved duplicate short description for gstreamer0.10-plugins-bad-dbg.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 16 May 2009 14:04:37 +0200

gst-plugins-bad0.10 (0.10.11.2-1) experimental; urgency=low

  [ Fabian Greffrath ]
  * debian/TODO.Debian:
    + Removed, I don't think any of these things are still relevant.

  [ Sebastian Dröge ]
  * New upstream pre-release:
    + debian/build-deps.in,
      debian/rules:
      - Update build dependencies.
    + debian/gstreamer-plugins-bad.install:
      - Add new debugutilsbad plugin.
  * debian/build-deps.in:
    + Use unversioned libjack-dev b-d (Closes: #526109).

 -- Sebastian Dröge <slomo@debian.org>  Tue, 12 May 2009 09:51:24 +0200

gst-plugins-bad0.10 (0.10.11-2) unstable; urgency=low

  * Upload to unstable, now that the DirectFB transition is done.
  * debian/build-deps.in:
    + Build depend on liblrdf0-dev for the LADSPA plugin to enable support
      for reading RDF files for informations about LADSPA plugins.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 30 Mar 2009 14:41:32 +0200

gst-plugins-bad0.10 (0.10.11-1) experimental; urgency=low

  [ Sebastian Dröge ]
  * New upstream release, 'A precious stone'.

  [ Fabian Greffrath ]
  * debian/extra:
    + Added XB-GStreamer-* fields for the extra packages.
  * debian/rules:
    + Run debian/extra with sh (it has no execute permissions).
  * debian/build-deps, debian/control, debian/rules:
    + Order, wrap and indent Build-Depends; this will improve interdiffs for
      packages that provide the extra plugins.

  [ Sebastian Dröge ]
  * Upload to experimental to prevent blocking the ffmpeg/etc transition.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 26 Mar 2009 07:36:33 +0100

gst-plugins-bad0.10 (0.10.10.3-1) unstable; urgency=low

  * New upstream pre-release.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 14 Mar 2009 19:49:34 +0100

gst-plugins-bad0.10 (0.10.10.2-1) unstable; urgency=low

  * New upstream pre-release:
    + debian/patches/01_bpmdetect-stack-overflow.patch:
      - Dropped, merged upstream.
    + debian/build-deps.in:
      - Update gst-plugins-base build dependency to >= 0.10.22.
      - Update library build dependencies according to configure.ac.
    + debian/control.in,
      debian/gstreamer-plugins-bad.install:
      - This release now contains all plugins from gst-plugins-farsight
        and thus replaces files of it.
      - Add new plugins: assrender, autoconvert, dtmf, liveadder,
        rtpmux, siren, valve, xdgmime.
      - Remove filter plugin, it's obsoleted by audioiirfilter from
        gst-plugins-good.
      - Remove twolame plugin, it was moved to gst-plugins-ugly.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 10 Mar 2009 08:23:48 +0100

gst-plugins-bad0.10 (0.10.10-3) unstable; urgency=low

  * debian/patches/01_bpmdetect-stack-overflow.patch:
    + Patch from upstream GIT to fix stack overflow in the bpmdetect
      plugin.
  * debian/patches/02_no-Werror.patch,
    debian/rules:
    + Pass -Wno-error via C(XX)FLAGS instead of patching configure.
  * debian/build-deps.in:
    + Build depend on libdca-dev instead of libdts-dev, which is the
      successor. libdts-dev is still necessary for the dts.h header.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 23 Feb 2009 12:14:32 +0100

gst-plugins-bad0.10 (0.10.10-2) unstable; urgency=low

  * Upload to unstable.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 15 Feb 2009 20:12:00 +0100

gst-plugins-bad0.10 (0.10.10-1) experimental; urgency=low

  * New upstream release, 'Keep the dogies rollin'':
    + debian/rules:
      - Update GStreamer build dependencies.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 20 Jan 2009 09:12:34 +0100

gst-plugins-bad0.10 (0.10.9.3-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/patches/01_ladspa-modules.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 11 Jan 2009 21:31:03 +0100

gst-plugins-bad0.10 (0.10.9.2-1) experimental; urgency=low

  * New upstream pre-release:
    + A lot DVD nagivation fixes (Closes: #506573).
    + debian/patches/01_ladspa-modules.patch:
      - Add plugin dependency for the LADSPA modules to make sure
        that the plugin is updated when new LADSPA modules are installed.
    + debian/build-deps.in,
      debian/rules:
      - Update build dependencies.
    + debian/gstreamer-plugins-bad.install:
      - Add new plugins.
      - Remove speexresample (it's in gst-plugins-base as audioresample now).

 -- Sebastian Dröge <slomo@debian.org>  Thu, 08 Jan 2009 07:59:36 +0100

gst-plugins-bad0.10 (0.10.9-1) experimental; urgency=low

  * New upstream release, 'Matters Of Fact'.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 25 Oct 2008 09:39:49 +0200

gst-plugins-bad0.10 (0.10.8.4-1) experimental; urgency=low

  * New upstream pre-release.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 22 Oct 2008 11:20:04 +0200

gst-plugins-bad0.10 (0.10.8.3-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/gstreamer-plugins-bad.install:
      - Add apexsink plugin.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 18 Oct 2008 10:23:50 +0200

gst-plugins-bad0.10 (0.10.8.2-1) experimental; urgency=low

  * New upstream pre-release:
    + Some Midi playback fixes (Closes: #489170).
    + debian/patches/03_resindvd-update.patch:
      - Dropped, merged upstream.
    + debian/rules:
      - Build depend on gstreamer >= 0.10.21.
    + debian/build-deps.in:
      - Build depend on openssl.
      - Build depend on CELT.
      - Build depend on Jasper2k.
      - Build depend on TwoLAME.
    + debian/gstreamer-plugins-bad.install:
      - Add aiffparse, celt, dccp, jp2k, mpegdemux, mpegtsmux, pcapparse,
        scaletempo and twolame plugins (Closes: #482970).
    + debian/control.in:
      - Conflict with gstreamer0.10-fluendo-mpegdemux and
        gstreamer0.10-fluendo-mpegmux as the mpegdemux and mpegtsmux plugins
        from gst-plugins-bad are their successors.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 11 Oct 2008 15:48:19 +0200

gst-plugins-bad0.10 (0.10.8-3) experimental; urgency=low

  * debian/patches/03_resindvd-update.patch:
    + Update the resindvd plugin from latest CVS to get some important
      bugfixes.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 11 Oct 2008 12:59:59 +0200

gst-plugins-bad0.10 (0.10.8-2) experimental; urgency=low

  * debian/rules,
    debian/control.in:
    + Use the new automatic plugin installation infrastructure.
  * debian/control.in:
    + Wrap control fields.
    + Depend on gstreamer0.10-plugins-base as some plugins need it.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 15 Aug 2008 18:43:04 +0200

gst-plugins-bad0.10 (0.10.8-1) experimental; urgency=low

  * New upstream release, 'Vapour Trails'.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 01 Aug 2008 11:33:33 +0200

gst-plugins-bad0.10 (0.10.7.3-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/patches/03_resindvd-configure.patch,
      debian/patches/04_ladspa-linking.patch,
      debian/patches/05_resindvd-missing-header.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 26 Jul 2008 12:35:24 +0200

gst-plugins-bad0.10 (0.10.7.2-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/gstreamer-plugins-bad.install:
      - Remove replaygain and interleave plugins.
      - Add deinterlace2 plugin.
    + debian/gstreamer-plugins-bad.install,
      debian/build-deps.in:
      - Add resindvd plugin.
    + debian/rules,
      debian/build-deps.in:
      - Update gstreamer and gst-plugins-base build dependency.
    + debian/patches/02_wildmidi-config.patch,
      debian/patches/03_rtspsession_rtcp_bye.patch,
      debian/patches/04_mpeg4videoparse.patch:
      - Dropped, merged upstream.
    + Ported to the new libmpcdec API (Closes: #476380).
    + Fixes playback of certain mms streams (Closes: #467268).
  * debian/patches/03_resindvd-configure.patch:
    + Fix configure check for the resindvd plugin.
  * debian/patches/04_ladspa-linking.patch:
    + Link ladspa with -ldl to prevent unresolved symbols.
  * debian/patches/05_resindvd-missing-header.patch:
    + Add missing header file.
  * debian/control.in:
    + Update Standards-Version to 3.8.0, no additional changes needed.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 20 Jul 2008 12:07:37 +0200

gst-plugins-bad0.10 (0.10.7-2) unstable; urgency=low

  * debian/patches/03_rtspsession_rtcp_bye.patch
    + Added. Send RTCP BYE on EOS (From upstream CVS)
  * debian/control: Add myself to uploaders
  * debian/patches/04_mpeg4videoparse.patch
    + Added. mpeg4videoparse update from CVS
  * debian/rules: Append extra_plugins entries to debian/control instead of
    truncating it (Patch from Mike Massonnet) (Closes: #481034)

 -- Sjoerd Simons <sjoerd@debian.org>  Sun, 01 Jun 2008 16:08:37 +0200

gst-plugins-bad0.10 (0.10.7-1) unstable; urgency=low

  * New upstream release, 'House of Cards'.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 24 Apr 2008 07:42:15 +0200

gst-plugins-bad0.10 (0.10.6.4-1) experimental; urgency=low

  * New upstream pre-release.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 22 Apr 2008 10:29:25 +0200

gst-plugins-bad0.10 (0.10.6.3-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/patches/01_timidity-missing-header.patch:
      - Dropped, merged upstream.

 -- Sebastian Dröge <slomo@debian.org>  Fri, 18 Apr 2008 10:36:44 +0200

gst-plugins-bad0.10 (0.10.6.2-2) experimental; urgency=low

  * debian/patches/02_no-Werror.patch:
    + Don't build with -Werror to fix FTBFS on some architectures.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 15 Apr 2008 05:29:54 +0200

gst-plugins-bad0.10 (0.10.6.2-1) experimental; urgency=low

  * New upstream pre-release:
    + debian/build-deps.in,
      debian/rules:
      - Update build dependencies.
    + debian/rules,
      debian/gstreamer-plugins-bad.install:
      - Ship new dc1394, ofa, oss4audio, subenc plugins.
      - Drop souphttpsrc plugin which moved to gst-plugins-good.
    + debian/patches/01_wildmidi-build.patch,
      debian/patches/03_soup-icecast.patch,
      debian/patches/04_soup-primary-rank.patch,
      debian/patches/05_soup-no-dav.patch,
      debian/patches/06_neon-28.patch,
      debian/patches/10_fix-faad-header-check.patch
      debian/patches/75_build_docs_without_python_xml.patch,
      debian/patches/80_unit-tests.patch:
      - Dropped, merged upstream.
    + debian/patches/02_wildmidi-config.patch:
      - Updated for the new version.
    + debian/patches/01_timidity-missing-header.patch:
      - Add missing timidity header file.

 -- Sebastian Dröge <slomo@debian.org>  Mon, 14 Apr 2008 12:10:32 +0200

gst-plugins-bad0.10 (0.10.6-7) unstable; urgency=low

  * debian/patches/06_neon-28.patch:
    + Fix build with neon 0.28.
  * debian/build-deps.in:
    + Use neon-gnutls instead of plain neon.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 01 Apr 2008 13:19:03 +0200

gst-plugins-bad0.10 (0.10.6-6) unstable; urgency=low

  * debian/patches/03_soup-icecast.patch:
    + Set correct caps on the srcpad if we have an icecast server. Fixes
      glitches/crackling (Closes: #472135).
  * debian/patches/04_soup-primary-rank.patch:
    + Give souphttpsrc RANK_PRIMARY so it's used always as HTTP source if
      available.
  * debian/patches/05_soup-no-dav.patch:
    + Don't use soup for dav/davs. This is better handled by GIO and GnomeVFS
      as they provide authentication.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 22 Mar 2008 19:30:07 +0100

gst-plugins-bad0.10 (0.10.6-5) unstable; urgency=low

  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Include the soup HTTP plugin.
  * debian/build-deps.in:
    + Drop python-xml build dependency for real now.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 11 Mar 2008 05:31:11 +0100

gst-plugins-bad0.10 (0.10.6-4) unstable; urgency=low

  * debian/patches/75_build_docs_without_python_xml.patch:
    + Added. Build documentation using xml.dom.minidom instead of pyxml. Patch
      by Sebastian Dröge.
  * debian/control: Drop build-depend on python-xml
  * debian/patches/10_fix-faad-header-check.patch:
    + Added. Fix faad header check to match the check faad2 does. Fixes
      playback of various streams.

 -- Sjoerd Simons <sjoerd@debian.org>  Sat, 08 Mar 2008 19:59:00 +0100

gst-plugins-bad0.10 (0.10.6-3) unstable; urgency=low

  * debian/extra,
    debian/gstreamer-amrwb.install,
    debian/gstreamer-mpeg2enc.install,
    debian/README.Debian:
    + Patch by Fabian Greffrath to add support for an amrwb and mpeg2enc
      package and making the use of MPEG more conform (Closes: #467439).
  * debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Add the gmyth plugin.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 26 Feb 2008 08:35:54 +0100

gst-plugins-bad0.10 (0.10.6-2) unstable; urgency=low

  * debian/extra:
    + Update for new xvid package names in Debian Multimedia and Debian
      Unofficial Thanks to Fabian Greffrath (Closes: #466861).
      Also add support for x264 and do some small cleanup.
  * debian/rules:
    + SPC is only available on Linux-i386, enable it as such. Fixes
      FTBFS on kfreebsd-i386.
  * debian/build-deps.in,
    debian/patches/01_wildmidi-build.patch,
    debian/patches/02_wildmidi-config.patch,
    debian/gstreamer-plugins-bad.install:
    + Enable the wildmidi plugin and change the config file path to our
      default (Closes: #346455).

 -- Sebastian Dröge <slomo@debian.org>  Mon, 25 Feb 2008 07:03:11 +0100

gst-plugins-bad0.10 (0.10.6-1) unstable; urgency=low

  * New upstream release, "A Big Deep Breath":
    + debian/patches/01_linking-fixes.patch:
      - Dropped, merged upstream.
  * debian/rules,
    debian/build-deps.in,
    debian/gstreamer-plugins-bad.install:
    + Enable the alsaspdif, libcdaudio, dvb, fbdev and vcd plugins
      only on Linux architectures to try to fix FTBFS on kfreebsd.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 21 Feb 2008 13:34:46 +0100

gst-plugins-bad0.10 (0.10.5.4-1) experimental; urgency=low

  * New upstream pre-release.
  * debian/control.in:
    + Add Replaces for gstreamer0.10-plugins-bad-multiverse (<< 0.10.5-2) to
      keep the Ubuntu delta lower and don't break Debian installation with
      some Ubuntu packages.
  * debian/patches/99_ltmain_as-needed.patch,
    debian/rules:
    + Add -Wl,-z,defs -Wl,-O1 -Wl,--as-needed to LDFLAGS to remove some
      unnecessary dependencies on various packages.
  * debian/patches/01_linking-fixes.patch:
    + Link the tta plugin with libm.

 -- Sebastian Dröge <slomo@debian.org>  Tue, 19 Feb 2008 06:55:50 +0100

gst-plugins-bad0.10 (0.10.5.3-1) experimental; urgency=low

  * New upstream pre-release.
  * debian/build-deps.in:
    + Build depend on gstreamer0.10-plugins-base for the unit tests.
  * debian/patches/80_unit-tests.patch:
    + Disable some elements for the generic/states unit test.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 14 Feb 2008 13:18:33 +0100

gst-plugins-bad0.10 (0.10.5.2-1) experimental; urgency=low

  [ Emilio Pozuelo Monfort ]
  * debian/rules:
    - Decide the package name and url depending on the distribution.
  * debian/build-deps.in:
    - Build-Depend on lsb-release.

  [ Sebastian Dröge ]
  * New upstream pre-release:
    + Fixes FTBFS if built twice in a row (Closes: #424399).
    + Adds support for VCD playback (Closes: #454599).
    + Fixes conflict between Fluendo mpeg demuxer and
      DTS decoder (Closes: #448411).
    + debian/build-deps.in,
      debian/control.in:
      - Update liboil and gstreamer build dependencies.
      - Add and update a few build dependencies.
    + debian/gstreamer-plugins-bad.install:
      - Add dvdspu, festival, flv, mpegtsparse, mpeg4videoparse, rawparse,
        sdp, selector, speexresample, stereo, fbdev, metadata, vcd plugins. 
      - Remove equalizer, multifile, spectrum, switch, videoparse, xingheader
        plugins. These have moved to other places now.
      - Sort everything alphabetically.
    + debian/control.in,
      debian/build-deps.in,
      debian/rules:
      - Drop the OpenGL plugin. This will go to a new source package named
        gst-plugins-gl once we have mesa >= 7.1 somewhere.
  * debian/rules:
    + Run the unit test suite but don't fail the build on failures.
  * debian/control.in:
    + Update Standards-Version to 3.7.3, no additional changes needed.

 -- Sebastian Dröge <slomo@debian.org>  Sat, 09 Feb 2008 14:04:01 +0100

gst-plugins-bad0.10 (0.10.5-5) unstable; urgency=low

  * debian/rules:
    + Fix GST_REGISTRY envirnment variable setting (Closes: #452568).

 -- Sebastian Dröge <slomo@debian.org>  Sat, 24 Nov 2007 20:02:13 +0100

gst-plugins-bad0.10 (0.10.5-4) unstable; urgency=low

  * debian/rules:
      + Set GST_REGISTRY before the dh_gstscancodecs call to save the registry
        somewhere on buildds without writable home and speed things up a bit.
  * debian/build-deps.in:
      + Remove check from build dependencies. This is only an indirect build
        dependency that is already satisfied by libgstreamer0.10-dev. configure
        only checks for libgstcheck, not check.
   * debian/build-deps.in,
     debian/gstreamer-plugins-bad.install:
     + Enable the DirectFB video sink plugin.

 -- Sebastian Dröge <slomo@debian.org>  Wed, 19 Sep 2007 15:44:46 +0200

gst-plugins-bad0.10 (0.10.5-3) unstable; urgency=low

  * debian/control.in,
    debian/rules,
    debian/gstreamer-plugins-bad.install:
    + Move docs, SDL and GL to a separate package.
    + Create a package with debug symbols.
  * debian/rules:
    + Call dh_gstscancodecs.
  * debian/control:
    + Replace Source-Version with binary:Version to make lintian happy.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 30 Aug 2007 20:22:35 +0200

gst-plugins-bad0.10 (0.10.5-2) unstable; urgency=low

  * debian/build-deps.in:
    + Drop swfdec build dependency. The plugin doesn't work with 0.5.

 -- Sebastian Dröge <slomo@debian.org>  Thu, 30 Aug 2007 10:10:49 +0200

gst-plugins-bad0.10 (0.10.5-1) unstable; urgency=medium

  * Change Maintainer to pkg-gstreamer, add myself to Uploaders and use
    "standard" GStreamer packaging, used for all the other plugin packages too.
  * New upstream version (Closes: #429727):
    + Fixes remaining use of deprecated function (Closes: #436353).
    + Somewhat fixes FTBFS caused by deprecation warnings by not compiling
      with -Werror (Closes: #424559).
  * debian/build-deps.in:
    + Build depend on new enough GStreamer (Closes: #433495).
  * debian/gstreamer-plugins-bad.install,
    debian/build-deps.in:
    + Ship the GSM plugin (Closes: #429594).
    + Ship the dtsdec plugins (Closes: #428742).
    + Ship the ladspa plugin (Closes: #429527).
  * debian/rules,
    debian/gstreamer-plugins-bad.install,
    debian/build-deps.in:
    + Ship the SPC plugin on i386 (Closes: #430045).
  * debian/control.in:
    + Fix typo in package description (Closes: #436664).
  * debian/gstreamer-plugins-bad.install:
    + Don't ship the libgstapp library as it still randomly changes
      API and ABI until it is moved to gst-plugins-good at some point.
    + Don't ship completely unneeded .a files for the plugins.
  * debian/changelog:
    + Urgency medium because of RC bugfixes.

 -- Sebastian Dröge <slomo@debian.org>  Sun, 19 Aug 2007 14:41:31 +0200

gst-plugins-bad0.10 (0.10.4+cvs2007.04.30) unstable; urgency=low

  * Get a CVS version which contains the relevant FAAD patches.
  * Enable FAAD support. (Closes: #399438, #399042, #327163, #403093)

 -- Joe Wreschnig <piman@debian.org>  Mon, 30 Apr 2007 21:42:39 -0700

gst-plugins-bad0.10 (0.10.4-2) unstable; urgency=low

  * Disable spcdec for now, as it's i386-only. (Closes: #420444)

 -- Joe Wreschnig <piman@debian.org>  Sun, 22 Apr 2007 11:58:24 -0700

gst-plugins-bad0.10 (0.10.4-1) unstable; urgency=low

  * New upstream version. (Closes: #419904)
  * Remove patch added in 0.10.3-3.1, as it was merged upstream.
    Thanks to Loic Minier for the fast response and NMU. (Closes: #408213)
  * debian/control: Explain why the modules are "bad". (Closes: #387970)
  * Enable sdlvideosink/sdlaudiosink. (Closes: #404493)
  * Enable jacksink. (Closes: #407679)
  * Enable dvbsrc. (Closes: #418381)
  * Enable spcdec.

 -- Joe Wreschnig <piman@debian.org>  Sat, 21 Apr 2007 17:11:17 -0700

gst-plugins-bad0.10 (0.10.3-3.1) unstable; urgency=high

  * Non-maintainer upload.
  * SECURITY: buffer overflow.
  * Fix potential buffer overflow in gst/modplug/libmodplug/sndfile.cpp;
    CVE-2006-4192; GNOME #385788; from upstream CVS / next upstream release;
    closes: #407956.

 -- Loic Minier <lool@dooz.org>  Mon, 22 Jan 2007 16:05:35 +0100

gst-plugins-bad0.10 (0.10.3-3) unstable; urgency=low

  * debian/rules:
    * Enable v4l2src. (Closes: #379867)
    * Force disabling of MusicBrainz.
    * Allow FAAD=enable environment variable to override build options.
  * README.Debian: Explain how to get FAAD support.

 -- Joe Wreschnig <piman@debian.org>  Mon, 31 Jul 2006 16:38:12 -0500

gst-plugins-bad0.10 (0.10.3-2) unstable; urgency=low

  * Build-Depend on zlib1g-dev. (Closes: #379752)

 -- Joe Wreschnig <piman@debian.org>  Tue, 25 Jul 2006 11:46:05 -0500

gst-plugins-bad0.10 (0.10.3-1) unstable; urgency=low

  * New upstream release.
  * debian/rules: Disable experimental and libneon modules.
  * debian/control: Build-Dep on liboil3-dev.
  * debian/copyright: Add copyrights for new modules.

 -- Joe Wreschnig <piman@debian.org>  Thu, 22 Jun 2006 18:46:04 -0500

gst-plugins-bad0.10 (0.10.1-1) unstable; urgency=low

  * New upstream release.
  * Build-Depend on python for building docs.

 -- Joe Wreschnig <piman@debian.org>  Tue, 21 Feb 2006 16:04:33 -0600

gst-plugins-bad0.10 (0.10.0+cvs20060214-2) unstable; urgency=low

  * Update debian/copyright.
  * Explicitly disable more modules.
  * Build and include documentation.

 -- Joe Wreschnig <piman@debian.org>  Wed, 15 Feb 2006 12:24:20 -0600

gst-plugins-bad0.10 (0.10.0+cvs20060214-1) unstable; urgency=low

  * Initial release.

 -- Joe Wreschnig <piman@debian.org>  Tue, 14 Feb 2006 13:22:33 -0600

