diff --git a/debian/build-deps b/debian/build-deps
index 014debc..f6fe3bc 100644
--- a/debian/build-deps
+++ b/debian/build-deps
@@ -9,7 +9,6 @@
 cdbs (>= 0.4.93~)
 debhelper (>= 9)
 gnome-pkg-tools (>= 0.7)
-gtk-doc-tools (>= 1.12)
 pkg-config (>= 0.11.0)
 libxv-dev (>= 6.8.2.dfsg.1-3)
 libxt-dev (>= 6.8.2.dfsg.1-3)
@@ -24,8 +23,6 @@
 dpkg-dev (>= 1.15.1)
 iso-codes
 libgtk-3-dev (>= 3.10)
-libglib2.0-doc
-gstreamer@GST_ABI@-doc
 zlib1g-dev
 libopus-dev (>= 0.9.4)
 libgl1-mesa-dev
diff --git a/debian/build-deps.in b/debian/build-deps.in
deleted file mode 100644
index a645394..0000000
--- a/debian/build-deps.in
+++ /dev/null
@@ -1,41 +0,0 @@
-@GST_LIB_DEV_DEP@
-@GST_EXTRA_BUILD_DEPENDS@
-autotools-dev
-automake (>= 1.14)
-autoconf (>= 2.69)
-libtool (>= 2.2.6)
-dh-autoreconf
-autopoint (>= 0.17)
-cdbs (>= 0.4.93~)
-debhelper (>= 9)
-gnome-pkg-tools (>= 0.7)
-gtk-doc-tools (>= 1.12)
-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)
-libglib2.0-doc
-gstreamer@GST_ABI@-doc
-libgirepository1.0-dev (>= 0.9.12-4~)
-gobject-introspection (>= 0.9.12-4~)
-gir1.2-glib-2.0
-gir1.2-freedesktop
-gir1.2-gstreamer-@GST_ABI@
-zlib1g-dev
-libopus-dev (>= 0.9.4)
-libgl1-mesa-dev
-libegl1-mesa-dev
-libgles2-mesa-dev
-libgraphene-1.0-dev
-libpng-dev
-libjpeg-dev
diff --git a/debian/changelog b/debian/changelog
index c118499..035b9fc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3289 +1,6 @@
-gst-plugins-base1.0 (1.14.4-2+mtk+1) mendel-eagle; urgency=medium
+mtk-gst-plugins-base (1.14.4+mtk-1) mendel-day; urgency=medium
 
-  * Add OpenGL supports and fixes.
+  * 1.14.4
 
- -- Coral Team <coral-support@google.com>  Thu, 03 Sep 2020 14:41:40 -0700
-
-gst-plugins-base1.0 (1.14.4-2+mtk) mendel-day; urgency=medium
-
-  * Update to 1.14.4-2
-  * Update to Day release
-
- -- Coral Team <coral-support@google.com>  Tue, 28 Jan 2020 17:06:24 -0800
-
-gst-plugins-base1.0 (1.10.4-1+mtk) mendel-chef; urgency=medium
-
-  * Add patches for MTK support
-
- -- Coral <coral-support@google.com>  Wed, 07 Aug 2019 10:40:10 -0700
-
-gst-plugins-base1.0 (1.10.4-1) unstable; urgency=medium
-
-  * New upstream bugfix release
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 23 Feb 2017 15:35:02 +0200
-
-gst-plugins-base1.0 (1.10.3-1) unstable; urgency=medium
-
-  * New upstream bugfix release
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 30 Jan 2017 15:32:35 +0200
-
-gst-plugins-base1.0 (1.10.2-1) unstable; urgency=medium
-
-  * New upstream bugfix release
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 29 Nov 2016 15:38:35 +0200
-
-gst-plugins-base1.0 (1.10.1-1) unstable; urgency=medium
-
-  * New upstream bugfix release
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 17 Nov 2016 14:56:14 +0200
-
-gst-plugins-base1.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.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 01 Nov 2016 17:45:24 +0200
-
-gst-plugins-base1.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.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 30 Sep 2016 12:16:56 +0300
-
-gst-plugins-base1.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/libgstreamer-plugins-base.symbols:
-      - Update new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 01 Sep 2016 11:53:46 +0300
-
-gst-plugins-base1.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/libgstreamer-plugins-base.symbols:
-      - Update new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 06 Jul 2016 12:22:14 +0300
-
-gst-plugins-base1.0 (1.8.2-1) unstable; urgency=medium
-
-  * debian/control.in:
-    + Remove duplicated field name.
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 13 May 2016 14:37:29 +0300
-
-gst-plugins-base1.0 (1.8.1-1) unstable; urgency=medium
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 20 Apr 2016 18:05:56 +0300
-
-gst-plugins-base1.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:16:44 +0200
-
-gst-plugins-base1.0 (1.7.91-1) experimental; urgency=medium
-
-  * New upstream release candidate:
-    + debian/build-deps.in,
-      debian/rules:
-      - Build-depend on GStreamer >= 1.7.91.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 15 Mar 2016 12:00:12 +0200
-
-gst-plugins-base1.0 (1.7.90-1) experimental; urgency=medium
-
-  * New upstream release candidate:
-    + debian/build-deps.in,
-      debian/rules:
-      - Build-depend on GStreamer >= 1.7.90.
-    + debian/build-deps.in,
-      debian/control.in,
-      debian/gstreamer-plugins-base.install:
-      - Add Opus plugin and add Breaks/Replaces for gst-plugins-bad.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 01 Mar 2016 17:03:06 +0200
-
-gst-plugins-base1.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.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for new symbols.
-    + debian/control.in:
-      - Add Breaks for gstreamer1.0-plugins-bad << 1.7.1 because
-        of GstAudioVisualizer moved from a plugin to a library here.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 19 Feb 2016 11:07:18 +0200
-
-gst-plugins-base1.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.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 24 Dec 2015 13:52:30 +0100
-
-gst-plugins-base1.0 (1.6.2-1) unstable; urgency=medium
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 14 Dec 2015 19:24:29 +0100
-
-gst-plugins-base1.0 (1.6.1-1) unstable; urgency=medium
-
-  * debian/control.in:
-    + Remove Recommends on alsa-base, it's a useless dummy package
-      and not needed anyway (Closes: #785268).
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 03 Oct 2015 19:03:14 +0100
-
-gst-plugins-base1.0 (1.6.0-1) unstable; urgency=medium
-
-  * debian/control.in:
-    + Remove Recommends on gstreamer-codec-install | gnome-codec-install.
-  * New upstream stable release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 18 Sep 2015 20:54:02 +0200
-
-gst-plugins-base1.0 (1.5.91-1) experimental; urgency=medium
-
-  * New upstream release candidate.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 18 Sep 2015 19:20:16 +0200
-
-gst-plugins-base1.0 (1.5.90-1) experimental; urgency=medium
-
-  [ Iain Lane ]
-  * debian/watch: Update for current upstream URL scheme
-
-  [ Sebastian Dröge ]
-  * New upstream release candidate.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 19 Aug 2015 13:05:44 +0300
-
-gst-plugins-base1.0 (1.5.2-1) experimental; urgency=medium
-
-  * New unstable upstream release.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 24 Jun 2015 22:53:04 +0200
-
-gst-plugins-base1.0 (1.5.1-1) experimental; urgency=medium
-
-  * New unstable upstream release.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 07 Jun 2015 10:20:35 +0200
-
-gst-plugins-base1.0 (1.5.0.1+git20150513-1) experimental; urgency=medium
-
-  * New upstream GIT snapshot.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 13 May 2015 13:22:51 +0300
-
-gst-plugins-base1.0 (1.5.0.1+git20150316-1) experimental; urgency=medium
-
-  * New upstream GIT snapshot.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 16 Mar 2015 19:33:40 +0100
-
-gst-plugins-base1.0 (1.4.5-1) experimental; urgency=medium
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 18 Dec 2014 12:23:12 +0100
-
-gst-plugins-base1.0 (1.4.4-2) unstable; urgency=medium
-
-  * Upload to unstable.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 11 Nov 2014 13:39:39 +0100
-
-gst-plugins-base1.0 (1.4.4-1) experimental; urgency=medium
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 06 Nov 2014 12:44:20 +0100
-
-gst-plugins-base1.0 (1.4.3-1.1) unstable; urgency=medium
-
-  * Non-maintainer upload.
-  * debian/control.in: Drop gstreamer1.0-plugins-base-dbg Suggests against
-    non-existant gstreamer1.0-gnomevfs package, this fixes a lintian error.
-  * debian/rules: Remove outdated mangling of debian/shlibs.local, this is
-    breaking dependencies generation for gir packages (Closes: #761915)
-
- -- Laurent Bigonville <bigon@debian.org>  Sun, 02 Nov 2014 16:43:22 +0100
-
-gst-plugins-base1.0 (1.4.3-1) unstable; urgency=medium
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 24 Sep 2014 12:06:56 +0300
-
-gst-plugins-base1.0 (1.4.2-1) unstable; urgency=medium
-
-  * New upstream bugfix release.
-  * debian/gstreamer-plugins-base-apps.*:
-    + Ship gst-device-monitor-1.0 tool.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 19 Sep 2014 14:13:16 +0300
-
-gst-plugins-base1.0 (1.4.1-1) unstable; urgency=medium
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 27 Aug 2014 14:32:29 +0300
-
-gst-plugins-base1.0 (1.4.0-1) unstable; urgency=medium
-
-  * New upstream stable release.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 19 Jul 2014 16:49:51 +0200
-
-gst-plugins-base1.0 (1.3.91-1) experimental; urgency=medium
-
-  * New upstream release candidate:
-    + debian/rules:
-      - Build-depend on GStreamer core >= 1.3.91.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 11 Jul 2014 10:59:50 +0200
-
-gst-plugins-base1.0 (1.3.90-1) experimental; urgency=medium
-
-  * New upstream release candidate:
-    + debian/rules:
-      - Build-depend on GStreamer core >= 1.3.90.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 28 Jun 2014 11:31:13 +0200
-
-gst-plugins-base1.0 (1.3.3-1) experimental; urgency=medium
-
-  * debian/control.in:
-    + Add Recommends on gstreamer1.0-plugins-base for the
-      library package (Closes: #749153).
-  * debian/rules:
-    + Run autopoint during autoreconf too.
-  * New upstream development release:
-    + debian/rules:
-      - Build-depend on GStreamer core >= 1.3.3.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 25 May 2014 17:11:24 +0200
-
-gst-plugins-base1.0 (1.3.2-1) experimental; urgency=medium
-
-  * New upstream development release:
-    + debian/rules:
-      - Build-depend on GStreamer core >= 1.3.2.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 21 May 2014 12:18:16 +0200
-
-gst-plugins-base1.0 (1.3.1-1) experimental; urgency=medium
-
-  * New upstream development release:
-    + debian/rules:
-      - Build-depend on GStreamer core >= 1.3.1.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 03 May 2014 18:31:03 +0200
-
-gst-plugins-base1.0 (1.2.4-1) unstable; urgency=medium
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 19 Apr 2014 15:48:06 +0200
-
-gst-plugins-base1.0 (1.2.3-1) unstable; urgency=medium
-
-  * New upstream bugfix release:
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new symbol.
-  * debian/rules:
-    + Run libtoolize in autoreconf. Drop ltmain-as-needed patch
-      and use dh_autoreconf --as-needed.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 09 Feb 2014 11:14:56 +0100
-
-gst-plugins-base1.0 (1.2.2-1) unstable; urgency=medium
-
-  * New upstream bugfix release:
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new 1.2.2 API additions.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 27 Dec 2013 10:57:30 +0100
-
-gst-plugins-base1.0 (1.2.1-2) unstable; urgency=low
-
-  * debian/gstreamer-plugins-base-apps.install:
-    + Include new gst-play-1.0 tool.
-  * debian/gstreamer-plugins-base-apps.manpages:
-    + Ship the manpages for gst-discoverer-1.0 and gst-play-1.0.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 10 Nov 2013 22:00:37 +0100
-
-gst-plugins-base1.0 (1.2.1-1) unstable; urgency=low
-
-  [ Fabian Greffrath ]
-  * Fix gst_version variable generation.
-  * Add Vcs-* fields to debian/control{,.in}, update Homepage field.
-  * Turn versioned Conflicts into Breaks, remove trailing comma.
-
-  [ Sebastian Dröge ]
-  * New upstream bugfix release:
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new 1.2.1 API additions.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 09 Nov 2013 16:34:38 +0100
-
-gst-plugins-base1.0 (1.2.0-1) unstable; urgency=low
-
-  * New upstream stable release:
-    + debian/rules,
-      debian/build-deps.in:
-      - Build-depend on GStreamer >= 1.2.0.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 24 Sep 2013 16:24:47 +0200
-
-gst-plugins-base1.0 (1.1.90-1) experimental; urgency=low
-
-  * New upstream release candidate:
-    + debian/rules,
-      debian/build-deps.in:
-      - Build-depend on GStreamer >= 1.1.90.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 19 Sep 2013 12:42:47 +0200
-
-gst-plugins-base1.0 (1.1.4-1) experimental; urgency=low
-
-  * New upstream development snapshot:
-    + debian/rules,
-      debian/build-deps.in:
-      - Build-depend on GStreamer >= 1.1.4.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 30 Aug 2013 12:44:33 +0200
-
-gst-plugins-base1.0 (1.1.3-1) experimental; urgency=low
-
-  * New upstream development snapshot:
-    + debian/rules,
-      debian/build-deps.in:
-      - Build-depend on GStreamer >= 1.1.3.
-      - Remove build-dependency on libxml2-dev.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 30 Jul 2013 08:31:11 +0200
-
-gst-plugins-base1.0 (1.1.2-1) experimental; urgency=low
-
-  * New upstream development snapshot:
-    + debian/rules,
-      debian/build-deps.in:
-      - Build-depend on GStreamer >= 1.1.2 and orc >= 0.4.17.
-    + debian/libgstreamer-plugins-base.install:
-      - Add new allocators library.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 14 Jul 2013 11:16:14 +0200
-
-gst-plugins-base1.0 (1.0.8-1) unstable; urgency=low
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 13 Jul 2013 11:29:27 +0200
-
-gst-plugins-base1.0 (1.0.7-1) unstable; urgency=low
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 26 Apr 2013 14:06:10 +0200
-
-gst-plugins-base1.0 (1.0.6-1) unstable; urgency=low
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 22 Mar 2013 18:15:10 +0100
-
-gst-plugins-base1.0 (1.0.5-1) unstable; urgency=low
-
-  * New upstream bugfix release:
-    + debian/rules:
-      - Build-depend on GStreamer >= 1.0.5.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 08 Jan 2013 13:40:26 +0100
-
-gst-plugins-base1.0 (1.0.4-1) unstable; urgency=low
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 19 Dec 2012 10:28:51 +0100
-
-gst-plugins-base1.0 (1.0.3-1) unstable; urgency=low
-
-  * New upstream bugfix release:
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new symbol.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 21 Nov 2012 14:50:45 +0100
-
-gst-plugins-base1.0 (1.0.2-1) unstable; urgency=low
-
-  * New upstreal bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 25 Oct 2012 13:30:04 +0200
-
-gst-plugins-base1.0 (1.0.1-1) unstable; urgency=low
-
-  * New upstream bugfix release.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 08 Oct 2012 10:27:45 +0200
-
-gst-plugins-base1.0 (1.0.0-1) unstable; urgency=low
-
-  * New upstream release:
-    + debian/rules:
-      - Build-depend on gstreamer core >= 1.0.0.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbol versions.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 25 Sep 2012 00:11:30 +0200
-
-gst-plugins-base1.0 (0.11.99-1) experimental; urgency=low
-
-  * New upstream release:
-    + debian/rules:
-      - Build-depend on gstreamer core >= 0.11.94.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 18 Sep 2012 09:16:13 +0200
-
-gst-plugins-base1.0 (0.11.94-1) experimental; urgency=low
-
-  * New upstream release:
-    + debian/rules:
-      - Build-depend on gstreamer core >= 0.11.94.
-    + debian/build-deps.in:
-      - Build-depend on gtk-doc >= 1.12.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for API changes.
-    + debian/gstreamer-plugins-base-apps.install:
-      - Drop gst-visualize tool.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 14 Sep 2012 09:37:04 +0200
-
-gst-plugins-base1.0 (0.11.93-1) experimental; urgency=low
-
-  * New upstream release:
-    + debian/rules:
-      - Build-depend on gstreamer core >= 0.11.93.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for API changes.
-    + debian/patches/0001-videoconvert-Need-LIBM-for-pow.patch:
-      - Dropped, merged upstream.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 08 Aug 2012 18:38:24 +0200
-
-gst-plugins-base1.0 (0.11.92-1) experimental; urgency=low
-
-  * debian/control.in:
-    + Update automake, autoconf and libtool build dependencies.
-  * New upstream release, "Comfortably Numb":
-    + debian/rules:
-      - Build-depend on gstreamer core >= 0.11.92.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for API changes.
-  * debian/patches/0001-videoconvert-Need-LIBM-for-pow.patch:
-    + Fix linking of videoconvert by linking to -lm.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 08 Jun 2012 11:10:03 +0200
-
-gst-plugins-base1.0 (0.11.91-1) experimental; urgency=low
-
-  * New upstream release, "Fee-fi-fo-fum":
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols file.
-    + debian/rules:
-      - (Build-) depend on GStreamer >= 0.11.91.
-    + debian/libgstreamer-plugins-base-dev.install:
-      - Drop removed interfaces library.
-  * debian/control.in,
-    debian/build-deps.in:
-    + Update debhelper dependency version and Standards-Version.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 21 May 2012 11:43:57 +0200
-
-gst-plugins-base1.0 (0.11.90-1) experimental; urgency=low
-
-  [ Olivier Naudan ]
-  * Imported Upstream version 0.11.90
-  * debian/rules and debian/changelog: migration to 1.0
-  * Removed 01_riff-big-endian.patch, now upstreamed
-  * Removed cdda and netbuffer from .install file, following upstream
-  * debian/control: updated package names with 1.0
-  * Refreshed 99_ltmain_as-needed.patch to apply cleanly again
-  * debian/libgstreamer-plugins-base.install: use @GST_ABI@
-  * Updated debian/libgstreamer-plugins-base.symbols based on upstream 0.11.90
-
-  [ Sebastian Dröge ]
-  * Build-depend on GLib >= 2.31.14.
-  * Fix symbols file versions.
-  * Update copyright file.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 02 May 2012 18:01:01 +0200
-
-gst-plugins-base0.11 (0.11.1-3) UNRELEASED; urgency=low
-
-  [ Sebastian Dröge ]
-  * debian/build-deps.in:
-    + Don't build-depend on GnomeVFS anymore.
-    + Build-depend on automake (>= 1.10), autoconf (>= 2.60) and
-      libtool (>= 2.0) to make dh-autoreconf actually work.
-
-  [ Loïc Minier ]
-  * Track 0.11.* versions instead of 0.10.* versions in watch file.
-  * Update my email address in control.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 14 Dec 2011 12:23:16 +0100
-
-gst-plugins-base0.11 (0.11.1-2) experimental; urgency=low
-
-  * debian/build-deps.in:
-    + Build-depend on GLib 2.26.
-  * debian/patches/01_riff-big-endian.patch:
-    + Fix build on big-endian systems. Patch from upstream GIT.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 14 Dec 2011 11:52:26 +0100
-
-gst-plugins-base0.11 (0.11.1-1) experimental; urgency=low
-
-  [ Nicolas Dechesne ]
-  * New upstream release, 0.11.1
-    + debian/libgstreamer-plugins-base.symbols
-    + debian/build-deps.in
-      - remove gstreamer-tools
-      - replaced 0.10 with 0.11
-    + debian/control.in
-      - removed old Replaces/Conflicts which no longer make sense on 0.11
-      - removed -gnomevfs packages
-    + debian/*.install files
-      - removed libgstdecodebin, libgstffmpegcolorspace, gstplaybin
-      - added libgstvideoconvert, libgstplayback
-
-  [ Sebastian Dröge ]
-  * Upload to experimental.
-  * debian/copyright:
-    + Clean up, fix and complete copyright.
-  * Merge 0.10.35.2-1.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 12 Dec 2011 12:21:36 +0100
-
-gst-plugins-base0.10 (0.10.35.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/rules,
-      debian/build-deps.in:
-      - Build-depend on GStreamer core >= 0.10.35.2.
-      - Build-depend on GLib >= 2.24.
-      - Build-depend on GTK+ 3.0.
-      - Build-depend on zlib.
-    + debian/patches/99_ltmain_as-needed.patch:
-      - Refresh to apply cleanly again.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols file with new API.
-  * debian/rules:
-    + Remove all dependency_libs from the .la files.
-  * debian/control.in:
-    + Put GI package into section introspection.
-  * debian/build-deps.in,
-    debian/compat,
-    debian/control.in,
-    debian/gir1.2-gst-plugins-base.install,
-    debian/gstreamer-alsa.install,
-    debian/gstreamer-gnomevfs.install,
-    debian/gstreamer-plugins-base.install,
-    debian/gstreamer-x.install,
-    debian/libgstreamer-plugins-base-dev.install,
-    debian/libgstreamer-plugins-base.install,
-    debian/rules:
-    + Transition package to multi-arch (Closes: #647485).
-      Patch taken from the Ubuntu package.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 11 Dec 2011 19:27:10 +0100
-
-gst-plugins-base0.10 (0.10.35-1) unstable; urgency=low
-
-  * New upstream bugfix release, "Short Notice".
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 23 Jun 2011 09:37:32 +0200
-
-gst-plugins-base0.10 (0.10.34-1) unstable; urgency=low
-
-  * New upstream bugfix release, "Lemmings":
-    + debian/rules:
-      - Require GStreamer core >= 0.10.34.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 14 May 2011 11:46:16 +0200
-
-gst-plugins-base0.10 (0.10.33-1) unstable; urgency=low
-
-  * New upstream release, "Relaxing Distractions":
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update version of new symbols to 0.10.33.
-    + debian/rules:
-      - Build-depend on GStreamer >= 0.10.33.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 10 May 2011 15:48:17 +0200
-
-gst-plugins-base0.10 (0.10.32.3-1) experimental; urgency=low
-
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 27 Apr 2011 15:27:37 +0200
-
-gst-plugins-base0.10 (0.10.32.2-1) experimental; urgency=low
-
-  [ Sebastian Dröge ]
-  * debian/control.in:
-    + Let the -dev package depend on the GIR package as required by
-      the new gobject-introspection policy.
-    + Only suggest gvfs, don't recommend it. GStreamer is the default
-      phonon backend nowadays and there's no reason to use gvfs
-      on a KDE desktop.
-
-  [ Alessandro Decina ]
-  * debian/build-deps.in:
-    + Add dependency on dh-autoreconf
-  * debian/rules:
-    + Include dh-autoreconf cdbs rule
-
-  [ Loïc Minier ]
-  * Drop dep on type-handling and use linux-any where possible.
-  * Reflow sed calls to avoid cat | sed or sed | sed constructs.
-
-  [ Sebastian Dröge ]
-  * New upstream pre-release:
-    + debian/rules:
-      - Build-depend on GStreamer core >= 0.10.32.2.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new API.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 17 Apr 2011 10:25:45 +0200
-
-gst-plugins-base0.10 (0.10.32-2) unstable; urgency=low
-
-  * Upload to unstable.
-  * debian/rules,
-    debian/gstreamer-plugins-base.install:
-    + Drop the video4linux plugin, recent Linux kernels only have v4l2.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 22 Mar 2011 14:17:10 +0100
-
-gst-plugins-base0.10 (0.10.32-1) experimental; urgency=low
-
-  * New upstream stable release, "Your Life You Like It Well":
-    + debian/rules:
-      - Require GStreamer >= 0.10.32.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update new symbols to the release version.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 22 Jan 2011 13:15:54 +0100
-
-gst-plugins-base0.10 (0.10.31.4-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/rules:
-      - Require GStreamer >= 0.10.31.4.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update new symbols to the latest pre-release version.
-  * debian/rules:
-    + Use dh_perl -d to generate a dependency on perl-base only.
-      Change taken from the Ubuntu package.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 19 Jan 2011 21:11:51 +0100
-
-gst-plugins-base0.10 (0.10.31.3-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/rules:
-      - Require GStreamer >= 0.10.31.3.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update new symbols to the latest pre-release version.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 13 Jan 2011 11:48:15 +0100
-
-gst-plugins-base0.10 (0.10.31.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/rules,
-      debian/build-deps.in:
-      - Require GStreamer >= 0.10.31.2
-      - Require GLib >= 2.22
-    + debian/gstreamer-plugins-base.install:
-      - Add new encodebin plugin.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new API symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 10 Jan 2011 14:56:10 +0100
-
-gst-plugins-base0.10 (0.10.31-2) experimental; urgency=low
-
-  [ Emilio Pozuelo Monfort ]
-  * debian/build-deps.in,
-    debian/rules:
-    + Use dpkg-vendor instead of lsb_release.
-
-  [ Sjoerd Simons ]
-  * Transition to gir1.2
-
- -- Sjoerd Simons <sjoerd@debian.org>  Tue, 14 Dec 2010 22:09:46 +0000
-
-gst-plugins-base0.10 (0.10.31-1) experimental; urgency=low
-
-  * New upstream release, "Dance Like It's 1982":
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols file.
-    + debian/rules:
-      - Require GStreamer >= 0.10.31.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 02 Dec 2010 10:32:35 +0100
-
-gst-plugins-base0.10 (0.10.30.5-2) experimental; urgency=low
-
-  * debian/build-deps.in:
-    + Drop gir-repository-dev build dependency. It's not needed and
-      only pulls in half of Gnome.
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 19 Nov 2010 11:29:57 +0100
-
-gst-plugins-base0.10 (0.10.30.4-1) experimental; urgency=low
-
-  * New upstream pre-release: 
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols file.
-    + debian/gstreamer-plugins-base-apps.install:
-      - Add new gst-discoverer-0.10 tool.
-    + debian/control.in:
-      - Add ${shlibs:Depends} to the apps package.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 02 Nov 2010 08:44:13 +0100
-
-gst-plugins-base0.10 (0.10.30.3-1) experimental; urgency=low
-
-  * New upstream pre-release: 
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols file.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 22 Oct 2010 19:56:44 +0200
-
-gst-plugins-base0.10 (0.10.30.2-1) experimental; urgency=low
-
-  * New upstream pre-release: 
-    + debian/rules,
-      debian/build-deps.in:
-      - Require GStreamer >= 0.10.30.1.
-      - Require ORC >= 0.4.11.
-      - Require Theora >= 1.1.
-    + debian/patches/0001-videoscale*:
-      - Dropped, merged upstream.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols file with the new API.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 16 Oct 2010 11:17:36 +0200
-
-gst-plugins-base0.10 (0.10.30-3) experimental; urgency=low
-
-  * debian/build-deps.in:
-    + Add the epoch to the orc build dependency to get correct
-      dependencies (Closes: #597086).
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 17 Sep 2010 13:22:25 +0200
-
-gst-plugins-base0.10 (0.10.30-2) experimental; urgency=low
-
-  * debian/patches/000[1-8]-videoscale*.patch:
-    + Patches from upstream GIT for videoscale to fix UYVY scaling,
-      improve scaling of interlaced content and add a add-borders
-      property (that defaults to the old behaviour) to add black
-      borders if necessary to keep the display aspect ratio.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 09 Sep 2010 11:04:17 +0200
-
-gst-plugins-base0.10 (0.10.30-1) unstable; urgency=low
-
-  * New upstream stable release, "Difficult Birth":
-    + debian/rules:
-      - Build depend on GStreamer 0.10.30.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update new symbols version to 0.10.30.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 15 Jul 2010 13:51:22 +0200
-
-gst-plugins-base0.10 (0.10.29.4-1) experimental; urgency=low
-
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 07 Jul 2010 15:13:18 +0200
-
-gst-plugins-base0.10 (0.10.29.3-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/rules:
-      - Build depend on GStreamer 0.10.29.3.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update new symbols version to 0.10.29.3.
-    + debian/patches/01_videotestsrc-libm-linking.patch,
-      debian/patches/02_videoscale-libm-linking.patch:
-      - Dropped, merged upstream.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 30 Jun 2010 10:43:13 +0200
-
-gst-plugins-base0.10 (0.10.29.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + 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).
-      - Update to Standards-Version 3.8.4.
-    + debian/build-deps.in,
-      debian/rules:
-      - Build depend on GLib 2.20 and GStreamer 0.10.29.2.
-      - Build depend on ORC instead of liboil.
-    + debian/patches/00*:
-      - Dropped, merged upstream.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols file with the new API.
-    + debian/patches/01_videotestsrc-libm-linking.patch,
-      debian/patches/02_videoscale-libm-linking.patch:
-      - Link videotestsrc and videoscale with libm to fix FTBFS.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 26 Jun 2010 21:12:29 +0200
-
-gst-plugins-base0.10 (0.10.29-4) unstable; urgency=low
-
-  * debian/patches/0007-oggdemux-Drop-all-other-Ogg-VP8-header-packets-and-m.patch,
-    debian/patches/0008-oggdemux-Fix-size-checks.patch:
-    + Some more fixes for the Ogg VP8 mapping.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 20 May 2010 14:03:47 +0200
-
-gst-plugins-base0.10 (0.10.29-3) unstable; urgency=low
-
-  * debian/patches/0006-ogg-Some-more-minor-adjustments-for-the-VP8-Ogg-mapp.patch:
-    + Small update to the Ogg VP8 mapping.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 20 May 2010 09:09:38 +0200
-
-gst-plugins-base0.10 (0.10.29-2) unstable; urgency=low
-
-  * debian/patches/00*:
-    + Add support for VP8 in RIFF and the Ogg plugin.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 18 May 2010 20:58:11 +0200
-
-gst-plugins-base0.10 (0.10.29-1) unstable; urgency=low
-
-  * New upstream stable release, "Freaks":
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols to the stable version.
-    + debian/rules:
-      - Build depend on GStreamer >= 0.10.29.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 28 Apr 2010 09:43:04 +0200
-
-gst-plugins-base0.10 (0.10.28.3-1) experimental; urgency=low
-
-  * debian/control.in:
-    + Recommend alsa-base (Closes: #578027).
-    + Suggest alsa-utils, which gives automatic volume restore
-      after reboots.
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 26 Apr 2010 07:59:37 +0200
-
-gst-plugins-base0.10 (0.10.28.2-1) experimental; urgency=low
-
-  [ Emilio Pozuelo Monfort ]
-  * debian/control.in,
-    debian/build-deps.in:
-    - Move gtk-doc-tools to Build-Deps-Indep.
-  * debian/rules:
-    - Only build the docs if gtk-doc-tools is installed.
-
-  [ Sebastian Dröge ]
-  * New upstream pre-release:
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbols file with the new API.
-    + debian/rules:
-      - Build depend on GStreamer >= 0.10.28.2.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 15 Apr 2010 12:45:45 +0200
-
-gst-plugins-base0.10 (0.10.28-1) unstable; urgency=low
-
-  * New upstream stable release, "Those Norwegians":
-    + debian/rules:
-      - Build depend on GStreamer >= 0.10.28.
-    + debian/patches/01_ogg-dirac-parsing.patch:
-      - Dropped, merged upstream.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 09 Mar 2010 09:47:27 +0000
-
-gst-plugins-base0.10 (0.10.27-1) unstable; urgency=low
-
-  * New upstream stable release, "No Mistakes Allowed":
-    + debian/rules:
-      - Build depend on GStreamer >= 0.10.27.
-  * debian/patches/01_ogg-dirac-parsing.patch:
-    + Patch from upstream bugzilla (#611900) to fix parsing
-      of Dirac headers inside Ogg files.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 08 Mar 2010 09:48:28 +0000
-
-gst-plugins-base0.10 (0.10.26.3-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/rules:
-      - Build depend on GStreamer >= 0.10.26.3.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 25 Feb 2010 08:26:32 +0100
-
-gst-plugins-base0.10 (0.10.26.2-1) experimental; urgency=low
-
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 19 Feb 2010 13:48:54 +0100
-
-gst-plugins-base0.10 (0.10.26-1) unstable; urgency=low
-
-  * New upstream release, "You will know when you get there":
-    + debian/rules:
-      - Update GStreamer build dependency to >= 0.10.26.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update to use the stable versions.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 11 Feb 2010 10:31:17 +0100
-
-gst-plugins-base0.10 (0.10.25.3-1) experimental; urgency=low
-
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 05 Feb 2010 10:10:01 +0100
-
-gst-plugins-base0.10 (0.10.25.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/patches/01_baseaudiosink-remove-pulsesink-hack.patch,
-      debian/patches/02_playbin2-proxy-volume-changes.patch,
-      debian/patches/03_playsink-proxy-volume-changes.patch,
-      debian/patches/04_playsink-update-volume-mute-state.patch,
-      debian/patches/05_playsink-set-volume-once.patch,
-      debian/patches/11_theoradec_timestamp.patch:
-      - Dropped, merged upstream.
-    + debian/build-deps.in,
-      debian/rules,
-      debian/control.in:
-      - Build depend on Pango 1.16.0, GLib 2.18.0, iso-codes, 
-        GStreamer 0.10.25.2.
-    + debian/gstreamer-plugins-base.install:
-      - Drop queue2 plugin, it's in core now.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for new API.
-  * debian/build-deps.in,
-    debian/rules,
-    debian/gstreamer-plugins-base.install:
-    + Don't build cdparanoia plugin on hurd, fixes FTBFS (Closes: #554977).
-      Thanks to Samuel Thibault for the patch.
-  * debian/control.in:
-    + Fix typo in package description (Closes: #557367).
-    + Remove David I. Lehn from Uploaders (Closes: #557278).
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 27 Jan 2010 07:51:46 +0100
-
-gst-plugins-base0.10 (0.10.25-7) unstable; urgency=low
-
-  * debian/rules:
-    + Don't include the plugin library files in the dh_makeshlibs call.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 06 Dec 2009 13:59:12 +0100
-
-gst-plugins-base0.10 (0.10.25-6) unstable; urgency=low
-
-  * debian/patches/11_theoradec_timestamp.patch
-    + Added. Use the timestamp of the incoming buffer if it's valid instead of
-      the one in the frame. Fixes issues with RTP streams where the framerate
-      is less stable then it should be.
-
- -- Sjoerd Simons <sjoerd@debian.org>  Thu, 12 Nov 2009 23:55:05 +0000
-
-gst-plugins-base0.10 (0.10.25-5) unstable; urgency=low
-
-  * debian/patches/02_playbin2-proxy-volume-changes.patch,
-    debian/patches/03_playsink-proxy-volume-changes.patch,
-    debian/patches/04_playsink-update-volume-mute-state.patch,
-    debian/patches/05_playsink-set-volume-once.patch:
-    + Patches from upstream GIT to improve volume/mute handling
-      in playbin2. Needed for new totem.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 30 Oct 2009 10:30:54 +0100
-
-gst-plugins-base0.10 (0.10.25-4) unstable; urgency=low
-
-  * debian/patches/01_baseaudiosink-remove-pulsesink-hack.patch,
-    debian/control.in:
-    + Remove pulsesink hack to fix operation with pulsesink from
-      gst-plugins-good 0.10.16-4.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 21 Oct 2009 19:59:08 +0200
-
-gst-plugins-base0.10 (0.10.25-3) unstable; urgency=low
-
-  * debian/libgstreamer-plugins-base.install,
-    debian/control.in:
-    + Don't ship typelib files in two packages.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 20 Oct 2009 12:12:05 +0200
-
-gst-plugins-base0.10 (0.10.25-2) unstable; urgency=low
-
-  * debian/rules,
-    debian/control.in,
-    debian/build-deps.in:
-    + Update for the GObject-Introspection mini spec.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 20 Oct 2009 11:54:43 +0200
-
-gst-plugins-base0.10 (0.10.25-1) unstable; urgency=low
-
-  * New upstream release, 'Standard disclaimers apply':
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated for the new version.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 05 Oct 2009 18:10:19 +0200
-
-gst-plugins-base0.10 (0.10.24.4-1) experimental; urgency=low
-
-  [ Loïc Minier ]
-  * Also disable doc building on armel.
-
-  [ Sebastian Dröge ]
-  * debian/rules:
-    + Use libgudev on Linux for v4l device detection. 
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 02 Oct 2009 07:42:27 +0200
-
-gst-plugins-base0.10 (0.10.24.3-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/patches/01_introspection-pkgconfig.patch:
-      - Dropped, merged upstream.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 17 Sep 2009 07:14:35 +0200
-
-gst-plugins-base0.10 (0.10.24.2-2) experimental; urgency=low
-
-  * debian/rules:
-    + Set HOME to a fake home directory to prevent writing
-      to a non-writable buildd home which results in FTBFS. 
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 13 Sep 2009 11:30:27 +0200
-
-gst-plugins-base0.10 (0.10.24.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/rules,
-      debian/build-deps.in:
-      - Update build dependencies.
-    + debian/libgstreamer-plugins-base0.10-0.symbols:
-      - Updated for the new version.
-    + debian/control.in,
-      debian/build-deps.in,
-      debian/libgstreamer-plugins-base.install,
-      debian/libgstreamer-plugins-base-dev.install:
-      - Enable GObject-Introspection support and ship the generated
-        files in the -dev and shared library package.
-    + debian/patches/11_fix_skew_clock_slaving.patch:
-      - Dropped, merged upstream.
-  * debian/control.in:
-    + Update Standards-Version to 3.8.3.
-  * debian/patches/01_introspection-pkgconfig.patch:
-    + Fix build system to actually find the pkg-config files
-      when building the introspection files.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 12 Sep 2009 12:56:53 +0200
-
-gst-plugins-base0.10 (0.10.24-2) unstable; urgency=low
-
-  * debian/patches/11_fix_skew_clock_slaving.patch:
-    + Added. Fixes resyncing in the skew clock slaving method, which caused
-      extra delays to be added to the pipeline. (From upstream git)
-
- -- Sjoerd Simons <sjoerd@debian.org>  Thu, 10 Sep 2009 22:49:39 +0100
-
-gst-plugins-base0.10 (0.10.24-1) unstable; urgency=low
-
-  * New upstream release, 'Counting the days':
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated for the new release.
-    + debian/rules:
-      - Update GStreamer core build dependency to >= 0.10.24.
-  * debian/control.in:
-    + Updated Standards-Version to 3.8.2, no additional changes needed.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 05 Aug 2009 08:03:10 +0200
-
-gst-plugins-base0.10 (0.10.23.4-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated for the new pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 24 Jul 2009 18:42:16 +0200
-
-gst-plugins-base0.10 (0.10.23.3-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated for the new pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 21 Jul 2009 09:50:21 +0200
-
-gst-plugins-base0.10 (0.10.23.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/build-deps.in,
-      debian/rules:
-      - Update build dependencies.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated for the new API.
-    + debian/patches/01_playbin2-cdda-regression.patch:
-      - Dropped, merged upstream.
-  * debian/control.in:
-    + Updated Standards-Version to 3.8.2, no additional changes needed.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 16 Jul 2009 06:18:35 +0200
-
-gst-plugins-base0.10 (0.10.23-4) UNRELEASED; urgency=low
-
-  * debian/control.in:
-    + Fix section of debug package. 
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 18 Jun 2009 13:35:45 +0200
-
-gst-plugins-base0.10 (0.10.23-3) unstable; urgency=low
-
-  * debian/build-deps.in,
-    debian/control.in:
-    + (Build-) depend on libglib2.0-doc and gstreamer0.10-doc to
-      get correct cross references.
-  * debian/control.in:
-    + Add ${misc:Depends} everywhere.
-    + Let the -dbg package only suggest the gnomevfs package
-      as the GNOME metapackage now conflicts with the gnomevfs
-      package (Closes: #532469).
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 17 Jun 2009 12:04:43 +0200
-
-gst-plugins-base0.10 (0.10.23-2) unstable; urgency=low
-
-  * debian/patches/01_playbin2-cdda-regression.patch:
-    + Fix a regression with cdda:// playback in playbin2.
-      Patch from upstream GIT.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 15 May 2009 07:03:35 +0200
-
-gst-plugins-base0.10 (0.10.23-1) unstable; urgency=low
-
-  * New upstream release, 'Emergency de-stress call':
-    + debian/libgstreamer.symbols:
-      - Change new symbol version to 0.10.23.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 11 May 2009 10:53:55 +0200
-
-gst-plugins-base0.10 (0.10.22.4-1) experimental; urgency=low
-
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 07 May 2009 10:00:24 +0200
-
-gst-plugins-base0.10 (0.10.22.3-1) experimental; urgency=low
-
-  * debian/control.in:
-    + Updated Standards-Version to 3.8.1, no additional changes needed.
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 22 Apr 2009 08:11:28 +0200
-
-gst-plugins-base0.10 (0.10.22.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/rules:
-      - Require GStreamer >= 0.10.22.2.
-    + debian/patches/01_alsamixer-race-condition.patch,
-      debian/patches/02_fft-allocations.patch,
-      debian/patches/03_base64-overflow-CVE-2009-0586.patch,
-      debian/patches/04_alsamixer-deadlock.patch:
-      - Dropped, merged upstream.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated for the new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 16 Apr 2009 09:19:02 +0200
-
-gst-plugins-base0.10 (0.10.22-5) unstable; urgency=low
-
-  * debian/rules:
-    + Include clean-la.mk to remove dependency_libs from the .la files.
-      This is a preparation to drop them later and to remove unneeded
-      dependencies when linking to the GStreamer libraries.
-  * debian/patches/04_alsamixer-deadlock.patch:
-    + Fix a deadlock in alsamixer in some error cases. Patch from upstream
-      GIT, fixes a gnome-sound-properties freeze.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 04 Apr 2009 08:40:17 +0200
-
-gst-plugins-base0.10 (0.10.22-4) unstable; urgency=high
-
-  * debian/patches/03_base64-overflow-CVE-2009-0586.patch:
-    + SECURITY: Fix overflow in the base64 code, CVE-2009-0586.
-      Patch from upstream GIT.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 17 Mar 2009 10:46:54 +0100
-
-gst-plugins-base0.10 (0.10.22-3) unstable; urgency=low
-
-  * debian/patches/01_alsamixer-race-condition.patch:
-    + Fix race condition in alsamixer which made the volume controls
-      useless in many situations (Closes: #514685).
-      Patch from upstream GIT.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 26 Feb 2009 11:04:51 +0100
-
-gst-plugins-base0.10 (0.10.22-2) unstable; urgency=low
-
-  * Upload to unstable.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 15 Feb 2009 19:57:57 +0100
-
-gst-plugins-base0.10 (0.10.22-1) experimental; urgency=low
-
-  * New upstream release, 'Hidey Hidey Hidey Ho':
-    + debian/patches/01_fft-struct-alignment.patch:
-      - Dropped, merged upstream.
-    + debian/patches/02_fft-allocations.patch:
-      - Initialize some uninitialized variables.
-    + debian/rules:
-      - Update GStreamer build dependency to 0.10.22.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update for the new version.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 20 Jan 2009 09:11:18 +0100
-
-gst-plugins-base0.10 (0.10.21.3-2) experimental; urgency=low
-
-  * debian/patches/01_fft-struct-alignment.patch,
-    debian/patches/02_fft-allocations.patch:
-    + Fix struct alignment in the FFT library, resulting
-      in SIGBUS on sparc.
-    + Save one allocation per FFT instance.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 13 Jan 2009 21:09:04 +0100
-
-gst-plugins-base0.10 (0.10.21.3-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/patches/01_gio-modules.patch,
-      debian/patches/02_gnome-vfs-modules.patch,
-      debian/patches/99_autoconf.patch:
-      - Dropped, merged upstream.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated with the new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 11 Jan 2009 20:23:06 +0100
-
-gst-plugins-base0.10 (0.10.21.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/patches/02_gtkdoc-rebase.patch,
-      debian/patches/03_image-tag-length.patch:
-      - Dropped, merged upstream.
-    + debian/rules:
-      - Update gstreamer build dependency.
-    + debian/gstreamer-plugins-base.install,
-      debian/libgstreamer-plugins-base.install:
-      - Add new libgstapp library and app plugin.
-    + debian/patches/01_gio-modules.patch,
-      debian/patches/02_gnome-vfs-modules.patch,
-      debian/patches/99_autoconf.patch:
-      - Add plugin dependencies for the GnomeVFS, GIO, GVfs
-        modules.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Add new symbols.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 07 Jan 2009 12:12:13 +0100
-
-gst-plugins-base0.10 (0.10.21-3) experimental; urgency=low
-
-  * debian/patches/03_image-tag-length.patch:
-    + Patch from upstream CVS to fix a regression with the length of
-      image tags which makes all non-URI list image tags broken.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 22 Oct 2008 09:02:26 +0200
-
-gst-plugins-base0.10 (0.10.21-2) experimental; urgency=low
-
-  * debian/patches/02_gtkdoc-rebase.patch:
-    + Don't require gtk-doc for the docs. Fixes the build with
-      binary-arch only.
-  * debian/patches/02_gtk-doc-cflags.patch:
-    + Dropped, this was already fixed different upstream.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 07 Oct 2008 11:33:19 +0200
-
-gst-plugins-base0.10 (0.10.21-1) experimental; urgency=low
-
-  * New upstream release, 'We Could Be Wrong':
-    + debian/rules:
-      - Build depend on gstreamer >= 0.10.21.
-    + debian/build-deps.in:
-      - Build depend on GTK >= 2.12 for some tests.
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 04 Oct 2008 12:27:42 +0200
-
-gst-plugins-base0.10 (0.10.20-3) experimental; urgency=low
-
-  * debian/control.in:
-    + Suggest gstreamer-codec-install instead of gnome-app-install.
-    + Recommend gvfs for the GIO plugin.
-    + Wrap control fields.
-  * debian/rules:
-    + Build depend on gstreamer >= 0.10.20-3 for the new virtual package
-      names.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 15 Aug 2008 09:25:49 +0200
-
-gst-plugins-base0.10 (0.10.20-2) experimental; urgency=low
-
-  * debian/control.in,
-    debian/rules:
-    + Use new automatic codec installation infrastructure.
-  * debian/rules:
-    + Use /usr/bin/gstreamer-codec-install as codec installation helper. This
-      is an alternative that is provided by gnome-app-install for example.
-  * debian/control.in:
-    + Let the debug package only depend on gstreamer0.10-alsa on Linux.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 07 Aug 2008 15:49:44 +0200
-
-gst-plugins-base0.10 (0.10.20-1) unstable; urgency=low
-
-  * New upstream release, 'Here I Go Again':
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated for the new version.
-  * debian/control.in:
-    + Updated Standards-Version to 3.8.0, no additional changes needed.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 18 Jun 2008 20:14:42 +0200
-
-gst-plugins-base0.10 (0.10.19.3-1) experimental; urgency=low
-
-  * New upstream pre-release.
-  * debian/patches/02_gtk-doc-cflags.patch:
-    + Use the CFLAGS passed to configure also for the gtk-doc utitilities.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 12 Jun 2008 12:10:52 +0200
-
-gst-plugins-base0.10 (0.10.19.2-1) experimental; urgency=low
-
-  [ Sjoerd Simons ]
-  * debian/patches/12_decodebin_fakesink.patch
-    + Added.  Lock the fakesink before setting the state to NULL and removing
-    it from the bin so that a concurrent state change cannot interfere. (From
-    upstream CVS)
-
-  [ Sebastian Dröge ]
-  * New upstream pre-release:
-    + Fixes parsing of tmplayer/vplayer subtitles (Closes: #478301).
-    + debian/patches/01_gio_no_http.patch,
-      debian/patches/03_gio-uri-schemes-fix.patch,
-      debian/patches/11_baseaudiosink_rounding_errors.patch,
-      debian/patches/12_decodebin_fakesink.patch,
-      debian/patches/75_build_docs_without_python_xml.patch:
-      - Dropped, merged upstream.
-    + debian/build-deps.in,
-      debian/rules:
-      - Bump gstreamer build dependency to >= 0.10.19.1.
-      - Bump liboil build dependency to >= 0.3.14.
-    + debian/libgstreamer-plugins-base.symbols:
-      - Update symbol files for the new symbols.
-  * debian/rules:
-    + Pass -c4 to to dh_makeshlibs to fail the build when the symbol files is
-      out of date.
-    + Don't compress gtk-doc documentation to make gtk-doc happy.
-  * debian/patches/02_werror.patch,
-    debian/rules:
-    + Drop patch to prevent usage of -Werror and append -Wno-error to
-      CFLAGS and CXXFLAGS instead.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 05 Jun 2008 08:26:35 +0200
-
-gst-plugins-base0.10 (0.10.19-2) unstable; urgency=low
-
-  * debian/patches/11_baseaudiosink_rounding_errors.patch
-    + Added. Prevents the accumulation of rounding errors, causing audio and
-    video to get out of sync in certain streams (From upstream CVS)
-
- -- Sjoerd Simons <sjoerd@debian.org>  Mon, 12 May 2008 12:01:04 +0200
-
-gst-plugins-base0.10 (0.10.19-1) unstable; urgency=high
-
-  * New upstream bugfix release, "Good Times":
-    + debian/patches/04_rtsp-eagain.patch:
-      - Dropped, merged upstream.
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 07 Apr 2008 11:42:41 +0200
-
-gst-plugins-base0.10 (0.10.18-3) unstable; urgency=low
-
-  * debian/patches/03_gio-uri-schemes-fix.patch:
-    + Correctly set the supported URI schemes without leaving a NULL
-      somewhere except at the end.
-  * debian/patches/04_rtsp-eagain.patch:
-    + Retry on EAGAIN instead of erroring out.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 25 Mar 2008 09:07:03 +0100
-
-gst-plugins-base0.10 (0.10.18-2) unstable; urgency=low
-
-  * debian/patches/01_gio_no_http.patch:
-    + Don't use GIO for HTTP(S). It doesn't work that good and can't support
-      icecast metadata by design. Instead souphttpsrc/neonhttpsrc/gnomevfssrc
-      should be used for HTTP(S).
-
- -- Sebastian Dröge <slomo@debian.org>  Sat, 22 Mar 2008 15:19:52 +0100
-
-gst-plugins-base0.10 (0.10.18-1) unstable; urgency=low
-
-  * New upstream release, "I will follow":
-    + debian/libgstreamer-plugins-base.symbols:
-      - Updated for the new version.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 21 Mar 2008 01:16:21 +0100
-
-gst-plugins-base0.10 (0.10.17.4-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/libgstreamer-plugins-base.symbols,
-      debian/rules:
-      - Update symbols for 0.10.17.4 and use file versionize magic to
-        get the correct filename for the symbols file.
-    + debian/patches/02_werror.patch:
-      - Don't build with -Werror.
-    + debian/rules:
-      - Build depend on gstreamer >= 0.10.17.4.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 18 Mar 2008 13:31:18 +0100
-
-gst-plugins-base0.10 (0.10.17.3-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/libgstreamer-plugins-base0.10-0.symbols:
-      - Updated.
-    + debian/rules:
-      - Update GStreamer build dependency to >= 0.10.17.3.
-  * debian/patches/75_build_docs_without_python_xml.patch,
-    debian/build-deps.in:
-    + Stop using pyxml for building the docs (Closes: #468628).
-  * debian/gstreamer-plugins-base.install,
-    debian/build-deps.in,
-    debian/rules:
-    + Enable the GIO plugin.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 11 Mar 2008 04:55:40 +0100
-
-gst-plugins-base0.10 (0.10.17.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + debian/patches/01_theoradec-granulepos.patch:
-      - Dropped, merged upstream.
-    + debian/rules:
-      - Update gstreamer build dependency.
-    + debian/libgstreamer-plugins-base0.10-0.symbols:
-      - Update symbols file.
-  * debian/control.in:
-    + Add Homepage field.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 04 Mar 2008 15:57:08 +0100
-
-gst-plugins-base0.10 (0.10.17-3) unstable; urgency=low
-
-  * 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.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 19 Feb 2008 08:11:32 +0100
-
-gst-plugins-base0.10 (0.10.17-2) unstable; 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 ]
-  * debian/patches/01_theoradec-granulepos.patch:
-    + Increment granulepos for new-bitstream versions appropriately. Fixes
-      playback of some Theora movies, e.g. LCA talks. Patch from upstream CVS
-      (Closes: #465106).
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 11 Feb 2008 07:49:20 +0100
-
-gst-plugins-base0.10 (0.10.17-1) unstable; urgency=low
-
-  * New upstream bugfix-only release, "Peanut Butter and Jelly":
-    + Fixes ABI breakage in GstMixer related classes (Closes: #463202).
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 30 Jan 2008 16:06:49 +0100
-
-gst-plugins-base0.10 (0.10.16-1) unstable; urgency=low
-
-  * New upstream release, "Scheduled Interruption", with API additions:
-    + debian/libgstreamer-plugins-base0.10-0.symbols:
-      - Update symbols for 0.10.16.
-  * debian/control.in:
-    + Add Replaces for gstreamer0.10-plugins-bad/-dbg as found in the
-      Ubuntu package to keep their delta lower.
-    + Add Conflicts for totem-gstreamer as found in the Ubuntu package
-      to keep their delta lower.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 29 Jan 2008 11:08:13 +0100
-
-gst-plugins-base0.10 (0.10.15.4-1) experimental; urgency=low
-
-  * New upstream pre-release.
-  * debian/libgstreamer-plugins-base0.10-0.symbols,
-    debian/control.in:
-    + Add a symbols file for the GStreamer base libraries, generated from all
-      0.10 releases since 0.10.0. Build depend on dpkg-dev >= 1.14.13 for this.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 22 Jan 2008 13:22:56 +0100
-
-gst-plugins-base0.10 (0.10.15.3-1) experimental; urgency=low
-
-  * New upstream pre-release.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 18 Jan 2008 05:58:20 +0100
-
-gst-plugins-base0.10 (0.10.15.2-1) experimental; urgency=low
-
-  * New upstream pre-release:
-    + Adds support for chained Ogg files (Closes: #415572). This only works
-      if the playback application uses the new playbin2 plugin that is still
-      API unstable.
-    + debian/patches/01_baseaudiosink-eos-hanging.patch,
-      debian/patches/02_audioresample-latency.patch:
-      - Dropped, merged upstream.
-    + debian/gstreamer-plugins-base.install:
-      - Drop removed uridecodebin plugin, GstURIDecodeBin is in the decodebin2
-        plugin now.
-  * debian/rules:
-    + Update gstreamer build dependency.
-  * debian/control.in:
-    + Update Standards-Version to 3.7.3, no additional changes needed.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 15 Jan 2008 15:23:54 +0100
-
-gst-plugins-base0.10 (0.10.15-4) unstable; urgency=low
-
-  [ Sebastian Dröge ]
-  * debian/rules:
-    + Set package name to "GStreamer Base Plugins" instead of "GStreamer
-      Plugins".
-
-  [ Loic Minier ]
-  * Bump up type-handling build-dep to >= 0.2.14 and call it with two
-    arguments again.
-
- -- Loic Minier <lool@dooz.org>  Mon, 10 Dec 2007 16:09:53 +0100
-
-gst-plugins-base0.10 (0.10.15-3) unstable; urgency=low
-
-  * debian/patches/01_baseaudiosink-eos-hanging.patch:
-    + Properly calculate EOS time to prevent hanging for some time
-      before receiving an EOS event (Closes: #452174).
-      Patch taken from upstream CVS.
-  * debian/patches/02_audioresample-latency.patch:
-    + Implement latency query in audioresample. This fixes audioresample
-      in a live pipeline. Patch taken from upstream CVS.
-  * debian/rules:
-    + Run the testsuite but don't fail the build if it doesn't work.
-
- -- Sebastian Dröge <slomo@debian.org>  Wed, 28 Nov 2007 11:09:04 +0100
-
-gst-plugins-base0.10 (0.10.15-2) unstable; urgency=low
-
-  * debian/rules,
-    debian/build-deps.in:
-    + Use HOME instead of GNOME_VFS_HOME as the variable name changed in
-      2.20.0-2. (Closes: #451905)
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 19 Nov 2007 17:24:06 +0100
-
-gst-plugins-base0.10 (0.10.15-1) unstable; urgency=low
-
-  * New upstream release, "Light Years Ahead", with API additions:
-    + Fixes FTBFS if built twice in a row (Closes: #442587).
-    + debian/patches/02_short-ogg-files.patch:
-      - Dropped, merged upstream.
-    + debian/control.in:
-      - Update gstreamer0.10 build dependency to >= 0.10.14.1.
-    + debian/libgstreamer-plugins-base.install:
-      - Add new libgstfft library.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 13 Nov 2007 15:06:10 +0100
-
-gst-plugins-base0.10 (0.10.14-4) unstable; urgency=low
-
-  * debian/patches/02_short-ogg-files.patch:
-    + Fix playback of very short Ogg/Vorbis files. Patch from upstream CVS,
-      (Closes: #441364).
-  * debian/rules:
-    + s/curdir/CURDIR/ to fix FTBFS.
-  * debian/build-deps.in:
-    + Fix minimal required GnomeVFS version.
-
- -- Sebastian Dröge <slomo@debian.org>  Sun, 09 Sep 2007 12:01:19 +0200
-
-gst-plugins-base0.10 (0.10.14-3) unstable; urgency=low
-
-  * debian/build-deps.in,
-    debian/rules:
-    + Require GnomeVFS >= 2.18.1-4 for the GNOME_VFS_HOME environment
-      variable and use this and GST_REGISTRY for the dh_gstscancodecs call
-      to make it work on buildds with non-writable homes.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 07 Sep 2007 16:08:15 +0200
-
-gst-plugins-base0.10 (0.10.14-2) unstable; urgency=low
-
-  [ Sebastian Dröge ]
-  * debian/rules:
-    + Correctly set LD_LIBRARY_PATH for dh_gstscancodecs.
-  * debian/control.in:
-    + Recommend libgnomevfs2-extra on gstreamer0.10-gnomevfs. This is
-      necessary to get HTTP support (Closes: #432363).
-
-  [ Loic Minier ]
-  * Fix LD_LIBRARY_PATH.
-  * Drop misc obsolete compatibility vars from rules.
-  * Drop useless $(version).
-  * Cleanup rules.
-
-  [ Sebastian Dröge ]
-  * debian/rules:
-    + Don't call dh_gstscancodecs for now. As GnomeVFS needs a writable home
-      directory when initializing dh_gstscancodecs fails on the GnomeVFS
-      plugin and the build fails (Closes: #435978).
-
- -- Sebastian Dröge <slomo@debian.org>  Mon, 13 Aug 2007 14:22:15 +0200
-
-gst-plugins-base0.10 (0.10.14-1) unstable; urgency=low
-
-  [ Sebastian Dröge ]
-  * New upstream release 'Light Years Ahead', with API additions:
-    + Uses ALSA mixer notifications instead of polling (Closes: #424016).
-  * debian/patches/20_oggmux-schroedinger.patch:
-    + Dropped, merged upstream.
-  * debian/rules:
-    + Update gstreamer0.10 build dependency to >= 0.10.13.1.
-  * debian/libgstreamer-plugins-base.install:
-    + Add new libgstrtsp and libgstsdp libraries.
-  * debian/gstreamer-plugins-base.install:
-    + Add queue2 and uridecodebin plugins.
-  * debian/control.in:
-    + Suggest libvisual-0.4-plugins in gstreamer0.10-plugins-base for the
-      libvisual plugin.
-    + Use ${binary:Version} instead of ${Source-Version} to make lintian
-      happy.
-
-  [ Loic Minier ]
-  * Pass --with-install-plugins-helper="/usr/bin/gnome-codec-install" to
-    configure; thanks Julian Andres Klode; suggest gnome-app-install;
-    closes: 434999.
-
-  [ Sebastian Dröge ]
-  * debian/rules,
-    debian/build-deps.in:
-    + Run dh_gstscancodecs to export the codecs database.
-
- -- Sebastian Dröge <slomo@debian.org>  Fri, 03 Aug 2007 17:31:53 +0200
-
-gst-plugins-base0.10 (0.10.13-2) unstable; urgency=low
-
-  * debian/patches/20_oggmux-schroedinger.patch:
-    + Patch from upstream CVS to fix muxing of Dirac video in Ogg containers.
-
- -- Sebastian Dröge <slomo@debian.org>  Thu, 07 Jun 2007 16:29:57 +0200
-
-gst-plugins-base0.10 (0.10.13-1) unstable; urgency=low
-
-  * New upstream release with some API additions, "What's going on?":
-    + Fixes internal dataflow error with subtitles (Closes: #425323).
-  * debian/rules:
-    + There's no gstreamer0.10-theora package anymore since ages so don't try
-      to generate an install file for it.
-  * debian/control:
-    + Update libtheora build dependency. At least 1.0alpha5 is now required.
-
- -- Sebastian Dröge <slomo@debian.org>  Tue, 05 Jun 2007 17:29:51 +0200
-
-gst-plugins-base0.10 (0.10.12.1+cvs20070529-1) unstable; urgency=low
-
-  * Prepare CVS snapshot
-  * Bump libgstreamer0.10-dev build-depend to 0.10.12.1
-  * Add myself to Uploaders
-
- -- Sjoerd Simons <sjoerd@debian.org>  Tue, 29 May 2007 09:08:13 +0200
-
-gst-plugins-base0.10 (0.10.12-2) unstable; urgency=low
-
-  * Upload to unstable
-  * Merge experimental branch:
-    + New upstream release 0.10.12, "Zombie Horde":
-      - Updated german translations (Closes: #379505)
-      - debian/rules:
-        . Update gstreamer build dependency to >= 0.10.11.1
-      - debian/libgstreamer-plugins-base.install:
-        . Add libgstpbutils-0.10 library
-      - debian/patches/20_oggdemux-check-bos.patch:
-        . Dropped, applied upstream
-    + Let libgstreamer-plugins-base0.10-dev depend on the same version of
-      libgstreamer0.10-dev as the one gst-plugins-base0.10 build-depends on.
-      (Loic Minier)
-    + debian/control:
-      - Updated to use my debian.org mail address
-    + New upstream release 0.10.11, "Dumb things":
-      - debian/patches/70_relibtoolize.patch:
-        . Dropped, upstream uses Debian's libtool
-      - debian/build-deps.in:
-        . Raise liboil0.3-dev build dependency to >= 0.3.8
-      - debian/rules:
-        . Raise gstreamer0.10 build-dependency to >= 0.10.10.1
-      - debian/gstreamer-plugins-base.install:
-        . Add decodebin2 plugin
-
- -- Sebastian Dröge <slomo@debian.org>  Mon,  9 Apr 2007 23:40:49 +0200
-
-gst-plugins-base0.10 (0.10.10-4) unstable; urgency=medium
-
-  * Fix superfluous .orig file in patch 20_oggdemux-check-bos;
-    thanks Luk Claes.
-
- -- Loic Minier <lool@dooz.org>  Mon, 29 Jan 2007 17:59:40 +0100
-
-gst-plugins-base0.10 (0.10.10-3) unstable; urgency=medium
-
-  * New patch, 20_oggdemux-check-bos, fixes handling of problems when reading
-    BOS pages in the oggdemux element; reported by Sam Hocevar; from
-    GNOME #399340; closes: #407004.
-
- -- Loic Minier <lool@dooz.org>  Mon, 22 Jan 2007 17:39:59 +0100
-
-gst-plugins-base0.10 (0.10.10-2) unstable; urgency=low
-
-  * Drop superfluous libgstvideo4linux.so lines in
-    gstreamer-plugins-base.install; thanks Aurelien Jarno for fixing
-    GNU/kFreeBSD again! closes: #391853.
-
- -- Loic Minier <lool@dooz.org>  Mon,  6 Nov 2006 18:50:31 +0100
-
-gst-plugins-base0.10 (0.10.10-1) unstable; urgency=low
-
-  [ Sebastian Dröge ]
-  * New upstream release, "Chorizo", some API additions.
-    - Fix handling of ALSA emu10k1 mixer tracks. (Closes: #387095)
-    - debian/patches/70_relibtoolize.patch:
-      + Updated
-    - debian/rules:
-      + Bump libgstreamer0.10-dev build dependency to (>= 0.10.9.1)
-    - debian/gstreamer-plugins-base.install:
-      + Add the new GDP element
-
-  [ Loic Minier ]
-  * Force generation of debian/control, whatever the timestamps say.
-  * Fix duplicate dependencies.
-
- -- Loic Minier <lool@dooz.org>  Fri, 15 Sep 2006 17:54:16 +0200
-
-gst-plugins-base0.10 (0.10.9-3) unstable; urgency=low
-
-  * debian/rules,
-    debian/control.in:
-    + Add a -dbg package
-  * debian/compat,
-    debian/build-deps.in:
-    + Bump debhelper compat level to 5
-
- -- Sebastian Dröge <slomo@ubuntu.com>  Wed, 23 Aug 2006 22:14:56 +0200
-
-gst-plugins-base0.10 (0.10.9-2) unstable; urgency=medium
-
-  * Don't build the doc on arm and m68k.  It's painfully long, and -- at least
-    on arm -- it segfaults; this is to lower the impact of #383147.
-  * Update TODO list.
-
- -- Loic Minier <lool@dooz.org>  Sat, 19 Aug 2006 23:25:01 +0200
-
-gst-plugins-base0.10 (0.10.9-1) unstable; urgency=low
-
-  * New upstream release, "I walk the line", with API additions.
-    - Bump up libgstreamer0.10-dev build-dep to >= 0.10.8.1.
-    - Update 10_gnome-vfs-dav-url patch.
-    - Drop 11_audioresample-non-negociated-errors patch, merged upstream.
-    - Update 70_relibtoolize patch.
-
- -- Loic Minier <lool@dooz.org>  Sat, 15 Jul 2006 11:01:08 +0200
-
-gst-plugins-base0.10 (0.10.8-2) unstable; urgency=low
-
-  [ Loic Minier ]
-  * New patch, 10_gnome-vfs-dav-url, to allow the gnomevfs plugin to handle
-    dav:// URIs, thanks Mike Hommey. (Closes: #370362)
-  * New patch, 11_audioresample-non-negociated-errors from upstream, to clear
-    the internal state of audioresample properly and hence avoid
-    "non-negociated" errors. (Closes: #376544)
-
-  [ Sebastian Dröge ]
-  * Change libvisual0.2-dev Build-Depends to libvisual-0.4-dev
-
- -- Sebastian Dröge <slomo@ubuntu.com>  Thu,  6 Jul 2006 11:07:35 +0200
-
-gst-plugins-base0.10 (0.10.8-1) unstable; urgency=low
-
-  * New upstream release, "Moar gij ziet mij nie".
-    - Bump up libgstreamer0.10-dev build-dep to >= 0.10.6.1.
-    - New patch, 70_relibtoolize, ditto.
-    - Drop 01_alsasink-query-rates, included and changed upstream.
-    - Query the supported sampling rates from ALSA (Closes: #365877)
-
- -- Loic Minier <lool@dooz.org>  Sun, 11 Jun 2006 14:50:05 +0200
-
-gst-plugins-base0.10 (0.10.7-2) unstable; urgency=low
-
-  * Bump up Standards-Version to 3.7.2.
-    [debian/control, debian/control.in]
-  * Export OIL_CPU_FLAGS=0 for commands launched during the build process as
-    it can cause build failures on buildds with specific hardware at build
-    time.
-    [debian/rules]
-
- -- Loic Minier <lool@dooz.org>  Thu, 18 May 2006 14:48:33 +0200
-
-gst-plugins-base0.10 (0.10.7-1) unstable; urgency=low
-
-  * Stop shipping /usr/lib/*.la files in libgstreamer-plugins-base-dev.
-    [debian/libgstreamer-plugins-base-dev.install]
-  * New upstream release, "Leave the gun", with API additions.
-    - Bump up inter-dependencies to 0.10.7.
-      [debian/control]
-    - Drop relibtoolizing patch as this release was libtoolized under Debian
-      or a derivative.
-      [debian/patches/70_relibtoolize.patch]
-    - Bump up libsgtreamer0.10-dev build-dep to >= 0.10.5.1.
-      [debian/control, debian/rules]
-
- -- Loic Minier <lool@dooz.org>  Sun, 14 May 2006 21:57:10 +0200
-
-gst-plugins-base0.10 (0.10.6-1) unstable; urgency=low
-
-  * New upstream release, "Chao".
-    - Relibtoolize.
-      [debian/patches/70_relibtoolize.patch]
-
- -- Loic Minier <lool@dooz.org>  Fri, 28 Apr 2006 23:10:10 +0200
-
-gst-plugins-base0.10 (0.10.5.2-1) unstable; urgency=low
-
-  * New upstream pre-release, with API additions.
-    - Bump up libgstreamer0.10-dev build-dep to 0.10.4.1.
-      [debian/control, debian/rules]
-    - Relibtoolize.
-      [debian/patches/70_relibtoolize.patch]
-
- -- Loic Minier <lool@dooz.org>  Tue, 18 Apr 2006 10:45:48 +0200
-
-gst-plugins-base0.10 (0.10.5-1) unstable; urgency=low
-
-  * New upstream release, "Net", with API additions.
-    - Relibtoolize.
-      [debian/patches/70_relibtoolize.patch]
-    - Drop patch to detect NFS mounts, merged upstream.
-      [debian/patches/02_gnomevfssrc.patch]
-
- -- Loic Minier <lool@dooz.org>  Fri, 17 Mar 2006 17:54:20 +0100
-
-gst-plugins-base0.10 (0.10.4-1) unstable; urgency=low
-
-  [ Loic Minier ]
-  * New upstream release, "Power", with API additions.
-    - Bump up libgstreamer0.10-dev build-dep to >= 0.10.4.
-      [debian/control, debian/rules]
-    - Drop patch for force linking against the PIC version of libcheck since
-      upstream implemented a better fix.
-      [debian/patches/10_libcheck-macro-force-pic.patch]
-    - Relibtoolize.
-      [debian/patches/70_relibtoolize.patch]
-
-  [ Sebastian Dröge ]
-  * debian/patches/02_gnomevfssrc.patch (from GStreamer CVS):
-    + gnome_vfs_uri_is_local() alone is not a good indicator whether we can
-      operate in pull-mode with a specific URI, as it returns FALSE for
-      file:// URIs that point to an NFS-mounted path. Be more conservative
-      here: whitelist local files, blacklist http URIs and use the old
-      mechanism for anything else (Closes: GNOME #334216).
-
- -- Sebastian Dröge <slomo@ubuntu.com>  Sun, 12 Mar 2006 17:31:46 +0100
-
-gst-plugins-base0.10 (0.10.3-1) unstable; urgency=low
-
-  * New upstream release, "Under Pressure". (Closes: #352773)
-
- -- Loic Minier <lool@dooz.org>  Tue, 14 Feb 2006 10:36:59 +0100
-
-gst-plugins-base0.10 (0.10.2.3-1) unstable; urgency=low
-
-  * New upstream pre-release.
-  * Add visual plugin.
-    . Install plugin.
-      [debian/gstreamer-plugins-base.install]
-    . Add libvisual0.2-dev (>= 0.2.0) build-dep.
-      [debian/build-deps, debian/build-deps.in, debian/control]
-  * Use upstream descriptions in packages descriptions.
-    [debian/control, debian/control.in]
-
- -- Loic Minier <lool@dooz.org>  Sat, 11 Feb 2006 17:23:37 +0100
-
-gst-plugins-base0.10 (0.10.2.2-1) unstable; urgency=low
-
-  * New upstream pre-release.
-    - Bump liboil0.3-dev build-dep to >= 0.3.6.
-      [debian/control, debian/build-deps, debian/build-deps.in]
-    - Bump libgstreamer0.10-dev build-dep to >= 0.10.2.2
-      [debian/control, debian/rules]
-    - Relibtoolize.
-      [debian/patches/70_relibtoolize.patch]
-
- -- Loic Minier <lool@dooz.org>  Wed,  8 Feb 2006 18:01:48 +0100
-
-gst-plugins-base0.10 (0.10.2-2) unstable; urgency=high
-
-  * Bump libgstreamer0.10-dev build-dep to 0.10.2, thanks Bastian Blank.
-    (Closes: #348526)
-    [debian/control, debian/rules]
-
- -- Loic Minier <lool@dooz.org>  Fri, 20 Jan 2006 13:58:23 +0100
-
-gst-plugins-base0.10 (0.10.2-1) unstable; urgency=low
-
-  * New upstream release, "Then the devil is six".
-    - Add new libgstcdda library.
-      [debian/libgstreamer-plugins-base.install, debian/control,
-       debian/control.in]
-    - Add new cdparanaoia plugin.
-      [debian/gstreamer-plugins-base.install]
-
- -- Loic Minier <lool@dooz.org>  Mon, 16 Jan 2006 23:14:17 +0100
-
-gst-plugins-base0.10 (0.10.1-1) unstable; urgency=medium
-
-  * Drop the version requirement on gstreamer0.10-tools as it might end being
-    unsatisfied.
-    [debian/control, debian/control.in]
-  * Call dh_perl in binary-post-install/$(gst_pkgname)-plugins-base-apps and
-    use ${perl:Depends}.
-    [debian/control, debian/control.in, debian/rules]
-  * New upstream release.
-    - Upload as non-native package. (Closes: #345573)
-    - Relibtoolize and build-depend on libxt-dev (>= 6.8.2.dfsg.1-3) as an
-      additionnal safety measure. (Closes: #345327)
-      [debian/build-deps, debian/build-deps.in, debian/control,
-       debian/patches/70_relibtoolize.patch]
-    - Drop gst-launch-ext and update description of base-apps.
-      [debian/control, debian/control.in,
-       debian/gstreamer-plugins-base-apps.install,
-       debian/gstreamer-plugins-base-apps.manpages]
-    - Drop unused cdparanoia patch applied upstream.
-      [debian/patches/50_cdparanoia-fix-eos-detection-of-last-title.patch]
-    - Bump GST_LIB_DEV_DEP to 0.10.0.2.
-      [debian/control, debian/rules]
-  * Drop unused GST_PLUGINS_BASE_LIB_DEV_DEP and use the upstream version
-    (gst_version) in lieu of gst_plugins_base_version for inter-deps
-    consistency.
-    [debian/rules]
-  * Use gst_plugins_base_lib_dep to define shlibs.
-    [debian/rules]
-  * Force linking against libcheck_pic instead of libcheck.  Warning: to use
-    this patch you need to relibtoolize afterwards or patch configure too.
-    [debian/patches/10_libcheck-macro-force-pic.patch]
-
- -- Loic Minier <lool@dooz.org>  Tue,  3 Jan 2006 22:23:12 +0100
-
-gst-plugins-base0.10 (0.10.0-3) unstable; urgency=low
-
-  * Fix the package name, that's gstreamer0.10-plugins-base
-    [debian/gstreamer-plugins-base.install, debian/rules]
-
- -- Sebastien Bacher <seb128@debian.org>  Thu, 22 Dec 2005 11:39:27 +0100
-
-gst-plugins-base0.10 (0.10.0-2) unstable; urgency=low
-
-  * Rename gstreamer0.10-misc to gstreamer0.10-plugins-good for consistency.
-    [debian/control, debian/control.in, debian/gstreamer-misc.install,
-     debian/gstreamer-plugins-good.install, debian/rules]
-
- -- Loic Minier <lool@dooz.org>  Wed, 21 Dec 2005 19:35:20 +0100
-
-gst-plugins-base0.10 (0.10.0-1) unstable; urgency=low
-
-  [ Sebastien Bacher ]
-  * New package:
-    - build the documentation [debian/rules]
-    - no action needed to register the plugins with the new version
-      [debian/gstreamer-plugin-template.postinst,
-       debian/gstreamer-plugin-template.postrm,
-       debian/libgstreamer-plugins.postinst,
-       debian/libgstreamer-plugins.postrm, debian/rules]
-    - drop mechanism to build extra packages for other distributions around,
-      it's not useful for base [debian/extras, debian/rules]
-    - drop transitionnal workaround [debian/gstreamer-plugin-template.preinst]
-    - new gstreamer-plugin-base-doc package [debian/control.in, debian/rules]
-    - remove obsolete patches
-      [debian/patches/10_wavpack-high-quality-segfault.patch,
-      debian/patches/30_alsa-verify-accepted-period-size.patch,
-      debian/patches/31_alsa-advanced-probing.patch,
-      debian/patches/40_audioscale-timestamps-and-durations.patch,
-      debian/patches/50_ladspa-quiet.patch]
-    - updated the Build-Depends [debian/build-dep.in]
-    - updated the packages descriptions [debian/control.in]
-    - updated the packages names/list [debian/control.in,
-      debian/gstreamer-a52dec.install, debian/gstreamer-aa.install,
-      debian/gstreamer-artsd.install, debian/gstreamer-audiofile.install,
-      debian/gstreamer-avifile.install, debian/gstreamer-caca.install,
-      debian/gstreamer-cdio.install, debian/gstreamer-dvd.install,
-      debian/gstreamer-dv.install, debian/gstreamer-esd.install,
-      debian/gstreamer-festival.install, debian/gstreamer-flac.install,
-      debian/gstreamer-gsm.install, debian/gstreamer-gtk.install,
-      debian/gstreamer-hermes.install, debian/gstreamer-jpeg.install,
-      debian/gstreamer-lame.install, debian/gstreamer-mad.install,
-      debian/gstreamer-mikmod.install, debian/gstreamer-mms.install,
-      debian/gstreamer-mpeg2dec.install, debian/gstreamer-oss.install,
-      debian/gstreamer-sdl.install, debian/gstreamer-sid.install,
-      debian/gstreamer-speex.install, debian/gstreamer-swfdec.install,
-      debian/libgstreamer-gconf.install, debian/libgstreamer-gconf-dev.install,
-      debian/gstreamer-vorbis.install, debian/rules]
-    - updated the packages lists [debian/gstreamer-misc.install,
-      debian/libgstreamer-plugins-base-dev.install,
-      debian/libgstreamer-plugins-base.install]
-    - updated packages content
-      [debian/gstreamer-misc.install, debian/gstreamer-x.install]
-    - updated the version [debian/rules]
-    - updated watch file [debian/watch]
-
-  [ Loic Minier ]
-  * Minor cleanups.
-    [debian/rules]
-  * Add Sebastien Bacher to Uploaders.
-    [debian/control, debian/control.in]
-
- -- Loic Minier <lool@dooz.org>  Sat, 17 Dec 2005 18:11:03 +0100
-
-gst-plugins0.8 (0.8.11-3) unstable; urgency=medium
-
-  * New CDIO plugin package.
-    . Add libcdio-dev build-dep for CDIO support.
-      [debian/build-deps.in, debian/build-deps, debian/control]
-    . Add package description and file listing.
-      [debian/gstreamer-cdio.install, debian/control.in, debian/control]
-    . List package in plugins build-list. [debian/rules]
-    . List package in gstreamer-plugins deps.
-      [debian/control.in, debian/control]
-  * New MMS plugin package. (Closes: #301246)
-    . Add libmms-dev build-dep for mms:// and mmsh:// support.
-      [debian/build-deps.in, debian/build-deps, debian/control]
-    . Add package description and file listing.
-      [debian/gstreamer-cdio.install, debian/control.in, debian/control]
-    . List package in plugins build-list. [debian/rules]
-    . List package in gstreamer-plugins deps.
-      [debian/control.in, debian/control]
-  * Fix the homepage of the mikmod page and stop linking to an adult web site.
-    [debian/control, debian/control.in]
-  * Remove "Section: libs" from binary packages.
-    [debian/control, debian/control.in]
-  * Exit with non-zero code when requesting an unknown plugin.
-    [debian/extra]
-  * Add sample code to permit other distros to build additional plugins.
-    [debian/rules]
-  * Minor cleanups.
-    [debian/rules]
-  * New Gtk / Gdk package to split out this dep-tree for KDE folks, from
-    Ubuntu, thanks Sebastien Bacher.
-    . Add package description and file listing, remove it from -misc.
-      [debian/control.in, debian/control, debian/gstreamer-gtk.install,
-      debian/gstreamer-misc.install]
-    . List package in plugins build-list. [debian/rules]
-    . List package in gstreamer-plugins deps.
-      [debian/control.in, debian/control]
-    . Only "Replace" with -misc in the first version doing the split
-      (0.8.11-0ubuntu3), no Conflict needed.
-  * Add wavpack support, build the wavpack plugin and ship it in -misc.
-    (Closes: #339598)
-    . Add a libwavpack-dev build-dep.
-      [debian/build-deps, debian/build-deps.in]
-    . Ship plugin in -misc.
-      [debian/gstreamer-misc.install]
-    . Adjust the size of the internal decode buffer dynamically instead of
-      assuming 0.5 seconds are enough;  fixes a segfault when playing files
-      encoded with -h;  upstream bug: #317774;  fix committed in branch
-      BRANCH-GSTREAMER-0_8.
-      [debian/patches/10_wavpack-high-quality-segfault.patch]
-  * Backport some interesting upstream fixes from CVS fixing most resampling
-    issues for non-standard bitrates and for complex ALSA configurations
-    (especially dmix), thanks Tim-Philipp Müller, Luca Ognibene, and others.
-    (Closes: #323447, #324163, #326135, #340038)
-    - When doing _set_period_size_near(), see what period size was actually
-      set in the end and continue working with that value instead of just
-      assuming the desired period size was accepted;  upstream bug #318767;
-      fix committed in branch BRANCH-GSTREAMER-0_8.
-      [debian/patches/30_alsa-verify-accepted-period-size.patch]
-    - Don't mess up timestamps and durations when resampling by more than a
-      factor of 2 (e.g. 8kHz => 48kHz);  upstream bug #318273;  fix committed
-      in branch BRANCH-GSTREAMER-0_8.
-      [debian/patches/40_audioscale-timestamps-and-durations.patch]
-    - When the default device is being used, try to probe the caps of the
-      underlying device instead if possible. This should give more narrowly
-      defined caps that are closer to the hardware's capabilities. This is
-      enabled by default, but can be switched off via the new
-      'advanced-probing' property;  upstream bug #315121;  fix committed in
-      branch BRANCH-GSTREAMER-0_8.
-      [debian/patches/31_alsa-advanced-probing.patch]
-  * Drop the polypaudio plugin package. (Closes: #342278)
-    . Drop libpolyp-dev (>= 0.7) build-dep.
-      [debian/build-deps.in, debian/build-deps, debian/control]
-    . Remove package description and file listing.
-      [debian/gstreamer-polypaudio.install, debian/control.in, debian/control]
-    . Remove package from plugins build-list. [debian/rules]
-    . Remove package from gstreamer-plugins deps.
-      [debian/control.in, debian/control]
-  * Add libgconf2-dev, libglib2.0-dev, liborbit2-dev, libpopt-dev, libxml2-dev
-    deps to libgstreamer-gconf0.8-dev as listed in its .la files.
-    [debian/control, debian/control.in]
-  * Add libglib2.0-dev, libpopt-dev, libxml2-dev deps to
-    libgstreamer-plugins0.8-dev as listed in its .la files.
-    [debian/control, debian/control.in]
-  * Fix EOS detection for last title (fixes gnome-cd hanging after last track
-    ends), thanks Gustavo Noronha Silva;  upstream bug #317630;  fix committed
-    in branch BRANCH-GSTREAMER-0_8. (Closes: #330954)
-    [debian/patches/50_cdparanoia-fix-eos-detection-of-last-title.patch]
-  * Don't overwrite DEB_CONFIGURE_EXTRA_FLAGS.
-    [debian/rules]
-
- -- Loic Minier <lool@dooz.org>  Sun, 11 Dec 2005 14:52:38 +0100
-
-gst-plugins0.8 (0.8.11-2) unstable; urgency=high
-
-  * Add misc:depends to all binary packages. (Closes: #329759)
-
- -- Loic Minier <lool@dooz.org>  Mon, 17 Oct 2005 21:41:54 +0200
-
-gst-plugins0.8 (0.8.11-1) unstable; urgency=low
-
-  * Override gstreamer-dv section to extra because it depends on libavc1394-0
-    which is in extra. [debian/control, debian/control.in]
-  * Bump libflac-dev build-dependency for the latest flac soname change
-    (libflac6 -> libflac7). (Closes: #325940)
-  * New upstream release, "... And Thanks For All The Fix".
-    - New plugin imagemixer. [debian/gstreamer-misc.install]
-    - New plugin dvdsubdec. [debian/gstreamer-misc.install]
-    - Drop obsolete artsd patch, merged upstream.
-      [debian/patches/25_artds-no-name.patch]
-  * Update FSF address. [debian/copyright]
-  * Add cairo plugin. [debian/build-deps, debian/build-deps.in,
-    debian/control, debian/gstreamer-misc.install]
-
- -- Loic Minier <lool@dooz.org>  Sun,  4 Sep 2005 21:19:47 +0200
-
-gst-plugins0.8 (0.8.10-3) unstable; urgency=high
-
-  * Urgency high because this fixes some RC bugs and 0.8.10-2 was caught in
-    the C++ transition.
-  * Bump up build-deps to get versions past the C++ transition.
-    [debian/build-deps, debian/build-deps.in, debian/control]
-    - libsdl1.2-dev
-    - libsidplay1-dev (Closes: #321315)
-    - libarts1-dev, libartsc0-dev
-  * Change X11 build-deps for the Xorg transition.
-    [debian/build-deps, debian/build-deps.in, debian/control]
-    - remove xlibs-dev and xlibs-pic.
-    - add libx11-dev, libxext-dev, and libxv-dev.
-  * Drop jack plugin. [debian/build-deps, debian/build-deps.in,
-    debian/control, debian/control.in, debian/gstreamer-jack.install,
-    debian/rules] (Closes: #321648)
-  * Add libgstglimagesink plugin. [debian/gstreamer-x.install]
-  * Add libgstfreeze plugin. (Closes: #318146) [debian/gstreamer-misc.install]
-  * Let libgstreamer-gconf suggest gnome-media. (Closes: #294490)
-    [debian/control, debian/control.in]
-
- -- Loic Minier <lool@dooz.org>  Fri, 12 Aug 2005 18:36:58 +0200
-
-gst-plugins0.8 (0.8.10-2) unstable; urgency=medium
-
-  [ Sebastien Bacher ]
-  * debian/build-deps.in:
-    - list libpolyp-dev.
-  * debian/control.in:
-    - gstreamer0.8-plugins depends on gstreamer0.8-polypaudio.
-    - gstreamer0.8-polypaudio description.
-  * gstreamer-polypaudio.install:
-    - install libpolypaudio.so.
-  * debian/rules:
-    - list polypaudio.
-
-  [ Loic Minier ]
-  * Update jack dependency. (Closes: #317197)
-    [debian/build-deps, debian/build-deps.in, debian/control]
-  * Update aalib dependency. (Closes: #320886)
-    [debian/build-deps, debian/build-deps.in, debian/control]
-
-  * Urgency medium because of RC.
-
- -- Loic Minier <lool@dooz.org>  Sun, 10 Jul 2005 19:27:08 +0200
-
-gst-plugins0.8 (0.8.10-1) unstable; urgency=low
-
-  * Loic Minier:
-    * New upstream release "Jangle".
-      - Bump inter-dependencies to >= 0.8.10.
-    * Use upstream fix for the "name" property of the artsdsink element.
-      [debian/patches/25_artds-no-name.patch]
-
- -- Loic Minier <lool@dooz.org>  Sat,  2 Jul 2005 21:04:40 +0200
-
-gst-plugins0.8 (0.8.9-2) unstable; urgency=medium
-
-  * Loic Minier:
-    * Urgency medium as last gstreamer0.8 release exposed an artsdsink
-      problem fixed here.
-    * Add a versioned dependency with >= current-upstream-version to all
-      current shlibs inter-dependencies to ensure consistency of symbols.
-      (Closes: #315556) [debian/control, debian/control.in, debian/rules]
-    * Remove the "name" property in the artsd plugin as it interferes with
-      the usage of this property within GStreamer. (Closes: #314762)
-      [debian/patches/25_artds-no-name.patch]
-    * Call gst-register and gst-compprep with GST_REGISTRY in their
-      environment to override the default behavior of writing to
-      /root/.gstreamer-0.8, waiting for an upstream fix.
-      [debian/gstreamer-plugin-template.postinst,
-      debian/gstreamer-plugin-template.postrm]
-    * Add a postinst/postrm snipset to register plugins in
-      libgstreamer-plugins0.8. (Closes: #283658)
-      [debian/libgstreamer-plugins.postrm,
-      debian/libgstreamer-plugins.postinst, debian/changelog, debian/rules]
-    * Remove left over /root/.gstreamer-0.8 tree if it hasn't been modified.
-      [debian/gstreamer-plugin-template.preinst, debian/rules]
-    * Set Maintainer to group. [debian/control, debian/control.in]
-    * Bump Standards-Version to 3.6.2, no change needed.
-      [debian/control, debian/control.in]
-    * Workaround type-handling bug #315761.
-      [debian/control, debian/control.in, debian/rules]
-
- -- Loic Minier <lool@dooz.org>  Mon, 27 Jun 2005 15:44:35 +0200
-
-gst-plugins0.8 (0.8.9-1) unstable; urgency=low
-
-  * Loic Minier:
-    * New upstream release "Old Hat".
-      - Fix SIGFPE in alsasrc. (Closes: #279399)
-      - New Musepack plugin package.
-        . Add libmpcdec-dev build-dep for Musepack support, this is now
-          detected in a Debian compatible manner via mpcdec/mpcdec.h and
-          -lmpcdec. [debian/build-deps.in, debian/build-deps, debian/control]
-        . Add package description and file listing.
-          [debian/gstreamer-musepack.install, debian/control.in,
-          debian/control]
-        . List package in plugins build-list. [debian/rules]
-        . List package in gstreamer-plugins deps.
-          [debian/control.in, debian/control]
-      - Renamed and updated "ladspa" patch.
-        [debian/patches/ladspa-quiet.patch,
-        debian/patches/50_ladspa-quiet.patch]
-      - Add video4linuxradio plugin to the gstreamer-misc package.
-        [debian/rules]
-    * Add compatibility block for older dpkg and use DEB_HOST_ARCH_OS.
-    * Add myself as uploader. [debian/control.in, debian/control]
-    * Fix indentation and executable permission of package maintaining
-      helpers. [debian/extra, debian/maint, debian/mk.control]
-    * Remove more bits from the arts plugin, left over in 0.8.1-2.
-      [debian/extra, debian/gstreamer-arts.install]
-    * Document the role of most files. [debian/HACKING.Debian]
-    * Add a TODO list for the Debian package. [debian/TODO.Debian]
-
- -- Loic Minier <lool@dooz.org>  Tue, 21 Jun 2005 07:47:04 +0200
-
-gst-plugins0.8 (0.8.8-3) unstable; urgency=low
-
-  * debian/build-deps.in:
-    * Bump liboil dependency to liboil0.3-dev.  gst-plugins doesn't yet use
-      0.3 itself but the swfdec plugin build requires it.
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 30 Mar 2005 19:08:07 -0500
-
-gst-plugins0.8 (0.8.8-2) unstable; urgency=low
-
-  * debian/control.in:
-    * gstreamer0.8-vorbis depends on gstreamer0.8-misc >= 0.8.8-1
-      (Closes: #300082, #299954, #299921)
-
- -- David I. Lehn <dlehn@debian.org>  Thu, 17 Mar 2005 12:53:38 -0500
-
-gst-plugins0.8 (0.8.8-1) unstable; urgency=low
-
-  * New upstream
-  * debian/patches/flac.patch:
-    * Remove: included upstream
-  * debian/gstreamer-misc.install:
-    * Add new plugins: autodetect, dvdlpcmdec, puzzle, rfbsrc, subparse
-    * Add new plugins with lib dependencies: gconfelements, mng, shout2
-      (Closes: #292011)
-  * debian/build-deps.in:
-    * Add: libmng-dev, libshout3-dev
-  * Upstream fixes:
-    * Xv falls back to X11 (Closes: #296848)
-    * Better audio sink selection (Closes: #284210)
-    * alsasink crash (Closes: #296751)
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 16 Mar 2005 01:00:39 -0500
-
-gst-plugins0.8 (0.8.7-3) unstable; urgency=low
-
-  * debian/rules, debian/build-deps.in
-    * Apply additional kfreebsd-gnu patch (Closes: #272568)
-  * debian/patches/flac.patch:
-    * Upstream fix for FLAC API change (Closes: #290784)
-
- -- David I. Lehn <dlehn@debian.org>  Mon, 17 Jan 2005 17:53:42 -0500
-
-gst-plugins0.8 (0.8.7-2) unstable; urgency=low
-
-  * debian/rules:
-    * Bump libgstreamer0.8-dev dependency to >= 0.8.7.1
-
- -- David I. Lehn <dlehn@debian.org>  Sat,  8 Jan 2005 15:50:45 -0500
-
-gst-plugins0.8 (0.8.7-1) unstable; urgency=low
-
-  * New upstream
-  * debian/build-deps.in, debian/control.in, debian/rules,
-    debian/gstreamer-dv.install, debian/gstreamer-misc.install:
-    * Patch build system for kfreebsd-gnu (Closes: #272568)
-  * debian/rules:
-    * Distribute NEWS (as requested in #275717)
-  * debian/gstreamer-misc.install:
-    * Add new plugins: apetag, tta
-  * debian/patches/configure-speex.patch:
-    * Remove patch, included upstream
-  * debian/build-deps.in:
-    * Build against latest libflac-dev
-
- -- David I. Lehn <dlehn@debian.org>  Fri,  7 Jan 2005 13:52:27 -0500
-
-gst-plugins0.8 (0.8.6-1) unstable; urgency=low
-
-  * New upstream
-    * Rhythmbox hangs/crashes fixes (Closes: #245757, #277146)
-    * Rhythmbox silence after resume play fixes (Closes: #261841)
-    * Ogg seeking fixes (Closes: #277396)
-  * debian/build-deps.in:
-    * Bump libswfdec to libswfdec0.3-dev
-    * Add libavc1394-dev
-    * Add liboil0.2-dev
-    * Versioned libspeex-dev
-  * debian/gstreamer-misc.install:
-    * Add new plugin: equalizer
-  * debian/watch:
-    * Add watch file
-  * debian/rules:
-    * Update GStreamer core dev dependency to 0.8.4
-  * ext/ladspa/gstladspa.c, debian/patches/ladspa-quiet.patch:
-    * Move patch to debian/patches/
-
- -- David I. Lehn <dlehn@debian.org>  Mon, 29 Nov 2004 04:02:43 -0500
-
-gst-plugins0.8 (0.8.5-1) unstable; urgency=low
-
-  * New upstream
-  * debian/rules:
-    * Use CDBS simple-patchsys
-    * debian/control: to debian/control:: for newer CDBS
-  * debian/patches/configure-speex.diff:
-    * Fix speex detection
-
- -- David I. Lehn <dlehn@debian.org>  Wed,  6 Oct 2004 20:15:52 -0400
-
-gst-plugins0.8 (0.8.4-1) unstable; urgency=low
-
-  * New upstream
-  * debian/control.in:
-    * Add -theora package to -plugins package
-  * debian/rules:
-    * Drop upstream ChangeLog from plugin packages due to size
-  * debian/README.Debian:
-    * Add note about ChangeLog
-
- -- David I. Lehn <dlehn@debian.org>  Thu,  2 Sep 2004 23:03:44 -0400
-
-gst-plugins0.8 (0.8.3-1) unstable; urgency=low
-
-  * New upstream
-  * debian/control.in, debian/build-deps.in, debian/gstreamer-theora.install,
-    debian/rules:
-    * New theora plugin
-  * debian/gstreamer-misc.install:
-    * Add new plugins: alphacolor, decodebin, multifilesink, playbin
-
- -- David I. Lehn <dlehn@debian.org>  Sat,  7 Aug 2004 09:50:10 -0400
-
-gst-plugins0.8 (0.8.2-3) unstable; urgency=high
-
-  * debian/libgstreamer-gconf.postinst:
-    Remove.  schema install now handled by dh_gconf which moved the schema
-    location causing old hardcoded /etc path to fail.
-    (Closes: #259538, #259119, #259205)
-  * Urgency high: GNOME team wants this in sarge now.
-
- -- David I. Lehn <dlehn@debian.org>  Fri, 16 Jul 2004 09:17:18 -0400
-
-gst-plugins0.8 (0.8.2-2) unstable; urgency=low
-
-  * debian/rules:
-    * Bump libgstreamer0.8-dev dep up to get fixed shlibs
-  * Rebuild with proper shlibs (Closes: #256181, #256494)
-
- -- David I. Lehn <dlehn@debian.org>  Wed,  7 Jul 2004 01:16:48 -0400
-
-gst-plugins0.8 (0.8.2-1) unstable; urgency=medium
-
-  * New upstream
-  * debian/build-deps.in:
-    * Add libdts-dev
-  * ext/Makefile.{am,in}:
-    * Fix so dts dir is built
-  * debian/gstreamer-misc.install:
-    * Add DTS plugin
-    * Added alpha, audiorate, dtsdec, multipart, videobox, videomixer, and
-      videorate
-  * debian/rules:
-    * Update libgstreamer0.8-dev build dependency to 0.8.3-2
-  * debian/control.in:
-    * Remove explicit libgstreamer deps, autodetected now
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 23 Jun 2004 23:50:53 -0400
-
-gst-plugins0.8 (0.8.1-4) unstable; urgency=low
-
-  * gst-libs/gst/riff/riff-media.c:
-    * caps type typo fix from CVS
-  * gst-libs/gst/resample/private.h:
-    * disabled ppc code fix from CVS (Closes: #252991)
-  * sys/v4l/gstv4lsrc.c:
-    * caps fix NULL->any from CVS
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 16 Jun 2004 01:24:41 -0400
-
-gst-plugins0.8 (0.8.1-3) unstable; urgency=low
-
-  * rerun autoget.sh to fix arm builds (Closes: #251592)
-  * gconf/gstreamer.schemas.in, gcon/gstreamer-0.8.schemas:
-    s/xvideosink/xvimagesink/ (Closes: #250575) 
-
- -- David I. Lehn <dlehn@debian.org>  Tue,  1 Jun 2004 10:10:37 -0400
-
-gst-plugins0.8 (0.8.1-2) unstable; urgency=low
-
-  * debian/build-deps.in:
-    * Update "libdv2-dev" to "libdv4-dev | libdv-dev"
-  * debian/control.in, debian/extra, debian/rules:
-    * Remove arts plugin.  Detection, flags, and include directory build code
-      is too buggy for plugin to build at the moment.
-
- -- David I. Lehn <dlehn@debian.org>  Thu, 29 Apr 2004 18:10:48 -0400
-
-gst-plugins0.8 (0.8.1-1) unstable; urgency=low
-
-  * New upstream
-  * debian/gstreamer-misc.install:
-    * add libgstdebug.so
-
- -- David I. Lehn <dlehn@debian.org>  Sun, 18 Apr 2004 01:04:36 -0400
-
-gst-plugins0.8 (0.8.0-2) unstable; urgency=low
-
-  * Bump to -2 to ease upgrades for early -1 testers
-  * debian/build-deps.in:
-    * Add libgtk2.0-dev 
-
- -- David I. Lehn <dlehn@debian.org>  Thu, 15 Apr 2004 17:50:14 -0400
-
-gst-plugins0.8 (0.8.0-1) unstable; urgency=low
-
-  * New upstream (Closes: #234071, #240663)
-  * debian/rules:
-    * Switch to CDBS
-    * Version now at 0.8
-    * Convert various control files to versioned ones for build
-    * Add/rename/remove generated plugins files
-  * debian/control.in:
-    * Update Standards-Version to 3.6.1
-    * Add -caca and -speex plugins
-    * Remove -http plugin
-  * debian/build-deps.in:
-    * Add cdbs
-    * Update debhelper >= 4.1.0
-    * Add caca, speex, and pango deps
-    * Remove libghttp-dev
-  * debian/gstreamer-http.install
-    * Remove
-  * debian/gstreamer-{speex|caca}.install:
-    * Add new plugins
-  * debian/*.install:
-    * Append debian/tmp for CDBS
-    * General cleanups to support versioned files and locations
-  * debian/gstreamer-esd.install:
-    * Remove libgstesdmod
-    * Change libgstesdsink to libgstesd
-  * debian/gstreamer-plugin-libs.install:
-    * Stick locale info in here for lack of a better place
-  * debian/gstreamer-plugin-libs[-dev].install:
-    * Add support for colorbalance, mixer, navigation, propertyprobe, tag,
-      tuner, xoverlay, and xwindowlistener
-    * Add pkgconfig support for plugins, interfaces, and media-info
-  * debian/gstreamer-gnomevfs.install:
-    * s/libgstgnomevfs{src|sink}.so/libgstgnomevfs.so/
-  * debian/gstreamer-colorspace.install:
-    * Rename to gstreamer-hermes.install
-    * Move generic and ffmpeg based colorspace plugins to -misc
-    * Provide gstreamerX.Y-colorspace
-  * debian/gstreamer-misc.install:
-    * v4l/v4l2 support merged to libgstvideo4linux[2].so
-    * Add gdkpixbuf, interleave, nassink, ogg, smoothwave, tagedit,
-      textoverlay, timeoverlay, typefindfunctions, videobalance, videodrop,
-      videofilter, videoflip
-    * Move generic and ffmpeg based colorspace plugins from -hermes
-    * Provide gstreamerX.Y-colorspace
-  * debian/gstreamer-plugin-libs.install:
-    * Rename to libgstreamer-plugins.install
-  * debian/gstreamer-plugin-libs-dev.install:
-    * Rename to libgstreamer-plugins-dev.install
-  * debian/gstreamer-gconf.install:
-    * Rename libgstreamer-gconf.install
-    * Remove dev files
-  * debian/gstreamer-gconf.postinst:
-    * Rename to libgstreamer-gconf.postinst
-  * debian/libgstreamer-gconf-dev.install:
-    * Added
-    * Add dev parts from gstreamer-gconf.install
-  * configure.ac, configure:
-    * Patch from CVS to get arts to detect on Debian boxen
-  * ext/speex/gstspeex{dec,enc}.c:
-    * Upstream patch for static pad templates (caused gst-compprep-0.8 bugs)
-  * ext/ladspa/gstladspa.c:
-    * Change g_warning to DEBUG_OBJ to silence gst-compprep
-  * ext/libcaca/gstcacsink.c:
-    * Upstream patch to avoid cacasink windows with gst-inspect/compprep
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 14 Apr 2004 19:14:14 -0400
-
-gst-plugins0.7 (0.7.6-1) unstable; urgency=low
-
-  * New upstream
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 17 Mar 2004 19:06:48 -0500
-
-gst-plugins0.7 (0.7.5-1) unstable; urgency=low
-
-  * New upstream
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 17 Mar 2004 18:47:19 -0500
-
-gst-plugins0.7 (0.7.4-1) unstable; urgency=low
-
-  * New upstream
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 17 Mar 2004 18:46:27 -0500
-
-gst-plugins0.7 (0.7.3-1) unstable; urgency=low
-
-  * New upstream
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 17 Mar 2004 18:42:05 -0500
-
-gst-plugins0.7 (0.7.1-1) unstable; urgency=low
-
-  * New upstream
-    * Versioning package as 0.7
-
- -- David I. Lehn <dlehn@debian.org>  Wed, 17 Mar 2004 18:31:51 -0500
-
-gst-plugins (0.6.4-4) unstable; urgency=low
-
-  * ext/alsa/gstalsa.h:
-    * Patch to compile with alsa-lib 1.0.x (Closes: #231870)
-
- -- David I. Lehn <dlehn@debian.org>  Sat, 14 Feb 2004 17:49:01 -0500
-
-gst-plugins (0.6.4-3) unstable; urgency=low
-
-  * debian/build-deps.in:
-    * Update jack dependency to libjack0.80.0-dev (>= 0.94.0)
-      (Closes: #221620, #228784)
-    * Update libmpeg2 dependency to libmpeg2-4-dev (>= 0.4.0b)
-  * ext/mpeg2dec/gstmpeg2dec.c: Patch for libmpeg2 0.4.0b
-
- -- David I. Lehn <dlehn@debian.org>  Mon, 26 Jan 2004 18:21:45 -0500
-
-gst-plugins (0.6.4-2) unstable; urgency=low
-
-  * debian/rules: Disable ffmpeg for everything but i386 due to PIC issues
-    (Closes: #219284)
-
- -- David I. Lehn <dlehn@debian.org>  Thu,  6 Nov 2003 16:30:35 -0500
-
-gst-plugins (0.6.4-1) unstable; urgency=low
-
-  * New upstream
-    * ESD updates (Closes: #218736)
-  * Acknowledge NMU (Closes: #217981, #213811)
-  * Rebuild to fix gconf liblinc1 dependency (Closes: #217771)
-  * gstreamer-misc: add v4l2 support (Closes: #199900)
-  * Use pre-Linux-2.6 videodev.h to compile v4l support
-
- -- David I. Lehn <dlehn@debian.org>  Mon,  3 Nov 2003 15:10:59 -0500
-
-gst-plugins (0.6.3-1.1) unstable; urgency=low
-
-  * NMU - Patch from Jordi Mallach
-  * debian/build-deps.in: libgconf2-dev and libgnomevfs2-dev need GNOME 2.4
-    versions for the liblinc1 transition (closes: #217981).
-  * debian/rules: gstreamer build-dep should be versioned (>= 0.6.3)
-    (closes: #213811).
-
- -- LaMont Jones <lamont@debian.org>  Thu, 30 Oct 2003 09:12:11 -0700
-
-gst-plugins (0.6.3-1) unstable; urgency=low
-
-  * New upstream
-    * Includes ESD seeking fix (Closes: #201171)
-
- -- David I. Lehn <dlehn@debian.org>  Mon,  1 Sep 2003 23:15:49 -0400
-
-gst-plugins (0.6.2-2) unstable; urgency=low
-
-  * Fix ffmpeg makefile install rule to work even when ffmpeg build is
-    disabled (Closes: #198148, #199072)
-  * Apply partial patches from running autogen.sh to fix arm builds (excluding
-    other unrelated generated file changes) (Closes: #199872)
-  * Update to support libdvdnav 0.1.9 API
-
- -- David I. Lehn <dlehn@debian.org>  Fri, 11 Jul 2003 01:01:15 -0400
-
-gst-plugins (0.6.2-1) unstable; urgency=low
-
-  * New upstream
-  * Add dv1394src to gstreamer-dv
-
- -- David I. Lehn <dlehn@debian.org>  Thu, 12 Jun 2003 11:39:51 -0400
-
-gst-plugins (0.6.1-2) unstable; urgency=low
-
-  * (unreleased)
-  * Adapt to gstreamer package merge: remove -core, -core-libs, -core-libs-dev
-    dependencies as needed.  Fixes missing scheduler bugs.
-    (Closes: #181503, #191720)
-  * Use versioned gst-{register,compprep}-0.6
-  * Update jack dependency to libjack0.71.2-dev (Closes: #195401)
-  * Update libdvdnav dependency to (>= 0.1.7) and revert patch for
-    compatibility with 0.1.3.
-  * Update libdvdread2 dependency to libdvdread3-dev
-  * Remove DISPLAY unset hacks from postinst/postrm scripts and fix non-X
-    installs with 0.6.2 CVS xvideosink patch. (Closes: #165372, #168438)
-  * Link libgstplay to libgstcontrol. (Closes: #194107)
-
- -- David I. Lehn <dlehn@debian.org>  Thu,  5 Jun 2003 02:29:44 -0400
-
-gst-plugins (0.6.1-1) unstable; urgency=low
-
-  * New upstream
-  * Update maintainer address to @debian.org
-  * gstreamer-gconf libs properly linked upstream (Closes: Bug#187353)
-  * debian/control.in:
-    * gstreamer-vorbis depends on gstreamer-core-libs (Closes: Bug#188606)
-  * Apply gnomevfs patch from http://bugzilla.gnome.org/show_bug.cgi?id=94113
-  * ffmpeg plugin only builds, and now is only packaged, on i386/powerpc (Yes
-    this is bad - better shared lib support needed.) (Closes: Bug#186525)
-  * Revert dvdnav support to libdvdnav 0.1.3 API
-  * Unset DISPLAY before calling gst-register/gst-compprep
-  * ext/ladspa/gstladspa.c:472: s/g_warning/GST_DEBUG/ to avoid printing of a
-    warning on every plugin package install when swh-plugins is installed.
-    (sinCos plugin executes this code path)
-
- -- David I. Lehn <dlehn@debian.org>  Sat,  3 May 2003 18:30:16 -0400
-
-gst-plugins (0.6.0-4) unstable; urgency=low
-
-  * debian/build-deps.in:
-    * Updated libvorbis-dev to (>= 1.0.0-2) (Closes: Bug#184671)
-
- -- David I. Lehn <dlehn@vt.edu>  Fri, 14 Mar 2003 11:12:21 -0500
-
-gst-plugins (0.6.0-3) unstable; urgency=low
-
-  * debian/build-deps.in:
-    * Add libartsc0-dev so artsc-config is present so arts[d] plugins get
-      built so the arts[d] packages actually include the arts[d] plugins
-      (Closes: Bug#181438)
-    * Update JACK dependency to 0.50.0
-
- -- David I. Lehn <dlehn@vt.edu>  Fri,  7 Mar 2003 23:51:46 -0500
-
-gst-plugins (0.6.0-2) unstable; urgency=low
-
-  * NMU (with maintainer's permission)
-  * Change libarts-dev build-dep to libarts1-dev (Closes: #180537)
-
- -- David Schleef <ds@schleef.org>  Mon, 10 Feb 2003 21:33:47 -0800
-
-gst-plugins (0.6.0-1) unstable; urgency=low
-
-  * New upstream
-
- -- David I. Lehn <dlehn@vt.edu>  Sat,  1 Feb 2003 21:51:54 -0500
-
-gst-plugins (0.5.2.3-1) unstable; urgency=low
-
-  * New upstream
-
- -- David I. Lehn <dlehn@vt.edu>  Thu, 30 Jan 2003 23:52:08 -0500
-
-gst-plugins (0.5.2.2-1) unstable; urgency=low
-
-  * New upstream
-    * pre-release for 0.6.0
-  * debian/gstreamer-gconf.install:
-    * add gstreamer-gconf-*.pc
-  * debian/gstreamer-misc.install:
-    * remove libgstaviparse.so
-
- -- David I. Lehn <dlehn@vt.edu>  Wed, 29 Jan 2003 15:07:06 -0500
-
-gst-plugins (0.5.2-1) unstable; urgency=low
-
-  * New upstream
-  * debian/build-deps.in:
-    - Update swfdec dependency to 0.2.0
-  * debian/gstreamer-misc.install:
-    - add libgstaviparse.so
-
- -- David I. Lehn <dlehn@vt.edu>  Thu, 23 Jan 2003 22:17:31 -0500
-
-gst-plugins (0.5.1-1) unstable; urgency=low
-
-  * New upstream
-  * Update GStreamer dependency to 0.5.1
-  * Update JACK dependency to 0.44.0
-  * Remove gstreamer-avifile package (avifile not supported on many
-    architectures and upstream is deprecating it in favor of ffmpeg)
-  * Add support for building unsupported plugin packages (avifile, lame, etc)
-  * Tighten shlib deps for gstreamer-plugin-libs and gstreamer-gconf packages
-    (may split off true lib* packages eventually, was trying to avoid even
-    more packages)
-  * gstreamer-misc: add oneton and vbidec
-  * Rebuild for newer sid libs (Closes: Bug#177410)
-  * Various small fixes from CVS
-
- -- David I. Lehn <dlehn@vt.edu>  Mon, 20 Jan 2003 11:57:26 -0500
-
-gst-plugins (0.5.0-1) unstable; urgency=low
-
-  * New upstream
-  * Update libpng dependency to libpng12-0-dev
-  * Patch from CVS to support mpeg2dec 0.3.1
-  * Patch from CVS to improve X error handling and remote X usage
-  * gstreamer-plugin-libs[-dev]: add media-info lib
-  * gstreamer-misc: add png plugin
-  * Use swfdec 0.1.3 API: s/swf_init/swfdec_decoder_new/ to avoid symbol
-    conflicts with avifile plugin
-
- -- David I. Lehn <dlehn@vt.edu>  Tue, 17 Dec 2002 20:27:42 -0500
-
-gst-plugins (0.4.2-2) unstable; urgency=low
-
-  * Update JACK dependency to 0.40.1
-  * Apply gst-launch-ext perlism patch (Closes: #170736)
-  * Apply patch from Erik Meusel <meusel@codixx.de> to allow building with
-    other KDE arts packages (Closes: Bug#167538)
-  * Update mpeg2dec dependency to 0.3.0, convert over to gstmpeg2deccvs plugin
-    code, and adjust mpeg2dec check
-  * Add Provides: for virtual gstreamer-{audio,video}sink packages to make it
-    easier for applications to ensure output sinks are available.  This isn't
-    foolproof and it's possible that a rare user might not need the standard
-    packaged audio/video sinks.  For now those users can use the "equivs"
-    package to get around the problem. (Closes: Bug#169968)
-
- -- David I. Lehn <dlehn@vt.edu>  Wed,  4 Dec 2002 02:25:41 -0500
-
-gst-plugins (0.4.2-1.1) unstable; urgency=low
-
-  * NMU
-  * Depend on swfdec-0.1.2-3, since it had a bug.
-
- -- David Schleef <ds@schleef.org>  Tue, 12 Nov 2002 17:43:48 -0800
-
-gst-plugins (0.4.2-1) unstable; urgency=low
-
-  * New upstream
-  * Add libpng2-dev to Build-Depends for snapshot
-  * Add smpte, snapshot, and wavenc to gstreamer-misc
-  * Add video and play libs to gstreamer-plugin-libs{-dev}
-  * Add gstreamer-swfdec plugin package
-  * Add hack to swfdec plugin to not segfault when avifile also loaded due to
-    symbols conflicts.  This annoyance will spew errors during gst-compprep
-    and probably will cause errors in apps that use both swfdec and avifile.
-  * Tighten dependency on libgstreamer until upstream code can deal with
-    multiple plugin versions and upgrades better
-  * Move gstreamer-plugin-apps to Section: utils from x11
-
- -- David I. Lehn <dlehn@vt.edu>  Wed,  6 Nov 2002 21:41:01 -0500
-
-gst-plugins (0.4.1-1) unstable; urgency=low
-
-  * New upstream
-  * Update FLAC dependency to 1.0.4 and add support patch from CVS
-  * Rebuild for libflac4 (Closes: Bug#163549)
-  * Build gconf code as a library rather than a plugin
-  * Improved plugin descriptions
-  * Added to -misc: cdplayer, videocrop, videotestsrc, mixmatrix
-  * Add autotools-dev to Build-Depends
-  * Update config.{guess,sub}
-
- -- David I. Lehn <dlehn@vt.edu>  Mon,  7 Oct 2002 17:51:43 -0400
-
-gst-plugins (0.4.0.2-cvs20020919-1) unstable; urgency=low
-
-  * CVS snapshot, release branch
-  * gstreamer-gconf.files: libgstgconf.so moved to /usr/lib
-  * added control.in, build-deps, and mk.control script.  Edit control.in
-    and/or build-deps, and run 'debian/rules debian/control' from toplevel
-    directory to recreate debian/control.  This should make it a lot
-    easier to diff build dependencies.
-
- -- David Schleef <ds@schleef.org>  Thu, 19 Sep 2002 15:18:41 -0700
-
-gst-plugins (0.4.0-5) unstable; urgency=low
-
-  * Update Build-Depends
-  * Use pkg-config checking vs m4 macros for libdv
-
- -- David I. Lehn <dlehn@vt.edu>  Fri, 23 Aug 2002 10:33:29 -0400
-
-gst-plugins (0.4.0-4) unstable; urgency=low
-
-  * Fixes from CVS for gstgnomevfssrc.c and endian issue in vorbisfile.c
-
- -- David I. Lehn <dlehn@vt.edu>  Fri,  2 Aug 2002 20:51:38 -0400
-
-gst-plugins (0.4.0-3) unstable; urgency=low
-
-  * Add ladspa-sdk to Build-Depends
-  * Removed qcam plugin from -misc.
-    It's i386 only and probably not widely used.  Will figure out how to
-    package in the future if someone needs it.
-
- -- David I. Lehn <dlehn@vt.edu>  Mon, 29 Jul 2002 16:32:33 -0400
-
-gst-plugins (0.4.0-2) unstable; urgency=low
-
-  * Clean up the Build-Depends:
-    - stricter versioning
-    - remove gnome deps (used for examples which are not build now)
-  * Fix segfault in vorbis.m4 check
-
- -- David I. Lehn <dlehn@vt.edu>  Mon, 29 Jul 2002 10:47:12 -0400
-
-gst-plugins (0.4.0-1) unstable; urgency=low
-
-  * New upstream
-  * FLAC compile fixes from CVS
-  * DV comiled fixes
-  * Upated ltmain hack
-  * autogen.sh with more recent tools
-  * Update config.{guess,sub}
-  * Added plugin packages: -gconf, -http, -jack, -dv
-  * Added dvdnav plugin to -dvd
-  * Removed osshelper plugin from -oss
-  * Added xvideosink back to -x
-  * Added effectv, filter, and qtdemux plugins to -misc
-  * Rename gstreamer-lib-misc{-dev} to gstreamer-plugin-libs{-dev} to match
-    gstreamer core.
-  * Added gstreamer-plugin-apps package for a lonely 2 scripts
-  * Renamed gstreamer-all to gstreamer-plugins
-
- -- David I. Lehn <dlehn@vt.edu>  Tue, 16 Jul 2002 02:10:07 -0400
-
-gst-plugins (0.3.4-2) unstable; urgency=low
-
-  * Rebuild for new avifile
-
- -- David I. Lehn <dlehn@vt.edu>  Wed, 24 Apr 2002 14:06:46 -0400
-
-gst-plugins (0.3.4-1) unstable; urgency=low
-
-  * New upstream
-  * Fix mpeg2dec.m4 to use newer mpeg2dec libs
-
- -- David I. Lehn <dlehn@vt.edu>  Mon, 15 Apr 2002 03:34:21 -0400
-
-gst-plugins (0.3.3-2) unstable; urgency=low
-
-  * Port a52dec plugin to 0.7.3 API (applied upstream)
-  * Use a52dec packages in Debian vs current external ones
-    * This switches a52dec plugin to static linking
-  * Remove LAME support
-    * No LAME packages in Debian to depend on
-    * Added explanation in README.Debian since this will likely
-      cause no end of "Why is there no LAME plugin?"
-  * Depend on and rebuild for mpeg2dec 0.2.1
-  * Depend on and rebuild for glib 2.0
-  * Remove gtk from Build-Depends: (not needed for the built plugins)
-
- -- David I. Lehn <dlehn@vt.edu>  Sat, 23 Mar 2002 17:52:03 -0500
-
-gst-plugins (0.3.3-1) unstable; urgency=low
-
-  * New upstream version
-  * SDL fixed upstream, remove patch
-  * Require libid3tag for mad support
-  * Remove xvideosink from gstreamer-x package in favor of videosink
-    Needed to be removed due to symbol conflicts with videosink
-  * Sync with upstream changes:
-    * Added videosink to gstreamer-x package
-    * parseau renamed to auparse in -misc
-    * Added various plugins to -misc: goom, monoscope, modplug, ...
-  * Note: new upstream scripts gst-launch-ext and gst-visualise not
-    packaged yet
-
- -- David I. Lehn <dlehn@vt.edu>  Thu, 21 Mar 2002 02:06:21 -0500
-
-gst-plugins (0.3.2-3) unstable; urgency=low
-
-  * Rebuild for glib/gtk 1.3.15
-
- -- David I. Lehn <dlehn@vt.edu>  Mon, 25 Feb 2002 00:06:51 -0500
-
-gst-plugins (0.3.2-2) unstable; urgency=low
-
-  * Build against liblinc1 and newer gnomevfs
-
- -- David I. Lehn <dlehn@vt.edu>  Sun, 17 Feb 2002 15:52:57 -0500
-
-gst-plugins (0.3.2-1) unstable; urgency=low
-
-  * New upstream release
-  * Many diffs merged upstream
-  * Unversioned plugins upstream, just packaging .so (no .la, .a)
-  * Added cdxa plugin to -misc
-  * Various plugins in -misc moved around and merged upstream
-
- -- David I. Lehn <dlehn@vt.edu>  Fri, 15 Feb 2002 21:54:27 -0500
-
-gst-plugins (0.3.1-4) unstable; urgency=low
-
-  * Rebuild for glib/gtk 1.3.13
-
- -- David I. Lehn <dlehn@vt.edu>  Wed,  6 Feb 2002 02:16:16 -0500
-
-gst-plugins (0.3.1-3) unstable; urgency=low
-
-  * Fix arts symbol problem (add -lartsflow -lartsflow_idl)
-  * Replace m4/gst-sdl.m4 with Debian's sdl.m4
-  * Use SDL_LIBS_FOR_PLUGINS instead of SDL_LIBS
-
- -- David I. Lehn <dlehn@vt.edu>  Wed, 23 Jan 2002 12:37:00 -0500
-
-gst-plugins (0.3.1-2) unstable; urgency=low
-
-  * Rebuild against fixed gstreamer.pc in libgst-dev 0.3.1-2
-    Should just link to libxml2 now rather than v1 and v2
-
- -- David I. Lehn <dlehn@vt.edu>  Wed, 23 Jan 2002 02:29:49 -0500
-
-gst-plugins (0.3.1-1) unstable; urgency=low
-
-  * Upstream split plugins into new package
-  * Upstream removed mpg123 plugin - use mad plugin
-  * Upstream removed ac3dec plugin - use a52dec
-  * Added -lib-misc and -lib-misc-dev packages for
-    library plugins and headers
-  * Patch to link all plugins to GST_LIBS
-
- -- David I. Lehn <dlehn@vt.edu>  Fri, 11 Jan 2002 11:22:01 -0500
-
-gstreamer (0.3.0-3) unstable; urgency=low
-
-  * Remove upstream ChangeLog from packages: 128k changelog.gz per
-    plugin package for 40 packages is too much
-
- -- David I. Lehn <dlehn@vt.edu>  Tue, 25 Dec 2001 23:36:28 -0500
-
-gstreamer (0.3.0-2) unstable; urgency=low
-
-  * Fix bug that slipped into 0.3.0: s/aasink/xvideosink/ in
-    gstplay/gstplay.c
-
- -- David I. Lehn <dlehn@vt.edu>  Tue, 25 Dec 2001 17:56:29 -0500
-
-gstreamer (0.3.0-1) unstable; urgency=low
-
-  * New upstream release
-  * Attempt to update various Build-Depends versions
-  * Added plugin packages: -a52dec, -dvd, -mikmod, -sid
-  * Renamed -elements to -core
-  * Added to -core: gstbasicscheduler
-  * Moved from -common to -core: gsttypes, autoplug related
-  * Renamed -common to -misc
-  * Added to -misc: speed, qcam, bytesteram, control, silence, sinesrc,
-    mpegstream, playondemand, resample
-  * Added gstreamer-guilaunch to gstreamer-tools package
-  * Added dependencies on unofficial LAME packages
-  * Use PIC libs for Xv
-  * Disable broken building of PDF/PS docs
-  * Renamed -all-plugins to -all
-  * Disable docs -- too hard to build
-
- -- David I. Lehn <dlehn@vt.edu>  Fri, 21 Dec 2001 12:00:02 -0500
-
-gstreamer (0.2.1-4) unstable; urgency=low
-
-  * Fix some problems reported from lintian 1.20.14:
-    * copyright-lists-upstream-authors-like-dh_make
-    * debian-changelog-file-contains-user-emacs-settings
-  * Patch from CVS to link libgst into plugins
-    Plugins now properly depend on libgst package
-  * Use RedHat Gtk+-1.3 hack to fix relink issues with ltmain.sh
-  * Patch from CVS for xvideosink segfault when no DISPLAY set
-  * Remove builddir references from gstreamer-config.in
-  * Move libgstelements.la from libgst-dev to gstreamer-elements
-
- -- David I. Lehn <dlehn@vt.edu>  Tue, 28 Aug 2001 20:05:28 -0400
-
-gstreamer (0.2.1-3) unstable; urgency=low
-
-  * Update build dependencies to FLAC 1.0
-  * Enable debug features
-  * Fixup broken doc build -scan voodoo with link into .libs/ dir
-
- -- David I. Lehn <dlehn@vt.edu>  Sun,  5 Aug 2001 23:04:28 -0400
-
-gstreamer (0.2.1-2) unstable; urgency=low
-
-  * Fix lib deps: run debhelper tools in the right order
-  * Added arts dir to Makefile.am SUBDIRS so it builds again
-  * Changed libmpeg2dec to libgstmpeg2dec to avoid naming issues
-    when using -lmpeg2dec
-  * Updated system_encode/ with CVS segfaulter bug fix
-
- -- David I. Lehn <dlehn@vt.edu>  Thu, 19 Jul 2001 15:47:24 -0400
-
-gstreamer (0.2.1-1) unstable; urgency=low
-
-  * New upstream 0.2.1: "Return of the Sedi Master"
-  * New plugin packages: -festival, -flac, -avifile, -x
-  * New plugins in -common: chart, deinterlace, udp
-  * Added some post-0.2.1 fixes for FLAC, build system, ALSA
-
- -- David I. Lehn <dlehn@vt.edu>  Thu, 28 Jun 2001 20:15:15 -0400
-
-gstreamer (0.2.0-6) unstable; urgency=low
-
-  * Move -compprep to -runtime and call it same places as -register
-  * Do -register and -compprep in postrm instead of prerm
-  * Make -arts plugin actually build all the source (sent upstream)
-  * Purge of -runtime removes /etc/gstreamer
-
- -- David I. Lehn <dlehn@vt.edu>  Tue, 19 Jun 2001 13:09:32 -0400
-
-gstreamer (0.2.0-5) unstable; urgency=low
-
-  * Added element package dependencies to libgstmediaplay0
-
- -- David I. Lehn <dlehn@vt.edu>  Mon, 18 Jun 2001 11:18:53 -0400
-
-gstreamer (0.2.0-4) unstable; urgency=low
-
-  * Add --gst-mask=0 to -runtime.postinst
-
- -- David I. Lehn <dlehn@vt.edu>  Fri, 15 Jun 2001 11:47:24 -0400
-
-gstreamer (0.2.0-3) unstable; urgency=low
-
-  * Fix the plugin control file symlink creation
-  * Add audiofile to Build-Depends
-
- -- David I. Lehn <dlehn@vt.edu>  Fri, 15 Jun 2001 05:22:28 -0400
-
-gstreamer (0.2.0-2) unstable; urgency=low
-
-  * Fixed ALSA checks to not include -lasound in -every- link
-  * Update LAME plugin to use latest CVS API
-  * Removed OSS src/sink from -common.files (was in -oss too)
-  * Swapped -arts.files and -artsd.files contents
-
- -- David I. Lehn <dlehn@vt.edu>  Fri, 15 Jun 2001 04:02:21 -0400
-
-gstreamer (0.2.0-1) unstable; urgency=low
-
-  * Added gstreamer-compprep manpage
-  * Upgrade to 0.2.0
-
- -- David I. Lehn <dlehn@vt.edu>  Thu,  7 Jun 2001 12:53:59 -0400
-
-gstreamer (0.2.0-0.3) unstable; urgency=low
-
-  * GStreamer 0.2.0-pre3
-
- -- David I. Lehn <dlehn@vt.edu>  Wed,  6 Jun 2001 15:09:59 -0400
-
-gstreamer (0.2.0-0.2) unstable; urgency=low
-
-  * GStreamer 0.2.0-pre2 + CVS 20010604
-  * Added -artsd (vs -arts), -audiofile, -gnomevfs, -gsm, -jpeg,
-    -oss, and -sdl plugin packages
-  * Added osshelper lib to oss package
-  * Added more AVI related plugins and autoplug libs to -common
-  * Added pkgconfig file to libgst-dev
-  * Added gstreamer-all-plugins pseudo package that depends on
-    all other plugin pacakges
-
- -- David I. Lehn <dlehn@vt.edu>  Mon,  4 Jun 2001 17:33:20 -0400
-
-gstreamer (0.2.0-0.1) unstable; urgency=low
-
-  * GStreamer 0.2.0-pre1
-
- -- David I. Lehn <dlehn@vt.edu>  Thu, 31 May 2001 17:16:23 -0400
-
-gstreamer (0.1.1.20010504-1) unstable; urgency=low
-
-  * Latest CVS code
-
- -- David I. Lehn <dlehn@vt.edu>  Fri,  4 May 2001 21:48:45 -0400
-
-gstreamer (0.1.1.20010430-2) unstable; urgency=low
-
-  * Added -colorspace package for Hermes dependent conversion
-  * Added -arts package for aRts sink
-
- -- David I. Lehn <dlehn@vt.edu>  Tue,  1 May 2001 19:46:08 -0400
-
-gstreamer (0.1.1.20010430-1) unstable; urgency=low
-
-  * Latest CVS code
-  * Added -aa package for aasink output
-  * Added -mad package for mad mp3 decoder
-
- -- David I. Lehn <dlehn@vt.edu>  Mon, 30 Apr 2001 18:25:52 -0400
-
-gstreamer (0.1.1.20010320-1) unstable; urgency=low
-
-  * Latest CVS code
-  * enable main docs
-  * disable broken plugin docs with new option
-
- -- David I. Lehn <dlehn@vt.edu>  Tue, 20 Mar 2001 18:15:19 -0500
-
-gstreamer (0.1.1.20010315-1) unstable; urgency=low
-
-  * Latest CVS code
-  * Added man pages
-  * Split mpeg2dec to seperate plugin
-  * libgst Architectures updated to cothread supported archs
-
- -- David I. Lehn <dlehn@vt.edu>  Thu, 15 Mar 2001 20:17:19 -0500
-
-gstreamer (0.1.1-1) unstable; urgency=low
-
-  * New upstream release
-  * disable docs build, broken at the momemnt
-
- -- David I. Lehn <dlehn@vt.edu>  Sun, 25 Feb 2001 17:58:25 -0500
-
-gstreamer (0.1.0-2) unstable; urgency=low
-
-  * debian/rules: call configure instead of autogen.sh
-
- -- David I. Lehn <dlehn@vt.edu>  Sat, 24 Feb 2001 18:31:36 -0500
-
-gstreamer (0.1.0-1) unstable; urgency=low
-
-  * Initial Release.
+ -- Coral <coral-support@google.com>  Tue, 02 Jun 2020 10:46:56 -0700
 
- -- David I. Lehn <dlehn@vt.edu>  Mon, 15 Jan 2001 18:25:18 -0500
diff --git a/debian/compat b/debian/compat
index ec63514..f599e28 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-9
+10
diff --git a/debian/control b/debian/control
index 29594b5..41ec6c9 100644
--- a/debian/control
+++ b/debian/control
@@ -1,16 +1,10 @@
-Source: gst-plugins-base1.0
+Source: mtk-gst-plugins-base
 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
+Maintainer: Coral <coral-support@google.com>
+Build-Depends: libgstreamer1.0-dev (>= 1.14.4), libasound2-dev (>= 0.9.0) [linux-any] , libgudev-1.0-dev (>= 143) [linux-any], automake (>= 1.14), autoconf (>= 2.69), libtool (>= 2.2.6), 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), libgles2-mesa-dev, libgl1-mesa-dev, libgraphene-1.0-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
+Homepage: http://gstreamer.freedesktop.org/modules/gst-plugins-base.html
 
 Package: gstreamer1.0-plugins-base-apps
 Architecture: any
diff --git a/debian/control.in b/debian/control.in
deleted file mode 100644
index 776bc2e..0000000
--- a/debian/control.in
+++ /dev/null
@@ -1,278 +0,0 @@
-Source: gst-plugins-base@GST_ABI@
-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: BUILDDEPS
-Standards-Version: 3.9.3
-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: @GST_PKGNAME@-plugins-base-apps
-Architecture: any
-Section: utils
-Depends: ${shlibs:Depends},
-         ${misc:Depends},
-         ${perl:Depends},
-         @GST_PKGNAME@-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: @GST_PKGNAME@-plugins-base-doc
-Architecture: all
-Multi-Arch: foreign
-Section: doc
-Depends: ${misc:Depends},
-         libglib2.0-doc,
-         gstreamer@GST_ABI@-doc
-Description: GStreamer documentation for 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 documentation for plugins from the "base" set,
- an essential exemplary set of elements.
-
-Package: @GST_PLUGINS_BASE_LIB@
-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: @GST_PKGNAME@-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: @GST_PLUGINS_BASE_LIB_DEV@
-Architecture: any
-Multi-Arch: same
-Section: libdevel
-Depends: ${misc:Depends},
-         ${shlibs:Depends},
-         @GST_PLUGINS_BASE_LIB@ (= ${binary:Version}),
-         @GST_GL_LIB@ (= ${binary:Version}),
-         libc6-dev | libc-dev,
-         pkg-config,
-         @GST_LIB_DEV_DEP@,
-         libglib2.0-dev,
-         liborc-0.4-dev (>= 1:0.4.24),
-         libgl1-mesa-dev,
-         libegl1-mesa-dev,
-         libgles2-mesa-dev,
-         gir1.2-gst-plugins-base-@GST_ABI@ (= ${binary:Version})
-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: @GST_GL_LIB@
-Architecture: any
-Multi-Arch: same
-Section: libs
-Pre-Depends: ${misc:Pre-Depends}
-Depends: ${misc:Depends},
-         ${shlibs:Depends}
-Recommends: @GST_PKGNAME@-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: @GST_PKGNAME@-alsa
-Architecture: linux-any
-Multi-Arch: same
-Section: libs
-Depends: ${misc:Depends},
-         ${shlibs:Depends},
-         @GST_PLUGINS_BASE_LIB@ (>= @GST_VERSION@)
-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: @GST_PKGNAME@-plugins-base
-Architecture: any
-Multi-Arch: same
-Section: libs
-Depends: ${misc:Depends},
-         ${shlibs:Depends},
-         @GST_PLUGINS_BASE_LIB@ (>= @GST_VERSION@)
-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: @GST_PKGNAME@-plugins-base-dbg
-Architecture: any
-Multi-Arch: same
-Section: debug
-Priority: extra
-Depends: @GST_PKGNAME@-alsa (= ${binary:Version}) [linux-any],
-         @GST_PKGNAME@-plugins-base (= ${binary:Version}),
-         @GST_PKGNAME@-x (= ${binary:Version}),
-         @GST_PLUGINS_BASE_LIB@ (= ${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: @GST_PKGNAME@-x
-Architecture: any
-Multi-Arch: same
-Section: libs
-Depends: ${misc:Depends},
-         ${shlibs:Depends},
-         @GST_PLUGINS_BASE_LIB@ (>= @GST_VERSION@)
-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: @GST_PKGNAME@-gl
-Architecture: any
-Multi-Arch: same
-Section: libs
-Depends: ${misc:Depends},
-         ${shlibs:Depends},
-         @GST_PLUGINS_BASE_LIB@ (>= @GST_VERSION@),
-         @GST_GL_LIB@ (>= @GST_VERSION@)
-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.
-
-Package: gir1.2-gst-plugins-base-@GST_ABI@
-Section: introspection
-Architecture: any
-Multi-Arch: same
-Depends: ${gir:Depends},
-         ${shlibs:Depends},
-         ${misc:Depends}
-Description: GObject introspection data for the GStreamer Plugins Base library
- This package contains introspection data for the GStreamer Plugins Base library.
- .
- 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.
-
-
diff --git a/debian/gstreamer1.0-plugins-base-apps.lintian-overrides b/debian/gstreamer1.0-plugins-base-apps.lintian-overrides
index ec8632a..504c790 100644
--- a/debian/gstreamer1.0-plugins-base-apps.lintian-overrides
+++ b/debian/gstreamer1.0-plugins-base-apps.lintian-overrides
@@ -1,2 +1,2 @@
-gstreamer1.0-plugins-base-apps: manpage-has-errors-from-man *
 gstreamer1.0-plugins-base-apps: spelling-error-in-readme-debian *
+gstreamer1.0-plugins-base-apps: manpage-has-errors-from-man usr/share/man/*
diff --git a/debian/gstreamer1.0-plugins-base.lintian-overrides b/debian/gstreamer1.0-plugins-base.lintian-overrides
index 86f03b3..bb741e1 100644
--- a/debian/gstreamer1.0-plugins-base.lintian-overrides
+++ b/debian/gstreamer1.0-plugins-base.lintian-overrides
@@ -1,2 +1,3 @@
 gstreamer1.0-plugins-base: spelling-error-in-readme-debian *
 gstreamer1.0-plugins-base: library-not-linked-against-libc *
+
diff --git a/debian/libgstreamer-gl1.0-0.lintian-overrides b/debian/libgstreamer-gl1.0-0.lintian-overrides
index 99a0135..ca38542 100644
--- a/debian/libgstreamer-gl1.0-0.lintian-overrides
+++ b/debian/libgstreamer-gl1.0-0.lintian-overrides
@@ -1,3 +1,4 @@
 libgstreamer-gl1.0-0: package-name-doesnt-match-sonames libgstgl-1.0-0
 libgstreamer-gl1.0-0: symbols-file-contains-current-version-with-debian-revision on symbol gst_gl_window_prefer_fullscreen@Base
 libgstreamer-gl1.0-0: symbols-file-contains-debian-revision on symbol gst_gl_window_prefer_fullscreen@Base
+
diff --git a/debian/libgstreamer-plugins-base.symbols b/debian/libgstreamer-plugins-base.symbols
index f3fd511..1037d83 100644
--- a/debian/libgstreamer-plugins-base.symbols
+++ b/debian/libgstreamer-plugins-base.symbols
@@ -45,7 +45,7 @@
  gst_app_src_get_stream_type@Base 1.0.0
  gst_app_src_get_type@Base 1.0.0
  gst_app_src_push_buffer@Base 1.0.0
- gst_app_src_push_buffer_list@Base 1.14.0
+ gst_app_src_push_buffer_list@Base 1.14.4
  gst_app_src_push_sample@Base 1.6.0
  gst_app_src_set_callbacks@Base 1.0.0
  gst_app_src_set_caps@Base 1.0.0
@@ -59,10 +59,10 @@
 libgstaudio-1.0.so.0 libgstreamer-plugins-base1.0-0 #MINVER#
 * Build-Depends-Package: libgstreamer-plugins-base1.0-dev
  _gst_audio_decoder_error@Base 1.0.0
- gst_audio_aggregator_convert_pad_get_type@Base 1.14.0
- gst_audio_aggregator_get_type@Base 1.14.0
- gst_audio_aggregator_pad_get_type@Base 1.14.0
- gst_audio_aggregator_set_sink_caps@Base 1.14.0
+ gst_audio_aggregator_convert_pad_get_type@Base 1.14.4
+ gst_audio_aggregator_get_type@Base 1.14.4
+ gst_audio_aggregator_pad_get_type@Base 1.14.4
+ gst_audio_aggregator_set_sink_caps@Base 1.14.4
  gst_audio_base_sink_create_ringbuffer@Base 1.0.0
  gst_audio_base_sink_discont_reason_get_type@Base 1.12.0
  gst_audio_base_sink_get_alignment_threshold@Base 1.0.0
@@ -96,7 +96,7 @@
  gst_audio_channel_mixer_free@Base 1.8.0
  gst_audio_channel_mixer_is_passthrough@Base 1.8.0
  gst_audio_channel_mixer_new@Base 1.8.0
- gst_audio_channel_mixer_new_with_matrix@Base 1.14.0
+ gst_audio_channel_mixer_new_with_matrix@Base 1.14.4
  gst_audio_channel_mixer_samples@Base 1.8.0
  gst_audio_channel_position_get_type@Base 1.0.0
  gst_audio_channel_positions_from_mask@Base 1.0.0
@@ -112,14 +112,14 @@
  gst_audio_clock_invalidate@Base 1.0.0
  gst_audio_clock_new@Base 1.0.0
  gst_audio_clock_reset@Base 1.0.0
- gst_audio_converter_convert@Base 1.14.0
+ gst_audio_converter_convert@Base 1.14.4
  gst_audio_converter_flags_get_type@Base 1.8.0
  gst_audio_converter_free@Base 1.8.0
  gst_audio_converter_get_config@Base 1.8.0
  gst_audio_converter_get_in_frames@Base 1.8.0
  gst_audio_converter_get_max_latency@Base 1.8.0
  gst_audio_converter_get_out_frames@Base 1.8.0
- gst_audio_converter_get_type@Base 1.14.0
+ gst_audio_converter_get_type@Base 1.14.4
  gst_audio_converter_new@Base 1.8.0
  gst_audio_converter_reset@Base 1.8.0
  gst_audio_converter_samples@Base 1.8.0
@@ -274,20 +274,20 @@
  gst_audio_ring_buffer_stop@Base 1.0.0
  gst_audio_sink_get_type@Base 1.0.0
  gst_audio_src_get_type@Base 1.0.0
- gst_audio_stream_align_copy@Base 1.14.0
- gst_audio_stream_align_free@Base 1.14.0
- gst_audio_stream_align_get_alignment_threshold@Base 1.14.0
- gst_audio_stream_align_get_discont_wait@Base 1.14.0
- gst_audio_stream_align_get_rate@Base 1.14.0
- gst_audio_stream_align_get_samples_since_discont@Base 1.14.0
- gst_audio_stream_align_get_timestamp_at_discont@Base 1.14.0
- gst_audio_stream_align_get_type@Base 1.14.0
- gst_audio_stream_align_mark_discont@Base 1.14.0
- gst_audio_stream_align_new@Base 1.14.0
- gst_audio_stream_align_process@Base 1.14.0
- gst_audio_stream_align_set_alignment_threshold@Base 1.14.0
- gst_audio_stream_align_set_discont_wait@Base 1.14.0
- gst_audio_stream_align_set_rate@Base 1.14.0
+ gst_audio_stream_align_copy@Base 1.14.4
+ gst_audio_stream_align_free@Base 1.14.4
+ gst_audio_stream_align_get_alignment_threshold@Base 1.14.4
+ gst_audio_stream_align_get_discont_wait@Base 1.14.4
+ gst_audio_stream_align_get_rate@Base 1.14.4
+ gst_audio_stream_align_get_samples_since_discont@Base 1.14.4
+ gst_audio_stream_align_get_timestamp_at_discont@Base 1.14.4
+ gst_audio_stream_align_get_type@Base 1.14.4
+ gst_audio_stream_align_mark_discont@Base 1.14.4
+ gst_audio_stream_align_new@Base 1.14.4
+ gst_audio_stream_align_process@Base 1.14.4
+ gst_audio_stream_align_set_alignment_threshold@Base 1.14.4
+ gst_audio_stream_align_set_discont_wait@Base 1.14.4
+ gst_audio_stream_align_set_rate@Base 1.14.4
  gst_buffer_add_audio_clipping_meta@Base 1.8.0
  gst_buffer_add_audio_downmix_meta@Base 1.0.0
  gst_buffer_get_audio_downmix_meta_for_channels@Base 1.0.0
@@ -349,7 +349,7 @@
  gst_codec_utils_opus_parse_caps@Base 1.8.0
  gst_codec_utils_opus_parse_header@Base 1.8.0
  gst_discoverer_audio_info_get_bitrate@Base 1.0.0
- gst_discoverer_audio_info_get_channel_mask@Base 1.14.0
+ gst_discoverer_audio_info_get_channel_mask@Base 1.14.4
  gst_discoverer_audio_info_get_channels@Base 1.0.0
  gst_discoverer_audio_info_get_depth@Base 1.0.0
  gst_discoverer_audio_info_get_language@Base 1.0.0
@@ -366,7 +366,7 @@
  gst_discoverer_info_get_audio_streams@Base 1.0.0
  gst_discoverer_info_get_container_streams@Base 1.0.0
  gst_discoverer_info_get_duration@Base 1.0.0
- gst_discoverer_info_get_live@Base 1.14.0
+ gst_discoverer_info_get_live@Base 1.14.4
  gst_discoverer_info_get_misc@Base 1.0.0
  gst_discoverer_info_get_missing_elements_installer_details@Base 1.4.0
  gst_discoverer_info_get_result@Base 1.0.0
@@ -702,7 +702,7 @@
  gst_rtsp_connection_receive@Base 1.0.0
  gst_rtsp_connection_reset_timeout@Base 1.0.0
  gst_rtsp_connection_send@Base 1.0.0
- gst_rtsp_connection_set_accept_certificate_func@Base 1.14.0
+ gst_rtsp_connection_set_accept_certificate_func@Base 1.14.4
  gst_rtsp_connection_set_auth@Base 1.0.0
  gst_rtsp_connection_set_auth_param@Base 1.0.0
  gst_rtsp_connection_set_http_mode@Base 1.0.0
@@ -738,7 +738,7 @@
  gst_rtsp_message_add_header@Base 1.0.0
  gst_rtsp_message_add_header_by_name@Base 1.6.0
  gst_rtsp_message_append_headers@Base 1.0.0
- gst_rtsp_message_copy@Base 1.14.0
+ gst_rtsp_message_copy@Base 1.14.4
  gst_rtsp_message_dump@Base 1.0.0
  gst_rtsp_message_free@Base 1.0.0
  gst_rtsp_message_get_body@Base 1.0.0
@@ -767,7 +767,7 @@
  gst_rtsp_message_unset@Base 1.0.0
  gst_rtsp_method_as_text@Base 1.0.0
  gst_rtsp_method_get_type@Base 1.0.0
- gst_rtsp_msg_get_type@Base 1.14.0
+ gst_rtsp_msg_get_type@Base 1.14.4
  gst_rtsp_msg_type_get_type@Base 1.6.0
  gst_rtsp_options_as_text@Base 1.0.0
  gst_rtsp_options_from_text@Base 1.2.0
@@ -1195,11 +1195,11 @@
  gst_video_encoder_get_frame@Base 1.0.0
  gst_video_encoder_get_frames@Base 1.0.0
  gst_video_encoder_get_latency@Base 1.0.0
- gst_video_encoder_get_max_encode_time@Base 1.14.0
+ gst_video_encoder_get_max_encode_time@Base 1.14.4
  gst_video_encoder_get_oldest_frame@Base 1.0.0
  gst_video_encoder_get_output_state@Base 1.0.0
  gst_video_encoder_get_type@Base 1.0.0
- gst_video_encoder_is_qos_enabled@Base 1.14.0
+ gst_video_encoder_is_qos_enabled@Base 1.14.4
  gst_video_encoder_merge_tags@Base 1.0.0
  gst_video_encoder_negotiate@Base 1.0.0
  gst_video_encoder_proxy_getcaps@Base 1.0.0
@@ -1207,7 +1207,7 @@
  gst_video_encoder_set_latency@Base 1.0.0
  gst_video_encoder_set_min_pts@Base 1.6.0
  gst_video_encoder_set_output_state@Base 1.0.0
- gst_video_encoder_set_qos_enabled@Base 1.14.0
+ gst_video_encoder_set_qos_enabled@Base 1.14.4
  gst_video_event_is_force_key_unit@Base 1.0.0
  gst_video_event_new_downstream_force_key_unit@Base 1.0.0
  gst_video_event_new_still_frame@Base 1.0.0
@@ -1299,7 +1299,7 @@
  gst_video_overlay_get_type@Base 1.0.0
  gst_video_overlay_got_window_handle@Base 1.0.0
  gst_video_overlay_handle_events@Base 1.0.0
- gst_video_overlay_install_properties@Base 1.14.0
+ gst_video_overlay_install_properties@Base 1.14.4
  gst_video_overlay_prepare_window_handle@Base 1.0.0
  gst_video_overlay_rectangle_copy@Base 1.0.0
  gst_video_overlay_rectangle_get_flags@Base 1.0.0
@@ -1316,15 +1316,15 @@
  gst_video_overlay_rectangle_new_raw@Base 1.0.0
  gst_video_overlay_rectangle_set_global_alpha@Base 1.0.0
  gst_video_overlay_rectangle_set_render_rectangle@Base 1.0.0
- gst_video_overlay_set_property@Base 1.14.0
+ gst_video_overlay_set_property@Base 1.14.4
  gst_video_overlay_set_render_rectangle@Base 1.0.0
  gst_video_overlay_set_window_handle@Base 1.0.0
  gst_video_pack_flags_get_type@Base 1.0.0
  gst_video_primaries_mode_get_type@Base 1.6.0
- gst_video_region_of_interest_meta_add_param@Base 1.14.0
+ gst_video_region_of_interest_meta_add_param@Base 1.14.4
  gst_video_region_of_interest_meta_api_get_type@Base 1.2.0
  gst_video_region_of_interest_meta_get_info@Base 1.2.0
- gst_video_region_of_interest_meta_get_param@Base 1.14.0
+ gst_video_region_of_interest_meta_get_param@Base 1.14.4
  gst_video_resampler_clear@Base 1.6.0
  gst_video_resampler_flags_get_type@Base 1.6.0
  gst_video_resampler_init@Base 1.6.0
diff --git a/debian/patches/0001-gstrtspconnection-Security-loophole-making-heap-over.patch b/debian/patches/0001-gstrtspconnection-Security-loophole-making-heap-over.patch
deleted file mode 100644
index c58592f..0000000
--- a/debian/patches/0001-gstrtspconnection-Security-loophole-making-heap-over.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From f672277509705c4034bc92a141eefee4524d15aa Mon Sep 17 00:00:00 2001
-From: Tobias Ronge <tobiasr@axis.com>
-Date: Thu, 14 Mar 2019 10:12:27 +0100
-Subject: [PATCH] gstrtspconnection: Security loophole making heap overflow
-
-The former code allowed an attacker to create a heap overflow by
-sending a longer than allowed session id in a response and including a
-semicolon to change the maximum length. With this change, the parser
-will never go beyond 512 bytes.
----
- gst-libs/gst/rtsp/gstrtspconnection.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gst-libs/gst/rtsp/gstrtspconnection.c b/gst-libs/gst/rtsp/gstrtspconnection.c
-index a6755bedd..c0429064a 100644
---- a/gst-libs/gst/rtsp/gstrtspconnection.c
-+++ b/gst-libs/gst/rtsp/gstrtspconnection.c
-@@ -2461,7 +2461,7 @@ build_next (GstRTSPBuilder * builder, GstRTSPMessage * message,
-           maxlen = sizeof (conn->session_id) - 1;
-           /* the sessionid can have attributes marked with ;
-            * Make sure we strip them */
--          for (i = 0; session_id[i] != '\0'; i++) {
-+          for (i = 0; i < maxlen && session_id[i] != '\0'; i++) {
-             if (session_id[i] == ';') {
-               maxlen = i;
-               /* parse timeout */
--- 
-2.20.1
-
diff --git a/debian/patches/0001-mtk.patch b/debian/patches/0001-mtk.patch
deleted file mode 100644
index 1476b7f..0000000
--- a/debian/patches/0001-mtk.patch
+++ /dev/null
@@ -1,524 +0,0 @@
-From 1ed6c923b718465236e473a1a00d2846bb67a576 Mon Sep 17 00:00:00 2001
-From: Yuan Fang <yuan.fang@mediatek.com>
-Date: Wed, 14 Aug 2019 15:43:29 +0800
-Subject: [PATCH] upgrade-gst-base-to-1_14_4
-
----
- ext/ogg/gstoggdemux.c                     | 62 ++++++++++++++++++++++++++++---
- ext/ogg/gstoggstream.c                    | 18 ++++++++-
- ext/ogg/gstoggstream.h                    |  2 +
- gst-libs/gst/audio/gstaudiobasesink.c     |  5 ++-
- gst-libs/gst/audio/gstaudiodecoder.c      | 14 +++++++
- gst-libs/gst/audio/gstaudiodecoder.h      |  4 ++
- gst-libs/gst/riff/riff-media.c            |  1 +
- gst-libs/gst/video/gstvideoutilsprivate.c | 12 ++++++
- gst-libs/gst/video/video-format.c         | 14 ++++++-
- gst-libs/gst/video/video-format.h         |  2 +
- gst-libs/gst/video/video-info.c           | 19 ++++++++--
- gst/playback/gstdecodebin2.c              |  2 +-
- gst/playback/gstplaybin2.c                |  5 ++-
- gst/playback/gstplaysink.c                | 48 ++++++++++++++++++++++++
- 14 files changed, 193 insertions(+), 15 deletions(-)
-
-diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
-index e600b3d..a9c6b27 100644
---- a/ext/ogg/gstoggdemux.c
-+++ b/ext/ogg/gstoggdemux.c
-@@ -51,6 +51,9 @@
- /* we hope we get a granpos within this many bytes off the end */
- #define DURATION_CHUNK_OFFSET (128*1024)
- 
-+/*search max page count*/
-+#define SEARCH_MAX_PAGE   75
-+
- /* An Ogg page can not be larger than 255 segments of 255 bytes, plus
-    26 bytes of header */
- #define MAX_OGG_PAGE_SIZE (255 * 255 + 26)
-@@ -192,7 +195,9 @@ gst_ogg_pad_init (GstOggPad * pad)
- 
-   pad->map.granulerate_n = 0;
-   pad->map.granulerate_d = 0;
--  pad->map.granuleshift = -1;
-+  pad->map.granuleshift = 0;
-+  pad->map.channel = 0;
-+  pad->map.bitspersample = 0;
- }
- 
- static void
-@@ -830,7 +835,8 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
-   if (!packet->b_o_s || push_headers) {
-     if (pad->last_ret == GST_FLOW_OK) {
-       GST_LOG_OBJECT (ogg, "Pushing buf %" GST_PTR_FORMAT, buf);
--      ret = gst_pad_push (GST_PAD_CAST (pad), buf);
-+      if (gst_buffer_get_size (buf) > 0)
-+      ret = gst_pad_push (GST_PAD_CAST (pad), buf);
-     } else {
-       GST_DEBUG_OBJECT (ogg, "not pushing buffer on error pad");
-       ret = pad->last_ret;
-@@ -2748,6 +2754,7 @@ gst_ogg_demux_get_prev_page (GstOggDemux * ogg, ogg_page * og, gint64 * offset)
-   gint64 begin = ogg->offset;
-   gint64 end = begin;
-   gint64 cur_offset = -1;
-+  gint hit_limit_cnt = 0;
- 
-   GST_LOG_OBJECT (ogg, "getting page before %" G_GINT64_FORMAT, begin);
- 
-@@ -2778,7 +2785,12 @@ gst_ogg_demux_get_prev_page (GstOggDemux * ogg, ogg_page * og, gint64 * offset)
-       ret = gst_ogg_demux_get_next_page (ogg, og, boundary, &new_offset);
-       /* we hit the upper limit, offset contains the last page start */
-       if (ret == GST_FLOW_LIMIT) {
--        GST_LOG_OBJECT (ogg, "hit limit");
-+        hit_limit_cnt++;
-+		GST_INFO_OBJECT (ogg, "hit limit, cnt=%d", hit_limit_cnt);
-+		if (hit_limit_cnt >= 3){
-+			ret = GST_FLOW_OK;
-+			goto beach;
-+		}
-         break;
-       }
-       /* something went wrong */
-@@ -2965,8 +2977,12 @@ gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain,
-     gst_ogg_pad_mark_discont (pad);
-     pad->last_ret = GST_FLOW_OK;
- 
-+	GST_DEBUG_OBJECT (ogg,
-+		"serialno %08x time %" GST_TIME_FORMAT,
-+		pad->map.serialno, GST_TIME_ARGS (pad->start_time));
-+
-     if (pad->map.is_skeleton || pad->map.is_cmml || pad->added
--        || !pad->map.caps)
-+        || !pad->map.caps || (pad->start_time == GST_CLOCK_TIME_NONE))
-       continue;
- 
-     GST_DEBUG_OBJECT (ogg, "adding pad %" GST_PTR_FORMAT, pad);
-@@ -4078,6 +4094,7 @@ gst_ogg_demux_read_chain (GstOggDemux * ogg, GstOggChain ** res_chain)
-   gint64 offset = ogg->offset;
-   ogg_page og;
-   gboolean done;
-+  gint loop_page_cnt = 0;
-   gint i;
- 
-   GST_LOG_OBJECT (ogg, "reading chain at %" G_GINT64_FORMAT, offset);
-@@ -4201,8 +4218,15 @@ gst_ogg_demux_read_chain (GstOggDemux * ogg, GstOggChain ** res_chain)
-       break;
-     }
- 
-+	if ((loop_page_cnt >= SEARCH_MAX_PAGE) && (done == FALSE)) {
-+		done = TRUE;
-+		GST_ERROR_OBJECT (ogg, "(loop_page_cnt >= SEARCH_MAX_PAGE) && (done == FALSE)");
-+		break;
-+	}
-+
-     if (!done) {
-       ret = gst_ogg_demux_get_next_page (ogg, &og, -1, NULL);
-+	  loop_page_cnt++;
-       if (ret != GST_FLOW_OK)
-         break;
-     }
-@@ -4229,6 +4253,7 @@ gst_ogg_demux_read_end_chain (GstOggDemux * ogg, GstOggChain * chain)
-   gboolean done = FALSE;
-   ogg_page og;
-   gint i;
-+  gint hit_limit_count = 0;
- 
-   while (!done) {
-     begin -= ogg->chunk_size;
-@@ -4243,8 +4268,14 @@ gst_ogg_demux_read_end_chain (GstOggDemux * ogg, GstOggChain * chain)
-     while (ogg->offset < end) {
-       ret = gst_ogg_demux_get_next_page (ogg, &og, end - ogg->offset, NULL);
- 
--      if (ret == GST_FLOW_LIMIT)
-+      if (ret == GST_FLOW_LIMIT) {
-+      hit_limit_count++;
-+		GST_INFO_OBJECT (ogg, "hit_limit_count=%d", hit_limit_count);
-+		if (hit_limit_count >= 3) {
-+			done = TRUE;
-+      }
-         break;
-+      }
-       if (ret != GST_FLOW_OK)
-         return ret;
- 
-@@ -4389,6 +4420,12 @@ gst_ogg_demux_find_chains (GstOggDemux * ogg)
-   GstOggChain *chain;
-   GstFlowReturn ret;
- 
-+  /*init og header and body*/
-+  og.header_len = 0;
-+  og.body_len = 0;
-+  og.header = NULL;
-+  og.body = NULL;
-+
-   /* get peer to figure out length */
-   if ((peer = gst_pad_get_peer (ogg->sinkpad)) == NULL)
-     goto no_peer;
-@@ -4420,7 +4457,20 @@ gst_ogg_demux_find_chains (GstOggDemux * ogg)
-   if (ret != GST_FLOW_OK)
-     goto no_last_page;
- 
--  serialno = ogg_page_serialno (&og);
-+  GST_DEBUG_OBJECT (ogg, "ogg_page_serialno,og.header_len=%d,og.body_len=%d",og.header_len,og.body_len);
-+  if ((og.header_len > 27) && (og.header_len <= (27 + 255))) {
-+	 serialno = ogg_page_serialno (&og);
-+	}
-+	else {
-+	  gint i;
-+	  for (i = 0; i < chain->streams->len; i++) {
-+		GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
-+		if (pad != NULL) {
-+		  serialno = pad->map.serialno;
-+		  break;
-+		}
-+	  }
-+	}
- 
-   if (!gst_ogg_chain_has_stream (chain, serialno)) {
-     /* the last page is not in the first stream, this means we should
-diff --git a/ext/ogg/gstoggstream.c b/ext/ogg/gstoggstream.c
-index cdb6fa6..d5ee126 100644
---- a/ext/ogg/gstoggstream.c
-+++ b/ext/ogg/gstoggstream.c
-@@ -28,6 +28,7 @@
- 
- #include <gst/riff/riff-media.h>
- #include <gst/pbutils/pbutils.h>
-+#include <gst/audio/audio.h>
- 
- #include <stdlib.h>
- #include <string.h>
-@@ -1649,12 +1650,27 @@ setup_ogmaudio_mapper (GstOggStream * pad, ogg_packet * packet)
-   GST_DEBUG ("fourcc: %s", fstr);
- 
-   /* FIXME: Need to do something with the reorder map */
-+  gchar *pchar=NULL;
-+  guint16 n_fourcc=strtol((const char *)fstr,&pchar,16);
-+
-+  pad->channel = GST_READ_UINT16_LE (data + 45);
-+  pad->bitspersample = GST_READ_UINT32_LE (data + 41);
-+
-   pad->caps =
--      gst_riff_create_audio_caps (fourcc, NULL, NULL, NULL, NULL, NULL, NULL);
-+	  gst_riff_create_audio_caps (n_fourcc, NULL, NULL, NULL, NULL, NULL, NULL);
- 
-   if (pad->caps) {
-     gst_caps_set_simple (pad->caps,
-         "rate", G_TYPE_INT, pad->granulerate_n, NULL);
-+	gst_caps_set_simple (pad->caps,
-+        "channels", G_TYPE_INT, pad->channel, NULL);
-+    if (GST_RIFF_WAVE_FORMAT_PCM == n_fourcc) {
-+      GstAudioFormat format;
-+      gint wd = GST_ROUND_UP_8 (pad->bitspersample);
-+      format = gst_audio_format_build_integer (wd != 8, G_LITTLE_ENDIAN, wd, wd);
-+      gst_caps_set_simple (pad->caps,
-+        "format", G_TYPE_STRING, gst_audio_format_to_string (format), NULL);
-+    }
-   } else {
-     pad->caps = gst_caps_new_simple ("audio/x-ogm-unknown",
-         "fourcc", G_TYPE_STRING, fstr,
-diff --git a/ext/ogg/gstoggstream.h b/ext/ogg/gstoggstream.h
-index d49527f..2822a93 100644
---- a/ext/ogg/gstoggstream.h
-+++ b/ext/ogg/gstoggstream.h
-@@ -111,6 +111,8 @@ struct _GstOggStream
-   GstOggIndex *index;
-   guint64 kp_denom;
-   guint64 idx_bitrate;
-+  guint16 channel;
-+  guint32 bitspersample;
- };
- 
- 
-diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c
-index ff4e4e2..534f195 100644
---- a/gst-libs/gst/audio/gstaudiobasesink.c
-+++ b/gst-libs/gst/audio/gstaudiobasesink.c
-@@ -1757,8 +1757,9 @@ gst_audio_base_sink_get_alignment (GstAudioBaseSink * sink,
-         /* discont candidate */
-         sink->priv->discont_time = time;
-       } else if (time - sink->priv->discont_time >= sink->priv->discont_wait) {
--        /* discont_wait expired, discontinuity detected */
--        discont = TRUE;
-+		/* discont_wait expired, discontinuity detected, not set discont avoid drop samples*/
-+		/* discont = TRUE; */
-+
-         sink->priv->discont_time = -1;
-       }
-     } else {
-diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
-index dede766..564a4d5 100644
---- a/gst-libs/gst/audio/gstaudiodecoder.c
-+++ b/gst-libs/gst/audio/gstaudiodecoder.c
-@@ -458,6 +458,10 @@ gst_audio_decoder_init (GstAudioDecoder * dec, GstAudioDecoderClass * klass)
-   /* init state */
-   dec->priv->ctx.min_latency = 0;
-   dec->priv->ctx.max_latency = 0;
-+
-+  dec->ts_none = FALSE;
-+  dec->sub_ts_none = FALSE;
-+
-   gst_audio_decoder_reset (dec, TRUE);
-   GST_DEBUG_OBJECT (dec, "init ok");
- }
-@@ -1272,6 +1276,10 @@ gst_audio_decoder_finish_frame (GstAudioDecoder * dec, GstBuffer * buf,
-   else
-     ts = GST_CLOCK_TIME_NONE;
- 
-+  if (dec->ts_none && !dec->sub_ts_none) {
-+    ts = GST_CLOCK_TIME_NONE;
-+  }
-+
-   GST_DEBUG_OBJECT (dec, "leading frame ts %" GST_TIME_FORMAT,
-       GST_TIME_ARGS (ts));
- 
-@@ -1514,6 +1522,12 @@ gst_audio_decoder_push_buffers (GstAudioDecoder * dec, gboolean force)
-       }
-       /* track upstream ts, but do not get stuck if nothing new upstream */
-       ts = gst_adapter_prev_pts (priv->adapter, &distance);
-+
-+      if (ts <= priv->prev_ts) {
-+        dec->ts_none = TRUE;
-+        dec->sub_ts_none = TRUE;
-+      }
-+
-       if (ts != priv->prev_ts || distance <= priv->prev_distance) {
-         priv->prev_ts = ts;
-         priv->prev_distance = distance;
-diff --git a/gst-libs/gst/audio/gstaudiodecoder.h b/gst-libs/gst/audio/gstaudiodecoder.h
-index f03d9ac..3c537a1 100644
---- a/gst-libs/gst/audio/gstaudiodecoder.h
-+++ b/gst-libs/gst/audio/gstaudiodecoder.h
-@@ -172,6 +172,10 @@ struct _GstAudioDecoder
-   GstSegment      input_segment;
-   GstSegment      output_segment;
- 
-+  /*set ts to GST_CLOCK_TIME_NONE flag*/
-+  gboolean ts_none;
-+  gboolean sub_ts_none;
-+
-   /*< private >*/
-   GstAudioDecoderPrivate *priv;
- 
-diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c
-index 2d6aa55..5c06924 100644
---- a/gst-libs/gst/riff/riff-media.c
-+++ b/gst-libs/gst/riff/riff-media.c
-@@ -261,6 +261,7 @@ gst_riff_create_video_caps (guint32 codec_fcc,
-     case GST_MAKE_FOURCC ('m', 'p', 'g', '2'):
-     case GST_MAKE_FOURCC ('P', 'I', 'M', '2'):
-     case GST_MAKE_FOURCC ('D', 'V', 'R', ' '):
-+	case GST_MAKE_FOURCC ('E', 'M', '2', 'V'):
-     case GST_MAKE_FOURCC (0x02, 0x00, 0x00, 0x10):
-       caps = gst_caps_new_simple ("video/mpeg",
-           "systemstream", G_TYPE_BOOLEAN, FALSE,
-diff --git a/gst-libs/gst/video/gstvideoutilsprivate.c b/gst-libs/gst/video/gstvideoutilsprivate.c
-index 68631c8..3d71cb3 100644
---- a/gst-libs/gst/video/gstvideoutilsprivate.c
-+++ b/gst-libs/gst/video/gstvideoutilsprivate.c
-@@ -135,10 +135,22 @@ __gst_video_element_proxy_getcaps (GstElement * element, GstPad * sinkpad,
-   gst_caps_unref (templ_caps);
- 
-   if (filter) {
-+    GstStructure *filter_st = NULL;
-     GST_LOG_OBJECT (element, "intersecting with %" GST_PTR_FORMAT, filter);
-     filter_caps = gst_caps_intersect (fcaps, filter);
-     gst_caps_unref (fcaps);
-     fcaps = filter_caps;
-+
-+	filter_st = gst_caps_get_structure (filter, 0);
-+	if (!gst_structure_has_field (filter_st, "framerate")) {
-+	  GstStructure *fcaps_st = NULL;
-+
-+	  fcaps_st =  gst_caps_get_structure (fcaps, 0);
-+	  gst_structure_remove_field (fcaps_st, "framerate");
-+	  fcaps_st = NULL;
-+	}
-+
-+	filter_st = NULL;
-   }
- 
- done:
-diff --git a/gst-libs/gst/video/video-format.c b/gst-libs/gst/video/video-format.c
-index f2fa22b..ebe1ad5 100644
---- a/gst-libs/gst/video/video-format.c
-+++ b/gst-libs/gst/video/video-format.c
-@@ -5240,6 +5240,12 @@ static const VideoFormat formats[] = {
-       PSTR222, PLANE012, OFFS0, SUB444, PACK_Y444_12BE),
-   MAKE_YUV_LE_FORMAT (Y444_12LE, "raw video", 0x00000000, DPTH12_12_12,
-       PSTR222, PLANE012, OFFS0, SUB444, PACK_Y444_12LE),
-+
-+  MAKE_YUV_FORMAT (MT21, "raw video", GST_MAKE_FOURCC ('M', 'M', '2', '1'),
-+      DPTH888, PSTR122, PLANE011, OFFS001, SUB420, PACK_NV12),
-+  MAKE_YUV_FORMAT (I422, "raw video", GST_MAKE_FOURCC ('Y', 'M', '1', '6'),
-+      DPTH888, PSTR111, PLANE012, OFFS0, SUB422, PACK_420),
-+
-   MAKE_GRAY_C_LE_FORMAT (GRAY10_LE32, "raw video", DPTH10, PSTR0, PLANE0, OFFS0,
-       SUB4, PACK_GRAY10_LE32),
-   MAKE_YUV_C_LE_FORMAT (NV12_10LE32, "raw video",
-@@ -5480,6 +5486,10 @@ gst_video_format_from_fourcc (guint32 fourcc)
-       return GST_VIDEO_FORMAT_IYU1;
-     case GST_MAKE_FOURCC ('A', 'Y', '6', '4'):
-       return GST_VIDEO_FORMAT_AYUV64;
-+	case GST_MAKE_FOURCC ('M', 'M', '2', '1'):
-+      return GST_VIDEO_FORMAT_MT21;
-+    case GST_MAKE_FOURCC ('Y', 'M', '1', '6'):
-+      return GST_VIDEO_FORMAT_I422;
-     case GST_MAKE_FOURCC ('X', 'V', '1', '0'):
-       return GST_VIDEO_FORMAT_GRAY10_LE32;
-     case GST_MAKE_FOURCC ('X', 'V', '1', '5'):
-@@ -5504,9 +5514,11 @@ GstVideoFormat
- gst_video_format_from_string (const gchar * format)
- {
-   guint i;
--
-   g_return_val_if_fail (format != NULL, GST_VIDEO_FORMAT_UNKNOWN);
- 
-+  if (strcmp ("MT21", format) == 0)
-+  return GST_VIDEO_FORMAT_MT21;
-+
-   for (i = 0; i < G_N_ELEMENTS (formats); i++) {
-     if (strcmp (GST_VIDEO_FORMAT_INFO_NAME (&formats[i].info), format) == 0)
-       return GST_VIDEO_FORMAT_INFO_FORMAT (&formats[i].info);
-diff --git a/gst-libs/gst/video/video-format.h b/gst-libs/gst/video/video-format.h
-index dbf514d..325e0c8 100644
---- a/gst-libs/gst/video/video-format.h
-+++ b/gst-libs/gst/video/video-format.h
-@@ -195,6 +195,8 @@ typedef enum {
-   GST_VIDEO_FORMAT_I422_12LE,
-   GST_VIDEO_FORMAT_Y444_12BE,
-   GST_VIDEO_FORMAT_Y444_12LE,
-+  GST_VIDEO_FORMAT_MT21,
-+  GST_VIDEO_FORMAT_I422,
-   GST_VIDEO_FORMAT_GRAY10_LE32,
-   GST_VIDEO_FORMAT_NV12_10LE32,
-   GST_VIDEO_FORMAT_NV16_10LE32,
-diff --git a/gst-libs/gst/video/video-info.c b/gst-libs/gst/video/video-info.c
-index 25f7027..1ffabee 100644
---- a/gst-libs/gst/video/video-info.c
-+++ b/gst-libs/gst/video/video-info.c
-@@ -785,12 +785,24 @@ fill_planes (GstVideoInfo * info)
-       info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
-       info->stride[2] = info->stride[1];
-       info->offset[0] = 0;
--      info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
-+	  info->offset[1] = GST_ROUND_UP_128 (info->stride[0] * GST_ROUND_UP_2 (height));
-       cr_h = GST_ROUND_UP_2 (height) / 2;
-       if (GST_VIDEO_INFO_IS_INTERLACED (info))
-         cr_h = GST_ROUND_UP_2 (cr_h);
--      info->offset[2] = info->offset[1] + info->stride[1] * cr_h;
--      info->size = info->offset[2] + info->stride[2] * cr_h;
-+	  info->offset[2] = info->offset[1] + GST_ROUND_UP_128 (info->stride[1] * cr_h);
-+      info->size = info->offset[2] + GST_ROUND_UP_128 (info->stride[2] * cr_h);
-+      break;
-+
-+    case GST_VIDEO_FORMAT_I422:
-+      info->stride[0] = GST_ROUND_UP_4 (width);
-+      info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
-+      info->stride[2] = info->stride[1];
-+
-+      info->offset[0] = 0;
-+      info->offset[1] = GST_ROUND_UP_128 (info->stride[0] * GST_ROUND_UP_2 (height));
-+      info->offset[2] = info->offset[1] + GST_ROUND_UP_128 (info->stride[1] * GST_ROUND_UP_2 (height));
-+
-+      info->size = info->stride[0] * GST_ROUND_UP_2 (height) * 2;
-       break;
-     case GST_VIDEO_FORMAT_Y41B:
-       info->stride[0] = GST_ROUND_UP_4 (width);
-@@ -835,6 +847,7 @@ fill_planes (GstVideoInfo * info)
-       break;
-     case GST_VIDEO_FORMAT_NV12:
-     case GST_VIDEO_FORMAT_NV21:
-+	case GST_VIDEO_FORMAT_MT21:
-       info->stride[0] = GST_ROUND_UP_4 (width);
-       info->stride[1] = info->stride[0];
-       info->offset[0] = 0;
-diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
-index c6e8131..06c8853 100644
---- a/gst/playback/gstdecodebin2.c
-+++ b/gst/playback/gstdecodebin2.c
-@@ -246,7 +246,7 @@ enum
- 
- /* when playing, keep a max of 2MB of data but try to keep the number of buffers
-  * as low as possible (try to aim for 5 buffers) */
--#define AUTO_PLAY_SIZE_BYTES        2 * 1024 * 1024
-+#define AUTO_PLAY_SIZE_BYTES        10 * 1024 * 1024
- #define AUTO_PLAY_SIZE_BUFFERS      5
- #define AUTO_PLAY_SIZE_TIME         0
- 
-diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
-index a2e9ed4..58cd6e6 100644
---- a/gst/playback/gstplaybin2.c
-+++ b/gst/playback/gstplaybin2.c
-@@ -4707,7 +4707,10 @@ autoplug_select_cb (GstElement * decodebin, GstPad * pad,
-                 gst_element_factory_can_src_any_caps (factory, raw_caps)
-                 || gst_element_factory_can_src_any_caps (factory, caps);
-           } else {
--            compatible = gst_element_factory_can_src_any_caps (factory, caps);
-+              if (flags & GST_PLAY_FLAG_NATIVE_VIDEO)
-+                compatible = gst_element_factory_can_src_any_caps (factory, raw_caps);
-+              else
-+                compatible = gst_element_factory_can_src_any_caps (factory, caps);
-           }
- 
-           gst_object_unref (sinkpad);
-diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
-index 89cd225..13f991c 100644
---- a/gst/playback/gstplaysink.c
-+++ b/gst/playback/gstplaysink.c
-@@ -1949,6 +1949,54 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
-     }
-     prev = chain->conv;
-   }
-+  else if (playsink->flags & GST_PLAY_FLAG_NATIVE_VIDEO) {
-+    GstElement *elem = NULL;
-+    GstIterator *iter = NULL;
-+    GValue value = { 0 };
-+    gboolean done = FALSE;
-+    gboolean found_mdp = FALSE;
-+
-+    iter = gst_bin_iterate_elements (playsink->video_sink);
-+    if (iter != NULL) {
-+      while (!done) {
-+        switch (gst_iterator_next (iter, &value)) {
-+          case GST_ITERATOR_OK:
-+            elem = (GstElement *) g_value_get_object (&value);
-+            GST_DEBUG_OBJECT (playsink, "element->name=%s", GST_ELEMENT_NAME (elem));
-+            if (strstr (GST_ELEMENT_NAME (elem), "mtkmdp")) {
-+              done = TRUE;
-+              found_mdp = TRUE;
-+            }
-+            /* Iterator increased the element refcount, so unref */
-+            g_value_unset (&value);
-+            break;
-+          default:
-+            done = TRUE;
-+            break;
-+        }
-+      }
-+      gst_iterator_free (iter);
-+    }
-+
-+    if (found_mdp == FALSE) {
-+      GST_DEBUG_OBJECT (playsink, "mdp_plugin == NULL");
-+      chain->conv = gst_element_factory_make ("mtkmdp", "mtkmdp");
-+      if (chain->conv == NULL) {
-+        GST_WARNING_OBJECT (playsink, "no mtkmdp plugin");
-+      }
-+      else {
-+        gst_bin_add (bin, chain->conv);
-+        if (prev) {
-+          if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
-+                  GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
-+            goto link_failed;
-+        } else {
-+          head = chain->conv;
-+        }
-+        prev = chain->conv;
-+      }
-+    }
-+  }
- 
-   update_colorbalance (playsink);
- 
--- 
-1.9.1
-
diff --git a/debian/patches/0002-1.15.1-glimagesink.patch b/debian/patches/0002-1.15.1-glimagesink.patch
deleted file mode 100644
index dcf2b7c..0000000
--- a/debian/patches/0002-1.15.1-glimagesink.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 08ebb8264debb3b03d31a3a66ad61c0ac3e23812 Mon Sep 17 00:00:00 2001
-From: memeka <mihailescu2m@gmail.com>
-Date: Tue, 24 Oct 2017 17:39:50 +1030
-Subject: [PATCH] gl/wayland: add preferred window size, and set it according
- to video size
-
-The glimagesink wayland backend lacks the implementation of
-gst_gl_window_wayland_egl_set_preferred_size. Because of this, glimagesink windows on
-wayland are created with a fixed window size of 320x240.
-
-[Matthew Waters]: gst-indent sources
-
-https://bugzilla.gnome.org/show_bug.cgi?id=789384
----
- .../gst/gl/wayland/gstglwindow_wayland_egl.c  | 22 +++++++++++++++++++
- .../gst/gl/wayland/gstglwindow_wayland_egl.h  |  1 +
- 2 files changed, 23 insertions(+)
-
-diff --git a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
-index 385281869f..beac6f7ead 100644
---- a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
-+++ b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
-@@ -57,6 +57,8 @@ static gboolean gst_gl_window_wayland_egl_open (GstGLWindow * window,
- static guintptr gst_gl_window_wayland_egl_get_display (GstGLWindow * window);
- static gboolean gst_gl_window_wayland_egl_set_render_rectangle (GstGLWindow *
-     window, gint x, gint y, gint width, gint height);
-+static void gst_gl_window_wayland_egl_set_preferred_size (GstGLWindow * window,
-+    gint width, gint height);
- 
- #if 0
- static void
-@@ -306,12 +308,16 @@ create_surfaces (GstGLWindowWaylandEGL * window_egl)
- 
-   if (window_egl->window.window_width > 0)
-     width = window_egl->window.window_width;
-+  else if (window_egl->window.preferred_width > 0)
-+    width = window_egl->window.preferred_width;
-   else
-     width = 320;
-   window_egl->window.window_width = width;
- 
-   if (window_egl->window.window_height > 0)
-     height = window_egl->window.window_height;
-+  else if (window_egl->window.preferred_height > 0)
-+    height = window_egl->window.preferred_height;
-   else
-     height = 240;
-   window_egl->window.window_height = height;
-@@ -344,6 +350,8 @@ gst_gl_window_wayland_egl_class_init (GstGLWindowWaylandEGLClass * klass)
-       GST_DEBUG_FUNCPTR (gst_gl_window_wayland_egl_get_display);
-   window_class->set_render_rectangle =
-       GST_DEBUG_FUNCPTR (gst_gl_window_wayland_egl_set_render_rectangle);
-+  window_class->set_preferred_size =
-+      GST_DEBUG_FUNCPTR (gst_gl_window_wayland_egl_set_preferred_size);
- }
- 
- static void
-@@ -584,6 +592,20 @@ gst_gl_window_wayland_egl_set_render_rectangle (GstGLWindow * window,
-   return TRUE;
- }
- 
-+static void
-+gst_gl_window_wayland_egl_set_preferred_size (GstGLWindow * window, gint width,
-+    gint height)
-+{
-+  GstGLWindowWaylandEGL *window_egl = GST_GL_WINDOW_WAYLAND_EGL (window);
-+
-+  window_egl->window.preferred_width = width;
-+  window_egl->window.preferred_height = height;
-+  if (window_egl->window.window_height != height
-+      || window_egl->window.window_width != width) {
-+    window_resize (window_egl, width, height);
-+  }
-+}
-+
- static guintptr
- gst_gl_window_wayland_egl_get_display (GstGLWindow * window)
- {
-diff --git a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
-index 07c7ad1b95..09858e8298 100644
---- a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
-+++ b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
-@@ -72,6 +72,7 @@ struct window {
-   struct wl_callback        *callback;
-   int fullscreen, configured;
-   int window_width, window_height;
-+  int preferred_width, preferred_height;
-   int window_x, window_y;
- };
- 
--- 
-2.26.2
diff --git a/debian/patches/0003-gl-colorconvert-yuy2.patch b/debian/patches/0003-gl-colorconvert-yuy2.patch
deleted file mode 100644
index c8acc1d..0000000
--- a/debian/patches/0003-gl-colorconvert-yuy2.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c
-index 60d9653a..b493a325 100644
---- a/gst-libs/gst/gl/gstglcolorconvert.c
-+++ b/gst-libs/gst/gl/gstglcolorconvert.c
-@@ -137,6 +137,18 @@ static const gfloat from_rgb_bt709_vcoeff[] = {0.440654f, -0.400285f, -0.040370f
-     "uniform float poffset_x;\n" \
-     "uniform float poffset_y;\n"
- 
-+#define DEFAULT_UNIFORMS_HIGH    \
-+    "#ifdef GL_ES\n"             \
-+    "precision highp float;\n"   \
-+    "#endif\n"                   \
-+    "uniform vec2 tex_scale0;\n" \
-+    "uniform vec2 tex_scale1;\n" \
-+    "uniform vec2 tex_scale2;\n" \
-+    "uniform float width;\n"     \
-+    "uniform float height;\n"    \
-+    "uniform float poffset_x;\n" \
-+    "uniform float poffset_y;\n"
-+
- #define MAX_FUNCTIONS 4
- 
- #define glsl_OES_extension_string "#extension GL_OES_EGL_image_external : require \n"
-@@ -356,7 +368,7 @@ static const gchar templ_YUY2_UYVY_to_RGB_BODY[] =
- 
- static const struct shader_templ templ_YUY2_UYVY_to_RGB =
-   { NULL,
--    DEFAULT_UNIFORMS YUV_TO_RGB_COEFFICIENTS "uniform sampler2D Ytex;\n",
-+    DEFAULT_UNIFORMS_HIGH YUV_TO_RGB_COEFFICIENTS "uniform sampler2D Ytex;\n",
-     { glsl_func_yuv_to_rgb, NULL, },
-     GST_GL_TEXTURE_TARGET_2D
-   };
-@@ -387,7 +399,7 @@ static const gchar templ_RGB_to_YUY2_UYVY_BODY[] =
- 
- static const struct shader_templ templ_RGB_to_YUY2_UYVY =
-   { NULL,
--    DEFAULT_UNIFORMS RGB_TO_YUV_COEFFICIENTS "uniform sampler2D tex;\n",
-+    DEFAULT_UNIFORMS_HIGH RGB_TO_YUV_COEFFICIENTS "uniform sampler2D tex;\n",
-     { glsl_func_rgb_to_yuv, NULL, },
-     GST_GL_TEXTURE_TARGET_2D
-   };
diff --git a/debian/patches/series b/debian/patches/series
index 7a1d925..e69de29 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +0,0 @@
-0001-gstrtspconnection-Security-loophole-making-heap-over.patch
-0001-mtk.patch
-0002-1.15.1-glimagesink.patch
-0003-gl-colorconvert-yuy2.patch
diff --git a/debian/rules b/debian/rules
index 4a1c1ed..291ed0f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -14,7 +14,6 @@
 CFLAGS += -Wno-error
 CXXFLAGS += -Wno-error
 LDFLAGS += -Wl,-z,defs -Wl,-O1 -Wl,--as-needed
-DEB_MAKE_CHECK_TARGET = check || true
 
 # upstream version with epoch
 gst_version := $(shell dpkg-parsechangelog | sed -n 's/Version: //p' | cut -d '-' -f 1)
@@ -74,18 +73,7 @@
 cdparanoia := debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/gstreamer-$(gst_abi)/libgstcdparanoia.so
 endif
 
-GST_PACKAGE_NAME := "GStreamer Base Plugins (unknown Debian derivative)"
-GST_PACKAGE_ORIGIN="http://packages.qa.debian.org/gst-plugins-base$(gst_abi)"
-
-ifeq ($(DISTRO),"Debian")
-GST_PACKAGE_NAME := "GStreamer Base Plugins (Debian)"
-GST_PACKAGE_ORIGIN="http://packages.qa.debian.org/gst-plugins-base$(gst_abi)"
-endif
-
-ifeq ($(DISTRO),"Ubuntu")
-GST_PACKAGE_NAME := "GStreamer Base Plugins (Ubuntu)"
-GST_PACKAGE_ORIGIN="https://launchpad.net/distros/ubuntu/+source/gst-plugins-base$(gst_abi)"
-endif
+GST_PACKAGE_NAME := "GStreamer Base Plugins"
 
 
 # setup links for packages
@@ -102,9 +90,6 @@
 		sed 's/@GST_ABI@/$(gst_abi)/g' debian/gstreamer-$$f \
 			>debian/$(gst_pkgname)-$$f; \
 	done
-	rm -f debian/gir1.2-gst-plugins-base-$(gst_abi).install
-	cp debian/gir1.2-gst-plugins-base.install \
-		debian/gir1.2-gst-plugins-base-$(gst_abi).install
 	rm -f debian/libgstreamer-plugins-base$(gst_deb_abi).install
 	sed 's/@GST_ABI@/$(gst_abi)/g' \
 		debian/libgstreamer-plugins-base.install \
@@ -152,7 +137,6 @@
 	for f in $(VERSIONIZE); do \
 		rm -f debian/$(gst_pkgname)-$$f; \
 	done
-	rm -f debian/gir1.2-gst-plugins-base-$(gst_abi).install
 	rm -f debian/libgstreamer-plugins-base$(gst_deb_abi).install
 	rm -f debian/libgstreamer-plugins-base$(gst_deb_abi).symbols
 	rm -f debian/libgstreamer-plugins-base$(gst_abi)-dev.install
@@ -174,7 +158,7 @@
 common-binary-fixup-arch::
 	mkdir -p $(CURDIR)/fake-home
 	HOME=$(CURDIR)/fake-home \
-	LD_LIBRARY_PATH=debian/libgstreamer-plugins-base$(gst_deb_abi)/usr/lib/$(DEB_HOST_MULTIARCH):debian/libgstreamer-gl$(gst_deb_abi)/usr/lib/$(DEB_HOST_MULTIARCH):$(LD_LIBRARY_PATH) \
+	LD_LIBRARY_PATH=debian/libgstreamer-plugins-base$(gst_deb_abi)/usr/lib/$(DEB_HOST_MULTIARCH):$(LD_LIBRARY_PATH) \
 	    dh_gstscancodecs
 	rm -rf $(CURDIR)/fake-home
 
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 0000000..b2a77b7
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1 @@
+mtk-gst-plugins-base source: version-substvar-for-external-package libgstreamer-plugins-base1.0-dev -> libgstreamer-gl1.0-0
diff --git a/debian/watch b/debian/watch
deleted file mode 100644
index 4bb10ff..0000000
--- a/debian/watch
+++ /dev/null
@@ -1,2 +0,0 @@
-version=3
-http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-(1\.[\d\.]+)\.tar\.xz
