=== release 1.14.4 ===

2018-10-02 23:04:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.14.4

2018-10-02 23:04:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  Update docs

=== release 1.14.3 ===

2018-09-16 16:21:45 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.14.3

2018-09-16 16:21:45 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  Update docs

2018-08-16 13:17:58 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Set bit depth for x264 ≥ 153
	  https://bugzilla.gnome.org/show_bug.cgi?id=796975

2018-08-16 16:33:21 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* meson.build:
	  meson: Unify required version to 0.40.1

=== release 1.14.2 ===

2018-07-20 00:56:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.14.2

2018-07-20 00:56:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  Update docs

2018-06-11 14:43:20 +0200  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Remove 0.10 code
	  This was used to "close" a segment. It's no longer needed anymore
	  in 1.x (it was essentially sending the same thing again)

2018-05-11 09:21:09 +0200  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Only send flush event on seeking flushes
	  And not on all the time

=== release 1.14.1 ===

2018-05-17 13:26:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.14.1

2018-05-17 13:26:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  Update docs

2018-05-17 12:37:42 +0100  Tim-Philipp Müller <tim@centricular.com>

	* po/hr.po:
	  Update translations

2018-04-16 20:13:05 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Set the stream-format field of H264 streams
	  If we have codec_data it will be AVC, otherwise assume byte-stream.

=== release 1.14.0 ===

2018-03-19 20:19:43 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.14.0

2018-03-19 20:19:43 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  Update docs

=== release 1.13.91 ===

2018-03-13 19:17:58 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.13.91

2018-03-13 19:17:58 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  Update docs

2018-03-12 20:19:19 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  docs: plugins: minor addition to plugins list

2018-03-08 10:12:16 +0100  Michael Tretter <m.tretter@pengutronix.de>

	* configure.ac:
	  configure.ac: enable largefile support if possible
	  https://bugzilla.gnome.org/show_bug.cgi?id=793103

=== release 1.13.90 ===

2018-03-03 22:24:28 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.13.90

2018-03-03 22:24:28 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  Update docs

2018-03-01 19:07:42 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* meson.build:
	* tests/check/meson.build:
	  meson: enable more warnings

2018-02-28 10:07:13 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix build with newer x264 with support for multiple bit depths
	  libx264 used to be built for one specific bit depth, and if we
	  wanted to support multiple bit depths we would have to dynamically
	  load the right .so from different paths. That has changed now, and
	  libx264 can include support for multiple depths in the same lib,
	  so we don't need to do the dlopen() dance any more. We'll keep
	  the vtable stuff around until we can drop support for older x264.
	  gstx264enc.c:2927:36: error: ‘x264_bit_depth’ undeclared
	  https://bugzilla.gnome.org/show_bug.cgi?id=792111

2018-02-27 15:42:32 +0100  Alicia Boya García <aboya@igalia.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Add format example for option-string
	  https://bugzilla.gnome.org/show_bug.cgi?id=793879

2018-02-21 19:47:36 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: simplify GST_DISABLE_GST_DEBUG check and don't use add_global_*
	  add_global_arguments() can't be used in subprojects. It's
	  entirely possible that -ugly is a subproject but gstreamer
	  is picked up from an installed location, so we should
	  really use add_project_arguments() in both cases.

2018-02-15 19:44:21 +0000  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* meson.build:
	  Back to development

=== release 1.13.1 ===

2018-02-15 17:10:13 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.13.1

2018-02-15 17:07:42 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-sid.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  docs: update plugin docs

2018-02-15 14:52:29 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/id.po:
	* po/it.po:
	* po/nl.po:
	* po/sv.po:
	  po: update translations

2018-02-08 19:09:45 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: make version numbers ints and fix int/string comparison
	  WARNING: Trying to compare values of different types (str, int).
	  The result of this is undefined and will become a hard error
	  in a future Meson release.

2018-02-04 12:03:36 +0100  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	  autotools: use -fno-strict-aliasing where supported
	  https://bugzilla.gnome.org/show_bug.cgi?id=769183

2018-01-30 20:34:52 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/sidplay/meson.build:
	* meson.build:
	  meson: use -fno-strict-aliasing where supported
	  https://bugzilla.gnome.org/show_bug.cgi?id=769183

2018-01-03 16:02:08 +0100  Edward Hervey <edward@centricular.com>

	* ext/amrnb/amrnbdec.c:
	  amrnbdec: Don't use g_return_*_if_fail() on data parsing
	  Those functions can be disabled. Instead just use the (existing)
	  function.
	  CID #1427121

2018-01-03 16:02:08 +0100  Edward Hervey <edward@centricular.com>

	* ext/amrwbdec/amrwbdec.c:
	  amrwbdec: Don't use g_return_*_if_fail() on data parsing
	  Those functions can be disabled. Instead just use the (existing)
	  function.
	  CID #1427093

2017-12-26 13:51:37 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: skip translations if gettext is not available

2017-12-14 14:49:17 +1100  Matthew Waters <matthew@centricular.com>

	* common:
	  Automatic update of common submodule
	  From e8c7a71 to 3fa2c9e

2017-12-07 15:52:58 +0900  Justin Kim <justin.kim@collabora.com>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: add 'insert-vui' property for users to choose
	  VUI(Video Usability Information) parameters should be set
	  according to the specification. However, some of the existing
	  hardware decoders refuse to decode in certain combinations of
	  the resolution and VUI parameters. To support the legacy
	  decoders, this patch provides 'insert-vui' to skip the settings.
	  https://bugzilla.gnome.org/show_bug.cgi?id=791331

2017-12-06 13:01:39 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/cdio/gstcdio.c:
	* ext/cdio/gstcdio.h:
	* ext/cdio/gstcdiocddasrc.c:
	  cdio: Fix build with cdio >= 1.0
	  LIBCDIO_VERSION_NUM was defined as e.g. 94 for 0.94 but is now defined
	  as 1 for 1.0. We had various checks for < 83, which of course succeeded
	  now although we are >= 0.83.
	  Fix this by checking for < 76 (0.76) too, as that is the minimum version
	  we currently support and everything < 76 is going to be >= 1.0.
	  https://bugzilla.gnome.org/show_bug.cgi?id=791301

2017-11-27 20:11:56 +1100  Matthew Waters <matthew@centricular.com>

	* common:
	  Automatic update of common submodule
	  From 3f4aa96 to e8c7a71

2017-11-26 15:05:14 +0000  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	  configure: actually use -fvisibility if supported
	  Fix up for previous commit.

2017-11-26 14:49:21 +0000  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	  autotools: stop controlling symbol visibility with -export-symbols-regex
	  Instead, use -fvisibility=hidden and explicit exports via GST_EXPORT.
	  This should result in consistent behaviour for the autotools and
	  Meson builds.

2017-11-13 11:13:30 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix prerolling files with "empty" streams
	  This is a regression that was introduced by
	  commit 1803b3c18530cb0100d140c2b8e49a8dfe41f941
	  "    asfdemux: Add support for dvr-ms"
	  The problem is that some files/streams might contain stream definition
	  but there is no actual packets for those streams.
	  This was used to "define" streams with different bitrates for example.
	  The first_ts calculation resulted in never ever finding a valid first_ts
	  since some streams were empty, and therefore never "activating" itself.
	  Instead of that we first check if we are prerolled. And if we are we
	  unconditionally get the "first_ts"
	  The preroll check has been adapted to check whether streams of
	  each defined type (i.e. audio/video/sub) has been prerolled. This solves
	  the problem of having different streams of a particular type where only
	  one stream actually has data.

2017-11-13 11:09:31 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Store the stream type in streams
	  The field was present but never set :)

2017-09-26 10:11:24 +0530  Ponnam Srinivas <p.srinivas@samsung.com>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Fix out buffer memory leak in error code path
	  https://bugzilla.gnome.org/show_bug.cgi?id=788119

2017-09-15 17:06:58 +0530  Deepak Srivastava <srivastava.d@samsung.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Fix buffer memory leak in error code path
	  https://bugzilla.gnome.org/show_bug.cgi?id=787817

2017-09-07 13:27:26 +0530  Satya Prakash Gupta <sp.gupta@samsung.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Unmap output video frame if copying to it fails
	  https://bugzilla.gnome.org/show_bug.cgi?id=787398

2017-08-31 11:33:14 +0530  Satya Prakash Gupta <sp.gupta@samsung.com>

	* gst/realmedia/asmrules.c:
	  realmedia: fix leak in asmrules error code path
	  https://bugzilla.gnome.org/show_bug.cgi?id=787056

2017-08-30 18:41:28 +0530  Satya Prakash Gupta <sp.gupta@samsung.com>

	* gst/realmedia/rtspreal.c:
	  realmedia: Fix Memory leak in error case
	  https://bugzilla.gnome.org/show_bug.cgi?id=787014

2017-08-26 13:02:26 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/files/Makefile.am:
	* tests/files/cbr_stream.mp3:
	* tests/files/stream.mp2:
	* tests/files/vbr_stream.mp3:
	  tests: remove files that were used by the mpg123 unit test

2017-08-26 09:35:20 +0100  Tim-Philipp Müller <tim@centricular.com>

	* Makefile.am:
	* REQUIREMENTS:
	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/inspect/plugin-twolame.xml:
	* ext/Makefile.am:
	* ext/meson.build:
	* ext/twolame/Makefile.am:
	* ext/twolame/gsttwolamemp2enc.c:
	* ext/twolame/gsttwolamemp2enc.h:
	* ext/twolame/meson.build:
	* po/POTFILES.in:
	  Remove twolame plugin, moved to -good
	  https://bugzilla.gnome.org/show_bug.cgi?id=774252

2017-08-26 08:51:01 +0100  Tim-Philipp Müller <tim@centricular.com>

	* Makefile.am:
	* REQUIREMENTS:
	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-lame.xml:
	* ext/Makefile.am:
	* ext/lame/Makefile.am:
	* ext/lame/gstlamemp3enc.c:
	* ext/lame/gstlamemp3enc.h:
	* ext/lame/meson.build:
	* ext/lame/plugin.c:
	* ext/meson.build:
	* m4/Makefile.am:
	* m4/as-liblame.m4:
	* po/POTFILES.in:
	* tests/check/Makefile.am:
	* tests/check/gst-plugins-ugly.supp:
	* tests/check/meson.build:
	* tests/check/pipelines/.gitignore:
	* tests/check/pipelines/lame.c:
	  Remove lame plugin, moved to -good
	  https://bugzilla.gnome.org/show_bug.cgi?id=774252

2017-08-20 14:31:02 +0100  Tim-Philipp Müller <tim@centricular.com>

	* Makefile.am:
	* REQUIREMENTS:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* ext/Makefile.am:
	* ext/meson.build:
	* ext/mpg123/Makefile.am:
	* ext/mpg123/gstmpg123audiodec.c:
	* ext/mpg123/gstmpg123audiodec.h:
	* ext/mpg123/meson.build:
	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	* tests/check/elements/mpg123audiodec.c:
	* tests/check/meson.build:
	  Remove mpg123 plugin, moved to -good
	  https://bugzilla.gnome.org/show_bug.cgi?id=774252

2017-08-17 12:23:43 +0100  Tim-Philipp Müller <tim@centricular.com>

	* README:
	* common:
	  Automatic update of common submodule
	  From 48a5d85 to 3f4aa96

2017-08-10 15:48:27 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/sidplay/meson.build:
	  sidplay: hide symbols in meson for this c++ plugin too
	  Keep things local, as this is the only c++ plugin
	  in ugly currently.

2017-08-10 11:55:58 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: don't export symbols by default
	  Only plugin entry points should be exported.
	  Currently plugins might export more symbols with
	  the meson build, as we don't have the exports
	  regexp there that we pass to libtool.

2017-08-09 19:31:56 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* ext/x264/gstx264enc.c:
	  x264enc: add FIXME note for future configuration cleanup

2017-07-25 13:36:17 +0530  Satya Prakash Gupta <sp.gupta@samsung.com>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: Fix string memory leak
	  https://bugzilla.gnome.org/show_bug.cgi?id=785388

2017-07-15 15:01:09 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix indentation

2017-07-15 14:59:42 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix caps leak
	  Move creation of supported sink pads into class_init function
	  which is also the only place where they're used. Unref the
	  caps when no longer needed, the pad template will take its
	  own ref.
	  https://bugzilla.gnome.org/show_bug.cgi?id=784982

2017-07-15 14:57:49 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123audiodec: fix caps leak
	  The pad template takes its own ref, so we should unref the caps.
	  https://bugzilla.gnome.org/show_bug.cgi?id=784982

2017-07-15 12:49:19 +0100  Tim-Philipp Müller <tim@centricular.com>

	* po/meson.build:
	  meson: po: use glib preset and read language list from LINGUAS
	  Supported since meson 0.37, so we can use it now.

2017-07-11 14:21:41 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpmdec: Fix overrun from coverity
	  CID #1414801

2017-07-07 11:58:36 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: find python3 via python3 module
	  https://bugzilla.gnome.org/show_bug.cgi?id=783198

2017-07-05 18:58:35 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  dvdlpcmdec: Added support for Blu-Ray audio
	  https://bugzilla.gnome.org/show_bug.cgi?id=784552

2017-06-27 11:48:08 +0200  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: More index handling
	  In the same vein as the previous commit, the end of the file might have been
	  cut and therefore contains bogus data.
	  If the object is too short, consider it as garbage and return a non-fatal
	  flow.
	  Regression introduced in 97294eb8bbed1b9dad7d3f2c52dd69eb1812cc06

2017-06-27 10:25:42 +0200  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux; Don't assume index is present at end of file
	  Some files have garbage at the end of the file, don't error out if we don't
	  find the index there.
	  Reverts back to previous behaviour (where corrupted/missing indexex were
	  not a fatal error).
	  Regression introduced in 97294eb8bbed1b9dad7d3f2c52dd69eb1812cc06

2017-06-26 09:49:22 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: fix with-package-name option
	  https://bugzilla.gnome.org/show_bug.cgi?id=784082

2017-06-14 21:08:31 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: adjust segment start to a keyframe ts only for a KEYUNIT seek
	  ... which is how it has always been until changed coincidentally in commit
	  9ee60482b265481d0e3b397044f560eb736e5429 which then prompted commit
	  dba14178ce6115b406ef86e356b1201463af5e2a to consider ACCURATE as well
	  to compensate for that in a lateral way

2017-06-14 20:56:16 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* ext/x264/gstx264enc.c:
	  x264enc: relax bframes upper limit count to maximum encoder supported

2017-06-23 23:44:18 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/sidplay/meson.build:
	  meson: don't error out if sidplay library is not found

2017-06-23 18:33:24 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/meson.build:
	* ext/sidplay/meson.build:
	  meson: build sid plugin
	  https://bugzilla.gnome.org/show_bug.cgi?id=784135

2017-06-21 21:23:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/x264/gstx264enc.c:
	  x264: fix memory leak
	  When the allowed caps are the same of template caps the allowed
	  caps are not unrefed, leaking memory.
	  https://bugzilla.gnome.org/show_bug.cgi?id=784060

2017-06-07 12:08:43 -0400  Thibault Saunier <thibault.saunier@osg.samsung.com>

	* tests/check/meson.build:
	  meson: Do not use path separator in test names
	  Avoiding warnings like:
	  WARNING: Target "elements/audioamplify" has a path separator in its name.

2017-06-06 21:48:19 -0700  Thiago Santos <thiagossantos@gmail.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix checking for header objects
	  The if 'and' condition was mixed up with the last parameter of the
	  function and would lead to wrong results

2017-05-21 17:49:59 +0100  Tim-Philipp Müller <tim@centricular.com>

	* Makefile.am:
	* config.h.meson:
	* meson.build:
	  meson: don't need config.h.meson any longer

2017-05-20 14:58:37 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* meson_options.txt:
	  meson: add options to set package name and origin
	  https://bugzilla.gnome.org/show_bug.cgi?id=782172

2017-05-19 20:05:02 +0200  Jan Schmidt <jan@centricular.com>

	* tests/check/meson.build:
	  Add gstvideo_dep for meson mpeg2dec test build

2017-05-19 18:59:17 +0200  Jan Schmidt <jan@centricular.com>

	* tests/check/Makefile.am:
	* tests/check/elements/mpeg2dec.c:
	  mpeg2dec test: Fix expected output caps
	  In the absence of explicit info, video decoders
	  now output mono multiview caps by default, so make
	  the expected caps match that

2017-05-16 14:07:56 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* config.h.meson:
	* configure.ac:
	* ext/a52dec/Makefile.am:
	* ext/amrnb/Makefile.am:
	* ext/amrwbdec/Makefile.am:
	* ext/cdio/Makefile.am:
	* ext/dvdread/Makefile.am:
	* ext/lame/Makefile.am:
	* ext/mpeg2dec/Makefile.am:
	* ext/mpg123/Makefile.am:
	* ext/sidplay/Makefile.am:
	* ext/twolame/Makefile.am:
	* ext/x264/Makefile.am:
	* gst/asfdemux/Makefile.am:
	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdsub/Makefile.am:
	* gst/realmedia/Makefile.am:
	* gst/xingmux/Makefile.am:
	  Remove plugin specific static build option
	  Static and dynamic plugins now have the same interface. The standard
	  --enable-static/--enable-shared toggle are sufficient.

2017-05-09 09:45:27 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/sidplay/gstsiddec.cc:
	  sid: Make plugin name match plugin file name

2017-05-04 18:59:14 +0300  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	* meson.build:
	  Back to development

=== release 1.12.0 ===

2017-05-04 15:39:25 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.12.0

2017-05-04 15:12:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/fur.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2017-05-04 13:47:56 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/id.po:
	* po/sv.po:
	  po: Update translations

=== release 1.11.91 ===

2017-04-27 17:33:23 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.11.91

2017-04-27 16:08:13 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/fur.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2017-04-27 15:29:48 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/LINGUAS:
	* po/fur.po:
	* po/id.po:
	* po/sv.po:
	  po: Update translations

2017-04-27 12:42:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/x264/gstx264enc.h:
	  x264: Use __declspec(dllimport) with MinGW too
	  x264.h says this isn't needed with MinGW, but it looks like it is.
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=779249

2017-04-24 20:28:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* common:
	  Automatic update of common submodule
	  From 60aeef6 to 48a5d85

2017-04-10 23:49:25 +0100  Tim-Philipp Müller <tim@centricular.com>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From 39ac2f5 to 60aeef6

=== release 1.11.90 ===

2017-04-07 16:34:22 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* meson.build:
	  Release 1.11.90

2017-04-07 15:33:31 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2017-04-07 15:07:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/id.po:
	* po/sv.po:
	  po: Update translations

2017-03-28 14:18:38 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>

	* tests/check/meson.build:
	  meson: test: Fix environment object usage
	  And use get_pkgconfig_variable instead of calling pkg-config ourself

2017-03-20 17:06:16 +0000  Tim-Philipp Müller <tim@centricular.com>

	* REQUIREMENTS:
	  REQUIREMENTS: update for mad mp3 decoder removal
	  https://bugzilla.gnome.org/show_bug.cgi?id=776140

2017-03-12 11:57:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* Makefile.am:
	  Add libgstrmdemux.so to cruft list
	  This was renamed to libgstrealmedia.so, this fixes helps fixing
	  uninstalled setup.
	  https://bugzilla.gnome.org/show_bug.cgi?id=779344

2017-03-04 11:09:33 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/inspect/plugin-realmedia.xml:
	* gst/realmedia/Makefile.am:
	* gst/realmedia/meson.build:
	  Rename plugin filenames to match plugin names
	  libgstrmdemux.so becomes libgstrealmedia.so
	  https://bugzilla.gnome.org/show_bug.cgi?id=779344

2017-03-01 23:00:55 +1100  Jan Schmidt <jan@centricular.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Fix latency calculation
	  The latency calculation was missing a scaling by GST_SECOND,
	  so it would always report a tiny latency. Fix that.
	  Spotted by Guillaume Desmottes.

2017-02-27 20:55:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix compilation with gcc 7
	  gstasfdemux.c: In function 'gst_asf_demux_parse_stream_object':
	  gstasfdemux.c:3001:39: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]
	  is_encrypted = ! !((flags & 0x8000) << 15);
	  ~~~~~~~~~~~~~~~~~~^~~~~~
	  https://bugzilla.gnome.org/show_bug.cgi?id=779329

2017-02-25 21:48:46 -0300  Edgard Lima <edgard.lima@gmail.com>

	* ext/amrwbdec/amrwb.c:
	* ext/amrwbdec/amrwbdec.h:
	  Update Edgard Lima's email
	  https://bugzilla.gnome.org/show_bug.cgi?id=779230

2017-02-24 15:59:47 +0200  Sebastian Dröge <sebastian@centricular.com>

	* meson.build:
	  meson: Update version

2017-02-24 15:37:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.11.2 ===

2017-02-24 15:07:54 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	  Release 1.11.2

2017-02-24 12:57:00 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2017-02-24 12:45:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/id.po:
	* po/sv.po:
	  po: Update translations

2017-02-14 19:56:13 +0000  Tim-Philipp Müller <tim@centricular.com>

	* Makefile.am:
	  meson: dist meson build files
	  Ship meson build files in tarballs, so people who use tarballs
	  in their builds can start playing with meson already.

2017-02-01 03:08:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264: Initialize function vtable in plugin_init()
	  These values are defined in the x264.h header and are not const on
	  Windows due to the way DLLs work. See:
	  https://msdn.microsoft.com/en-us/library/619w14ds.aspx
	  https://msdn.microsoft.com/en-us/library/zw3za17w.aspx
	  https://bugzilla.gnome.org/show_bug.cgi?id=777903

2017-01-31 13:50:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Check that we have enough data available before parsing bool/uint extended content descriptors
	  https://bugzilla.gnome.org/show_bug.cgi?id=777955

2017-01-30 15:39:59 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Reset number of languages to 0 when freeing the array because of errors
	  Otherwise we will happily index into the array at NULL if the requested
	  index is smaller than the number of languages that were previously
	  allocated.
	  https://bugzilla.gnome.org/show_bug.cgi?id=777937

2017-01-24 19:24:10 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>

	* tests/check/meson.build:
	  meson: Properly use ':' for defining keywords

2017-01-13 12:39:09 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: bump version

2017-01-12 16:32:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.11.1 ===

2017-01-12 16:10:25 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	  Release 1.11.1

2017-01-12 14:45:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2017-01-12 14:37:02 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/hr.po:
	* po/id.po:
	* po/sv.po:
	  po: Update translations

2016-12-16 16:52:00 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>

	* ext/amrnb/meson.build:
	* ext/x264/meson.build:
	* meson.build:
	  meson: Install presets files

2015-06-26 20:22:47 +0200  Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

	* ext/x264/GstX264Enc.prs:
	  x264enc: Add a youtube preset.
	  Based on https://support.google.com/youtube/answer/1722171
	  https://bugzilla.gnome.org/show_bug.cgi?id=751560

2016-12-28 10:42:15 +0000  Tim-Philipp Müller <tim@centricular.com>

	* config.h.meson:
	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/inspect/plugin-mad.xml:
	* ext/Makefile.am:
	* ext/mad/Makefile.am:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	* ext/mad/meson.build:
	* ext/meson.build:
	  mad: remove plugin
	  We have better replacements such as the mpg123 plugin.
	  The main reason to keep around mad was for 'freeform'
	  mp3 support, but mpg123 can handle those too nowadays.
	  Also, mad is GPL and has been unmaintained for years.
	  https://bugzilla.gnome.org/show_bug.cgi?id=776140

2016-12-16 19:07:51 +0000  Tim-Philipp Müller <tim@centricular.com>

	* Makefile.am:
	* configure.ac:
	* win32/MANIFEST:
	* win32/common/.gitignore:
	* win32/common/config.h:
	  win32: remove platform-specific copies of generated headers
	  Unused and no longer needed.

2016-12-14 10:24:26 +0000  Tim-Philipp Müller <tim@centricular.com>

	* .gitignore:
	* Makefile.am:
	* configure.ac:
	* gst-plugins-ugly.spec.in:
	  Remove generated .spec file
	  Likely extremely bitrotten, and we should not ship this anyway.

2016-12-09 17:45:34 -0300  Thibault Saunier <tsaunier@gnome.org>

	* meson.build:
	  meson: Support building without Gst debug

2016-12-03 08:19:44 +0100  Edward Hervey <bilboed@bilboed.com>

	* README:
	* common:
	  Automatic update of common submodule
	  From f980fd9 to 39ac2f5

2016-12-02 14:06:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix memory leak of payload extensions for unusable/unsupported streams
	  https://bugzilla.gnome.org/show_bug.cgi?id=775515

2016-11-30 18:11:30 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* ext/x264/gstx264enc.c:
	  x264enc: Add information for mixed mode
	  https://bugzilla.gnome.org/show_bug.cgi?id=775411

2016-11-30 17:30:33 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* ext/x264/gstx264enc.c:
	  x264enc: Correctly pass interlacing/TFF information
	  Give the interlacing information correctly to the encoder. Also parse
	  TFF/BFF information from the caps and pass it too.
	  https://bugzilla.gnome.org/show_bug.cgi?id=775411

2016-11-28 15:14:18 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* ext/x264/gstx264enc.c:
	  x264enc: Auto-detect interlace mode from caps
	  If the caps are interlaced, interlacing is always enabled on the
	  encoder. If the interlace-mode field is missing or if it's progressive,
	  the encoder uses the "interlaced" property.
	  https://bugzilla.gnome.org/show_bug.cgi?id=775228

2016-11-26 11:20:51 +0000  Tim-Philipp Müller <tim@centricular.com>

	* .gitmodules:
	  common: use https protocol for common submodule
	  https://bugzilla.gnome.org/show_bug.cgi?id=775110

2016-11-25 23:51:00 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/realmedia/realhash.c:
	  real: Fix compiler warnings with latest clang
	  realhash.c:295:11: error: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Werror,-Wconstant-conversion]
	  *buf1 = 128;
	  ~ ^~~
	  https://bugzilla.gnome.org/show_bug.cgi?id=775112

2016-11-25 12:41:03 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Allow 64bit sizes for DATA object
	  we *can* have files greater than 4GB, any other object should be
	  smaller than that

2016-11-25 10:07:35 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Add sanity check for asf_stream_audio
	  We should have enough bytes for the specified codec_data
	  https://bugzilla.gnome.org/show_bug.cgi?id=775070

2016-11-25 09:45:04 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Add sanity checks when reading asf_stream_video_format
	  It should report a size of at least 40 bytes
	  Also check for the size of the remaining data (i.e. codec_data)
	  https://bugzilla.gnome.org/show_bug.cgi?id=775070

2016-11-25 09:44:05 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Add check for invalid/corrupt asf object
	  An asf object can't realistically be bigger than 2**32 bytes.
	  If it reports a size bigger than that, consider it corrupt and properly
	  propagate the error back.
	  https://bugzilla.gnome.org/show_bug.cgi?id=775070

2016-11-22 17:14:44 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Handle EOS in push-mode on corrupted files
	  It is possible no streams were activated when receiving EOS, if so
	  handled it as if we hadn't seen the header
	  https://bugzilla.gnome.org/show_bug.cgi?id=774846

2016-11-22 16:56:04 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: FILE headers are mandatory in the header
	  As per the specification, also avoids ending up trying to play a
	  file with plenty of un-initialized values.
	  https://bugzilla.gnome.org/show_bug.cgi?id=774846

2016-11-22 16:54:26 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Handle incomplete header in pull mode
	  pulling headers is meant to complete as a whole. If we don't have
	  enough data, it's an error.
	  Avoids pipeline hangs on corrupted files
	  https://bugzilla.gnome.org/show_bug.cgi?id=774846

2016-11-22 16:22:49 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Handle issues with "empty" files
	  In some corrupted files, we could end up with no actual streams
	  being exposed.
	  In those cases, make sure we properly propagate the failure all
	  the way to the loop function. This avoids ending up in cases where
	  we are neither EOS'd nor ERROR'd out from a pipeline point of view.
	  https://bugzilla.gnome.org/show_bug.cgi?id=774846

2016-11-20 20:54:25 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: dvd-spu-clut-change is a sticky custom event

2016-11-17 17:20:03 -0800  Scott D Phillips <scott.d.phillips@intel.com>

	* meson.build:
	  meson: Add ignored warnings for MSVC
	  https://bugzilla.gnome.org/show_bug.cgi?id=774656

2016-11-11 14:15:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	* ext/x264/Makefile.am:
	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	* ext/x264/meson.build:
	* meson_options.txt:
	  x264enc: Add configure parameter to specify additional x264 libraries with e.g. different depth configuration
	  x264 has to be compiled specifically for a target bit depth.
	  Distributions currently ship various libraries in their packages, with
	  different bit depths.
	  This change now allows to provide them all at configure time and have
	  the x264enc element dynamically switch between them based on the bit
	  depth of the input format.
	  https://bugzilla.gnome.org/show_bug.cgi?id=763297

2016-11-01 18:09:25 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: update version

=== release 1.11.0 ===

2016-11-01 18:53:15 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.10.0 ===

2016-11-01 18:05:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.10.0

2016-11-01 17:54:16 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2016-11-01 17:43:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/id.po:
	* po/sv.po:
	  po: Update translations

2016-10-25 08:54:52 -0700  Scott D Phillips <scott.d.phillips@intel.com>

	* meson.build:
	* tests/meson.build:
	  meson: Don't depend on gstreamer-check-1.0 on windows
	  https://bugzilla.gnome.org/show_bug.cgi?id=773114

2016-10-25 10:51:08 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* tests/check/meson.build:
	* tests/meson.build:
	  Revert "meson: move gstreamer-check-1.0 dependency to tests/check"
	  This reverts commit 0555c09607e548b6c45d029ab31dbb3042195ae3.
	  Does not actually work. See:
	  https://bugzilla.gnome.org/show_bug.cgi?id=773114#c31

2016-10-24 00:35:23 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/meson.build:
	  meson: fix build outside of gst-all

2016-10-21 00:47:14 -0700  Scott D Phillips <scott.d.phillips@intel.com>

	* meson.build:
	* tests/check/meson.build:
	* tests/meson.build:
	  meson: move gstreamer-check-1.0 dependency to tests/check
	  https://bugzilla.gnome.org/show_bug.cgi?id=773114

2016-10-15 22:20:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Don't set c_std to gnu99
	  Use the default for each compiler on every platform instead. This
	  improves our compatibility with compilers that don't have gnu99 as
	  a c_std.

2016-10-04 18:06:09 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>

	* meson.build:
	* tests/check/getpluginsdir:
	* tests/check/meson.build:
	  meson: Make use of new environment object and set plugin path to builddir
	  Workaround source_root being the root directory of all projects
	  in the subproject case and remove now unneeded getpluginsdir
	  Bump meson requirement to 0.35

2016-09-30 11:35:40 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>

	* hooks/pre-commit.hook:
	* meson.build:
	* tests/check/getpluginsdir:
	  meson: Setup pre commit hook and fix getpluginsdir for standalone case

2016-09-30 11:41:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: update version

=== release 1.9.90 ===

2016-09-30 13:03:26 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.9.90

2016-09-30 12:23:17 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2016-09-30 11:44:22 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/id.po:
	* po/sv.po:
	  po: Update translations

2016-09-29 12:39:34 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Set colorimetry and chroma-site information
	  https://bugzilla.gnome.org/show_bug.cgi?id=772159

2016-09-24 09:08:00 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* po/meson.build:
	  meson: hook up translations

2016-09-24 08:59:55 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* tests/check/getpluginsdir:
	* tests/check/meson.build:
	* tests/meson.build:
	  meson: hook up unit tests

2016-09-14 11:30:58 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  configure: Depend on gstreamer 1.9.2.1

2016-09-10 20:51:36 +1000  Jan Schmidt <jan@centricular.com>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From b18d820 to f980fd9

2016-09-10 09:54:15 +1000  Jan Schmidt <jan@centricular.com>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From f49c55e to b18d820

2016-09-05 12:22:56 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>

	* meson.build:
	  meson: Bump version to 1.9.2

2016-09-01 12:28:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.9.2 ===

2016-09-01 12:28:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.9.2

2016-09-01 11:24:13 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  po: Update translations

2016-09-01 10:57:46 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/sidplay/gstsiddec.cc:
	  siddec: Fix compilation with debugging disabled
	  gstsiddec.o
	  gstsiddec.cc: In function ‘void play_loop(GstPad*)’:
	  gstsiddec.cc:446:18: error: unused variable ‘reason’ [-Werror=unused-variable]
	  const gchar *reason = gst_flow_get_name (ret);
	  ^

2016-08-19 11:11:14 -0700  Thibault Saunier <thibault.saunier@osg.samsung.com>

	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rmdemux.c:
	  Use the new API to post flow ERROR messages on the bus
	  https://bugzilla.gnome.org/show_bug.cgi?id=770158

2016-08-24 09:45:05 -0300  Thibault Saunier <tsaunier@gnome.org>

	* gst/asfdemux/meson.build:
	  meson: Link asfdemux against the gstsdp library

2016-08-23 15:29:10 -0300  Thibault Saunier <tsaunier@gnome.org>

	* meson.build:
	  meson: Add support for fallback subprojects

2016-08-12 21:25:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* .gitignore:
	* config.h.meson:
	* ext/a52dec/meson.build:
	* ext/amrnb/meson.build:
	* ext/amrwbdec/meson.build:
	* ext/cdio/meson.build:
	* ext/dvdread/meson.build:
	* ext/lame/meson.build:
	* ext/mad/meson.build:
	* ext/meson.build:
	* ext/mpeg2dec/meson.build:
	* ext/mpg123/meson.build:
	* ext/twolame/meson.build:
	* ext/x264/meson.build:
	* gst/asfdemux/meson.build:
	* gst/dvdlpcmdec/meson.build:
	* gst/dvdsub/meson.build:
	* gst/meson.build:
	* gst/realmedia/meson.build:
	* gst/xingmux/meson.build:
	* meson.build:
	  Add support for Meson as alternative/parallel build system
	  https://github.com/mesonbuild/meson
	  With contributions from:
	  Tim-Philipp Müller <tim@centricular.com>
	  Jussi Pakkanen <jpakkane@gmail.com> (original port)
	  Highlights of the features provided are:
	  * Faster builds on Linux (~40-50% faster)
	  * The ability to build with MSVC on Windows
	  * Generate Visual Studio project files
	  * Generate XCode project files
	  * Much faster builds on Windows (on-par with Linux)
	  * Seriously fast configure and building on embedded
	  ... and many more. For more details see:
	  http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
	  http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html
	  Building with Meson should work on both Linux and Windows, but may
	  need a few more tweaks on other operating systems.

2016-08-12 21:41:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/a52dec/gsta52dec.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/x264/gstx264enc.h:
	* gst/realmedia/realhash.c:
	* gst/realmedia/rtspreal.c:
	  plugins: Use <stdint.h> instead of _stdint.h
	  _stdint.h is generated by Autotools and we don't really need it. All
	  supported platforms now ship with stdint.h. The only stickler was MSVC,
	  and since Visual Studio 2015 it also ships stdint.h now.

2016-08-19 13:01:39 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpeg2dec/perftest.c:
	  mpeg2dec: remove file no longer used or needed

2016-08-08 09:58:20 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/dvdlpcmdec/Makefile.am:
	  dvdlpcmdec: add libgstbase CFLAGS as well
	  For consistency.
	  https://bugzilla.gnome.org/show_bug.cgi?id=769610

2016-08-07 00:10:24 +0000  xlazom00 <xlazom00@gmail.com>

	* gst/dvdlpcmdec/Makefile.am:
	  dvdlpcmdec: link libgstbase-1.0
	  https://bugzilla.gnome.org/show_bug.cgi?id=769610

2016-08-02 13:38:25 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Add byte rate based bitrate tag in case there are no audio props
	  https://bugzilla.gnome.org/show_bug.cgi?id=769418

2016-04-28 16:42:43 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  dvdlpcmdec: add support for another format
	  The format specification can be found here:
	  http://www.dvdforum.org/images/Guideline1394V10R0_20020911.pdf
	  Note: This format is also used for Wifi-Display.
	  https://bugzilla.gnome.org/show_bug.cgi?id=765807

2016-04-28 16:32:53 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  dvdlpcmdec: rewrite to use GstAudioDecoder
	  https://bugzilla.gnome.org/show_bug.cgi?id=765807

2016-07-24 10:00:48 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/sidplay/gstsiddec.cc:
	  sidplay: fix compiler warnings when building with -O3
	  Avoid compiler warnings "‘foo’ may be used uninitialized in this
	  function" when building with -O3 by checking the return bool value
	  of format conversion function.
	  https://bugzilla.gnome.org/show_bug.cgi?id=769116

2016-07-11 21:14:06 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From f363b32 to f49c55e

2016-07-06 13:51:09 +0300  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.9.1 ===

2016-07-06 13:15:28 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.9.1

2016-07-06 11:54:01 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2016-07-06 10:19:44 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/hr.po:
	  po: Update translations

2016-06-21 11:46:53 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* common:
	  Automatic update of common submodule
	  From ac2f647 to f363b32

2015-05-12 11:08:55 +0300  Vootele Vesterblom <vov@bang-olufsen.dk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix seeking back after EOS has been reached in push mode
	  Fix seeking when demuxer is in INDEX state. This happens when we
	  reached the end of the stream. It should still be possible to do
	  a flushing seek and seek back to any other position though. Instead
	  the demuxer would just go straight to EOS again instead of going
	  back to processing packets again from the new position.
	  https://bugzilla.gnome.org/show_bug.cgi?id=749066

2016-05-17 16:00:29 +0300  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>

	* gst/realmedia/rdtmanager.c:
	  rdtmanager: fix clock leak
	  The clock returned by gst_system_clock_obtain() was never unreffed.
	  https://bugzilla.gnome.org/show_bug.cgi?id=766565

2016-05-15 13:33:30 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  docs: Update for git master

2016-04-16 09:15:43 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/amrnb/amrnbdec.c:
	* ext/mad/gstmad.c:
	  amrnbec, mad: fix two more parse function declarations

2016-04-15 20:46:37 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/a52dec/gsta52dec.c:
	* ext/amrwbdec/amrwbdec.c:
	  a52dec, amrwbec: fix parse function declaration mismatch
	  Fixes MSVC compiler warning:
	  amrwbdec.c(99): warning C4133: '=': incompatible types
	  - from 'gboolean (__cdecl *)(GstAudioDecoder *,GstAdapter *,gint *,gint *)' to
	  'GstFlowReturn (__cdecl *)(GstAudioDecoder *,GstAdapter *,gint *,gint *)'
	  gsta52dec.c(156): warning C4133: '=': incompatible types
	  - from 'gboolean (__cdecl *)(GstAudioDecoder *,GstAdapter *,gint *,gint *)' to
	  'GstFlowReturn (__cdecl *)(GstAudioDecoder *,GstAdapter *,gint *,gint *)'

2016-04-15 19:55:03 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpg123/gstmpg123audiodec.h:
	  mpg123: fix build with msvc
	  Fix syntax errors when compiling against cerbero-provided libmpg123
	  headers. We do the same as the libmpg123 internal visual studio
	  build here.
	  mpg123.h(1378): error C2143: syntax error: missing ')' before '('
	  mpg123.h(1378): error C2081: 'ssize_t': name in formal parameter list illegal
	  mpg123.h(1378): error C2143: syntax error: missing ')' before '*'
	  mpg123.h(1378): error C2091: function returns function
	  mpg123.h(1378): error C2143: syntax error: missing '{' before '*'
	  mpg123.h(1378): error C2059: syntax error: ')'
	  mpg123.h(1379): error C2143: syntax error: missing ')' before '*'
	  mpg123.h(1379): error C2365: 'off_t': redefinition; previous definition was 'typedef'
	  ...

2016-04-15 18:37:42 +0100  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: bump libmpeg2 requirement to 0.5.1 and fix msvc build
	  libmpeg2 0.5.1 was released in mid-2008, let's bump the requirement
	  and get rid of version-dependent code paths. There's still
	  avdec_mpeg2video for those who are stuck on ancient distros which
	  we don't target any more.
	  Also fixes build with MSVC, which doesn't like #if #else #endif
	  inside macro arguments (like the GST_DEBUG_OBJECT in line 941).

2016-04-14 10:02:50 +0100  Julien Isorce <j.isorce@samsung.com>

	* README:
	* common:
	  Automatic update of common submodule
	  From 6f2d209 to ac2f647

2016-03-04 16:14:44 +0900  Vineeth TM <vineeth.tm@samsung.com>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/mad/gstmad.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/twolame/gsttwolamemp2enc.c:
	* ext/x264/gstx264enc.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubparse.c:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	* gst/xingmux/gstxingmux.c:
	  ugly: use new gst_element_class_add_static_pad_template()
	  https://bugzilla.gnome.org/show_bug.cgi?id=763082

2016-03-24 13:33:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.8.0 ===

2016-03-24 12:43:04 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.8.0

2016-03-24 12:18:09 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

=== release 1.7.91 ===

2016-03-15 12:21:07 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.7.91

2016-03-15 12:03:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2016-03-08 12:26:01 +0100  Edward Hervey <edward@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Don't modify segment values on accurate seeks
	  When dealing with accurate seeks, we want to return exactly the segment
	  that was requested by the seek event, and not adjust the values.
	  https://bugzilla.gnome.org/show_bug.cgi?id=755469

=== release 1.7.90 ===

2016-03-01 18:42:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.7.90

2016-03-01 17:18:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2016-03-01 16:54:07 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/bg.po:
	  po: Update translations

2016-02-27 20:17:31 +0100  Jens Georg <mail@jensge.org>

	* ext/dvdread/dvdreadsrc.c:
	  dvdread: Fix seek starting at 0 for title != 1
	  Otherwise the playback would start at title 0
	  https://bugzilla.gnome.org/show_bug.cgi?id=762787

2016-02-26 12:41:18 +0200  Sebastian Dröge <sebastian@centricular.com>

	* common:
	  Automatic update of common submodule
	  From b64f03f to 6f2d209

2016-02-22 22:08:12 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix adding bitrate to stream tags
	  https://bugzilla.gnome.org/show_bug.cgi?id=699586

2016-02-21 10:11:12 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/asfdemux/asf.vcproj:
	* gst/realmedia/rmdemux.vcproj:
	* win32/MANIFEST:
	* win32/gst.sln:
	* win32/vs6/gst_plugins_ugly.dsw:
	* win32/vs6/libgstasfdemux.dsp:
	* win32/vs6/libgstdvdlpcmdec.dsp:
	* win32/vs6/libgstdvdsub.dsp:
	* win32/vs6/libgstlame.dsp:
	* win32/vs6/libgstmad.dsp:
	* win32/vs6/libgstrealmedia.dsp:
	* win32/vs6/libgstsynaesthesia.dsp:
	  win32: remove outdated build cruft
	  This hasn't been touched for generations, doesn't work,
	  and is just causing confusion. We also don't want to
	  maintain these files manually.

2016-02-20 11:55:37 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: don't use exported but undeclared core debug category symbols
	  It's not right and won't work on Windows with MSVC.

2016-02-19 12:38:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.7.2 ===

2016-02-19 11:58:13 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.7.2

2016-02-19 11:21:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2016-02-19 10:32:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/fr.po:
	* po/pt_BR.po:
	  po: Update translations

2016-02-18 00:25:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/sidplay/gstsiddec.cc:
	  sidplay: Fix compiler warning about C++11 compatibility
	  gstsiddec.cc:78:17: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
	  #define FORMATS "{ "GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
	  ^
	  gstsiddec.cc:78:38: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
	  #define FORMATS "{ "GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
	  ^

2016-02-16 14:46:11 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpg123.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  docs: update inspection to git and fix mpg123 inspect location

2016-02-16 12:23:33 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tests/files/Makefile.am:
	* tests/files/stream.mp2:
	  tests: fix distcheck

2016-02-16 10:38:18 +0000  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/xml/plugin-mpg123.xml:
	* ext/Makefile.am:
	* gst-plugins-ugly.spec.in:
	* tests/check/Makefile.am:
	  mpg123: move from -bad to -ugly
	  Hook up to build system, add to docs

2016-02-16 10:55:01 +0000  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	* tests/Makefile.am:
	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	* tests/files/Makefile.am:
	* tests/files/cbr_stream.mp3:
	* tests/files/vbr_stream.mp3:
	  tests: add test data for mpg123 plugin

2016-02-16 10:41:07 +0000  Tim-Philipp Müller <tim@centricular.com>

	  Merge branch 'plugin-move-mpg123'
	  Move mpg123 plugin from -bad to -ugly.
	  https://bugzilla.gnome.org/show_bug.cgi?id=719849

2015-12-14 11:09:46 +0900  Vineeth TM <vineeth.tm@samsung.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  plugins-bad: Fix example pipelines
	  rename gst-launch --> gst-launch-1.0
	  replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**)
	  fix caps in examples
	  https://bugzilla.gnome.org/show_bug.cgi?id=759432

2015-08-17 11:50:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: still reset pending audio info on hard flush
	  Follow-up to previous commit.
	  https://bugzilla.gnome.org/show_bug.cgi?id=752431

2015-07-15 10:44:02 -0600  Jason Litzinger <jlitzinger@control4.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: fix handling of sample rate change during playback
	  If the sample rate of the media changes, the resulting flush will
	  clear the has_next_audioinfo flag, and the caps won't be sent
	  downstream.
	  https://bugzilla.gnome.org/show_bug.cgi?id=752431

2015-08-15 12:58:40 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  audiodecoders: use default pad accept-caps handling
	  Avoids useless check of downstream caps when handling an
	  accept-caps query
	  Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec,
	  sbcdec, adpcmdec, sirendec

2015-04-26 18:04:16 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpg123/Makefile.am:
	  Remove obsolete Android build cruft
	  This is not needed any longer.

2015-01-11 01:08:08 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: fix compiler warning and simplify checks in set_caps
	  https://bugzilla.gnome.org/show_bug.cgi?id=740195

2015-01-03 13:06:45 +0100  Carlos Rafael Giani <dv@pseudoterminal.org>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: rework set_format code so mpg123audiodec works with decodebin/playbin
	  The old code was using gst_caps_normalize() and was generally overly
	  complex. Simplify by picking sample rate and number of channels from
	  upstream and the sample format from the allowed caps. If the format caps
	  is a list of strins, just pick the first one. And if the srcpad isn't
	  linked yet, use the default format (S16).
	  https://bugzilla.gnome.org/show_bug.cgi?id=740195

2014-09-10 17:24:39 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  Fix up one-element lists in template caps

2014-03-05 00:51:04 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/mpg123audiodec.c:
	  tests: fix mpg123audiodec test for big-endian architectures

2014-02-04 17:22:27 +0100  Carlos Rafael Giani <dv@pseudoterminal.org>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: improved error report and checks
	  Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>

2013-12-05 12:04:39 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123audiodec: Require caps to be set before any data processing

2013-07-26 17:25:42 +0200  Edward Hervey <edward@collabora.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: Remove dead assignment
	  harder ? :)

2013-05-15 11:25:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/elements/mpg123audiodec.c:
	  mpg123audiodec: Fix event handling in unit test

2012-10-24 12:16:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpg123/Makefile.am:
	  gst: Add better support for static plugins

2013-04-15 00:22:39 -0700  David Schleef <ds@schleef.org>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: Add conditional on API version for new enum

2016-02-05 19:11:38 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* tests/check/Makefile.am:
	  tests: extend the AM_TESTS_ENVIRONMENT from check.mak
	  To get the CK_DEFAULT_TIMEOUT defined for all tests
	  https://bugzilla.gnome.org/show_bug.cgi?id=761472

2016-02-05 18:07:02 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From 86e4663 to b64f03f

2016-01-25 20:00:26 +0000  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	* ext/amrnb/amrnbdec.h:
	* ext/amrnb/amrnbenc.h:
	* ext/amrwbdec/amrwbdec.h:
	  amrnb, amrwb: unconditionally depend on opencore-amr*b >= 0.1.3
	  We don't really need to cater for older versions any more.

2016-01-21 17:34:38 +0100  Edward Hervey <edward@centricular.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Demote rank to SECONDARY
	  https://bugzilla.gnome.org/show_bug.cgi?id=574461

2016-01-08 21:40:53 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: use query caps instead of accept-caps
	  accept-caps does only a shallow check and a full downstream
	  caps query is needed to check if ARGB is possible

2015-10-30 11:06:11 +0530  Ravi Kiran K N <ravi.kiran@samsung.com>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Support reverse playback
	  Support reverse playback for ASF format.
	  Parse packets and queue the payloads, then push
	  the payload buffer to decoder in reverse order.
	  Video buffers are pushed from KeyFrame to next
	  Keyframe.
	  https://bugzilla.gnome.org/show_bug.cgi?id=757341

2015-12-24 15:28:46 +0100  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

2015-12-24 14:48:50 +0100  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/elements/amrnbenc.c:
	  amrnbenc: Fix various compiler warnings in the test

2015-12-24 14:48:38 +0100  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/elements/x264enc.c:
	  x264enc: Fix various compiler warnings in the test

=== release 1.7.1 ===

2015-12-24 14:41:21 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.7.1

2015-12-24 14:10:29 +0100  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2015-12-24 12:23:27 +0100  Sebastian Dröge <sebastian@centricular.com>

	* po/id.po:
	* po/sv.po:
	  po: Update translations

2015-12-21 12:32:32 +0100  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  configure: Use -Bsymbolic-functions if available
	  While this is more useful for libraries, some of our plugins with multiple
	  files and some internal API can also benefit from this.

2015-12-16 09:36:08 +0100  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  docs: update to git

2015-12-07 09:08:18 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From b319909 to 86e4663

2015-11-26 15:49:47 +0000  Arjen Veenhuizen <arjen.veenhuizen@tno.nl>

	* ext/x264/gstx264enc.c:
	  x264enc: increase bitrate limit from 100Mbps to 2Gbps
	  Don't artificially limit the bitrate, x264enc allows much
	  higher bitrates, and for intra-only 4k AVC they are needed.
	  x264 clips to 2Gbps internally, so use that as limit for now.
	  https://bugzilla.gnome.org/show_bug.cgi?id=758620

2015-11-18 23:20:59 -0800  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>

	* ext/x264/gstx264enc.c:
	  x264enc: drop unnecessary NULL check before g_free

2015-10-21 14:35:17 +0100  Tim-Philipp Müller <tim@centricular.com>

	* common:
	  Automatic update of common submodule
	  From b99800a to b319909

2015-10-20 17:29:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Use new GST_ENABLE_EXTRA_CHECKS #define
	  https://bugzilla.gnome.org/show_bug.cgi?id=756870

2015-10-21 14:26:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* README:
	* common:
	  Automatic update of common submodule
	  From 9aed1d7 to b99800a

2015-10-02 22:24:46 +0300  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Update GLib dependency to 2.40.0

2015-09-29 14:16:07 -0700  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>

	* ext/dvdread/README:
	  dvdread: remove broken link
	  Removing instead of updating as previously pointed-to page
	  (now http://dvd.sourceforge.net/dvdinfo/) is already linked
	  from dvd.sourceforge.net's homepage as: "Collection of
	  information on file formats/data structures relating to DVD
	  navigation/SPUs."

2015-09-26 09:23:05 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpcmdec: fix invalid read beyond channel position array
	  We would always copy sizeof(sorted_position) bytes, which is
	  for 8 channels, but if we have less than 8 channels the
	  position array we copy from will only have allocated space
	  for channel channels, so we would read beyond the input
	  array in some cases.

2015-08-25 10:08:46 +0900  HoonHee Lee <hoonhee.lee@lge.com>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpcmdec: factor out common code to set output format into new function
	  When caps event is recieved and header is changed, reordering channel
	  and setting the default output format for audio are processed. These 2 of
	  code are same. Thus, It is better to make a new function for these common
	  code in terms of removing duplicated code, maintenance and expansion.
	  https://bugzilla.gnome.org/show_bug.cgi?id=753920

2015-09-23 20:45:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't push any data on pads after the segment.stop
	  https://bugzilla.gnome.org/show_bug.cgi?id=755469

2015-09-23 20:30:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Only change segment start to a keyframe for KEYUNIT seeks
	  Not for accurate seeks, which should accurately start at the requested
	  position.
	  https://bugzilla.gnome.org/show_bug.cgi?id=755469

2015-09-23 20:23:40 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Update segment.position when pushing buffers
	  Without this, non-flushing seeks are not going to work well.
	  https://bugzilla.gnome.org/show_bug.cgi?id=755469

2015-09-23 19:37:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Only push EOS event if we're not doing a segment seek
	  https://bugzilla.gnome.org/show_bug.cgi?id=755469

2015-09-23 16:31:28 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: If pushing buffers returned EOS, go into the EOS and not failure code path
	  We don't want to unconditionally send an EOS event downstream, but might want
	  to send a SEGMENT_DONE message/event instead if a segment seek was done
	  before.
	  https://bugzilla.gnome.org/show_bug.cgi?id=755469

2015-09-25 23:51:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.6.0 ===

2015-09-25 23:32:02 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.6.0

2015-09-25 23:04:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

=== release 1.5.91 ===

2015-09-18 20:01:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.5.91

2015-09-18 19:34:50 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2015-09-18 11:53:57 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/zh_CN.po:
	  po: Update translations

2015-09-05 23:34:45 +1000  Jan Schmidt <jan@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264: Add bitrate info to the tags output.
	  Makes it possible for muxers to know the target bitrate as soon
	  as encoding starts, which flvmux now uses.

2015-08-28 19:18:32 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: fix file mode of some source files

=== release 1.5.90 ===

2015-08-19 14:05:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.5.90

2015-08-19 12:55:35 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2015-08-19 11:33:01 +0300  Sebastian Dröge <sebastian@centricular.com>

	* po/id.po:
	* po/sv.po:
	  po: Update translations

2015-08-18 02:23:55 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* ext/x264/gstx264enc.c:
	  x264enc: actually return TRUE from accept-caps handler
	  The query was handled

2015-08-16 14:27:44 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* ext/x264/gstx264enc.c:
	  x264enc: implement accept-caps handling
	  Implement accept-caps handling without doing caps queries downstream

2015-08-15 22:15:26 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* ext/amrnb/amrnbenc.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/twolame/gsttwolamemp2enc.c:
	  audioencoders: use template subset check for accept-caps
	  It is faster than doing a query that propagates downstream and
	  should be enough
	  Elements: amrnbenc, lamemp3enc, twolamemp2enc

2015-08-15 11:46:59 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: use default pad accept-caps handling
	  Avoids useless check of downstream caps when handling an
	  accept-caps query

2015-08-15 11:46:13 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/mad/gstmad.c:
	  audiodecoders: use default pad accept-caps handling
	  Avoids useless check of downstream caps when handling an
	  accept-caps query
	  Elements: a52dec, amrnbdec, amrwbdec, mad

2015-08-14 11:14:31 +0200  Edward Hervey <bilboed@bilboed.com>

	* tests/check/generic/states.c:
	  check: Rename states unit test
	  Makes it easier to differentiate from other modules states unit test

2015-08-06 10:05:53 +0900  Vineeth TM <vineeth.tm@samsung.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: fix assertion error when freeing old tags.
	  Check if old_tags is present before calling gst_tag_list_unref
	  https://bugzilla.gnome.org/show_bug.cgi?id=753301

2015-07-24 10:08:34 +0900  Vineeth TM <vineeth.tm@samsung.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix assertion error when codec_data is not present in structure
	  When discovering a particular asf file, caps structure doesn't have
	  codec_data, and this was not being checked before using the same,
	  resulting in assertion error
	  https://bugzilla.gnome.org/show_bug.cgi?id=752803

2015-07-29 15:55:14 +0100  Luis de Bethencourt <luis@debethencourt.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: remove unread value
	  Init value of idx2 is never used. First usage sets it to idx + 1. Removing
	  initial value.

2015-07-25 04:55:15 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't post error on flushing while reading headers

2015-07-21 11:13:27 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: mark tag list as global scope

2015-07-21 11:10:04 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: fix taglist leak
	  merge doesn't take ownership, so must unref the
	  old tags if we do merge.

2015-07-21 12:44:55 +0900  Vineeth TM <vineeth.tm@samsung.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: fix wrong unref when there are no tags
	  Tags should be appended to pending tags and unref'ed only if tags
	  are present. Else there is no need to append.
	  https://bugzilla.gnome.org/show_bug.cgi?id=752404

2015-07-16 18:11:37 +0900  Vineeth T M <vineeth.tm@samsung.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: fix memory leaks during error cases
	  while adding stream, during error cases, only stream is
	  being freed. Adapter, pad, tags, subpackets, index are not being
	  freed resulting in memory leaks
	  https://bugzilla.gnome.org/show_bug.cgi?id=752404

2015-07-16 17:23:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-plugins-ugly.doap:
	  Update mailing list in doap file as well

2015-07-16 17:19:37 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/amrnb/amrnbdec.c:
	  Update mailing list address from sourceforge to freedesktop

2015-07-16 09:49:17 +0900  Vineeth T M <vineeth.tm@samsung.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: fix tag memory leak
	  tags is not being freed after being merged to the
	  pending_tags.
	  https://bugzilla.gnome.org/show_bug.cgi?id=752404

2015-07-03 21:58:33 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From f74b2df to 9aed1d7

2015-06-25 00:04:19 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.5.2 ===

2015-06-24 23:39:37 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.5.2

2015-06-24 23:14:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2015-06-24 11:15:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/nl.po:
	  po: Update translations

2015-06-15 16:33:26 +1000  Jan Schmidt <jan@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Use gst_video_multiview_guess_half_aspect() function
	  Use gst_video_multiview_guess_half_aspect() to guess if frame-packed
	  stereoscopic video is full-frame per view or not.

2015-06-16 17:49:05 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 6015d26 to f74b2df

2014-11-26 22:15:43 +0100  Matej Knopp <matej.knopp@gmail.com>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Use gst_video_encoder_set_min_pts
	  This method replace the manual adjustment of PTS and DTS to avoid
	  negative DTS issues. Using this method will also update the segment so
	  we don't loos sync.
	  https://bugzilla.gnome.org/show_bug.cgi?id=740575

2015-06-10 14:28:05 +1000  Jan Schmidt <jan@centricular.com>

	* gst/asfdemux/Makefile.am:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Add support for stereoscopic video metadata.
	  Add parsing of stereoscopic metadata, and place into the caps to
	  the decoder.
	  Fix parsing of Advanced Mutual Exclustion objects.
	  https://bugzilla.gnome.org/show_bug.cgi?id=711190
	  Based on a patch by HyeJin Choi <meeshel78@hotmail.com>

2014-10-05 00:54:59 +1000  Jan Schmidt <jan@centricular.com>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Add support for stereoscopic video
	  Provide new frame-packing property to directly set
	  x264enc frame packing, or pass through upstream settings
	  The explicit layout from the frame-packing property is
	  preferred over any info from the caps.

2015-06-10 15:32:44 +0100  Chris Clayton <chris2553@googlemail.com>

	* gst/xingmux/gstxingmux.c:
	  xingmux: fix compiler warnings
	  https://bugzilla.gnome.org/show_bug.cgi?id=750596

2015-06-09 15:28:46 +0200  Stefan Sauer <ensonic@users.sf.net>

	* Makefile.am:
	  cruft: add the obsolete tmpl dir to cruft-dirs

2015-06-09 11:30:34 +0200  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From d9a3353 to 6015d26

2015-06-08 23:08:11 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From d37af32 to d9a3353

2015-06-07 23:06:47 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 21ba2e5 to d37af32

2015-06-07 17:32:12 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From c408583 to 21ba2e5

2015-06-07 17:02:31 +0200  Stefan Sauer <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	  docs: remove variables that we define in the snippet from common
	  This is syncing our Makefile.am with upstream gtkdoc.

2015-06-07 17:16:30 +0200  Stefan Sauer <ensonic@users.sf.net>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From d676993 to c408583

2015-06-07 16:44:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.5.1 ===

2015-06-07 11:05:29 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.5.1

2015-06-07 11:05:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2015-06-07 09:36:00 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/eo.po:
	* po/fr.po:
	  po: Update translations

2015-06-02 16:31:10 +0200  Edward Hervey <edward@centricular.com>

	* tests/check/elements/amrnbenc.c:
	* tests/check/elements/mpeg2dec.c:
	* tests/check/elements/x264enc.c:
	* tests/check/elements/xingmux.c:
	* tests/check/pipelines/lame.c:
	  check: Use GST_CHECK_MAIN () macro everywhere
	  Makes source code smaller, and ensures we go through common initialization
	  path (like the one that sets up XML unit test output ...)

2015-05-26 17:58:18 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264enc: don't artificially limit max allowed value of "threads" property
	  In auto mode it will happily chose much higher values anyway,
	  and a limit of 4 seems a bit low these days.

2015-05-12 22:05:02 +1000  Jan Schmidt <jan@centricular.com>

	* ext/dvdread/dvdreadsrc.c:
	  dvdread: Also reset the first_seek var in start()
	  Make the initial chapter seek work across reuse.
	  https://bugzilla.gnome.org/show_bug.cgi?id=453322

2015-05-12 21:52:24 +1000  Jan Schmidt <jan@centricular.com>

	* ext/dvdread/dvdreadsrc.c:
	* ext/dvdread/dvdreadsrc.h:
	  dvdread: Work around basesrc initial seek
	  Ignore the initial seek basesrc sends, as it
	  breaks starting from another chapter by
	  immediately seeking back to the start of the title

2015-05-10 11:34:33 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/mad/gstmad.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/twolame/gsttwolamemp2enc.c:
	* ext/x264/gstx264enc.c:
	* gst/realmedia/rademux.c:
	* gst/xingmux/gstxingmux.c:
	  docs: update example pipelines in element docs
	  Mostly gst-launch -> gst-launch-1.0, but also
	  use autoaudiosink/autovideosink in more places
	  and update pipelines a little or flesh out
	  descriptions.

2015-04-27 10:57:12 +0100  Luis de Bethencourt <luis.bg@samsung.com>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/realmedia/rdtdepay.c:
	  Rename property enums from ARG_ to PROP_
	  Property enum items should be nameed PROP_ for consistency and readability.

2015-04-26 17:56:22 +0100  Tim-Philipp Müller <tim@centricular.com>

	* Android.mk:
	* ext/mad/Makefile.am:
	* ext/x264/Makefile.am:
	* gst/asfdemux/Makefile.am:
	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdsub/Makefile.am:
	* gst/realmedia/Makefile.am:
	* gst/xingmux/Makefile.am:
	  Remove obsolete Android build cruft
	  This is not needed any longer.

2015-04-24 17:05:20 +0100  Luis de Bethencourt <luis.bg@samsung.com>

	* gst/realmedia/pnmsrc.c:
	  realmedia: remove unused enum item PROP_LAST

2015-04-23 16:23:01 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/Makefile.am:
	  tests: define GST_CHECK_TEST_ENVIRONMENT_BEACON
	  Make sure the test environment is set up.
	  https://bugzilla.gnome.org//show_bug.cgi?id=747624

2015-04-23 16:22:39 +0100  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	  configure: bump automake requirement to 1.14 and autoconf to 2.69
	  This is only required for builds from git, people can still
	  build tarballs if they only have older autotools.
	  https://bugzilla.gnome.org//show_bug.cgi?id=747624

2015-04-23 16:22:30 +0100  Tim-Philipp Müller <tim@centricular.com>

	* .gitignore:
	  Update .gitignore

2015-04-22 10:37:54 +0200  Sebastian Dröge <sebastian@centricular.com>

	* LICENSE_readme:
	  Remove LICENSE_readme
	  It's completely outdated and just confusing, better if people are
	  forced to look at the actual code in question than trusting this file.

2015-04-22 10:37:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* INSTALL:
	  Remove INSTALL file
	  autotools automatically generate this, and when using different versions
	  for autogen.sh there will always be changes to a file tracked by git.

2015-04-20 14:35:30 +0900  Cliff Han <cliff.han@lge.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix a seek failure due to out-of-range in push mode
	  A seek in push mode failed for big offsets which are beyond
	  the range of guint32.
	  https://bugzilla.gnome.org/show_bug.cgi?id=748162

2015-04-08 16:52:06 +0200  Edward Hervey <edward@centricular.com>

	* common:
	* tests/check/Makefile.am:
	  tests: Use AM_TESTS_ENVIRONMENT
	  Needed by the new automake test runner

2015-04-03 18:58:03 +0100  Tim-Philipp Müller <tim@centricular.com>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From bc76a8b to c8fb372

2015-04-02 17:24:05 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: fix race in liba52dec lookup table initialization
	  a52_init initializes the IMDCT global state as well as creating
	  a new state. When two A52 decoders are created (eg, when two AC3
	  tracks are contained in a video), calls to a52_init may happen
	  at the same time, and the IMDCT initialization is not reentrant.
	  https://bugzilla.gnome.org/show_bug.cgi?id=746781

2015-03-27 14:41:51 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: fix buffer leak in crop_buffer()
	  gst_buffer_pool_acquire_buffer() gives us a new owned buffer while
	  gst_buffer_replace() reffed it as well so we were one reference extra.
	  https://bugzilla.gnome.org/show_bug.cgi?id=746887

2015-03-28 16:58:26 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* gst/realmedia/rmdemux.c:
	  rmdemux: resurrect some flow return handling
	  https://bugzilla.gnome.org/show_bug.cgi?id=744572

2015-03-28 16:57:06 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: resurrect some flow return handling
	  https://bugzilla.gnome.org/show_bug.cgi?id=744572

2015-03-24 12:50:43 +0000  Luis de Bethencourt <luis.bg@samsung.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: fix memory leak
	  CID #1291630

2015-03-24 10:29:48 +0000  Luis de Bethencourt <luis.bg@samsung.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: initialize buffer
	  Buffer needs to be null before passing it to gst_buffer_pool_acquire_buffer()
	  CID #1291634

2015-03-13 17:00:03 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Add stride support
	  This allow using external pools that have different strides from the
	  default. These strides need to respect certain rules, which we check
	  and if these are not met, we fallback to generic pool.
	  https://bugzilla.gnome.org/show_bug.cgi?id=735379

2015-03-10 16:45:01 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: Re-implement pool handling
	  This is a rewrite of the pool negotiation and configuration. Direct
	  to output decoding is now achieved by configuring the pool using
	  video-alignment. This removes copies when dealing with any elements that
	  supports VideoAlignment, and enable usage of generic video buffer pool,
	  XVImagePool and GLPool. It drops the crop meta implementation for now.
	  https://bugzilla.gnome.org/show_bug.cgi?id=735379

2015-03-10 09:33:15 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvbsub: fix indentation

2015-03-10 09:32:51 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/dvdread/dvdreadsrc.c:
	* gst/dvdsub/gstdvdsubdec.c:
	  Fix double semicolons

2015-03-09 19:11:51 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  Revert "mpeg2dec: Fix handling of stride"
	  This reverts commit f3e8dcb9de4d546e7d80ccc1754ed13dd4e7ac81.

2015-03-09 19:11:44 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  Revert "mpeg2dec: Use propose unref method for buffer"
	  This reverts commit 63b43d3bee832aec353d02575da543f3c73f6893.

2015-03-09 18:43:43 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Use propose unref method for buffer

2015-01-21 18:29:22 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Fix handling of stride
	  A pipeline like:
	  gst-launch-1.0 filesrc location=file.ts ! tsdemux ! mpegvideoparse ! mpeg2dec  ! vaapisink
	  would look bad when file.ts contains 704x576 video, because vaapisink would
	  give you buffers of stride 768, but libmpeg2 was not told about this and
	  used a stride of 704.
	  Tell libmpeg2 about the stride from  downstream; in the process, teach it to
	  reject buffer pools that don't meet libmpeg2's chroma stride requirements
	  Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>

2015-02-11 13:56:48 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/x264/gstx264enc.c:
	* gst/asfdemux/gstasfdemux.c:
	  Improve and fix LATENCY query handling
	  This now follows the design docs everywhere, especially the maximum latency
	  handling.
	  https://bugzilla.gnome.org/show_bug.cgi?id=744106

2015-02-06 19:04:32 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Don't set max latency to the same value as the encoder latency
	  The meaning of the max latency is *not* the maximum latency this element will
	  introduce. It is the maximum latency this element can endure without
	  overflowing any buffers, which is infinite for x264enc.
	  Fixes latency configuration in zero latency mode, where max latency was
	  becoming 0... which usually won't work well if something else introduces
	  latency as then max < min in the end, and latency configuration just fails.

2015-02-02 14:13:10 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: set annexb=1 in byte stream mode when downstream has ANY caps
	  This matches what is done when downstream caps are not ANY, and fixes
	  prerolling in byte stream mode when typefind is downstream.

2015-01-21 09:56:41 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/lame/gstlamemp3enc.c:
	* ext/twolame/gsttwolamemp2enc.c:
	  Constify some static arrays everywhere

2015-01-18 16:53:41 +0000  Tim-Philipp Müller <tim@centricular.com>

	* configure.ac:
	  configure: remove non-ported plugins stuff
	  It's not needed any longer, all plugins in -ugly
	  have been ported.

2015-01-18 11:07:43 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Don't set an allocation maximum
	  There is no reason x264enc should enforce a maximum allocation size.
	  The maximum is normally set by buffer pool which cannot grow, but we
	  don't offer a buffer pool. This would lead to stall when used with
	  element that don't implement allocation query.
	  Related to: https://bugzilla.gnome.org/show_bug.cgi?id=738302

2015-01-12 16:10:45 +0100  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From f2c6b95 to bc76a8b

2014-12-22 11:46:27 +0100  Sebastian Dröge <sebastian@centricular.com>

	* MAINTAINERS:
	  MAINTAINERS: Update my mail address

2014-12-18 10:54:30 +0100  Sebastian Dröge <sebastian@centricular.com>

	* common:
	  Automatic update of common submodule
	  From ef1ffdc to f2c6b95

2014-11-27 17:11:30 +0100  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From 7bb2bce to ef1ffdc

2014-06-06 13:59:57 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpcmdec: set channel positions using the appropriate API
	  https://bugzilla.gnome.org/show_bug.cgi?id=731038

2014-11-05 23:34:56 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix comment

2014-11-05 13:45:29 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Send duration query upstream first
	  An upstream element (like mms or some dlna source) might be able to
	  answer the query. Try that first, else fallback to standard logic

2014-11-02 17:31:05 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/asfdemux/asfpacket.c:
	  asf: fix up file mode

2014-10-27 17:58:14 +0100  Sebastian Dröge <sebastian@centricular.com>

	* common:
	  Automatic update of common submodule
	  From 84d06cd to 7bb2bce

2014-10-21 19:46:03 +0100  Tim-Philipp Müller <tim@centricular.com>

	* Makefile.am:
	  tests: parallelise 'make check-valgrind'

2014-10-21 13:02:03 +0100  Tim-Philipp Müller <tim@centricular.com>

	* common:
	  Automatic update of common submodule
	  From a8c8939 to 84d06cd

2014-10-21 12:58:58 +0200  Stefan Sauer <ensonic@users.sf.net>

	* README:
	* common:
	  Automatic update of common submodule
	  From 36388a1 to a8c8939

2014-08-22 10:46:35 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: first try to delegate TIME seek events upstream
	  We should give a chance to upstream to handle TIME seek events before trying
	  to handle it in asfdemux.
	  Fix a bug where fast backward seeks where discarded right away because they
	  were not supported by asfdemux.
	  https://bugzilla.gnome.org/show_bug.cgi?id=734471

2014-09-04 16:57:02 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>

	* gst/asfdemux/asfheaders.c:
	* gst/asfdemux/asfheaders.h:
	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: add ASF_OBJ_METADATA_LIBRARY_OBJECT
	  We can safely ignore those but best to claim to understand this object type so
	  we don't raise a warning.
	  https://bugzilla.gnome.org/show_bug.cgi?id=736060

2014-08-21 12:09:23 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: if video is h264, check the codec_data for bytestream data
	  For bytestream we don't want to expose it as codec_data but rather as
	  streamheader as it is not out-of-band data but data that should be
	  prepended to the beginning of the stream before the other buffers.
	  https://bugzilla.gnome.org/show_bug.cgi?id=735070

2014-08-10 19:13:10 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	  docs: update for git master

2014-08-06 12:07:09 -0300  Thiago Santos <thiagoss@osg.samsung.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: simplify log statement
	  Use the GST_PTR_FORMAT to print the buffer

2014-08-05 19:47:26 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264: fix colour inversion with YV12 format
	  It's the same as I420 but with the U/V planes swapped.

2014-08-01 10:37:44 +0200  Edward Hervey <edward@collabora.com>

	* Makefile.am:
	* common:
	  Makefile: Add usage of build-checks step
	  Allows building checks without running them

2014-07-08 16:45:45 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Request buffers in allocation query
	  https://bugzilla.gnome.org/show_bug.cgi?id=732288

2014-06-06 20:23:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Shift both PTS and DTS to ensure positive timestamp
	  Currently we only shift DTS to compensate that we don't support negative
	  timestamp. This cause a problem that PTS is no longer >= DTS and may
	  make muxers live much harder. Instead, shift both PTS/DTS forward. Also
	  remove all the hack to handle this which seems the result of thinking libx264
	  is bugged.
	  https://bugzilla.gnome.org/show_bug.cgi?id=731351

2014-07-19 18:04:46 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.4.0 ===

2014-07-19 17:44:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.4.0

2014-07-19 16:50:04 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2014-07-19 12:48:11 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/sv.po:
	  po: Update translations

=== release 1.3.91 ===

2014-07-11 11:44:28 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.3.91

2014-07-11 11:13:39 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2014-07-11 08:53:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/vi.po:
	  po: Update translations

2014-07-04 03:22:00 +0200  Sebastian Rasmussen <sebras@hotmail.com>

	* gst/realmedia/rademux.c:
	  rademux: Print invalid fourcc in error message in hex
	  Previously this was printed as characters which caused later processing
	  of the error message to sometimes warn about non-UTF-8 characters.
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732716

=== release 1.3.90 ===

2014-06-28 11:39:14 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.3.90

2014-06-28 11:39:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2014-06-22 21:48:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* .gitignore:
	  Ignore autotools test-driver temp files from 'make check'

2014-06-22 19:36:14 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.3.3 ===

2014-06-22 18:13:53 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.3.3

2014-06-22 17:40:40 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2014-06-22 14:25:18 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/de.po:
	* po/nl.po:
	  po: Update translations

2014-05-26 17:55:43 -0300  Thiago Santos <ts.santos@sisa.samsung.com>

	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmdemux.h:
	  rmdemux: use GstFlowCombiner
	  Removes flow return combination code to use the newly added GstFlowCombiner
	  https://bugzilla.gnome.org/show_bug.cgi?id=709224

2014-05-23 18:17:11 -0300  Thiago Santos <ts.santos@sisa.samsung.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: use GstFlowCombiner
	  Removes flow return combination code to use the newly added GstFlowCombiner
	  https://bugzilla.gnome.org/show_bug.cgi?id=709224

2014-05-28 09:49:59 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix caps leak in set_format()
	  https://bugzilla.gnome.org/show_bug.cgi?id=730865

2013-12-01 20:53:03 +0100  Matej Knopp <matej.knopp@gmail.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Handle initial 0 timestamp that should have been -1
	  https://bugzilla.gnome.org/show_bug.cgi?id=719660

2014-05-21 13:23:33 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.3.2 ===

2014-05-21 13:06:35 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* common:
	* configure.ac:
	* docs/plugins/inspect-build.stamp:
	* docs/plugins/inspect.stamp:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.3.2

2014-05-21 12:53:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2014-05-21 10:51:38 +0200  Sebastian Dröge <sebastian@centricular.com>

	* common:
	  Automatic update of common submodule
	  From 211fa5f to 1f5d3c3

2014-05-16 16:24:46 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: remove unused struct members

2014-05-16 12:21:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/realmedia/rtspreal.c:
	  rtspreal: Fix some memory leaks in an error path
	  CID 1212165.

2014-05-09 14:54:54 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Release codec state on negotiation failures
	  Else it leaks
	  CID #1212169

2014-05-03 20:48:37 +0200  Sebastian Dröge <sebastian@centricular.com>

	* configure.ac:
	  Back to development

=== release 1.3.1 ===

2014-05-03 18:29:23 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.3.1

2014-05-03 18:21:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2014-05-03 17:23:39 +0200  Sebastian Dröge <sebastian@centricular.com>

	* po/de.po:
	* po/id.po:
	* po/lv.po:
	* po/sk.po:
	* po/sr.po:
	  po: Update translations

2014-05-03 10:15:28 +0200  Sebastian Dröge <sebastian@centricular.com>

	* common:
	  Automatic update of common submodule
	  From bcb1518 to 211fa5f

2014-04-27 00:29:16 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstrtspwms.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rtspreal.c:
	  docs: remove outdated and pointless 'Last reviewed' lines from docs
	  They are very confusing for people, and more often than not
	  also just not very accurate. Seeing 'last reviewed: 2005' in
	  your docs is not very confidence-inspiring. Let's just remove
	  those comments.

2014-04-10 17:29:30 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: fix spurious rejection of 0 time offset commands
	  Coverity 206168

2014-04-10 16:53:25 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdread: avoid intermediate promotion to signed
	  We should not reach the dangerous range here, though.
	  Coverity 206491, 206492, 1139856

2014-01-17 10:46:50 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: do not reset the whole video info when setting size
	  New changes to gstvideo will reset all the video info state
	  when calling _set_format, overwriting what was previously set
	  in the preceding code.
	  The comment says the following code is meant to preserve the
	  pre-crop size, so let's just keep the size and related data
	  as this does not seem to break anything else (this is what
	  the _set_format call would have set before the change that
	  reset all data, except the colorimetry).

2014-04-03 15:06:22 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix payloads check
	  Don't iterate stream->payloads if ... it doesn't exist
	  CID #1139846

2014-03-02 05:11:10 +0100  Sebastian Rasmussen <sebras@hotmail.com>

	* .gitignore:
	  .gitignore: Ignore gcov intermediate files
	  https://bugzilla.gnome.org/show_bug.cgi?id=725483

2014-02-28 09:35:10 +0100  Sebastian Dröge <sebastian@centricular.com>

	* common:
	  Automatic update of common submodule
	  From fe1672e to bcb1518

2014-02-26 22:12:50 +0100  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 1a07da9 to fe1672e

2014-02-26 11:31:03 +0100  Stefan Sauer <ensonic@users.sf.net>

	* docs/Makefile.am:
	  docs: install prebuilt plugin docs if gtk-doc is disabled
	  Sync to the Makefile.am from gst-plugin-base where it is done right.
	  Fixes #725034

2014-02-13 09:39:04 +0100  Stefan Sauer <ensonic@users.sf.net>

	* gst/xingmux/gstxingmux.c:
	* gst/xingmux/plugin.c:
	  xingmux: add muxer category and make element plugable
	  This is required to make encodebin consider the element. Yet it is not enough to
	  have it plugged it has a lower priority than most mp3encoders and no different
	  caps.

2014-02-24 11:42:00 +0100  Dirk Van Haerenborgh <vhdirk@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: allow lossless compression (qp=0)
	  https://bugzilla.gnome.org/show_bug.cgi?id=725051

2014-02-20 21:08:08 +0100  Edward Hervey <edward@collabora.com>

	* m4/a52.m4:
	  m4: Remove extra check for 11+ year old a52 release
	  You deserve a build failure if you still have that version
	  If someone wants to completely remove this m4 to replace it with the
	  generic AS_GST_CHECK_LIBHEADER() it would be appreciated.

2014-02-19 21:11:55 +0100  Rico Tzschichholz <ricotz@ubuntu.com>

	* m4/a52.m4:
	  m4: Fix multiple tests in AC_CHECK_A52DEC

2014-02-09 23:41:36 +0100  Sebastian Dröge <sebastian@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Remove unused function

2014-02-06 19:22:47 +0100  Edward Hervey <edward@collabora.com>

	* tests/check/Makefile.am:
	  check: Fix test location

2014-02-03 02:06:11 +0100  Sebastian Rasmussen <sebras@hotmail.com>

	* tests/check/Makefile.am:
	  tests: Don't build disabled plugins' check tests
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723505

2014-01-30 10:44:29 +0100  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From d48bed3 to 1a07da9

2014-01-03 16:20:11 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: only add "format" field with fourcc to WMV caps
	  Doesn't make sense for e.g. H264 or MJPEG.

2013-12-22 22:34:03 +0000  Tim-Philipp Müller <tim@centricular.com>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From dbedaa0 to d48bed3

2013-12-22 21:56:03 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/Makevars:
	  po: set gettext domain in Makevars so we don't have to patch the generated Makefile.in.in
	  https://bugzilla.gnome.org/show_bug.cgi?id=705455

2013-12-05 12:16:45 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/amrwbdec/amrwbdec.c:
	  amrwbdec: Remove some dead code

2013-12-05 12:16:38 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/amrnb/amrnbdec.c:
	  amrnbdec: Remove some dead code

2013-12-05 12:09:04 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/amrnb/amrnbdec.c:
	  amrnbdec: Use gst_audio_decoder_set_needs_format() instead of custom code

2013-12-05 12:08:46 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/amrwbdec/amrwbdec.c:
	  amrwbdec: Use gst_audio_decoder_set_needs_format() instead of custom code

2013-12-05 11:44:10 +0100  Sebastian Dröge <sebastian@centricular.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Use new gst_video_decoder_set_needs_format() API

2013-11-29 15:51:49 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix compiler warning
	  Compiler warns rightly about possibly uninitialized variable.

2013-11-29 15:49:29 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix crash on NULL caps when negotiation happens without a downstream peer
	  gst-launch-1.0 videotestsrc ! x264enc

2013-11-11 13:15:54 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: graceful degradation for badly parsed input

2013-11-05 11:20:20 +0000  Tim-Philipp Müller <tim@centricular.com>

	* common:
	  Automatic update of common submodule
	  From 865aa20 to dbedaa0

2013-10-22 16:02:04 +0900  HyeJin Choi <meeshel@meeshel78@hotmail.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: mo_size check bug fix. mo_size is not mandatory field.
	  So, don't need to check previous payload's mo_size and current
	  payload's mo_size when merging it.
	  https://bugzilla.gnome.org/show_bug.cgi?id=710609

2013-10-22 15:03:15 -0300  Thiago Santos <ts.santos@partner.samsung.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Keep audio error checking fields only for audio
	  Video shouldn't need to be descrambled, this can cause frames data
	  to be corrupted
	  https://bugzilla.gnome.org/show_bug.cgi?id=684942

2013-10-22 00:56:29 -0300  Thiago Santos <ts.santos@partner.samsung.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: really copy the buffer data
	  Pass the copy-memory flag to copy the memory for the output buffer,
	  otherwise we end with 0-sized buffers
	  https://bugzilla.gnome.org/show_bug.cgi?id=684942

2013-09-27 08:05:25 -0700  Michael Esemplare <michael.esemplare@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: If FPS is available, set VFR to false
	  https://bugzilla.gnome.org/show_bug.cgi?id=708940

2013-09-24 10:08:10 -0700  Thiago Santos <ts.santos@partner.samsung.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Only use segment.start as seek_time if it is relative
	  Relying on the gst_segment_do_seek results for getting the
	  seeking time should not be used if seek type is SET because the
	  do_seek function makes the 'cur` position of the seek normalized
	  on the segment range. This means that seeking beyond the end of the
	  file might not result in instant EOS as it will end up seeking to
	  the final ts of the file.
	  In asf seeking to the final timestamp can lead to seeking to the last
	  keyframe, meaning a few seconds of video will still be played, which should
	  not be the desired behavior when seeking beyong file limits.

2013-09-24 10:07:25 -0700  Thiago Santos <ts.santos@partner.samsung.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Parse last simple index entry
	  The entry size is fixed at 6, fix typo to finish parsing the index
	  correctly until the last sample

2013-09-24 18:32:31 +0100  Tim-Philipp Müller <tim@centricular.net>

	* README:
	* common:
	  Automatic update of common submodule
	  From 6b03ba7 to 865aa20

2013-09-24 15:05:36 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* configure.ac:
	  configure: Actually use 1.3.0.1 as version to make configure happy

2013-09-24 15:00:30 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* configure.ac:
	  Back to development

=== release 1.2.0 ===

2013-09-24 14:27:45 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.2.0

2013-09-24 14:27:39 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2013-09-18 11:34:56 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Update the documentation to match the default profile used
	  https://bugzilla.gnome.org/show_bug.cgi?id=708036

2013-09-20 16:17:31 +0200  Edward Hervey <edward@collabora.com>

	* common:
	  Automatic update of common submodule
	  From b613661 to 6b03ba7

2013-09-19 18:43:43 +0100  Tim-Philipp Müller <tim@centricular.net>

	* common:
	  Automatic update of common submodule
	  From 74a6857 to b613661

2013-09-19 17:36:25 +0100  Tim-Philipp Müller <tim@centricular.net>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From 098c0d7 to 74a6857

2013-09-19 11:35:04 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* configure.ac:
	  Back to development

=== release 1.1.90 ===

2013-09-19 10:50:32 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.1.90

2013-09-19 10:30:37 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2013-09-19 09:45:55 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* po/cs.po:
	  po: Update translations

2013-09-18 19:13:45 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/x264/gstx264enc.c:
	* tests/check/elements/x264enc.c:
	  x264enc: Implement getcaps that restricts the input format depending on the output profile
	  Also add some x264enc profile tests
	  https://bugzilla.gnome.org/show_bug.cgi?id=708326

2013-09-16 19:38:36 +0200  Matej Knopp <matej.knopp@gmail.com>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix playback regression in push mode

2013-09-10 19:33:33 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>

	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: remove unused variable

2013-09-05 22:56:48 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>

	* ext/x264/gstx264enc.c:
	  x264enc: Don't unref future state but the old one
	  Being silly will lead us nowhere.

2013-09-04 16:32:43 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ext/x264/gstx264enc.c:
	  x264enc: Check if we have an input state before using it
	  Flushing might happen before caps were set on the encoder,
	  which would lead to crashes here.
	  Thanks to Matej Knopp for analyzing this.
	  https://bugzilla.gnome.org/show_bug.cgi?id=707414

2013-09-03 20:28:35 +0200  Matej Knopp <matej.knopp@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix unsigned comparison warning

2013-08-28 13:27:05 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* configure.ac:
	  Back to development

=== release 1.1.4 ===

2013-08-28 12:58:43 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.1.4

2013-08-28 12:58:37 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2013-08-28 12:32:37 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* po/pt_BR.po:
	  po: update translations

2013-08-27 14:13:06 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ext/x264/gstx264enc.c:
	  x264enc: log when we output a lower profile than requested

2013-08-21 18:32:17 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ext/x264/gstx264enc.c:
	  x264enc: Consider subset relations of profiles when setting srcpad caps
	  constrained-baseline is a subset of baseline, is a subset of main,
	  is a subset of high profile.
	  https://bugzilla.gnome.org/show_bug.cgi?id=705425

2013-08-21 12:31:23 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ext/x264/gstx264enc.c:
	  x264enc: propagate flow return back to base class and upstream
	  https://bugzilla.gnome.org/show_bug.cgi?id=705425

2013-08-17 23:13:17 +0100  Tim-Philipp Müller <tim@centricular.net>

	* configure.ac:
	  configure: fix x264 version checking
	  x264 releases carry pkg-config versions such as 0.120.x
	  (literallly with an 'x'). Checking for x264 >= 0.120.0 will
	  then fail, so we need to either check for > 0.119.0 or
	  for >= 0.120 to make this work right.

2013-08-17 23:09:15 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ext/x264/gstx264enc.c:
	  x264enc: minor clean-up
	  We requires x264 build >= 120 now.

2013-08-15 15:30:31 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Fix mpeg2_reset() calls

2013-08-15 15:27:48 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/x264/gstx264enc.c:
	  ext: Use new flush vfunc of video codec base classes and remove reset implementations

2013-08-01 01:34:05 +0200  Matej Knopp <matej.knopp@gmail.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix build on C89 compilers

2013-07-30 17:28:17 +0200  Matej Knopp <matej.knopp@gmail.com>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix seeking in push mode

2013-08-02 14:14:48 +0200  Lubosz Sarnecki <lubosz@gmail.com>

	* configure.ac:
	  build: add subdir-objects to AM_INIT_AUTOMAKE
	  Fixes warnings in automake 1.14
	  https://bugzilla.gnome.org/show_bug.cgi?id=705350

2013-08-02 08:25:49 +0200  Edward Hervey <edward@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Do a hard reset of flush_stop
	  Which is notified by hard == 0 with latest refactoring.

2013-07-29 21:09:37 +0100  Tim-Philipp Müller <tim@centricular.net>

	* po/LINGUAS:
	* po/da.po:
	* po/de.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/ja.po:
	* po/nb.po:
	* po/nl.po:
	* po/pl.po:
	* po/ru.po:
	* po/sl.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	  po: update translations

2013-07-29 14:48:21 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* configure.ac:
	  Back to development

=== release 1.1.3 ===

2013-07-29 13:46:08 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.1.3

2013-07-29 13:46:05 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2013-07-29 12:13:17 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  gst: Don't swap start/stop for negative rates in the SEGMENT query

2013-07-29 10:57:38 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  real: Implement SEGMENT query

2013-07-29 10:56:06 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Implement SEGMENT query

2013-07-28 16:43:28 +0200  Matej Knopp <matej.knopp@gmail.com>

	* gst/asfdemux/asfheaders.c:
	* gst/asfdemux/asfheaders.h:
	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Add support for dvr-ms
	  https://bugzilla.gnome.org/show_bug.cgi?id=705026

2013-07-26 16:47:48 +0200  Edward Hervey <edward@collabora.com>

	* gst/realmedia/rtspreal.c:
	  rtspreal: Ensure output value has an assigned value
	  In the case where this macro was used, that dest was != NULL but that
	  the strncmp failed, we would end up with dest_len being undefined.

2013-07-26 16:39:12 +0200  Edward Hervey <edward@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264: Fix dts comparision
	  We were assigning to a guint64 value (frame->dts) the sum of a unsigned
	  and signed value... resulting it the result never being < 0.
	  Instead just check if it is smaller before assigning to frame->dts.

2013-07-25 11:28:54 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: fix seqnum handling for seeks
	  Use the same seqnum as the seek for flushes/segments that are
	  caused by the seek. Also do the same for segment events
	  Fixes #676242

2013-07-25 13:35:44 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Clean up reset/start/stop handling

2013-07-25 11:01:20 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ext/x264/gstx264enc.c:
	  x264enc: React properly to flushing/resetting the encoder
	  https://bugzilla.gnome.org/show_bug.cgi?id=656007

2013-07-22 16:01:13 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/realmedia/rademux.c:
	* gst/realmedia/rademux.h:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmdemux.h:
	  realmedia: Add support for group-id in the stream-start event

2013-07-22 15:45:57 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Add support for group-id in the stream-start event

2013-07-22 15:43:18 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ext/sidplay/gstsiddec.cc:
	* ext/sidplay/gstsiddec.h:
	  siddec: Add support for group-id in the stream-start event

2013-07-18 17:14:29 +0200  Edward Hervey <edward@collabora.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: Mark demuxer as "running" in push-mode
	  Allows queries (and other code) to be answered when working in push-mode.
	  Running would only be set to TRUE accordingly when working in pull-mode
	  once it had read header/index.
	  Fixes #680185

2013-07-17 16:17:54 +0200  Edward Hervey <edward@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Properly reset on sequence changes
	  Otherwise we end up using stray data/buffers.
	  Fixes #690701

2013-07-11 16:57:24 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* configure.ac:
	  Back to development

=== release 1.1.2 ===

2013-07-11 16:12:25 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.1.2

2013-07-11 16:12:21 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2013-06-18 20:06:24 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: correctly determine last chapter's duration
	  This (mostly) reverts 683f5eeae7b830e4e4b790f3817ff6b8ce517b1c.
	  It worked just fine before ...

2013-06-25 14:20:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rdtmanager.c:
	  rdt: forward sticky events

2013-06-05 18:36:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  Back to development

=== release 1.1.1 ===

2013-06-05 17:58:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* common:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.1.1

2013-06-05 16:42:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2013-06-05 15:15:16 +0200  Sebastian Dröge <slomo@circular-chaos.org>

	* common:
	  Automatic update of common submodule
	  From 098c0d7 to 01a7a46

2013-06-04 16:12:27 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: make the aspect ratio calculation more accurate.
	  Utilize the libmpeg2 api: mpeg2_guess_aspect() to guess the
	  aspect-ratio if we don't have a valid upstream PAR.
	  https://bugzilla.gnome.org/show_bug.cgi?id=685103

2013-05-15 10:52:09 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 5edcd85 to 098c0d7

2013-05-13 13:19:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/elements/amrnbenc.c:
	* tests/check/elements/mpeg2dec.c:
	* tests/check/elements/x264enc.c:
	* tests/check/elements/xingmux.c:
	  tests: Fix event handling

2013-05-09 19:40:49 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: Tell GstAudioEncoder about the number of incoming samples
	  lame does internal resampling, but the base class only cares about
	  the number of raw samples, so tell finish frames about that, not
	  the number of samples in the outgoing frame.:

2013-04-30 10:01:29 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ext/x264/gstx264enc.c:
	  x264enc: output byte-stream if downstream has ANY caps
	  It's what people expect when they pipe the output to
	  filesink or into a tcp connection or pipe.

2013-04-22 23:52:48 +0100  Tim-Philipp Müller <tim@centricular.net>

	* MAINTAINERS:
	* README:
	* README.static-linking:
	* common:
	  Automatic update of common submodule
	  From 3cb3d3c to 5edcd85

2012-10-24 12:15:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/a52dec/Makefile.am:
	* ext/amrnb/Makefile.am:
	* ext/amrwbdec/Makefile.am:
	* ext/cdio/Makefile.am:
	* ext/dvdread/Makefile.am:
	* ext/lame/Makefile.am:
	* ext/mad/Makefile.am:
	* ext/mpeg2dec/Makefile.am:
	* ext/sidplay/Makefile.am:
	* ext/twolame/Makefile.am:
	* ext/x264/Makefile.am:
	* gst/asfdemux/Makefile.am:
	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdsub/Makefile.am:
	* gst/realmedia/Makefile.am:
	* gst/xingmux/Makefile.am:
	  gst: Add better support for static plugins

2013-04-14 17:55:44 +0100  Tim-Philipp Müller <tim@centricular.net>

	* autogen.sh:
	* common:
	  Automatic update of common submodule
	  From aed87ae to 3cb3d3c

2013-04-09 21:00:43 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 04c7a1e to aed87ae

2013-03-25 18:05:14 -0700  David Schleef <ds@schleef.org>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rmdemux.c:
	  Use %03u instead of %u in gst_pad_create_stream_id_printf()

2013-03-06 13:28:37 +0000  Tom Greenwood <tgreenwood@Toms-MacBook-Pro.local>

	* ext/x264/gstx264enc.c:
	  x264enc: Fix for 0/1 framerate - now uses VFR in this case
	  Previously did a division by zero.
	  https://bugzilla.gnome.org/show_bug.cgi?id=695728

2013-03-07 00:02:00 +0000  Tim-Philipp Müller <tim@centricular.net>

	* common:
	  Automatic update of common submodule
	  From 2de221c to 04c7a1e

2013-02-08 00:15:01 +0000  Tim-Philipp Müller <tim@centricular.net>

	* ext/x264/gstx264enc.c:
	  x264enc: simplify template caps
	  No need to make an array for one single element.

2013-02-08 00:11:03 +0000  Tim-Philipp Müller <tim@centricular.net>

	* ext/x264/gstx264enc.c:
	  x264enc: put all theoretically possible formats in template caps
	  and decide at runtime which subset of these (8-bit or 10-bit video
	  formats) is supported. libx264 will be compiled for one of these
	  two options, and it is possible to switch by pointing the dynamic
	  linker to a different libx264 build at runtime. If we want our
	  template caps to be correct, they should contain all then, with
	  the actually supported ones determined at runtime.
	  https://bugzilla.gnome.org/show_bug.cgi?id=691935

2013-01-23 10:16:51 +0000  Tim-Philipp Müller <tim@centricular.net>

	* ext/x264/gstx264enc.c:
	  x264enc: detect supported bit depth and pixel formats at runtime
	  http://bugs.debian.org/667573
	  https://bugzilla.gnome.org/show_bug.cgi?id=691935

2013-01-30 09:15:18 +0100  Benjamin Gaignard <benjamin.gaignard@st.com>

	* autogen.sh:
	  autogen.sh: allow calling from out-of-tree
	  Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
	  https://bugzilla.gnome.org/show_bug.cgi?id=692857

2013-01-28 20:43:08 +0100  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From a942293 to 2de221c

2013-01-15 15:18:04 +0100  Martin Pitt <martinpitt@gnome.org>

	* tests/check/Makefile.am:
	  tests: use _1_0 variants for the various registry variables
	  These override the variants without version suffix. Makes 'make check' work
	  properly in environments that set the suffixed variant for 1.0, such as
	  jhbuild.

2013-01-15 15:06:41 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From a72faea to a942293

2012-12-30 23:56:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	* configure.ac:
	  configure: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
	  AM_CONFIG_HEADER has been removed in the just-released automake 1.13:
	  https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html
	  https://bugzilla.gnome.org/show_bug.cgi?id=690881

2012-12-19 17:16:53 +0100  Thijs Vermeir <thijsvermeir@gmail.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: use appropriate printf format for gsize

2012-12-19 17:15:03 +0100  Thijs Vermeir <thijsvermeir@gmail.com>

	* ext/cdio/gstcdio.h:
	  cdio: Fix redundant redeclaration of 'cdio_version_string'
	  cdio/version.h is already included by cdio/cdio.h

2012-12-01 13:26:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	  siddec: init debug category

2012-11-30 20:09:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/dvdread/Makefile.am:
	  dvdread: link to libgmodule-2.0 since the g_module_* API is used
	  And the gmodule lib has been moved into the Requires.private
	  section of the pkg-config file in core.

2012-11-27 17:07:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	* ext/cdio/gstcdiocddasrc.c:
	* ext/cdio/gstcdiocddasrc.h:
	  cdiocddasrc: detect whether drive produces samples in non-host endianness
	  If drive produces samples in other endianness than the host,
	  we need to byte swap them before pushing them out, or we
	  produce nothing but noise. cdparanoia detects this automatically,
	  but libcdio does not, so we have to do it ourselves.
	  This is needed on e.g. the PowerBook G4 with Matshita UJ-816 drive.
	  https://bugzilla.gnome.org/show_bug.cgi?id=377280

2012-11-19 11:27:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	* common:
	  Automatic update of common submodule
	  From b497c4f to a72faea

2012-11-16 13:32:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/elements/xingmux_testdata.h:
	  xingmux: Fix unit test after change to correctly calculate number of frames

2012-11-15 16:42:09 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Add support for 10-bit color formats
	  Requires x264 to be built with 10-bit support, which disables
	  9-bit support. Also only advertise the color formats that were
	  compiled into x264.

2012-11-15 16:21:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Add support for Y444, Y42B and NV12

2012-11-11 20:42:42 +0000  Tim-Philipp Müller <tim@centricular.net>

	* ext/cdio/Makefile.am:
	* ext/cdio/gstcdio.c:
	  cdio: use gst_tag_freeform_string_to_utf8() for CD-TEXT strings
	  They're probably not going to be UTF-8, but ISO-8859-1 or somesuch
	  if they're not plain ASCII.

2012-11-09 11:33:40 +0100  Gautier Portet <kassoulet@gmail.com>

	* gst/xingmux/gstxingmux.c:
	  xingmux: Properly calculate the number of frames
	  First, the xing header frame is never added to the count,
	  we have to increment the count.
	  Secondly, there is a rounding error when calculating the
	  frame duration, as spf*GST_SECOND/rate is not an integer
	  (26122448.9) an it must be 26122449.

2012-11-07 20:45:38 +0000  Tim-Philipp Müller <tim@centricular.net>

	* configure.ac:
	  configure.ac: update courtesy of autoupdate

2012-11-07 20:39:56 +0000  Tim-Philipp Müller <tim@centricular.net>

	* common:
	* configure.ac:
	  configure: let AG_GST_PLUGIN_DOCS check for python
	  And update common for move from AS_PATH_PYTHON to AM_PATH_PYTHON,
	  which as a side-effect should pick up newer python versions as
	  well.
	  https://bugzilla.gnome.org/show_bug.cgi?id=563903

2012-11-05 13:16:52 -0800  Michael Smith <msmith@rdio.com>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpcmdec: Fix parsing of headers to set correct width to allow decode.

2012-11-03 20:38:00 +0000  Tim-Philipp Müller <tim@centricular.net>

	* tests/check/elements/mpg123audiodec.c:
	  Fix FSF address
	  https://bugzilla.gnome.org/show_bug.cgi?id=687520

2012-11-03 20:40:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	* docs/random/LICENSE:
	* ext/a52dec/gsta52dec.c:
	* ext/a52dec/gsta52dec.h:
	* ext/amrnb/amrnb.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbdec.h:
	* ext/amrnb/amrnbenc.c:
	* ext/amrnb/amrnbenc.h:
	* ext/amrwbdec/amrwb.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/amrwbdec/amrwbdec.h:
	* ext/cdio/gstcdio.c:
	* ext/cdio/gstcdio.h:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/cdio/gstcdiocddasrc.h:
	* ext/dvdread/dvdreadsrc.c:
	* ext/dvdread/dvdreadsrc.h:
	* ext/lame/gstlamemp3enc.c:
	* ext/lame/gstlamemp3enc.h:
	* ext/lame/plugin.c:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	* ext/sidplay/gstsiddec.cc:
	* ext/sidplay/gstsiddec.h:
	* ext/twolame/gsttwolamemp2enc.c:
	* ext/twolame/gsttwolamemp2enc.h:
	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	* gst-libs/gst/gettext.h:
	* gst-libs/gst/glib-compat-private.h:
	* gst-libs/gst/gst-i18n-plugin.h:
	* gst/asfdemux/asfheaders.c:
	* gst/asfdemux/asfheaders.h:
	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/asfpacket.h:
	* gst/asfdemux/gstasf.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/asfdemux/gstrtpasfdepay.h:
	* gst/asfdemux/gstrtspwms.c:
	* gst/asfdemux/gstrtspwms.h:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubdec.h:
	* gst/dvdsub/gstdvdsubparse.c:
	* gst/dvdsub/gstdvdsubparse.h:
	* gst/realmedia/asmrules.c:
	* gst/realmedia/asmrules.h:
	* gst/realmedia/gstrdtbuffer.c:
	* gst/realmedia/gstrdtbuffer.h:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/pnmsrc.h:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rademux.h:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rdtdepay.h:
	* gst/realmedia/rdtjitterbuffer.c:
	* gst/realmedia/rdtjitterbuffer.h:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rdtmanager.h:
	* gst/realmedia/realhash.c:
	* gst/realmedia/realhash.h:
	* gst/realmedia/realmedia.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmdemux.h:
	* gst/realmedia/rmutils.c:
	* gst/realmedia/rmutils.h:
	* gst/realmedia/rtspreal.c:
	* gst/realmedia/rtspreal.h:
	* gst/xingmux/gstxingmux.c:
	* gst/xingmux/gstxingmux.h:
	* gst/xingmux/plugin.c:
	* tests/check/elements/amrnbenc.c:
	* tests/check/elements/mpeg2dec.c:
	* tests/check/elements/x264enc.c:
	* tests/check/generic/index.c:
	* tests/check/generic/states.c:
	* tests/check/pipelines/lame.c:
	  Fix FSF address
	  https://bugzilla.gnome.org/show_bug.cgi?id=687520

2012-10-30 13:39:52 +0100  Andreas Frisch <fraxinas@opendreambox.org>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: allocate correct amount of memory for bitmap
	  https://bugzilla.gnome.org/show_bug.cgi?id=687192

2012-10-30 09:27:24 +0100  Carlos Rafael Giani <dv@pseudoterminal.org>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: removed unnecessary finalize function
	  https://bugzilla.gnome.org/show_bug.cgi?id=687176

2012-10-30 09:20:04 +0000  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	  siddec: reset bytes counter
	  Reset the total_bytes counter so that we get timestamps correct.
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686931

2012-10-30 10:20:09 +1100  Jan Schmidt <thaytan@noraisin.net>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: Fix leaks from not chaining up in the finalize function

2012-10-25 12:38:47 +0100  Tim-Philipp Müller <tim@centricular.net>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* win32/common/config.h:
	  Back to feature development

=== release 1.0.2 ===

2012-10-25 01:11:10 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.0.2

2012-10-24 13:41:00 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/elements/mpg123audiodec.c:
	  tests: fix up mpg123 test a little
	  - dist input files
	  - fix sample leak
	  - simplify check for elements
	  - only run mpg123 test if mpg123 is available and selected
	  - fix build in uninstalled setup
	  https://bugzilla.gnome.org/show_bug.cgi?id=686595

2012-10-24 12:30:10 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>

	* tests/check/elements/mpg123audiodec.c:
	  tets: add unit test for mpg123audiodec
	  https://bugzilla.gnome.org/show_bug.cgi?id=686595

2012-10-24 00:36:42 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: added gtkdoc section
	  https://bugzilla.gnome.org/show_bug.cgi?id=686595

2012-10-24 00:22:05 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: fixed bug with last frame, disabled internal resampler & chatter
	  * The last MP3 frame wasn't being pushed when base class was draining
	  * Made sure mpg123 cannot ever use its (crude) internal resampler
	  * Disabled mpg123 stderr output
	  https://bugzilla.gnome.org/show_bug.cgi?id=686595

2012-10-24 20:10:03 +0800  Scott Fan <fanchp@neusoft.com>

	* gst/asfdemux/Makefile.am:
	* gst/realmedia/Makefile.am:
	  Makefile.am: Fix typos for generating the Android.mk files
	  Change libgstasfdemux to libgstasf, and change libgstrealmedia to libgstrmdemux.
	  The typos led to generate the incorrect Android.mk files for the asfdemux
	  and realmedia plugin.
	  https://bugzilla.gnome.org/show_bug.cgi?id=686748

2012-10-24 00:21:45 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: cleaned up comments, formatting, and logging lines
	  also replaced mpg123decoder->handle != NULL checks with asserts
	  https://bugzilla.gnome.org/show_bug.cgi?id=686595

2012-10-18 22:19:04 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: correctly set next cell when seeking to sector

2012-10-18 22:18:28 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/dvdsub/gstdvdsubparse.c:
	  dvdsubparse: send src caps when receiving sink caps

2012-10-12 14:49:28 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: update dvd event to enhanced approach
	  ... in line with resindvdsrc.

2012-10-07 17:08:37 +0100  Tim-Philipp Müller <tim@centricular.net>

	* docs/Makefile.am:
	  docs: add 'make upload' target for new-release script

2012-10-07 16:58:10 +0100  Tim-Philipp Müller <tim@centricular.net>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* win32/common/config.h:
	  Back to development (bug fixing)

=== release 1.0.1 ===

2012-10-07 16:13:11 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.0.1

2012-10-06 14:58:34 +0100  Tim-Philipp Müller <tim@centricular.net>

	* common:
	  Automatic update of common submodule
	  From 6c0b52c to 6bb6951

2012-10-01 00:01:09 +1000  Jan Schmidt <thaytan@noraisin.net>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Don't error out when there is no associated buffer
	  In 0.10, having mpeg2dec occasionally tell us to output a frame that
	  was never decoded was just ignored, so do the same in 1.0
	  Fixes: #685107

2012-09-29 12:13:00 +0100  Tim-Philipp Müller <tim@centricular.net>

	* REQUIREMENTS:
	* gst/dvdsub/gstdvdsubdec.c:
	  Purge mention of liboil and update REQUIREMENTS
	  https://bugzilla.gnome.org/show_bug.cgi?id=673285

2012-09-26 01:04:32 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ext/x264/gstx264enc.c:
	  x264enc: when setting fallback decoder latency, set valid min_latency
	  Min. latency needs to be a valid time, so pass 0 as default
	  value in the fallback case where we can't determine any latency,
	  and avoid nasty criticals at runtime.

2012-09-24 16:52:23 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* win32/common/config.h:
	  Back to development (bug fixing)

=== release 1.0.0 ===

2012-09-24 14:32:12 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 1.0.0

2012-09-22 16:08:54 +0100  Tim-Philipp Müller <tim@centricular.net>

	* common:
	  Automatic update of common submodule
	  From 4f962f7 to 6c0b52c

=== release 0.11.99 ===

2012-09-17 17:59:57 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-xingmux.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.11.99

2012-09-17 16:57:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	  docs: update docs

2012-09-17 16:57:30 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/amrnb/Makefile.am:
	* ext/amrwbdec/Makefile.am:
	* ext/lame/Makefile.am:
	* ext/twolame/Makefile.am:
	* tests/check/Makefile.am:
	  Remove -DGST_USE_UNSTABLE_API

2012-09-17 12:22:51 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	  Update docs

2012-09-17 10:53:12 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/cdio/gstcdio.c:
	  cdio: work around cdio headers re-defining VERSION and PACKAGE_VERSION
	  Thanks guys. Fixes plugin version in gst-inspect-1.0 and docs
	  introspection/updating for this plugin.

2012-09-15 22:23:53 +0200  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>

	* gst-plugins-ugly.spec.in:
	  Switch to F18 package naming

2012-09-14 16:28:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/dvdread/demo-play:
	* tests/check/elements/mpeg2dec.c:
	  rename some caps and elements in examples

2012-09-14 02:58:26 +0100  Tim-Philipp Müller <tim@centricular.net>

	* configure.ac:
	  Back to development

=== release 0.11.94 ===

2012-09-14 02:49:34 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ChangeLog:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.11.94

2012-09-14 01:48:50 +0100  Tim-Philipp Müller <tim@centricular.net>

	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/gst-plugins-ugly-plugins.signals:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	  docs: update docs

2012-09-13 13:49:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: use DTS and PTS
	  Video uses DTS as timestamps. Set the DTS on the buffers and leave the PTS
	  undefined to make the decoder do the right thing. We can then remove the code
	  that tries to guess the PTS from the DTS.

2012-09-10 22:30:18 -0700  Jan Schmidt <thaytan@noraisin.net>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Hold ref to buffer while mapped
	  So that the buffer still exists when we go to unmap it later,
	  even if it got pushed in the meantime.

2012-09-11 16:48:51 -0400  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/x264enc.c:
	  x264enc test: x264enc produces constrained-baseline, not the full baseline

2012-09-11 17:37:03 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  gst: only activate in pull mode if upstream is seekable

2012-09-11 11:28:06 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rademux.c:
	  rademux: tags can be NULL

2012-09-11 11:13:31 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: fix email address

2012-09-11 11:12:38 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: init base class method only once

2012-09-11 10:46:52 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/xingmux/gstxingmux.c:
	  xingmux: remove defunct commented code

2012-09-11 10:40:01 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvbsubdec: handle and send GAP event
	  ... in stead of update newsegment event.

2012-09-11 10:34:40 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvbsubdec: adjust disabled code comment style

2012-09-09 15:48:57 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: clean up some debug statements

2012-09-07 17:38:18 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: handle possibly negative DTS provided by codec
	  ... by arranging for an offset such that DTS == PTS for keyframes,
	  which is expected elsewhere to go along with semantics of PTS and DTS.
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679443

2012-09-07 13:31:15 +0200  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>

	* gst-plugins-ugly.spec.in:
	  Fix spec file for ugly

2012-09-06 14:42:51 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* tests/check/elements/mpeg2dec.c:
	  tests: mpeg2dec: initialize variable
	  ... which avoids test segfaulting.

2012-08-30 16:26:00 -0700  Edward Hervey <edward@collabora.com>

	* tests/check/elements/mpeg2dec.c:
	  check: Feed parsed data to mpeg2dec
	  And fix the expected output caps by adding colorimetry field

2012-08-22 13:31:00 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 668acee to 4f962f7

2012-08-22 13:19:01 +0200  Stefan Sauer <ensonic@users.sf.net>

	* configure.ac:
	  configure: bump gtk-doc req to 1.12 (mar-2009)
	  This allows us to e.g. unconditionally use gtkdoc-rebase.

2012-08-20 23:32:32 +0100  Tim-Philipp Müller <tim@centricular.net>

	* docs/plugins/inspect/plugin-dvdsub.xml:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubparse.c:
	  video/x-dvd-subpicture -> subpicture/x-dvd

2012-08-09 16:30:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Use new video encoder base class API for handling tags

2012-08-09 11:48:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: Give MARGINAL rank to the mpg123 decoder element

2012-08-08 16:27:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: Set alignment at the correct place of GstAllocationParams

2012-08-08 16:26:41 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  Back to development

=== release 0.11.93 ===

2012-08-08 15:23:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.11.93

2012-08-08 15:23:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/realmedia/rmdemux.c:
	  gst: silence some compiler warnings with -DG_DISABLE_ASSERT

2012-08-08 12:58:50 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ext/mpg123/Makefile.am:
	  mpg123: dist header file

2012-08-06 15:31:50 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: avoid some more invalid timestamp arithmetic
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681291

2012-08-05 18:30:52 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  gst: Add stream-id to stream-start events

2012-07-27 11:35:52 +0200  Edward Hervey <edward@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Don't use NULL values for fbuf
	  We need to make a difference between the initial dummy buffers (which
	  have a fbuf->id of NULL) and the buffers on which we allocated
	  video frames.

2012-08-05 16:40:57 +0100  Tim-Philipp Müller <tim@centricular.net>

	* common:
	  Automatic update of common submodule
	  From 94ccf4c to 668acee

2012-08-04 16:13:36 +0100  Tim-Philipp Müller <tim@centricular.net>

	* ext/a52dec/gsta52dec.c:
	* ext/lame/gstlamemp3enc.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmutils.c:
	  gst_tag_list_free -> gst_tag_list_unref

2012-08-03 13:43:31 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: map input buffer in READ mode, not WRITE mode
	  Makes things actually work.

2012-08-03 11:50:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123: query supported output formats at run-time
	  Fixes stuff. We use a string here since we can't be bothered
	  with GValue.

2012-08-03 11:48:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpg123/Makefile.am:
	  mpg123: hook up to build system

2012-08-03 11:13:48 +0100  Carlos Rafael Giani <dv@pseudoterminal.org>

	* ext/mpg123/gstmpg123audiodec.c:
	* ext/mpg123/gstmpg123audiodec.h:
	  mpg123: add new libmpg123-based mp3 decoder plugin
	  Needs a bit of cleaning up.
	  https://bugzilla.gnome.org/show_bug.cgi?id=681003

2012-07-28 00:28:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	* ext/x264/gstx264enc.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  tag: Update for taglist/tag event API changes

2012-07-26 18:30:04 +0200  Edward Hervey <edward@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Avoid dropping first GOP
	  We use the mpeg2_fbuf_t id field as an integer and not as a pointer, so
	  do not check if it is NULL or not.
	  And cleanup a bit of debug

2012-07-25 13:05:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rdtmanager.h:
	  rdt: add on-npt-stop signal
	  rtspsrc will look for it.

2012-07-25 12:48:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rdtmanager.c:
	  rdt: set caps after activating the pad

2012-07-25 12:48:06 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/gstrdtbuffer.c:
	  rdt: reset map info

2012-07-25 09:37:08 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  asfdepay: fix padding correction
	  Fix padding correction. gst_buffer_copy_into() appends the memory to the already
	  existing memory in the target buffer..
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680536

2012-07-23 13:32:26 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: copy buffer flags when cropping
	  When we crop a buffer, copy the flags as well.

2012-07-23 11:25:34 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Fix GstVideoInfo pointer

2012-07-23 11:13:05 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Correctly flag output buffer interlaced state
	  If the sequence is not flagged as progressive its buffers are marked
	  interlace mode mixed. There is an individual picture flag indicating
	  whether picture in the sequence are interlaced or not. This is used
	  along with the new GST_VIDEO_BUFFER_FLAG_INTERLACED to correctly and
	  completely indicate the buffer's interlaced state.
	  Also, TFF and RFF should only be set if the sequence is not progressive.

2012-07-23 10:33:33 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  ext: Update for video base classes API changes

2012-07-23 08:45:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 98e386f to 94ccf4c

2012-07-20 16:12:45 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: make sure to avoid arithmetic with _NONE timestamp

2012-07-16 17:36:19 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: convert invalid 0 payload TS into GST_CLOCK_TIME_NONE
	  ... so it does not get used as first (valid) payload ts, whereas
	  the first real valid payload ts may be considerably larger.
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679838

2012-07-20 14:41:57 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: slightly relax supported seek requirements
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680279

2012-07-19 09:58:50 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Propagate GstFlowReturn where needed
	  It was just ignoring the return values...

2012-07-19 09:56:17 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Store temporary buffers out of the way
	  When mpeg2dec needs to do cropping (because downstream can't handle it),
	  we need temporary buffers to decode to.
	  Use the user_data field to store those, and unify the rest of the code
	  that needs to touch a buffer (regardless of how/where it was allocated).
	  https://bugzilla.gnome.org/show_bug.cgi?id=680194

2012-07-18 18:32:54 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Call gst_video_decoder_negotiate()

2012-07-18 17:21:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: give stream tags a different event name so they don't overwrite global tags
	  There can only be one taglist per name for sticky tag events.
	  Needs to be fixed more properly, see
	  https://bugzilla.gnome.org/show_bug.cgi?id=677619

2012-07-18 16:49:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rademux.c:
	  rademux: set/send caps on pad after activating it

2012-07-18 16:46:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: set/send caps after activating the source pads
	  Makes sure the caps event isn't dropped immediately.

2012-07-17 20:54:45 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: mustn't drop queries like caps query if not started yet

2012-07-15 20:12:46 +0100  Tim-Philipp Müller <tim@centricular.net>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: extract WM/Year as GstDateTime instead of GDate
	  So we can signal that only the year field is valid.

2012-07-13 15:41:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: don't leak payload if we are not pushing it

2012-07-13 13:59:16 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  demuxers: Push STREAM_START when needed

2012-07-13 11:36:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asf: don't push on inactive streams

2012-07-12 18:05:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: set rank to NONE
	  It should never be autoplugged really, for DVD
	  playback there's rsndvd (or will be, realsoonnow).

2012-07-09 16:27:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  fix for allocator API changes

2012-07-06 11:50:55 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  update for query api changes

2012-07-06 11:27:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  update for query api changes

2012-07-06 11:03:19 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  update for allocation query changes

2012-07-05 23:23:33 +0100  Tim-Philipp Müller <tim@centricular.net>

	* LICENSE_readme:
	  LICENSE_readme: fix typo

2012-07-05 22:48:18 +0100  Tim-Philipp Müller <tim@centricular.net>

	* LICENSE_readme:
	  LICENSE_readme: mention x264
	  https://bugzilla.gnome.org/show_bug.cgi?id=679472

2012-07-05 13:12:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  gst: Implement segment-done event

2012-06-27 11:23:36 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asf: fix x-wmv format in caps

2012-06-27 10:24:45 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	  asf: unmap packets

2012-06-21 15:13:57 +0100  Bastien Nocera <hadess@hadess.net>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/asfpacket.h:
	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Ignore parsing errors from broken packets
	  We should instead be counting the number of errors and exiting if
	  they're too numerous. This makes a number of broken ASF files playable.
	  https://bugzilla.gnome.org/show_bug.cgi?id=678543
	  Conflicts:
	  gst/asfdemux/asfpacket.c
	  gst/asfdemux/gstasfdemux.c

2012-06-26 17:15:43 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  fix interlace-mode

2012-06-25 09:43:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Add comment explaining why we first chain up to the parent class' decide_allocation

2012-06-25 09:34:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Set allocation parameters to guarantee 16-byte aligned output buffers
	  Fixes bug #377713.

2012-06-20 13:36:25 -0400  Matej Knopp <matej.knopp@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Fix unitialized variable and taglist event

2012-06-20 13:23:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: fix compilation

2012-06-20 10:39:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  update for task api change

2012-06-20 10:39:24 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/x264/gstx264enc.c:
	  fix compilation

2012-06-20 09:06:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: Port to 0.11 again

2012-06-19 15:19:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Fix compiler warning

2012-05-30 12:50:13 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: Report PAR if not present upstream
	  And clean up some code

2012-05-04 16:09:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: use _scale_ceil to compute frame period
	  https://bugzilla.gnome.org/show_bug.cgi?id=675769

2012-05-04 16:08:27 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: mpeg2dec actually has 3 frame latency
	  https://bugzilla.gnome.org/show_bug.cgi?id=675769

2012-05-01 18:49:03 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Fix large output buffers leak

2012-05-01 18:46:31 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Port to new way of handling frame reference

2012-05-01 16:12:42 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: don't leak input_state

2012-04-13 19:06:52 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: Port to GstVideoDecoder base class
	  Conflicts:
	  ext/mpeg2dec/gstmpeg2dec.c
	  ext/mpeg2dec/gstmpeg2dec.h
	  Back to 0.10 state, needs to be ported to 0.11 again.

2012-06-19 09:26:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	  Merge remote-tracking branch 'origin/master'

2012-06-19 09:26:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Port to 0.11 again

2012-05-07 11:52:40 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Don't set latency while holding object lock
	  This reverts commit 30a0b50e9ca0d625e61f994d4f8acd022dcddf38.
	  https://bugzilla.gnome.org/show_bug.cgi?id=675762

2012-05-03 18:07:24 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Use video encoder stream lock to avoid deadlock

2012-05-01 18:45:33 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Port to new way of passing frame reference

2012-04-30 19:00:09 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Set default stream-format to avc as it's a better format

2012-04-26 22:27:55 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Fix setting latency
	  Fixes setting latency when framerate is dynamic and round up the latency
	  to avoid rounding issues.

2012-04-30 18:59:44 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: gst_video_encoder_get_frame() is now transfer full

2012-04-26 17:31:45 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: don't leak output state

2012-04-18 17:09:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Remove x264 backward compatibility support

2012-04-18 16:13:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Report latency base on x264 buffer size

2012-04-17 15:44:24 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* configure.ac:
	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Port to GstVideoEncoder baseclass
	  Conflicts:
	  configure.ac
	  ext/x264/gstx264enc.c
	  ext/x264/gstx264enc.h
	  Back to 0.10 state, needs to be ported to 0.11 again.

2012-06-16 18:29:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* Android.mk:
	* LICENSE_readme:
	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/inspect/plugin-synaesthesia.xml:
	* gst/synaesthesia/.gitignore:
	* gst/synaesthesia/Makefile.am:
	* gst/synaesthesia/README:
	* gst/synaesthesia/gstsynaesthesia.c:
	* gst/synaesthesia/gstsynaesthesia.h:
	* gst/synaesthesia/synaescope.c:
	* gst/synaesthesia/synaescope.h:
	  synaesthesia: remove experimental GPL-ed synaesthesia plugin
	  It never made it out of experimental, and there's a new
	  synaescope element in gst-plugins-bad that's hopefully
	  sufficiently similar.
	  https://bugzilla.gnome.org/show_bug.cgi?id=356882

2012-06-16 18:13:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegstream/.gitignore:
	  mpegstream: remove leftover hidden .gitignore file

2012-06-08 15:55:28 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/synaesthesia/gstsynaesthesia.c:
	* tests/check/elements/amrnbenc.c:
	* tests/check/elements/x264enc.c:
	  elements: Use gst_pad_set_caps() instead of manual event fiddling

2012-06-08 15:05:22 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 03a0e57 to 98e386f

2012-06-07 16:28:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  Back to development

=== release 0.11.92 ===

2012-06-07 16:28:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.11.92

2012-06-07 16:28:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2012-06-06 18:19:06 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 1fab359 to 03a0e57

2012-06-06 13:03:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstasfdemux.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  update for tag event change

2012-06-01 10:29:16 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From f1b5a96 to 1fab359

2012-05-31 13:08:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 92b7266 to f1b5a96

2012-05-30 12:45:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From ec1c4a8 to 92b7266

2012-05-30 11:24:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 3429ba6 to ec1c4a8

2012-05-26 23:41:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rmutils.c:
	  realmedia: don't use GstStructure API on tag lists

2012-05-21 14:57:44 +0200  Julien Isorce <julien.isorce@gmail.com>

	* ext/a52dec/gsta52dec.c:
	  a52dec: really prefer the original number (and position) of channels
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676495

2012-05-24 12:32:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From dc70203 to 3429ba6

2012-05-17 21:12:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/x264/gstx264enc.c:
	  x264: bump x264 requirement to build 106 or later
	  Build 106 is from September 2010.
	  https://bugzilla.gnome.org/show_bug.cgi?id=676257

2012-04-15 23:39:48 +0400  Руслан Ижбулатов <lrn1986@gmail.com>

	* ext/a52dec/gsta52dec.c:
	* m4/a52.m4:
	  a52dec: adapt to work also with new liba52
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674091

2012-05-17 12:40:05 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: trigger renegotiation upon changed stream channels
	  Fixes #675451

2012-05-16 09:13:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure: Require core/base 0.11.91

2012-01-13 18:18:33 -0500  Matej Knopp <matej.knopp@gmail.com>

	* .gitignore:
	  .gitignore: add visual studio IDE files and OS X .DS_Store files
	  https://bugzilla.gnome.org/show_bug.cgi?id=667899

2012-05-13 17:00:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  Back to development

=== release 0.11.91 ===

2012-05-13 16:49:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* common:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.11.91

2012-05-13 16:48:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2012-05-13 16:45:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	  Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-ugly

2012-05-13 15:56:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From dc70203 to 3429ba6

2012-04-24 15:27:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: Use correct enum type

2012-05-10 10:11:44 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: implement pull mode seek snap flags when an index is present
	  Also ensure we get a proper EOS when seeking past the end of the
	  file, or (when the snap after flag is set) between the last keyframe
	  and the end of the file.

2012-05-03 23:50:30 +0100  Leon Merten Lohse <leon@green-side.de>

	* ext/cdio/gstcdio.c:
	* ext/cdio/gstcdio.h:
	* ext/cdio/gstcdiocddasrc.c:
	  cdio: compensate for libcdio's recent cd-text api changes
	  https://bugzilla.gnome.org/show_bug.cgi?id=675112
	  Conflicts:
	  ext/cdio/gstcdiocddasrc.c

2012-04-30 21:27:52 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdread: fix build after recent include reshuffling in core
	  Need to include gmodule.h ourselves now.

2012-04-19 12:22:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  video: Update for libgstvideo API changes

2012-04-16 09:09:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 6db25be to dc70203

2012-04-12 13:56:48 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/asfpacket.h:
	  asfdemux: fix performance issue, especially with high-bitrate streams
	  Two things were suboptimal from a performance point of view:
	  a) consider a large media object such as a video keyframe, which
	  may be split up into multiple fragments. We would assemble
	  the media object as follows:
	  buf = join (join (join (frag1, frag2), frag3), frag4)
	  which causes many unnecessary memcpy()s, and malloc/free,
	  which could easily add up to a multiple of the actual object
	  size. To avoid this, we allocate a buffer of the size needed
	  from the start and copy fragments into that directly.
	  b) for every fragment to join, we would create a sub-buffer
	  before joining it (which would discard the sub-buffer again),
	  leading to unnecessary miniobject create/free churn.
	  Conflicts:
	  gst/asfdemux/asfpacket.c
	  gst/asfdemux/asfpacket.h

2012-04-12 14:45:51 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: avoid unnecessary stream lookup
	  We have already retrieved the stream for that stream number and
	  made sure it's not NULL, so no need to do it again here; neither
	  the number nor the streams changed since the last time.

2012-04-02 19:31:20 +0200  Alban Browaeys <prahal@yahoo.com>

	* ext/a52dec/gsta52dec.c:
	  a52dec: fix first_access bigger than 2
	  gst_buffer_extract returns the number of bytes extracted, here 2 max.
	  Set size to the buffer size as was done in 0.10 to avoid first_access
	  error when it bypass 2.
	  https://bugzilla.gnome.org/show_bug.cgi?id=673434

2012-04-13 13:43:30 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* autogen.sh:
	* configure.ac:
	  configure: Modernize autotools setup a bit
	  Also we now only create tar.bz2 and tar.xz tarballs.

2012-04-13 13:37:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 464fe15 to 6db25be

2012-04-12 11:19:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  Back to development

=== release 0.11.90 ===

2012-04-12 10:40:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.prerequisites:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.11.90

2012-04-12 10:39:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2012-04-10 00:48:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mad/gstmad.c.orig:
	  mad: remove .c.orig file

2012-04-10 00:47:44 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.c.orig:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/twolame/gsttwolamemp2enc.c:
	* ext/x264/gstx264enc.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/asfdemux/gstrtspwms.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubparse.c:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rtspreal.c:
	* gst/synaesthesia/gstsynaesthesia.c:
	* gst/xingmux/gstxingmux.c:
	  Use new gst_element_class_set_static_metadata()

2012-04-05 18:43:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 7fda524 to 464fe15

2012-04-05 17:40:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnb.c:
	* ext/amrwbdec/amrwb.c:
	* ext/cdio/gstcdio.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/plugin.c:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.c.orig:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/twolame/gsttwolamemp2enc.c:
	* ext/x264/gstx264enc.c:
	* gst/asfdemux/gstasf.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/realmedia/realmedia.c:
	* gst/synaesthesia/gstsynaesthesia.c:
	* gst/xingmux/plugin.c:
	  gst: Update for GST_PLUGIN_DEFINE() API changes

2012-04-05 13:26:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure: Update version to 0.11.89.1

2012-04-04 14:38:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/version.entities.in:
	* ext/a52dec/Makefile.am:
	* ext/amrnb/Makefile.am:
	* ext/amrwbdec/Makefile.am:
	* ext/cdio/Makefile.am:
	* ext/lame/Makefile.am:
	* ext/mad/Makefile.am:
	* ext/mpeg2dec/Makefile.am:
	* ext/sidplay/Makefile.am:
	* ext/twolame/Makefile.am:
	* ext/x264/Makefile.am:
	* gst-plugins-ugly.spec.in:
	* gst/asfdemux/Makefile.am:
	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdsub/Makefile.am:
	* gst/realmedia/Makefile.am:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-plugins-ugly-uninstalled.pc.in:
	* tests/check/Makefile.am:
	  gst: Update versioning

2012-04-02 15:21:36 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: fix cropping
	  fix cropping in mpeg2dec

2012-04-01 20:19:36 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: add crop metadata when buffer is still writable

2012-03-30 18:13:42 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  update for buffer api change

2012-03-30 11:52:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/mad/gstmad.c:
	  ext: Update for audio decoder API changes

2012-03-29 17:32:08 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* tests/check/elements/amrnbenc.c:
	* tests/check/elements/x264enc.c:
	  tests: make more valgrind-friendly and plug caps leak

2012-03-28 12:50:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/dvdsub/gstdvdsubdec.c:
	  update for buffer changes

2012-03-27 14:07:40 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* tests/check/elements/x264enc.c:
	  tests: x264enc: adjust test to removal of deprecated properties

2012-03-26 12:13:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Replace master with 0.11

2012-03-22 15:56:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	  back to development

=== release 0.11.2 ===

2012-03-22 15:52:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* win32/common/config.h:
	  Release 0.11.2

2012-03-21 13:18:35 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/elements/mpeg2dec.c:
	  tests: fix after memory changes

2012-03-21 13:18:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: remove deprecated properties

2012-03-20 12:08:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	  Merge remote-tracking branch 'origin/master' into 0.11
	  So 0.11 folks also get amr include fixes.
	  Conflicts:
	  ext/a52dec/gsta52dec.c
	  ext/mad/gstmad.c

2012-03-18 18:56:16 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/synaesthesia/gstsynaesthesia.c:
	  synaesthesia: fixup for bufferpool api changes
	  ... as well as some caps ref handling.

2012-03-16 21:48:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  don't pass random pointers to pull_range

2012-03-15 22:11:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  update for bufferpool changes

2012-03-15 20:38:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  update for allocation query changes

2012-03-15 13:38:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/x264/gstx264enc.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdsub/gstdvdsubdec.c:
	  update for memory api changes

2012-03-14 19:52:52 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  take padding into account

2012-03-13 18:27:51 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: simplify parsing code
	  Also fixes #671455 (expected at least).

2012-03-12 16:16:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	  configure.ac: bump required GLib to 2.31.14
	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=671911

2012-03-12 12:23:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	  fix for caps _normalize changes

2012-03-11 19:07:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  fix for caps api changes

2012-03-06 16:08:23 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/a52dec/gsta52dec.h:
	  a52dec: use base class tag handling helper
	  ... so as to ensure these to be handled and sent at proper time.

2012-03-06 14:28:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: Use variable type with correct signedness

2011-01-14 18:50:41 +0100  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Copy planes in one go when possible

2012-03-03 17:17:31 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/amrnb/amrnbdec.h:
	* ext/amrnb/amrnbenc.h:
	* ext/amrwbdec/amrwbdec.h:
	  amrnb, amrwbdec: fix build with opencore-amr >= 0.1.3
	  In previous versions, the opencore-amr include sub-directory
	  would be specified in the include path in the CFLAGS, but this
	  is no longer the case in newer versions, so we need to add those
	  to our include directives.
	  Based on patch by: Christian Morales Vega
	  https://bugzilla.gnome.org/show_bug.cgi?id=671123

2012-03-03 16:56:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: get rid of non-pkg-config ways to check for opencore-amr

2012-02-29 17:26:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  update for metadata API changes

2012-02-27 06:35:01 +0100  Alessandro Decina <alessandro.d@gmail.com>

	* ext/amrwbdec/Makefile.am:
	* ext/lame/Makefile.am:
	* ext/mad/Makefile.am:
	  amrwbdec, lame, mad: link to libgstbase

2012-02-27 06:33:48 +0100  Alessandro Decina <alessandro.d@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix compiler warning

2012-02-27 00:36:46 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	  Merge remote-tracking branch 'origin/master' into 0.11

2012-02-27 00:34:09 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	  Merge commit '02f5d72a0519bcbe8f6958fab6dd998fc8ccda6b' into 0.11
	  Conflicts:
	  ext/mad/gstmad.c

2012-02-23 11:20:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  Bump version after release

2012-02-21 18:58:06 -0800  David Schleef <ds@schleef.org>

	* autogen.sh:
	  autogen.sh: avoid touching .po files during 'make'
	  A simple workaround to deal with GNU gettext automake integration
	  failing to deal with git.  Fixes: #669207

2012-02-22 02:17:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264: convert g_print to LOG

2012-02-22 02:07:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  update for new memory api

2012-02-22 02:07:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: handle pts and dts

2012-02-21 18:53:57 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: handle libmad freeform parsing quirk

2012-02-21 18:49:50 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: fixup unhacking last frame coaxing
	  ... so as to not only replace the data pointer but also available size.

2012-02-20 14:27:49 +0000  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-ugly.spec.in:
	  Add latest plugins

2012-02-18 00:02:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* win32/common/config.h:
	  win32: back to development

2012-02-17 17:53:34 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* configure.ac:
	* gst/synaesthesia/gstsynaesthesia.c:
	* gst/synaesthesia/gstsynaesthesia.h:
	  synaesthesia: port to 0.11

2012-02-17 17:53:28 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* configure.ac:
	* gst/xingmux/gstxingmux.c:
	  xingmux: port to 0.11

2012-02-17 11:06:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	  back to development

=== release 0.11.1 ===

2012-02-17 11:06:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* win32/common/config.h:
	  RELEASE 0.11.1

2012-02-17 09:16:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  ext/mad/gstmad.c

2012-02-16 14:29:47 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: unhack last frame coaxing
	  ... so as to maximally use available base class API and interfere least
	  as possible with its internal state.

2012-02-15 13:45:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: fix compilation

2012-02-15 13:40:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: chain up to default event handler

2012-02-11 05:38:41 -0500  Matej Knopp <matej.knopp@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: unmap video frame after encoding
	  Fixes major memory leak.
	  https://bugzilla.gnome.org/show_bug.cgi?id=669863

2012-02-10 17:02:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: fix after merge

2012-02-10 17:00:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  ext/x264/gstx264enc.c

2012-02-09 18:10:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	* ext/sidplay/gstsiddec.h:
	  sidplay: don't use ulong properties

2012-02-09 16:14:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	  sidplay: fix negotiation

2012-02-09 11:55:07 +0100  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Add baseline profile to caps
	  libx264 does not yet support the features that create the difference
	  between baseline and constrained baseline profile. Hence it currently
	  supports both though it can only technically encode constrained
	  baseline.

2012-02-08 16:38:09 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/amrnb/amrnbenc.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rdtmanager.c:
	  GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING

2012-02-07 18:56:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/elements/mpeg2dec.c:
	  mpeg2dec: fix test a bit more
	  Still broken because cropping is broken in mpeg2dec

2012-02-07 11:06:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/elements/amrnbenc.c:
	* tests/check/elements/x264enc.c:
	* tests/check/elements/xingmux.c:
	  tests: fix some tests

2012-02-01 16:20:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/twolame/gsttwolamemp2enc.c:
	  twolame: Use new audio encoder/decoder base class API for srcpad caps

2012-02-01 16:20:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lame: Use new audio encoder/decoder base class API for srcpad caps

2012-02-01 16:19:55 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: Use new audio encoder/decoder base class API for srcpad caps

2012-02-01 16:17:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Use new audio encoder/decoder base class API for srcpad caps

2012-02-01 16:15:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/amrwbdec/amrwbdec.c:
	  amrwbdec: Use new audio encoder/decoder base class API for srcpad caps

2012-02-01 16:14:08 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	  amrnb: Use new audio encoder/decoder base class API for srcpad caps

2012-01-31 15:52:38 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: ensure we do not confuse the base class with our buffer guard
	  mad expects extra bytes at the end of a buffer (see discussion in
	  http://www.mars.org/mailman/public/mad-dev/2001-May/000262.html),
	  and since we inject these without the base class' knowledge, we
	  need to hide the bodies better.
	  This fixes an assert at EOS when decoding an mp3 manually without
	  an intervening mpegaudioparse.

2012-01-30 17:17:31 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rtspreal.c:
	  update for HEADER flag

2011-07-20 09:00:58 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: implement force-key-unit API

2012-01-25 13:58:48 +0100  Thomas Vander Stichele <thomas (at) apestaart (dot) org>

	* common:
	  Automatic update of common submodule
	  From c463bc0 to 7fda524

2012-01-25 13:58:54 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/amrnb/amrnbdec.c:
	* ext/amrwbdec/amrwbdec.c:
	  amr: port to 0.11 again

2012-01-25 13:03:33 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  ext/a52dec/gsta52dec.c

2012-01-25 07:24:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/mad/gstmad.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/twolame/gsttwolamemp2enc.c:
	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubdec.h:
	* gst/realmedia/gstrdtbuffer.c:
	* gst/realmedia/gstrdtbuffer.h:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmutils.c:
	  port to new memory API

2012-01-25 11:38:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 2a59016 to c463bc0

2012-01-22 23:56:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst-libs/gst/glib-compat-private.h:
	  Remove compatibility versions for deprecated GLib API

2012-01-19 15:26:25 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: fix read buffer overflow upon syncing
	  The wrong size was being decremented, leading to a runaway
	  read loop.

2012-01-19 15:06:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	* configure.ac:
	  Add --disable-fatal-warnings configure option

2012-01-19 11:34:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  port to new gthread API

2012-01-18 17:00:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure.ac: Require GLib 2.31.10 for consistency

2012-01-18 16:46:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 0807187 to 2a59016

2012-01-17 11:55:59 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrwbdec/amrwbdec.c:
	  amrwbdec: _parse should not return OK if not enough data yet

2012-01-17 11:55:14 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrnb/amrnbdec.c:
	  amrnbdec: _parse should not return OK if not enough data yet

2012-01-13 15:03:50 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: fix off by one in cell calculation for the last chapter

2012-01-13 15:56:47 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: set caps on src pad before adding it

2012-01-13 15:56:25 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: perform writable buffer map to copy into it

2012-01-13 15:55:15 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/asfpacket.h:
	  asfpacket: fix 0.11 ported payload extraction
	  ... to cater for not necessarily offset == size - cur_pos,
	  as size may have been adjusted due to padding.
	  Fixes #667567.

2012-01-13 13:46:50 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: remove useless and semantically (though not practically) wrong code
	  The object will be freed, so it's pointless to set the pointers
	  to NULL anyway.

2012-01-13 13:46:28 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: remove leaking "optimization"

2012-01-13 00:05:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  GST_TYPE_DATE -> G_TYPE_DATE

2012-01-13 00:01:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	  Merge remote-tracking branch 'origin/master' into 0.11
	  Conflicts:
	  ext/a52dec/gsta52dec.c

2012-01-12 13:25:22 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: plug buffer leak

2012-01-12 13:20:26 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: plug buffer leak

2012-01-11 12:31:11 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrnb/amrnbenc.c:
	  amrnbenc: _map and _unmap the appropriate input and output buffers

2012-01-10 15:25:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Fix some merge mistakes

2012-01-10 15:17:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  ext/a52dec/gsta52dec.c
	  ext/a52dec/gsta52dec.h
	  ext/lame/gstlame.c
	  ext/lame/gstlame.h
	  ext/lame/gstlamemp3enc.c
	  ext/mad/gstmad.c
	  ext/mad/gstmad.h
	  gst/mpegaudioparse/gstmpegaudioparse.c
	  gst/mpegstream/gstdvddemux.c
	  gst/realmedia/rdtdepay.c
	  po/es.po
	  po/lv.po
	  po/sr.po

2012-01-10 11:41:52 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/dvdsub/Makefile.am:
	  dvdsub: add some CFLAGS and LIBS in Makefile.am
	  ... since adapter is still used.

2012-01-09 16:00:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: Don't use buffer after unreffing

2012-01-09 15:46:10 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Only change writable caps and make sure to set updated caps on the srcpad

2012-01-09 15:24:53 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: Correctly unmap the buffer with the original data pointer

2012-01-09 15:15:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: Make sure to set caps on the srcpad if none are set yet

2012-01-08 14:24:11 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mad/Makefile.am:
	  mad: fix LIBS order in Makefile.am

2012-01-07 21:04:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mad/gstmad.h:
	  mad: remove left-over id3tag.h include
	  We don't use libid3tag any more.

2012-01-05 12:17:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpcmdec: fix for multichannel

2012-01-04 16:05:59 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/a52dec/gsta52dec.h:
	  a52dec: Update for the new raw audio caps

2012-01-04 15:49:38 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: Update for the new raw audio caps

2012-01-04 15:45:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: Update for the new raw audio caps

2012-01-04 15:44:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/twolame/gsttwolamemp2enc.c:
	  twolamemp2enc: Update for the new raw audio caps

2012-01-04 15:43:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/amrwbdec/amrwbdec.c:
	  amrwbdec: Add the new layout field to the raw audio caps

2012-01-04 15:42:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	  amrnb: Add the new layout field to the raw audio caps

2012-01-04 15:26:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  dvdlpcmdec: Port to the new raw audio caps

2012-01-04 15:12:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Update for libgstriff API changes
	  Still needs to handle audio channel reordering.

2012-01-04 19:53:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 50b34ab to 0807187

2012-01-04 17:05:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/lame/Makefile.am:
	  lame: fix LIBADD order in Makefile.am

2012-01-04 10:33:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/elements/amrnbenc.c:
	* tests/check/elements/mpeg2dec.c:
	* tests/check/elements/x264enc.c:
	* tests/check/elements/xingmux.c:
	* tests/check/generic/states.c:
	  tests: make tests compile

2012-01-03 15:27:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/amrwbdec/amrwbdec.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/mad/gstmad.c:
	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  GST_FLOW_UNEXPECTED -> GST_FLOW_EOS

2011-12-30 18:31:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/Makefile.am:
	  tests: disable generic index test

2011-12-30 17:53:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: remove all seeking-related code
	  A parser or demuxer upstream should handle this Same for
	  queries.

2011-12-30 17:49:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: update for GstIndex removal

2011-12-30 17:46:06 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/cdio/gstcdiocddasrc.c:
	  cdio: update for probe vfunc removal in GstAudioCdSrc

2011-12-27 22:54:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	  lame: fix printf format in debug statements
	  https://bugzilla.gnome.org/show_bug.cgi?id=666926

2011-12-26 18:24:32 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlame.h:
	  lame: ensure parsed output
	  ... by doing some basic parsing of encoded lame data.

2011-12-26 16:34:01 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/gstlame.h:
	  lame: cleanup unused instance struct fields

2011-12-26 18:23:52 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/Makefile.am:
	* ext/lame/gstlamemp3enc.c:
	* ext/lame/gstlamemp3enc.h:
	  lamemp3enc: ensure parsed output
	  ... by doing some basic parsing of encoded lame data.
	  Fixes #652150.

2011-12-26 18:15:41 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: do not leak merged tags

2011-12-22 15:23:54 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	  mad: helpfully bodge the last buffer to let mad decode the last frame
	  If http://www.mars.org/mailman/public/mad-dev/2001-May/000262.html is
	  to be believed, the last buffer must be followed by a number of 0 bytes
	  in order for the last frame to be decoded (at least in some cases).
	  Doing so seems to work here, fixing a missing 1152 samples when using
	  mp3parse before mad (not using mp3parse would yield the correct amount
	  of samples, if there's extra non-MP3 data after (eg, tag data)).

2009-01-25 22:49:11 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: map subtitle language tag to stream indicated in PGC data

2009-01-25 22:49:11 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegstream/gstdvddemux.c:
	  dvddemux: tweak subtitle stream setup based on dvd language codes event
	  ... to allow for non-continuous subtitle stream numbers.
	  The missing stream numbers tend to come up as subtitle streams anyway
	  (albeit not with an identified language tag).

2011-12-21 13:56:35 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: minor safety tweak to sector seeking

2011-12-20 11:54:38 +0100  Julien Isorce <julien.isorce@gmail.com>

	* ext/a52dec/gsta52dec.c:
	  a52dec: check that a52_init returns a valid a52 state

2011-12-19 18:20:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: update for new interlaced flags

2011-12-14 17:33:52 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/a52dec/Makefile.am:
	* ext/a52dec/gsta52dec.c:
	* ext/a52dec/gsta52dec.h:
	  a52dec: port to audiodecoder

2011-12-12 13:44:12 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mad/Makefile.am:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	  mad: port to audiodecoder

2011-12-13 14:54:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Don't claim to support upstream renegotiation
	  and use fixed caps on the srcpad. To correctly support
	  upstream renegotiation a52dec would need to check if the
	  caps of the downstream allocated buffer are the requested
	  caps or if the size is different.
	  Fixes bug #665989.

2011-12-13 14:52:26 +0100  Julien Isorce <julien.isorce@gmail.com>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Check that the a52_state is correctly initialized

2011-12-12 11:33:31 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/glib-compat-private.h:
	* gst/asfdemux/gstasfdemux.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  Work around deprecated thread API in glib master
	  Add private replacements for deprecated functions such as
	  g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
	  to avoid the deprecation warnings. We can't change most of
	  these in 0.10 because they're part of our API and ABI.
	  Suppress deprecation warnings in selected files, mostly for
	  g_static_rec_mutex_*. StaticRecMutex is part of our API/ABI,
	  not much we can do here in 0.10.

2011-12-10 15:19:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/LINGUAS:
	* po/eo.po:
	* po/es.po:
	* po/lv.po:
	* po/sr.po:
	  po: update translations

2011-12-09 15:25:21 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rdtdepay.c:
	  rdtdepay: make buffer metadata writable before setting caps on it
	  Fixes issue when the header buffer is being pushed, which was taken
	  from the caps and is therefore not writable.

2011-12-06 14:00:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  fix for basesrc changes

2011-12-05 18:43:49 +0100  Edward Hervey <edward@collabora.com>

	* gst/asfdemux/gstrtpasfdepay.c:
	  rtpasfdepay: Initialize GstRTPBuffer before usage

2011-12-02 02:01:06 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	  Merge remote-tracking branch 'origin/master' into 0.11
	  Conflicts:
	  ext/dvdread/dvdreadsrc.c

2011-11-29 08:49:23 +0100  Руслан Ижбулатов <lrn1986@gmail.com>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: Fix format string compiler warning
	  Fixes bug #665101.

2011-11-28 21:31:25 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	  Merge remote-tracking branch 'origin/master' into 0.11

2011-11-28 18:26:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  Update for indexable change

2011-11-28 17:52:52 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rdtmanager.c:
	  update for clock provider API change

2011-11-28 13:10:01 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/mad/gstmad.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/twolame/gsttwolame.c:
	* ext/x264/gstx264enc.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubparse.c:
	* gst/iec958/ac3iec.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstxingmux.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegparse.c:
	* gst/mpegstream/gstrfc2250enc.c:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	* gst/synaesthesia/gstsynaesthesia.c:
	  various: fix pad template ref leaks
	  https://bugzilla.gnome.org/show_bug.cgi?id=662664

2011-11-24 21:41:55 +0100  René Stadler <rene.stadler@collabora.co.uk>

	* tests/check/elements/xingmux.c:
	  tests: update for gstcheck API change

2011-11-23 23:29:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/amrnb/amrnbenc.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/twolame/gsttwolamemp2enc.c:
	  ext: fix more printf format warnings in debug messages

2011-11-21 22:02:07 +0100  Matej Knopp <matej.knopp@gmail.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubparse.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  Fix print format compiler warnings on OS X / 64bit
	  https://bugzilla.gnome.org/show_bug.cgi?id=662617

2011-11-21 13:36:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  update for activation changes

2011-11-18 18:00:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  update for new scheduling query

2011-11-18 13:59:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  add parent to activate functions

2011-11-17 15:25:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/x264/gstx264enc.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubparse.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  add parent to pad functions

2011-11-16 17:28:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/x264/gstx264enc.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  add parent to query function

2011-11-15 17:55:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rademux.c:
	  _query_peer_*() -> _peer_query_*()

2011-11-15 17:42:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/dvdsub/gstdvdsubdec.c:
	  _accept_caps() -> _query_accept_caps()

2011-11-15 17:23:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  _peer_get_caps() -> _peer_query_caps()

2011-11-15 16:52:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  update for _get_caps() -> _query_caps()

2011-11-15 16:34:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  change getcaps to query

2011-11-14 00:55:16 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: re-instate accidentally dropped rank

2011-11-13 23:47:46 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	* gst/realmedia/pnmsrc.c:
	  Update for GstURIHandler get_protocols() changes

2011-11-13 19:01:31 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	* ext/dvdread/dvdreadsrc.h:
	* gst/realmedia/pnmsrc.c:
	  dvdreadsrc, pnmsrc: update for GstURIHandler changes

2011-11-13 01:33:25 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: re-port to 0.11
	  This time using the base class. Still something
	  wrong with the parsing though, when there's no
	  parser or demuxer upstream (which of course
	  shouldn't happen in a normal playback scenario).

2011-11-13 00:29:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	  mad: update for GstBaseAudioDecoder -> GstAudioDecoder rename

2011-08-16 21:12:06 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	  mad: replace with 0.10 version ported to GstAudioDecoder
	  Taken from commit 6e7e3657396454fe95fbd89170281865d4d1cec3
	  of Mark's baseaudio branch.
	  Would probably be too risky to drop this into 0.10 given
	  all the things mad is doing.

2011-11-13 00:13:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  docs: remove bits for old lame element from sections.txt file

2011-11-13 00:04:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* Android.mk:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* gst-plugins-ugly.spec.in:
	* gst/mpegstream/Makefile.am:
	* gst/mpegstream/README:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstdvddemux.h:
	* gst/mpegstream/gstmpegclock.c:
	* gst/mpegstream/gstmpegclock.h:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegdemux.h:
	* gst/mpegstream/gstmpegpacketize.c:
	* gst/mpegstream/gstmpegpacketize.h:
	* gst/mpegstream/gstmpegparse.c:
	* gst/mpegstream/gstmpegparse.h:
	* gst/mpegstream/gstmpegstream.c:
	* gst/mpegstream/gstrfc2250enc.c:
	* gst/mpegstream/gstrfc2250enc.h:
	* gst/mpegstream/mpegstream.vcproj:
	* gst/mpegstream/notes:
	* win32/MANIFEST:
	* win32/vs6/gst_plugins_ugly.dsw:
	* win32/vs6/libgstac3parse.dsp:
	* win32/vs6/libgstmpegaudioparse.dsp:
	* win32/vs6/libgstmpegstream.dsp:
	  mpegstream: remove the old mpeg-ps parser and demuxers
	  Don't want anyone porting this by accident.
	  Superseded by mpegpsdemux in -bad.

2011-11-12 21:06:29 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/cdio/Makefile.am:
	* ext/cdio/gstcdio.c:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/cdio/gstcdiocddasrc.h:
	  cdio: port cdiocddasrc to 0.11

2011-11-12 20:44:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/elements/mpeg2dec.c:
	  tests: port mpeg2dec to 0.11
	  It compiles, but fails.

2011-11-12 20:33:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/elements/x264enc.c:
	  tests: port x264enc unit test to 0.11
	  Well, it compiles now at least.

2011-11-11 12:33:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.h:
	  update for base class rename

2011-11-11 12:25:25 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/asfdemux/gstrtpasfdepay.h:
	  update for base class rename

2011-11-11 01:30:11 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  po: update translations

2011-11-11 01:29:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	  docs: update docs

2011-11-11 01:27:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: cosmetic error message change
	  LET'S TRY TO KEEP CAPITALS TO A MINIMUM.

2011-11-11 00:58:24 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* ext/twolame/Makefile.am:
	* ext/twolame/gsttwolamemp2enc.c:
	* ext/twolame/gsttwolamemp2enc.h:
	* po/POTFILES.in:
	  twolame: rename to twolamemp2enc

2011-11-11 00:51:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/twolame/gsttwolame.c:
	  twolame: port to 0.11

2011-11-10 23:17:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* Android.mk:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* gst-plugins-ugly.spec.in:
	* gst/iec958/Makefile.am:
	* gst/iec958/ac3_padder.c:
	* gst/iec958/ac3_padder.h:
	* gst/iec958/ac3iec.c:
	* gst/iec958/ac3iec.h:
	* win32/MANIFEST:
	* win32/vs6/libgstiec958.dsp:
	  iec958: remove this plugin
	  I think it can just go away. Audio sinks can and should payload
	  things themselves using the helper API in libgstaudio. If such
	  a plugin still makes sense, it should probably be rewritten
	  using the library functions (and be put into -good or so).

2011-11-10 18:25:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rtspreal.c:
	  update for adapter api change

2011-11-10 11:04:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  update for removed fixate function

2011-11-09 11:58:03 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rmdemux.c:
	  remove query types

2011-11-04 17:32:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmutils.c:
	  realmedia is ported

2011-11-04 16:40:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmdemux.h:
	  more template fixes

2011-11-04 16:32:48 +0100  Edward Hervey <bilboed@bilboed.com>

	* po/POTFILES.in:
	  po: lame => lamemp3enc

2011-11-04 12:04:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rdtmanager.c:
	  make request pads take %u

2011-11-04 10:45:47 +0100  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: Add basic cropping support

2011-11-02 12:09:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstasfdemux.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  tags: update for tag API removal

2011-10-31 02:24:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  update for meta api change

2011-10-29 09:10:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  structure: fix for api update

2011-10-31 14:34:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	  Merge remote-tracking branch 'origin/master' into 0.11

2011-10-30 15:05:56 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/elements/amrnbenc.c:
	  tests: port amrnbenc test to 0.11

2011-10-30 15:04:22 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	  amrnb: fix up raw audio caps for 0.11

2011-10-30 15:03:29 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/Makefile.am:
	  tests: need to define GST_USE_UNSTABLE_API to avoid warnings

2011-10-30 12:29:14 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* ext/lame/Makefile.am:
	* ext/lame/README:
	* ext/lame/gstlame.c:
	* ext/lame/gstlame.h:
	* ext/lame/plugin.c:
	* ext/lame/test-lame.c:
	* gst/xingmux/gstxingmux.c:
	* tests/check/pipelines/lame.c:
	  lame: remove lame element, it's been superseded by lamemp3enc

2011-10-30 11:51:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/mad/gstmad.c:
	* ext/sidplay/gstsiddec.cc:
	* gst/asfdemux/gstasfdemux.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  ext, gst: update for taglist API changes

2011-10-29 11:57:40 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't leak pending payload buffers
	  Fixes #662964

2011-10-28 15:21:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  ext/sidplay/gstsiddec.cc

2011-10-27 16:53:44 +0200  Stefan Sauer <ensonic@users.sf.net>

	* ext/sidplay/gstsiddec.cc:
	  siddec: use BOILERPLATE macro and cleanup FIXMEs

2011-10-28 09:18:04 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  asfdepay: fix compiler warnings after gst_caps_new_simple() change

2011-10-21 12:24:01 +0100  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-ugly.spec.in:
	  Update specfile with latest changes

2011-10-11 18:03:01 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't unmap a buffer that doesn't exist

2011-10-10 12:38:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	* ext/dvdread/dvdreadsrc.c:
	  dvdread: port to 0.11

2011-10-06 17:24:22 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	* gst/dvdsub/Makefile.am:
	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubdec.h:
	* gst/dvdsub/gstdvdsubparse.c:
	  dvdsub: port to 0.11

2011-10-05 13:32:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  ext/amrwbdec/Makefile.am
	  ext/amrwbdec/amrwbdec.c

2011-10-05 13:18:45 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/gstrdtbuffer.c:
	* gst/realmedia/gstrdtbuffer.h:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmutils.c:
	* gst/realmedia/rtspreal.c:
	  realmedia: port to 0.11

2011-10-05 12:05:34 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrwbdec/Makefile.am:
	* ext/amrwbdec/amrwbdec.c:
	* ext/amrwbdec/amrwbdec.h:
	  amrwbdec: port to audiodecoder

2011-10-04 17:00:57 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrnb/Makefile.am:
	  amrnbdec: fixup build

2011-10-04 17:00:41 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrnb/amrnbdec.c:
	  amrnbdec: remove leftover extraneous _unref

2011-10-04 17:50:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  ext/amrnb/amrnbdec.c

2011-10-04 17:35:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	  amrnb: port to 0.11

2011-10-04 17:12:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	* ext/amrwbdec/Makefile.am:
	* ext/amrwbdec/amrwbdec.c:
	  ported amrwbdec to 0.11

2011-10-03 17:19:02 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbdec.h:
	  amrnbdec: port to audiodecoder

2011-09-30 17:45:31 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11

2011-09-30 17:38:07 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: minimal port to 0.11

2011-09-05 11:11:52 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: post QoS messages when dropping a frame due to QoS
	  https://bugzilla.gnome.org/show_bug.cgi?id=658241

2011-09-28 13:05:55 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	  configure: update ported plugins list

2011-09-28 13:03:31 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* common:
	  update to 0.11 branch

2011-09-27 20:32:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  dvdlpcmdec: port to 0.11

2011-09-27 18:19:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	  lame: fix raw audio caps too

2011-09-27 18:15:00 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	  lame: port to 0.11

2011-09-27 17:54:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11

2011-09-27 17:51:31 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: port to 0.11

2011-09-27 17:01:59 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrnb/Makefile.am:
	* ext/amrnb/amrnbenc.c:
	* ext/amrnb/amrnbenc.h:
	  amrnbenc: port to audioencoder

2011-09-26 19:07:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  ext/mad/gstmad.c

2011-09-26 19:03:13 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  port a52dec to 0.11

2011-09-26 16:29:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/twolame/gsttwolame.c:
	  twolame: Simple fix for GstAudioEncoder API change

2011-09-26 16:28:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/twolame/gsttwolame.c:
	  twolame: Fix variable 'gstelement_class' set but not used compiler warning

2011-09-26 16:08:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	  lame: Don't get the parent class again, GST_BOILERPLATE does this already

2011-09-26 16:07:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	  lame: Fix variable 'gstelement_class' set but not used compiler warning

2011-09-26 12:07:15 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/twolame/gsttwolame.c:
	  twolame: improve output framing and timestamping
	  ... which simply comes down to requesting one frame of input data at a time,
	  since the encoder nicely turns this into 1 encoded frame.

2011-09-26 11:56:23 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/twolame/Makefile.am:
	* ext/twolame/gsttwolame.c:
	* ext/twolame/gsttwolame.h:
	  twolame: port to audioencoder

2011-09-23 15:32:01 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/gstlame.c:
	  lame: use some more boilerplate

2011-09-23 15:26:48 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlame.h:
	  lame: port to audioencoder

2011-09-23 14:33:55 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: use some more boilerplate

2011-09-26 14:44:23 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: really report bitrate rather kbitrate

2011-09-26 14:44:01 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/lame/Makefile.am:
	* ext/lame/gstlamemp3enc.c:
	* ext/lame/gstlamemp3enc.h:
	  lamemp3enc: port to audioencoder

2011-09-16 15:35:06 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: take into account first sector of the current title
	  This fixes seeking on titles which do not start on a new file.
	  https://bugzilla.gnome.org/show_bug.cgi?id=659252

2011-09-16 15:03:54 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: fix sector seeking
	  It was overly complicated, and did not take into account the offset
	  needed for titles which do not start on a new file.
	  https://bugzilla.gnome.org/show_bug.cgi?id=659252

2011-09-16 13:42:53 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: fix sector search for packed titles
	  Some DVD titles are packed in a single set, and we need to use
	  the correct table to map times to sectors.
	  https://bugzilla.gnome.org/show_bug.cgi?id=659252

2011-08-15 16:23:04 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/mad/Makefile.am:
	* ext/mad/gstmad.c:
	* gst-plugins-ugly.spec.in:
	  mad: remove id3tag dependency used by in practice unreachable legacy code
	  The mad mp3 decoder element shouldn't parse tags at all really, but we
	  have so far kept this code around for backwards-compatibility reasons
	  for people building manual pipelines for some reason. However, as it
	  turns out that code has never actually worked in 0.10 in practice,
	  since it only gets executed if mad_frame_decode() returns LOSTSYNC,
	  which doesn't actually seem to happen any more though because of the
	  preceding mad_header_decode(), which will discover and report the
	  sync loss if it runs into a tag and make mad_frame_decode() try to
	  resync right away.
	  Discovered this while trying to make it use gst_tag_list_from_id3v2_tag().

2011-09-08 17:01:27 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	  asfpacket: skip empty payload packets
	  ... which also avoids assertion failures and possible segfaults later on
	  when possibly trying to join 2 empty buffers.

2011-09-08 14:33:00 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmdemux.h:
	  rmdemux: delay announcing container tags until we have pads
	  Fixes tags when transcoding.
	  https://bugzilla.gnome.org/show_bug.cgi?id=658297

2011-09-07 14:36:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/elements/amrnbenc.c:
	  amrnbenc: Use complete raw audio caps in the test

2011-09-07 14:25:41 +0200  Stefan Sauer <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	  docs: cleanup makefiles
	  Remove commented out parts that we don't need. Remove "the wingo addition" - no
	  so useful after all. Narrow down file-globs for plugin docs.

2011-09-06 21:25:13 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From a39eb83 to 11f0cd5

2011-09-06 15:40:55 +0200  Stefan Sauer <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 605cd9a to a39eb83

2011-08-25 13:04:01 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asf: don't use fourcc

2011-08-25 12:54:42 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11

2011-08-22 17:49:14 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: fix spurious failure to decode some files
	  Parsing can return with an 'invalid' state, but this is not
	  actually fatal. For one, the mpeg2dec command line tool that
	  comes with the libmpeg2 library blithely ignores this condition
	  and merrily goes on. So we do this same, logging the error,
	  and going on with parsing. This makes something work that did
	  not use to work, and brings happiness to the world.
	  https://bugzilla.gnome.org/show_bug.cgi?id=429476

2011-08-19 18:07:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	* ext/sidplay/Makefile.am:
	* ext/sidplay/gstsiddec.cc:
	  port to new audio caps

2011-08-03 18:58:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  common
	  gst/asfdemux/gstrtpasfdepay.c

2011-08-03 09:05:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure: Add synaesthesia to the list of non-ported plugins

2011-08-03 01:08:43 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* gst-plugins-ugly.spec.in:
	* gst/mpegaudioparse/Makefile.am:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	* gst/mpegaudioparse/mpegaudioparse.vcproj:
	* gst/xingmux/Makefile.am:
	* gst/xingmux/gstxingmux.c:
	* gst/xingmux/gstxingmux.h:
	* gst/xingmux/plugin.c:
	  Remove mp3parse plugin/element
	  It's been replaced by mpegaudioparse in -good. Don't want anyone
	  to spend time porting a deprecated element. Rename plugin to xingmux
	  for now until we move that somewhere else.

2011-08-02 12:49:09 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* configure.ac:
	  configure.ac: Define list of non-ported plugins

2011-08-02 12:48:52 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: Fix for changes in GstQuery API

2011-08-02 12:40:22 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix for changes in GstQuery API

2011-08-02 12:40:01 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: Fix print statement

2011-08-02 12:35:40 +0200  Edward Hervey <edward.hervey@collabora.co.uk>

	* common:
	  Update common submodule

2011-07-30 18:47:44 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Properly set the stream format in setcaps
	  Do not forget to set the selected format to the options string
	  when getting it from caps
	  https://bugzilla.gnome.org/show_bug.cgi?id=655223

2011-07-19 15:06:49 +0200  Stefan Sauer <ensonic@google.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix the build for older x264enc
	  b_fake_interlaced was introduced in x264 commit 1b48874d06 = X264_BUILD 96.

2011-07-18 20:41:20 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Read stream-format from the right place
	  Read the stream-format from "stream-format" and not from profile, also rename
	  the "bytestream" variable to "stream_format" so it's easier to understand.

2011-06-13 23:24:27 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Select stream-format based on caps
	  Makes x264 select its stream-format based on what's available
	  on caps, the user selected option will be chosen as a fallback
	  when both options are available.
	  https://bugzilla.gnome.org/show_bug.cgi?id=644233

2011-07-04 18:03:49 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/x264/gstx264enc.c:
	  x264: Allow renegotiation but prefer current caps

2011-06-09 20:20:27 -0400  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/x264enc.c:
	  tests: Test x264enc profiles from the caps
	  https://bugzilla.gnome.org/show_bug.cgi?id=644233

2011-03-07 17:58:34 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/x264/Makefile.am:
	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264: Use profile and level from caps
	  Enforces the profile and level from the downstream caps, also
	  sets them on the fixated caps
	  https://bugzilla.gnome.org/show_bug.cgi?id=644233

2011-07-05 10:14:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  Add -DGST_USE_UNSTABLE_API to the compiler flags to avoid warnings

2011-06-25 06:29:50 +0300  Brian Gitonga Marete <marete@toshnix.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix subme property annotation - subme maximum is 10, not 6.
	  Although the element accepts subme values > 6, the annotation which is
	  visible through gst-inspect (for example) erroneously indicates 6 as the
	  maximum. Fix this by indicating 10 (which is the x264 max) as the maximum.
	  https://bugzilla.gnome.org/show_bug.cgi?id=653473

2011-06-23 11:28:58 -0700  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From 69b981f to 605cd9a

2011-06-19 12:45:00 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstrtspwms.c:
	  rtspwms: Porting to 0.11

2011-06-18 20:24:42 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  rtpasfdepay: Port to 0.11

2011-06-15 23:40:02 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/asfpacket.h:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Porting to 0.11

2011-06-08 18:18:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	  siddec: port siddec to 0.11

2011-06-06 12:41:03 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  rtpasfdepay: fix fragmented packet handling and packet padding
	  Also remove a bogus assert.

2011-06-03 11:35:55 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/synaesthesia/gstsynaesthesia.c:
	  synaesthesia: fix wrong debug log string (copy'n'paste)

2011-06-02 18:46:11 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  configure.ac

2011-06-02 18:43:28 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: port to new API
	  Port to new segment API.
	  Eat Caps events.
	  No need to set caps on buffers.

2011-05-20 13:32:31 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/realmedia/rmdemux.c:
	  rmdemux: target is unsigned and can't be < 0

2011-05-20 13:31:14 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/mad/gstmad.c:
	  mad: use signed when caluculating the delta
	  Avoids a <0 check for an unsigned variable.

2011-05-19 23:55:41 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	  docs: remove obsolete commented out part
	  We don't have this in the other modules and its not needed.

2011-05-19 23:38:23 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	  docs: update plugin introspection data
	  Now more files are merged and produced in a canonical fashion, which hopefully
	  creates less or no delta in the future.

2011-05-19 22:58:28 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 9e5bbd5 to 69b981f

2011-05-18 14:49:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/Makefile.am:
	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: Post CODEC and BITRATE tags
	  Also filter any CODEC/AUDIO_CODEC tags from incoming
	  tag events.
	  Fixes bug #391543.

2011-05-18 16:10:55 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From fd35073 to 9e5bbd5

2011-05-18 12:25:01 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 46dfcea to fd35073

2011-04-27 15:20:20 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  rtpasfdepay: simplify and refactor packet parsing
	  Specifically, refactor buffer padding and consider marker bit for fragment
	  assembling.

2011-04-27 15:14:00 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  rtpasfdepay: avoid re-sending header
	  ... e.g. following a seek, which otherwise confuses downstream demuxer
	  expecting only a flow of data packets at this time.

2011-04-27 15:12:22 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/asfdemux/gstrtpasfdepay.h:
	  rtpasfdepay: remove unused field

2011-04-29 09:19:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: Post bitrate tag whenever the bitrate changes
	  Also send the layer/mode/emphasis/bitrate tags as an event too.

2011-05-14 10:09:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  win32: define GST_PACKAGE_RELEASE_DATETIME in win32 config.h as well

2011-05-14 10:06:31 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  Back to development

=== release 0.10.18 ===

2011-05-10 10:26:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.10.18
	  Highlights:
	  - x264enc: allow changing bitrate and quantizers dynamically at runtime
	  - x264enc: proxy downstream caps restrictions upstream via get_caps()
	  - lamemp3enc: proxy downstream rate/channels restrictions upstream via get_caps()
	  - mad: allow build without libid3tag (which isn't really needed anyway)
	  - many other fixes and improvements

2011-05-04 12:39:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Copy the template caps, it's not allowed to increase the refcount of const caps

2011-05-04 12:30:39 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: do not leak peer pad reference

2011-05-03 15:27:43 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: No need to copy, reffing is enough

2011-05-03 14:57:16 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: get_caps function should return a copy of the caps

2011-04-30 20:07:44 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-synaesthesia.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* po/da.po:
	* po/de.po:
	* po/fr.po:
	* po/uk.po:
	* win32/common/config.h:
	  0.10.17.4 pre-release

2011-04-29 15:43:47 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: remove buffer_alloc

2011-04-27 12:48:31 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-synaesthesia.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* po/bg.po:
	* po/ja.po:
	* po/nl.po:
	* po/pl.po:
	* po/ru.po:
	* po/sl.po:
	* po/tr.po:
	  0.10.17.3 pre-release

2011-04-24 14:04:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From c3cafe1 to 46dfcea

2011-04-19 19:24:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: port to 0.11

2011-04-19 19:23:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  android/amrnb.mk
	  android/amrwbdec.mk
	  android/asf.mk
	  android/mpegaudioparse.mk
	  configure.ac

2011-04-19 17:26:42 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/gst-plugins-ugly.supp:
	  tests: add suppression for lame unit test

2011-04-19 14:41:48 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/generic/.gitignore:
	* tests/check/generic/index.c:
	  tests: add generic index-setting test

2011-04-19 15:24:03 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: don't deadlock when setting an index

2011-04-16 23:26:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-synaesthesia.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* po/sl.po:
	* win32/common/config.h:
	  0.10.17.2 pre-release

2011-04-16 23:23:56 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rademux.c:
	  rademux: fix two 'variable may be used uninitialized' warnings caused by -DG_DISABLE_ASSERT

2011-04-14 15:04:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegstream/gstmpegdemux.c:
	  mpegstream: fix unused-but-set-variable warnings with gcc 4.6

2011-04-14 15:03:56 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/x264/gstx264enc.c:
	  dvdread, sidplay, x264enc: fix unused-but-set-variable warnings with gcc 4.6

2011-04-14 15:03:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix unused-but-set-variable warnings with gcc 4.6

2011-04-13 20:31:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Implement getcaps function
	  This allows to set width/height/etc restrictions downstream.

2011-04-10 18:24:22 -0400  Thibault Saunier <thibault.saunier@collabora.co.uk>

	* Android.mk:
	* ext/mad/Makefile.am:
	* ext/x264/Makefile.am:
	* gst/asfdemux/Makefile.am:
	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdsub/Makefile.am:
	* gst/iec958/Makefile.am:
	* gst/mpegaudioparse/Makefile.am:
	* gst/mpegstream/Makefile.am:
	* gst/realmedia/Makefile.am:
	* gst/synaesthesia/Makefile.am:
	  android: make it ready for androgenizer
	  To build gstreamer for android we are now using androgenizer which
	  generates the needed Android.mk files.
	  Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git

2011-04-10 18:34:11 -0400  Thibault Saunier <thibault.saunier@collabora.co.uk>

	* android/NOTICE:
	* android/amrnb.mk:
	* android/amrwbdec.mk:
	* android/asf.mk:
	* android/mpegaudioparse.mk:
	  android: remove the android/ folder

2011-04-04 15:57:58 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 1ccbe09 to c3cafe1

2010-09-21 20:14:04 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Allow changing the bitrate and quantitizers dynamically
	  https://bugzilla.gnome.org/show_bug.cgi?id=621663

2010-09-21 19:33:10 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Set max bitrate in quality mode
	  https://bugzilla.gnome.org/show_bug.cgi?id=621663

2010-09-21 19:20:29 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Make it clear that constant quantizer is for debugging only
	  https://bugzilla.gnome.org/show_bug.cgi?id=621663

2011-03-25 22:34:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 193b717 to 1ccbe09

2011-03-25 14:57:00 +0200  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From b77e2bf to 193b717

2011-03-25 09:33:04 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From d8814b6 to b77e2bf

2011-03-25 09:09:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 6aaa286 to d8814b6

2011-03-24 18:50:17 +0200  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 6aec6b9 to 6aaa286

2011-03-22 12:59:33 +0100  Luis de Bethencourt <luis@debethencourt.com>

	* configure.ac:
	  configure.ac: redundant use of AC_MSG_RESULT()
	  cleaned the redundant use of AC_MSG_RESULT() in configure.ac

2011-03-18 19:34:57 +0100  Luis de Bethencourt <luis@debethencourt.com>

	* autogen.sh:
	  autogen: wingo signed comment

2011-03-15 11:02:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubdec.h:
	  dvdsubdec: Rearrange buffer allocation and pushing code a bit
	  This makes the code easier to read, doesn't store every buffer
	  in the instance until the next buffer is to be drawn and
	  fixes an unitialized variable compiler warning.

2011-03-15 10:59:23 +0100  Brendan Le Foll <blefoll@fluendo.com>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: Output only a single buffer per subpicture and set the correct duration
	  Fixes bug #619136.

2011-03-14 18:39:35 +0100  Brendan Le Foll <blefoll@fluendo.com>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: Implement clipping if the video size is smaller than the subpicture size
	  Fixes bug #644704.

2011-03-11 17:45:37 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	  mad: build the mad plugin even if libid3tag is not available
	  ID3 tags are usually handled by id3demux, and should be handled
	  by id3demux. Tag handling in mad based on libid3tag is very basic
	  and mostly unnecessary really, so just build this plugin without
	  ID3 tag support if libid3tag is not available.

2011-03-04 13:48:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11

2011-03-02 13:12:11 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/mpegstream/gstdvddemux.c:
	  dvddemux: small code cleanup
	  Don't duplicate the 'if' check. Makes the 2nd condition easier to read also
	  and avoid empty 'if' when logging is disabled.

2011-02-28 19:27:21 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* configure.ac:
	  configure.ac: export plugin description more platform independent
	  Fixes #642504.

2011-02-28 18:33:34 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 1de7f6a to 6aec6b9

2011-02-26 15:02:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11
	  Conflicts:
	  configure.ac

2011-02-21 13:13:11 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: do not fail fatally when unlinked
	  ... as _NOT_LINKED was neither tested as fatal before nor complained about.

2011-02-21 11:05:31 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  index: remove conditional index support
	  Index support cannot be disabled since commit
	  4bfb1fe70c6f0d5e29c17a8eeffb02f7fd083f11
	  in core, which removed the configure flags to disable index.

2011-02-17 18:06:51 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/mad/gstmad.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	  formatting: trim trailing whitespace

2011-02-17 18:05:58 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/mad/gstmad.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* gst/mpegstream/gstmpegdemux.c:
	  index: use delta frame flags instead of 0 or none

2011-02-14 17:52:09 +0000  Sjoerd Simons <sjoerd.simons@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Don't register flags with a value of 0
	  Flags with a value of 0 aren't meaningful and will cause
	  g_value_transform to go into an endless loop when trying to
	  convert the flags to a string

2011-02-14 12:54:10 +0200  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From f94d739 to 1de7f6a

2011-02-07 19:58:45 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/amrwbdec/amrwbdec.c:
	  amrwbdec: avoid stalling on invalid frame
	  Skip 1 byte indicating invalid frame type index rather than stalling
	  on it indefinitely until EOS.
	  Fixes #639715.

2011-02-03 18:25:00 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/pipelines/lame.c:
	  tests: add unit test for lamemp3enc negotiation issue
	  https://bugzilla.gnome.org/show_bug.cgi?id=641151

2011-02-03 18:18:35 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: implement sinkpad get_caps() function to proxy rate and channels restrictions from downstream
	  The element downstream of mp3enc might only accept certain sample rates or channels,
	  make sure we relay any restrictions that do exist to upstream when it does a
	  get_caps() on the sink pad. That way upstream elements like audioresample or
	  audioconvert can pick a sample rate / channel configuration that will be accepted,
	  instead of just negotiating to the highest, which might then be rejected.
	  https://bugzilla.gnome.org/show_bug.cgi?id=641151

2011-01-30 16:17:19 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/asfpacket.c:
	  asfpacket: Avoid using broken duration extension
	  Quite a few (broken?) files have a packet duration of 1ms, which is
	  most definitely wrong for either audio or video packets.
	  We therefore avoid using that value and instead use other metrics to
	  determine the buffer duration (like using the extended stream properties
	  average frame duration if present and valid).

2011-01-27 15:33:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  win32: fix DEFAULT_AUDIOSINK, should be direct*sound*sink
	  https://bugzilla.gnome.org/show_bug.cgi?id=640705

2011-01-12 16:48:57 +0800  Yang Xichuan <xichuan.yang@tieto.com>

	* gst/mpegaudioparse/gstxingmux.c:
	  xingmux: Use FALSE instead of 0 as return value for a function returning gboolean
	  Fixes bug #639291.

2011-01-06 18:29:06 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* gst/mpegstream/gstdvddemux.c:
	  mpegstream: increase allowable gap between streams
	  The new delay is three times as much as the old one, and just happens
	  to let me properly decode my "Princess Mononoke" DVD, on which dvdreadsrc
	  was chocking before at 5:11.
	  While there, merge the constants used in two places into a define.
	  https://bugzilla.gnome.org/show_bug.cgi?id=539708

2011-01-22 17:31:40 +0100  Miguel Angel Cabrera Moya <madmac2501@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: make tag event writable before modifying tag list in place
	  To modify an event tag is necessary to be sure that x264enc
	  has its own copy.
	  Also fix indentation.
	  https://bugzilla.gnome.org/show_bug.cgi?id=640272

2011-01-24 10:14:56 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  Back to development

=== release 0.10.17 ===

2011-01-21 13:18:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.10.17

2011-01-18 11:11:28 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  0.10.16.4 pre-release

2011-01-14 17:37:09 +0100  Edward Hervey <edward.hervey@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Use the proper component value for height

2011-01-11 20:42:06 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  0.10.16.3 pre-release

2011-01-11 17:09:02 +0100  Edward Hervey <edward.hervey@collabora.co.uk>

	* gst/asfdemux/asfheaders.c:
	* gst/asfdemux/asfheaders.h:
	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Handle new type of DRM'd asf files.
	  These are produced by the new MS PlayReady system.
	  https://bugzilla.gnome.org/show_bug.cgi?id=639226

2011-01-11 15:51:14 +0200  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From e572c87 to f94d739

2011-01-10 16:37:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From ccbaa85 to e572c87

2011-01-10 14:54:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 46445ad to ccbaa85

2011-01-08 00:35:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/Makefile.am:
	  tests: never disable g_assert() and cast checks for the unit tests
	  The unit tests are riddled with g_assert() and friends, make sure we
	  don't disable assert and cast checks for the unit tests even if
	  this has been specified for the rest of the code base, e.g. via
	  --disable-glib-asserts

2011-01-07 14:42:26 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  0.10.16.2 pre-release

2011-01-07 14:38:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	  docs: update docs

2011-01-07 14:37:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/bg.po:
	* po/ca.po:
	* po/ru.po:
	  po: update translations

2011-01-07 14:33:37 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: use $LIBM instead of hardcoding -lm

2011-01-06 13:15:17 +0100  Edward Hervey <edward.hervey@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: Initialize return variable.
	  In the unlikely event that height is 0 (which is invalid) we would end up
	  never setting the flow return.

2011-01-05 16:52:03 +0100  Edward Hervey <edward.hervey@collabora.co.uk>

	* gst/realmedia/rmutils.c:
	  realmedia: Fix unitialized variables on macosx

2011-01-04 10:32:05 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Handle codec/encoder tags
	  Make x264enc drop video-codec and codec tags and replace
	  encoder/encoder-version with x264 and its build number
	  Fixes #621465

2010-12-29 22:17:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: use gst_pad_alloc_buffer() when cropping buffers

2010-12-29 22:10:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: minor formatting clean-up

2010-12-29 21:42:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: refactor cropping code to use libgstvideo functions
	  https://bugzilla.gnome.org/show_bug.cgi?id=571146

2010-12-29 20:19:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: use GstVideoFormat instead of custom enum

2010-12-29 20:15:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mpeg2dec/Makefile.am:
	  mpeg2dec: fix LIBADD order in Makefile.am

2010-11-19 13:01:35 -0500  Tristan Matthews <tristan@sat.qc.ca>

	* ext/x264/gstx264enc.c:
	  x264: vbv-buf-capacity should have a minimum of 0
	  x264 will clip this value internally, and users should be allowed to
	  specify a lower value than 300 ms.
	  https://bugzilla.gnome.org/show_bug.cgi?id=635291

2010-12-27 11:38:24 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: also accept YV12 input

2010-12-01 18:35:59 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: add a note to the docs about encoder latency and queues
	  https://bugzilla.gnome.org/show_bug.cgi?id=636107

2010-12-24 10:12:19 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>

	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	  realmedia: do not use the pad buffer allocation functions in demuxers
	  Doing so can block, see https://bugzilla.gnome.org/show_bug.cgi?id=637822
	  https://bugzilla.gnome.org/show_bug.cgi?id=637932

2010-12-20 17:47:41 +0100  Edward Hervey <edward.hervey@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 169462a to 46445ad

2010-12-16 10:30:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mad/gstmad.c:
	  mad: If gst_pad_alloc_buffer() returns a buffer with the wrong size allocate a new one
	  Fixes bug #635461.

2010-12-15 14:56:36 +0200  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 20742ae to 169462a

2010-12-12 11:54:35 -0600  Rob Clark <rob@ti.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: set GST_BUFFER_FLAG_DELTA_UNIT properly
	  Signed-off-by: Rob Clark <rob@ti.com>

2010-12-13 16:24:09 +0200  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 011bcc8 to 20742ae

2010-11-14 10:57:21 -0800  Leo Singer <leo.singer@ligo.org>

	* configure.ac:
	  x264: uses pkg-config to locate libx264

2010-12-07 15:40:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	  Merge branch 'master' into 0.11

2010-12-07 15:39:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/pipelines/lame.c:
	  check: don't use deprecated method

2010-12-06 18:12:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* android/amrnb.mk:
	* android/amrwbdec.mk:
	* android/asf.mk:
	* android/mpegaudioparse.mk:
	* configure.ac:
	  more 0.10 -> 0,11 changes

2010-12-06 12:29:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	  configure: open 0.11 branch

2010-12-03 17:43:25 +0100  Benjamin Gaignard <benjamin.gaignard@stericsson.com>

	* Android.mk:
	* android/NOTICE:
	* android/amrnb.mk:
	* android/amrwbdec.mk:
	* android/asf.mk:
	* android/mpegaudioparse.mk:
	  Add build system for Android

2010-11-25 19:51:50 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/realmedia/rmutils.c:
	  realmedia: Remove dead assignments

2010-11-25 19:51:40 +0100  Edward Hervey <bilboed@bilboed.com>

	* ext/mad/gstmad.c:
	  mad: Remove dead assignments

2010-11-13 12:38:45 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: remove bogus comment

2010-11-13 12:34:37 +0000  Thomas Green <thomasgr33n@gmail.com>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: fix handling of multi-angle streams
	  We would output all angles interleaved instead of just
	  the selected angle.
	  https://bugzilla.gnome.org/show_bug.cgi?id=539254

2010-10-28 17:01:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/Makefile.am:
	  realmedia: fix LIBS order in Makefile

2010-10-22 09:17:40 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/gl.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  po: update for new translatable strings

2010-10-27 13:17:29 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 7bbd708 to 011bcc8

2010-10-20 20:26:45 +0200  Guillaume Emont <gemont@igalia.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: convert the position to stream time before answering to a position query

2010-10-24 14:22:39 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/realmedia/Makefile.am:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmdemux.h:
	  realmedia: Get codec name from pbutils instead of harcoding them

2010-10-22 11:29:55 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Work around a rate control issue in libx264
	  When variable framerate is disabled in libx264 (which occurs when using
	  the zerolatency tuning), libx264 ignores timestamps but still uses the
	  timebase leading to messed up rate control with our nanosecond timebase.
	  We work around this issue by setting the timebase to the reciprocal of
	  the framerate and we validate that the framerate is suitable.
	  This has been fixed upstream in libx264 but there are non-fixed versions
	  in the wild so this workaround is still needed.
	  Fixes bug #632861

2010-10-19 16:30:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Use gst_pad_peer_query() instead of getting the peer pad manually

2010-10-13 21:38:06 +0200  Guillaume Emont <gemont@igalia.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: fix position query by trusting upstream
	  Position queries are badly handled for DVDs (probably due to the division in
	  chapters): the time returned was the time since the start of chapter.
	  Now ask upstream for position queries, fall back to the old code if upstream
	  cannot answer the query.

2010-10-19 12:20:40 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/lame/gstlame.c:
	* ext/mad/gstmad.c:
	* ext/sidplay/gstsiddec.cc:
	* gst/mpegstream/gstmpegparse.c:
	  various: canonicalize property names

2010-10-19 10:06:33 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/mad/gstmad.c:
	* ext/sidplay/gstsiddec.cc:
	* ext/x264/gstx264enc.c:
	  various (ext): add a missing G_PARAM_STATIC_STRINGS flags

2010-10-19 09:49:47 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/iec958/ac3iec.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegstream/gstmpegparse.c:
	* gst/mpegstream/gstrfc2250enc.c:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/rdtmanager.c:
	  various (gst): add a missing G_PARAM_STATIC_STRINGS flags

2010-10-14 12:32:16 -0700  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From 5a668bf to 7bbd708

2010-10-08 12:44:52 -0700  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From c4a8adc to 5a668bf

2010-10-08 12:56:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 5e3c9bf to c4a8adc

2010-09-29 21:24:23 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	  mad: support reverse playback

2010-09-26 19:24:08 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  dvdreadsrc: improve error messages on read errors
	  Provide proper i18n-ed error messages when a read error happens,
	  and point out that the error could be happening because the
	  DVD is scrambled.
	  https://bugzilla.gnome.org/show_bug.cgi?id=613633

2010-09-24 00:03:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: set plugin release datetime

2010-09-21 18:34:31 +0200  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From aa0d1d0 to 5e3c9bf

2010-09-15 20:14:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegstream/gstmpegparse.c:
	  mpegparse: re-fix flow return handling
	  Fix wrong GST_FLOW_IS_SUCCESS substitution in commit e99cb46c:
	  -  } while (GST_FLOW_IS_SUCCESS (result));
	  +  } while (result != GST_FLOW_OK);

2010-09-09 22:33:36 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/check/Makefile.am:
	* tests/check/generic/states.c:
	  tests: allow running state tests for all elements
	  Now one can use GST_NO_STATE_IGNORE_ELEMENTS=1 make generic/states.check
	  to try elements that would normaly be skipped.

2010-09-09 09:53:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* Makefile.am:
	  New pkgconfig subdirectory needs to be added to SUBDIRS as well so it's entered and disted

2010-09-08 00:09:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* pkgconfig/.gitignore:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-plugins-ugly-uninstalled.pc.in:
	  Add gstreamer-plugins-ugly-uninstalled-0.10.pc file so other modules can find our plugins
	  This .pc file will not be installed, it's only for uninstalled setups,
	  same thing as we do for -good. This is so other modules' unit tests can
	  find our plugins properly in an uninstalled setup.

2010-09-07 11:42:52 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From c2e10bf to aa0d1d0

2010-09-06 23:53:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: re-enable use of -DGST_DISABLE_DEPRECATED in git versions

2010-09-06 23:51:23 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/sidplay/gstsiddec.cc:
	  siddec: don't use GST_FLOW_IS_FATAL
	  GST_FLOW_IS_FATAL has been deprecated in core git.

2010-09-05 18:58:50 -0700  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From d3d9acf to c2e10bf

2010-09-05 12:27:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure: Require orc >= 0.4.6 for --compat

2010-09-05 12:20:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From ec60217 to d3d9acf

2010-08-27 18:26:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Don't use GST_FLOW_IS_FATAL()
	  And don't post error messages if allocating a buffer resulted
	  in WRONG_STATE or UNEXPECTED.

2010-08-27 18:25:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegaudioparse/gstxingmux.c:
	  xingmux: Don't ignore WRONG_STATE and NOT_LINKED when pushing data downstream

2010-08-27 18:24:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegparse.c:
	  mpegstream: Don't use GST_FLOW_IS_SUCCESS()

2010-08-27 18:22:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: Don't use GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS()

2010-08-27 18:19:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't use GST_FLOW_IS_FATAL()
	  And don't post error messages for UNEXPECTED and post an error
	  message if pulling data failed because of NOT_LINKED.

2010-09-04 13:17:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  Back to development
	  Temporarily disable -DGST_DISABLE_DEPRECATED for git builds until
	  the code is updated for the GST_FLOW_IS_* macro deprecations.

=== release 0.10.16 ===

2010-09-02 23:59:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.10.16

2010-09-02 23:58:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	  docs: update docs for release

2010-09-02 23:48:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/LINGUAS:
	* po/gl.po:
	* po/id.po:
	* po/lv.po:
	* po/ro.po:
	* po/sv.po:
	  po: update translations

2010-08-30 16:02:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  0.10.15.6 pre-release

2010-08-27 17:50:59 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't error out on non-critical flow returns
	  Only error out when downstream returns:
	  * NOT_SUPPORTED
	  * ERROR
	  * NOT_NEGOTIATED
	  * NOT_LINKED
	  If we got _UNEXPECTED, we push an EOS downstream (since maybe only one
	  of the streams had gone EOS) and then stop the task silently.
	  In the case of WRONG_STATE we just need to stop silently
	  https://bugzilla.gnome.org/show_bug.cgi?id=600412

2010-08-25 19:02:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  0.10.15.5 pre-release

2010-08-25 15:39:33 +0200  Alessandro Decina <alessandro.decina@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: propagate flow errors upstream.
	  Remove a wrong GST_FLOW_IS_FATAL call. When pushing fails, mp3parse should
	  always return the error upstream.

2010-08-21 21:42:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  0.10.15.4 pre-release

2010-08-13 17:24:41 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 3e8db1d to ec60217

2010-08-11 16:46:48 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  0.10.15.3 pre-release

2010-08-11 09:21:43 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Fix b-pyramid libx264 API boolean arg for non-boolean issue
	  In X264_BUILD >= 78, b-pyramid became a non-boolean so passing a boolean
	  argument to the option string value causes an error. For < 78 we pass the
	  boolean value, for >= 78 we use the x264_b_pyramid_names[] array which will
	  result in passing 'none' for false and 'strict' for true. Other modes can be
	  set through the option-string property for now.
	  https://bugzilla.gnome.org/show_bug.cgi?id=626577

2010-08-11 00:02:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  0.10.15.2 pre-release

2010-08-10 14:37:39 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/synaesthesia/gstsynaesthesia.c:
	  synaesthesia: code cleanups.
	  Remove unused boilerplate for signals. Use _OBJECT variants of logging macros
	  more.

2010-08-10 14:24:01 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/synaesthesia/gstsynaesthesia.c:
	  synaesthesia: use GST_BOILERPLATE macros

2010-08-10 10:59:04 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From bd2054b to 3e8db1d

2010-08-09 00:31:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264: fix printf format warning in debug message

2010-08-07 00:09:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/Makefile.am:
	  docs: fix bug passing arguments to gtkdoc-fixref in upload target
	  Missing backslash at end of line meant we weren't passing all arguments
	  to gtkdoc-fixref and we'd get a shell error when doing 'make upload'.

2010-08-05 13:57:26 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From a519571 to bd2054b

2010-08-04 19:28:09 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure: Check if the compiler supports ISO C89 or C99 and which parameters are required
	  This first checks what is required for ISO C99 support and sets the relevant
	  compiler parameters and if no C99 compiler is found, it checks for a
	  C89 compiler. This enables us to check for and use C89/C99 functions
	  that gcc hides from us without the correct compiler parameters.

2010-07-29 09:41:49 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Fix flushing of delayed frames
	  x264_encoder_encode() should be called with a NULL picture until at least
	  x264_encoder_delayed_frames() returns 0. This fixes what appeared to be a
	  regression in make check due to the recent change in defaults which enabled
	  b-frames and b-pyramid, both of which I believe increase the number of delayed
	  frames when encoding.

2010-07-21 17:24:33 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Improve x264enc defaults
	  - medium x264 speed/quality preset
	  - threads defaults to 0 which automatically uses 1.5x number of cpu cores
	  Addresses part of bug #607798

2010-07-21 17:22:48 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Fix property description typos

2010-07-22 11:53:04 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Add some more debug info

2010-07-21 17:09:20 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Add speed-preset and [psy-]tuning properties
	  Use of a rate control method (pass, bitrate, quantizer, etc properties), a
	  preset and possibly a profile and/or tuning are now the recommended way to
	  configure x264 through x264enc.
	  If a preset/tuning are specified then these will define the default values and
	  the property defaults will be ignored. After this the option-string property is
	  applied, followed by the user-set properties, fast first pass restrictions and
	  finally the profile restrictions.
	  Addresses part of bug #607798

2010-07-21 16:56:06 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Refactor code in preparation for presets/tunings
	  - Make defaults append the appropriate default value to a string. This is
	  needed to differentiate between something user-set and the actual prop
	  default.
	  - Add an internal option string to which _set_property () cases append for the
	  majority of properties.
	  - Use gst_x264_enc_parse_options () to clean up application of settings. This
	  will make order of application with respect to the presets and tunings quite
	  simple.
	  Addresses part of bug #607798

2010-07-21 16:32:11 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Update available me types
	  Use the x264_motion_est_names[] array to populate the enum of ME types. This is
	  now self-maintaining.

2010-07-21 15:59:12 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Use new libx264 API to affect fast first pass
	  Uses new x264 API to apply reduced complexity values to the parameters to
	  increase encoding speed in the first pass of a multi-pass encode. This does
	  not impact on final quality.
	  Addresses part of bug #607798

2010-07-21 15:52:28 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Add profile property
	  In X264_BUILD >= 86 there is a new API for applying restrictions to an H.264
	  Profile. This makes it easier to achieve Baseline Profile for example.
	  Addresses part of bug #607798

2010-07-21 15:40:27 +0200  Robert Swain <robert.swain@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Add option-string property
	  Adds support for an x264 format option-string to specify advanced parameters
	  Addresses part of bug #607798

2010-07-22 13:24:37 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mad/Makefile.am:
	  mad: use right automake variable, should be ID3TAG_{LIBS,CFLAGS} not ID3_{LIBS,CFLAGS}
	  Spotted by syntr0py.

2010-07-20 19:44:00 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: only set timebase on versions where it exists

2010-07-20 16:40:22 +0200  David Hoyt <dhoyt@llnl.gov>

	* ext/x264/gstx264enc.c:
	  x264enc: set appropriate time base
	  Fixes #624786.

2010-06-30 18:45:49 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/Makefile.am:
	  tests: add plugin loading whitelist to test environment
	  Only want to load core/-base/-ugly plugins here.

2010-06-28 16:12:12 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* autogen.sh:
	* configure.ac:
	  Bump automake requirement to 1.10 and autoconf to 2.60
	  For maintainability reasons and $(builddir).
	  See #622944.

2010-06-28 09:34:30 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix seeking after last commits
	  Don't handle wrong-state returns as errors to allow seeking to work
	  again.

2010-06-24 19:46:39 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Push all pending data on EOS
	  When on push mode and receiving an EOS event, asfdemux
	  should push all pending data because we might be dealing
	  with a broken file that has a preroll value higher
	  than its actual length.

2010-06-24 19:29:17 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix sending eos event for chained asfs
	  Properly push EOS event when finishing a chained asf file
	  in pull mode
	  Fixes #599718

2010-06-24 20:55:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  docs: add rmdemux to docs properly
	  The plugin has been renamed, remove old introspection file.

2010-06-24 18:04:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-x264.xml:
	  docs: update for recent x264enc changes

2010-06-24 18:03:21 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: fix compiler warning when debugging system in core is disabled

2010-06-24 15:09:44 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 73ff93a to a519571

2010-06-23 11:05:11 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Allow at least 500ms of preroll.
	  Some files have insanely low preroll values which break the
	  all_streams_prerolled() logic.
	  Fixes #622407

2010-06-22 11:41:42 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: add new h264 caps attribute alignment
	  See #606662.

2010-06-18 14:35:00 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: conditionally expose enhanced upstream capabilities
	  API: GstX264Enc:sliced-threads
	  API: GstX264Enc:sync-lookahead
	  API: GstX264Enc:intra-refresh
	  API: GstX264Enc:mb-tree
	  API: GstX264Enc:rc-lookahead
	  See #607798.

2010-06-17 16:48:59 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	  docs: update introspected plugin docs for gstdoc-scangobj and other changes
	  Update common for latest gstdoc-scangobj and inspect xml files for
	  escaping and pad template order changes.

2010-06-15 16:50:21 +0200  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From 9339ccc to 35617c2

2010-06-15 16:54:42 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 5adb1ca to 9339ccc

2010-06-15 16:35:49 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 57c89b7 to 5adb1ca

2010-06-15 15:50:09 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From c804988 to 57c89b7

2010-06-14 16:59:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/realmedia/rtspreal.c:
	  configure: Update required GLib version to 2.20

2010-06-14 15:33:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Call orc_init() before trying to get target flags

2010-06-14 14:34:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Remove debug printf...

2010-06-14 14:34:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/a52dec/Makefile.am:
	* ext/a52dec/gsta52dec.c:
	  a52dec: Use orc for CPU feature detection and don't check for liboil

2010-06-14 13:27:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure: Use GLIB_EXTRA_CFLAGS

2010-06-14 13:05:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 7a0fdf5 to c804988

2010-06-14 11:35:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 6da3bab to 7a0fdf5

2010-06-12 08:29:28 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 733fca9 to 6da3bab

2010-06-09 12:40:26 -0700  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From fad145b to 733fca9

2010-06-09 12:34:18 -0700  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From 47683c1 to fad145b

2010-06-05 14:11:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: pass bitrate on caps
	  Set the bitrate on the caps, some decoders like sipro need this to function
	  properly.
	  Fixes #620007

2010-06-01 23:49:37 -0700  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From 17f89e5 to 47683c1

2010-06-01 22:55:22 -0700  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From fd7ca04 to 17f89e5

2010-05-31 16:57:42 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Only set i_weighted_pred on versions where it exists

2010-05-20 11:28:47 -0400  Tristan Matthews <tristan@sat.qc.ca>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: implement latency query
	  The encoder's latency is deduced from the framesize. Fixes #618896.

2010-06-01 09:30:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.signals:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  Back to development

=== release 0.10.15 ===

2010-05-30 14:21:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.prerequisites:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.10.15

2010-05-30 14:20:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2010-05-30 12:10:29 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: make implicit GLib and liboil requirements explicit
	  core/base 0.10.26 require GLib >= 2.18 and liboil >= 0.3.14

2010-05-26 23:16:46 -0400  Olivier Crête <tester@tester.ca>

	* ext/x264/gstx264enc.c:
	  x264enc: disable I weighted pred
	  If it is enabled, then it will be main profile instead of baseline.
	  This ensures maximum compatibility of the output stream until the
	  encoder configuration interface gets an overhaul with explicit
	  output profile selection.
	  Fixes #619776.

2010-05-26 12:16:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  0.10.14.3 pre-release

2010-05-26 11:52:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  po: update translations

2010-05-26 11:55:58 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 357b0db to fd7ca04

2010-05-14 20:06:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  0.10.14.2 pre-release

2010-05-14 18:25:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 4d67bd6 to 357b0db

2010-05-14 16:02:47 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmutils.c:
	* gst/realmedia/rmutils.h:
	  rmdemux: add better sipr nibble swap routine

2010-05-13 17:57:57 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: descramble SIPR before pushing out
	  Collect and descramble the SIPR packets before pushing.
	  Descramble ATRAC audio.
	  Fixes #618098

2010-05-13 17:57:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rmutils.c:
	* gst/realmedia/rmutils.h:
	  rm: add function to descramble sipr

2010-01-08 20:51:56 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Re-send the received upstream event as-is downstream
	  https://bugzilla.gnome.org/show_bug.cgi?id=606689

2010-05-07 15:33:28 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/amrnb/amrnb.c:
	  amrnbenc: Set rank to GST_RANK_SECONDARY

2010-04-30 19:53:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rtspreal.c:
	  rtspreal: use GLib's base64 functions if available
	  Since gst_rtsp_base64_decode_ip() just got deprecated in -base git.

2010-04-28 17:10:36 +0400  Руслан Ижбулатов <lrn1986@gmail.com>

	* ext/amrnb/amrnbdec.h:
	* ext/amrnb/amrnbenc.h:
	* ext/amrwbdec/amrwbdec.h:
	  amr: Use correct includes (as pkg-config suggests)
	  Fixes #617078

2010-04-27 13:15:47 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/ac3parse/.gitignore:
	* gst/ac3parse/Makefile.am:
	* gst/ac3parse/README:
	* gst/ac3parse/ac3parse.vcproj:
	* gst/ac3parse/gstac3parse.c:
	* gst/ac3parse/gstac3parse.h:
	  ac3parse: remove unported 0.8 plugin
	  New ac3parse lives in gst-plugin-bad. Remove this to avoid confusion.

2010-04-27 12:25:37 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  docs: adding a mp3decoder as well is useful

2010-04-27 11:39:51 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  docs: massage section index

2010-04-27 11:39:11 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/amrwbdec/amrwbdec.c:
	* ext/amrwbdec/amrwbdec.h:
	  amrwbdec: move define to source to avoid hiding it from the docs

2010-04-27 11:38:28 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/cdio/gstcdiocddasrc.c:
	  docs: remove short_desc, it is taken from element details

2010-04-27 11:37:52 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/synaesthesia/gstsynaesthesia.c:
	  docs: fix sections docs for synaesthesia

2010-04-27 11:02:15 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  docs: add docs for mp3parse

2010-04-20 17:23:04 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst-plugins-ugly.doap:
	  doap: update repository info from cvs->git and maintainers

2010-04-23 14:41:42 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From fc85867 to 4d67bd6

2010-04-13 16:59:03 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* tests/check/elements/x264enc.c:
	  x264enc: adaptive NALU type checking
	  In particular, be less picky about SEI NALU order, which makes test more
	  robust with respect to changes in libx264.
	  See also #615410.

2010-04-16 21:10:58 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: adaptive x264 header NAL layout handling
	  Fixes #615410.

2010-04-15 16:31:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  asfdepay: we require a dynamic payload type
	  Add an extra caps property that restricts the depayloader to only accept dynamic
	  payload types.

2010-04-15 07:20:20 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* configure.ac:
	  configure: Drop -Wcast-align
	  Commit message copied from core's commit from Benjamin Otte:
	  246f5dba96a5b50bb74621af67b30942cca72af5
	  Apparently gcc warns that GstMiniObject is not castable to
	  GstEvent/Message/Buffer due to them containing 64bit variables, even
	  though ARM hackers claim that those only need 4byte alignment. And as
	  long as gcc behaves that way, this warning is not very useful.
	  So we'll remove the warning until this problem is fixed.
	  Fixes #615698

2010-04-14 09:27:14 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: copy over all buffer flags when copying buffers.
	  Avoids losing the tff/rff video buffer flags

2010-03-14 12:16:21 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: Make a table static to avoid having to always allocate it.

2010-04-13 16:31:25 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: fix up avcC header construction
	  Fix off-by-one introduced by commit 35dd89951d8bb1c094da65480e4197efdfb4e93c
	  for BUILD_X264 < 76.
	  Also fixes #610089.

2010-04-13 13:16:41 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: parameterize libx264 provided NAL layout in codec-data creation

2010-04-12 12:43:05 +0200  Edward Hervey <bilboed@bilboed.com>

	* configure.ac:
	  configure: Remove -Wundef flag
	  Same fix as for #615161

2010-04-09 11:23:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From fdf023d to fc85867

2010-04-09 09:55:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst-libs/gst/gettext.h:
	  i18n: #if ENABLE_NLS -> #ifdef ENABLE_NLS to fix compiler warning

2010-03-30 00:36:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	* ext/Makefile.am:
	* gst/Makefile.am:
	  build: build plugins in parallel where possible, if make -jN is used

2010-03-26 17:08:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* Makefile.am:
	  build: add cruft alert for common/shave*

2010-03-25 19:40:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* win32/MANIFEST:
	  Fix make distcheck
	  Remove removed file win32/common/config.h.in from MANIFEST.

2010-03-24 19:35:03 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/synaesthesia/synaescope.c:
	* gst/synaesthesia/synaescope.h:
	  synaestesia: Fix old-style prototype

2010-03-24 19:07:11 +0300  Руслан Ижбулатов <lrn1986@gmail.com>

	* gst/realmedia/rmutils.c:
	  Fix pointer type.
	  Fixes #613815

2010-03-24 18:55:32 +0100  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From 55cd514 to c1d07dd

2010-03-24 11:27:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/cdio/gstcdiocddasrc.h:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlame.h:
	* ext/lame/gstlamemp3enc.h:
	* ext/lame/plugin.c:
	* ext/mad/gstmad.c:
	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstxingmux.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegparse.c:
	* gst/realmedia/asmrules.c:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/pnmsrc.h:
	* gst/realmedia/rdtdepay.h:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rtspreal.c:
	  build: Add all kinds of compiler warning flags and fix the resulting warnings

2010-03-19 00:03:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/amrnb/Makefile.am:
	* ext/amrwbdec/Makefile.am:
	* ext/sidplay/Makefile.am:
	* gst/asfdemux/Makefile.am:
	* gst/mpegaudioparse/Makefile.am:
	  build: fix up Makefile.am
	  Mostly just add $(GST_BASE_CFLAGS) where they're missing and fix
	  the order a bit here and there (see docs/random/moving-plugins).

2010-03-19 00:02:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* win32/common/config.h.in:
	  win32: remove win32-specific config.h.in copy that's not used any longer
	  The win32 config.h is now generated from the top-level config.h.in.

2010-03-18 15:53:14 +0100  Benjamin Otte <otte@redhat.com>

	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlame.c:
	* ext/mad/gstmad.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* gst/ac3parse/gstac3parse.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/asfdemux/gstrtspwms.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/iec958/ac3iec.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstxingmux.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegparse.c:
	* gst/mpegstream/gstrfc2250enc.c:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rtspreal.c:
	* gst/synaesthesia/gstsynaesthesia.c:
	  gst_element_class_set_details => gst_element_class_set_details_simple

2010-03-16 15:05:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Put pixel-aspect-ratio from input into the src pad caps
	  Fixes bug #612995.

2010-03-12 13:59:53 +0100  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From e272f71 to 55cd514

2010-03-11 11:21:19 +0100  Benjamin Otte <otte@redhat.com>

	* common:
	  Automatic update of common submodule
	  From df8a7c8 to e272f71

2010-03-10 22:13:45 +0100  Benjamin Otte <otte@redhat.com>

	* configure.ac:
	  Update CXXFLAGS, too

2010-03-10 21:01:20 +0100  Benjamin Otte <otte@redhat.com>

	* configure.ac:
	  Update for recent changes to common submodule
	  This just replaces every "$ERROR_CFLAGS" usage with a usage of
	  "$WARNING_CFLAGS $ERROR_CFLAGS" to get the same functionality as
	  previously.
	  Actually using that separation will happen later.

2010-03-10 21:52:30 +0100  Benjamin Otte <otte@redhat.com>

	* common:
	  Automatic update of common submodule
	  From 9720a7d to df8a7c8

2010-03-10 20:44:18 +0100  Benjamin Otte <otte@redhat.com>

	* common:
	  Automatic update of common submodule
	  From 0b6e072 to 9720a7d

2010-03-10 16:10:17 +0100  Benjamin Otte <otte@redhat.com>

	* common:
	  Automatic update of common submodule
	  From 7cc5eb4 to 0b6e072

2010-03-10 01:10:52 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 7aa65b5 to 7cc5eb4

2010-03-09 21:40:26 +0000  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 44ecce7 to 7aa65b5

2010-02-26 15:43:58 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure: Use automake 1.11 silent rules instead of shave if available
	  This makes sure that we use something that is still maintained and
	  also brings back libtool 1.5 support.

2010-03-09 17:42:11 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  Back to development

=== release 0.10.14 ===

2010-03-06 01:13:25 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/gst-plugins-ugly-plugins.prerequisites:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.10.14

2010-03-06 01:10:09 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2010-03-03 22:52:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  0.10.13.4 pre-release

2010-02-22 19:13:11 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* tests/check/elements/x264enc.c:
	  x264enc: Replace 'avc-sample' with 'avc' in caps
	  In the element and in its tests
	  Fixes #606662

2010-03-01 14:07:20 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't set durations of 0 on outgoing buffers.
	  Some (broken) streams don't have the extended stream properties in
	  the header, resulting in applying a duration of zero on outgoing
	  buffers.
	  Fixes #611473

2010-03-01 14:05:58 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: Make sure we always set proper payload duration.
	  Some (broken) streams will have a delta of 0, resulting in outgoing
	  buffers having durations of 0.
	  Fixes #611473

2010-02-24 01:40:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  0.10.13.3 pre-release

2010-02-19 10:13:34 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: Make sure we don't end up with negative timestamps.
	  Some files have payload with timestamps smaller than the preroll duration.
	  Instead of blindly substracting the preroll value (and ending up with
	  insanely high timestamps on the outgoing buffers), we make sure we
	  never go below 0.
	  Fixes #610432

2010-02-19 01:07:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  0.10.13.2 pre-release
	  Update core/base requirement to 0.10.26, since that's more likely
	  to be the actual requirement.

2010-02-19 01:06:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/LINGUAS:
	* po/el.po:
	* po/sl.po:
	  po: update translations

2010-02-16 14:08:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/elements/x264enc.c:
	  x264enc: add caps check to x264enc unit test
	  Add some minimal caps checking to x264enc unit test.
	  See #610089.

2010-02-16 13:25:11 +0000  Vittorio Palmisano <vpalmisano@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: fix up avcC header construction and playback by flash players
	  Fix off-by-one bug when constructing the avcC header chunk: we
	  wrote wrong profile info into the header. The first byte in the
	  SPS NAL we get from x264 is the nal type, not the profile_idc.
	  Also add some debug logging.
	  Fixes #610089.

2010-02-16 12:59:54 +0100  Robert Swain <robert.swain@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Improve seek behaviour for audio-only with no index
	  Instead of seeking to seek_time - 5s in the hope of hitting a keyframe
	  for video, we can just seek to seek_time instead.

2010-02-16 00:24:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: fix up GST_CXXFLAGS properly
	  We don't want C specific flags in GST_CXXFLAGS, so base it on the
	  GST_CFLAGS that only contains the pkg-config CFLAGS but none of
	  the GST_OPTION_CFLAGS. Also, we only need the local includes once.

2010-02-11 01:12:43 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* MAINTAINERS:
	  Update MAINTAINERS, add myself

2010-02-15 23:16:32 +0200  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	  configure: base GST_CXXFLAGS on --cflags from pkg-config
	  pkg-config sets GST_CFLAGS and GST_LIBS. We need to use CFLAGS as a starting
	  point for for both C and CXX settings.

2010-02-14 23:18:44 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 96dc793 to 44ecce7

2010-02-01 01:33:22 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* Makefile.am:
	* configure.ac:
	* win32/common/.gitignore:
	* win32/common/config.h:
	  win32: change how win32/common/config.h is updated
	  Generate win32/common/config.h-new directly from config.h.in,
	  using shell variables in configure and some hard-coded information.
	  Change top-level makefile so that 'make win32-update' copies the
	  generated file to win32/common/config.h, which we keep in source
	  control. It's kept in source control so that the git tree is
	  buildable from VS.
	  This change is similar to the ones applied a while ago to GStreamer
	  core, gst-plugins-base and gst-plugins-good and prevents configure
	  from changing files in source control. The generated config.h
	  should be ok, but needs testing.

2010-01-31 13:03:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rtspreal.c:
	  rtspreal: don't construct config header with uninitialised bytes
	  Turns out 4 + 4 + 2 + (4 * 2) is actually 18 and not 22. This avoids
	  a presumably unintentional padding of uninitialised bytes at the end
	  of the CONT tags chunk, which should be harmless but causes warnings
	  in valgrind (see #608533 for a test URL).

2010-01-30 19:12:24 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rtspreal.c:
	  rtspreal: add finalize function so we can free streams and rulebook
	  Fix memory leak in Real RTSP component (#608533).

2010-01-30 19:10:45 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rtspreal.c:
	  rtspreal: fix minor memory leak
	  Caps take their own reference when a buffer is added to them, so
	  unref buffer after adding it to caps (#608533).

2010-01-30 19:06:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rdtdepay.c:
	  rdtdepay: unref input buffer when done
	  Fixes memory leak, see #608533.

2010-01-30 15:19:56 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 15d47a6 to 96dc793

2010-01-29 19:47:03 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: make use of Access Unit delimiters configurable
	  API: GstX264Enc:aud

2010-01-22 15:40:28 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: Do not subtract padding twice
	  Only subtract implicit padding if an explicit one isn't
	  provided. Avoids subtracting it twice and causing
	  parsing errors.
	  Fixes #607698

2010-01-22 16:55:14 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/asfdemux/gstasfdemux.c:
	* gst/mpegstream/gstmpegpacketize.c:
	  assert: g_assert_not_reached() cannot replace return statement
	  Fix build with assert being turned off.

2010-01-20 00:55:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 14cec89 to 15d47a6

2010-01-18 18:01:55 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't forget to update flow variable
	  Forgot to update the return value in the loop.

2010-01-18 17:49:06 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Check flow return on every push
	  We previously only aggregated flow returns after the while(push) loop,
	  which meant that in some cases we would end-up not properly aggregating
	  the flow returns.
	  This is based on the same flow aggregation algorithm as oggdemux.

2010-01-11 16:14:44 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: Add stream-format to output caps
	  Adds stream-format to output caps of x264enc that
	  informs if the stream is in bytestream of avc format.
	  Fixes #606662

2010-01-11 12:23:35 +0100  Arnaud Patard <apatard@mandriva.com>

	* gst/mpegaudioparse/gstxingmux.c:
	  xingmux: Fix unaligned memory access
	  ARM/SPARC need 32bit alignment but xingmux accesses possibly
	  unaligned memory, which leads to SIGBUS.
	  Fixes bug #586464.

2010-01-07 14:36:47 -0800  Michael Smith <msmith@songbirdnest.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Use GST_STR_NULL in a couple of places.
	  Fixes crashing on some of the log statements on win32.

2010-01-07 16:36:08 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: Parse and post bitrate for streams
	  Parse the bitrate of the streams and post their tags.
	  Fixes #599299

2010-01-07 13:54:21 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Post bitrate tag
	  If stream bitrate object is available, post the bitrate
	  tags.
	  Fixes #599297

2010-01-04 15:19:25 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	  mp3parse: minor validation check of (Xing, VBRI) metadata
	  ... to detect e.g. a truncated file, rendering some of the metadata invalid.

2010-01-04 14:59:06 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: use proper total_time and total_bytes in various cases
	  The correct basis for (Xing, VBRI) seek table calculations is the
	  byte size and duration provided by that metadata, rather than some
	  other (possibly even estimated) one.  This also prevents an infinite
	  conversion loop in (unlikely) case where a TOC is provided without
	  such corresponding (duration) metdata.

2009-12-08 19:55:04 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	  mp3parse: conserve stop time for non-accurate seek
	  Use the same strategy as accurate seeks to store
	  pending non-accurate seeks to avoid overwriting non-definite
	  stop times. When doing non-accurate seeks our position
	  reporting might drift off by some secs and the stream can
	  end up before it should.
	  Fixes #603695

2009-12-21 19:12:59 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 47cb23a to 14cec89

2009-12-18 16:04:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/amrwbdec/amrwb.c:
	  amrwbdec: give decoder a rank so decodebin/playbin will use it

2009-12-08 19:01:50 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: return false when we can't seek
	  When upstream can't seek, we return false as well

2009-12-02 11:21:22 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	  lame: Avoid crash when seeking before negotiating
	  lame's 'lgv' variable is only initialized when the caps
	  is negotiated, whenever a seek happens before that, it would
	  attempt to call a function on an empty pointer, causing the crash.
	  Fixes #603515

2009-12-01 15:08:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 87bf428 to 47cb23a

2009-12-01 14:17:50 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From da4c75c to 87bf428

2009-11-27 18:56:13 +0100  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From 53a2485 to da4c75c

2009-11-26 15:54:45 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: fix non-flushing seek
	  Specifically, in addition to clearing lots of variables/offsets
	  when receiving newsegment, also clear leftover data to match.

2009-11-20 21:32:31 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: Make upstream GstForceKeyUnit thread-safe
	  Also send the GstForceKeyUnit event downstream when an upstream on is received,
	  allowing muxers or payloaders to take appropriate actions.
	  https://bugzilla.gnome.org/show_bug.cgi?id=602556

2009-11-19 10:31:25 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From a3e3ce4 to 53a2485

2009-11-18 09:58:39 +0100  Benjamin Gaignard <benjamin@gaignard.net>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Don't call strlen() on NULL pointers
	  Fixes bug #602280.

2009-11-09 15:02:05 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Remove old pads when new ones are added
	  The old pads were being removed before adding the new ones,
	  we should add the new ones first.
	  Fixes #599718

2009-11-09 13:30:45 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Handle chained asfs on pull mode
	  Adds chained asfs handling to pull mode. It now checks if
	  there is a new asf header after the last packet (when it
	  is possible to know how many packets are) or it tries
	  checking if a processed packet that fails is an header
	  object.
	  Fixes #599718

2009-11-09 10:24:46 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: properly do chained asfs on push mode
	  To properly do chained asfs work with playbin2, we need to
	  push eos on the old pads before removing them.
	  Fixes #599718

2009-10-27 17:48:03 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: add support for chained asfs (push mode)
	  Adds support for detecting and playing chained asfs
	  in push mode. asfdemux tries to detect a new asf start
	  by identifying the header object guid in a input buffer.
	  When it finds it, it resets its state, removing its pads
	  and creates new ones for the new file.

2009-11-05 18:33:09 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix two small leaks

2009-11-05 18:19:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: prefer WM/TrackNumber over WM/Track, it's more reliable
	  WM/Track has a 0 base but is often wrongly written as starting from 1,
	  so not as reliable as WM/TrackNumber which always starts from 1.

2009-11-05 18:11:55 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: WM/Track starts counting from 0, adjust to start from 1

2009-11-05 18:11:14 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: map WM/TrackNumber to GST_TAG_TRACK_NUMBER as well
	  There's both WM/Track and WM/TrackNumber.

2009-11-04 15:52:09 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Fix debug statement: Pass pos variable instead of time() function

2009-11-04 15:50:17 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: Fix printf format string warning

2009-11-04 15:46:04 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix bogus variable used uninitialised warnings

2009-11-04 13:55:39 +0000  Jan Schmidt <thaytan@noraisin.net>

	* po/Makevars:
	  po: Don't create backup .po files
	  As well as preventing creation of useless backup files, it works
	  around a bug in gettext 0.17 on OS/X

2009-10-29 11:39:13 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: fix c99-style comments.

2009-10-29 10:34:17 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: accept fragments in a continued packet where the subsequent fragments declare a size of 0. Fixes bug 600037.

2009-10-27 12:33:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rmutils.c:
	  rmutils: fix byteswapping
	  fix the byteswapping code that was wrong because of the side effects of the
	  READ/WRITE macros.
	  Fixes #599676

2009-10-20 20:00:44 +0100  Robert Swain <robert.swain@gmail.com>

	* ext/x264/gstx264enc.c:
	  x264enc: Adapt to slightly modified x264 API
	  Fixes #599095.

2009-10-26 17:31:19 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: careful to avoid crash on bogus data
	  When receiving bogus data, we have to avoid subtracting a value
	  larger than 'size' from 'size' variable, resulting in a wrap
	  that would make 'size' a really large bogus value.
	  Fixes #599333

2009-10-26 00:56:37 +0000  Jan Schmidt <thaytan@noraisin.net>

	* win32/common/config.h:
	  win32: Commit bumped version number

2009-10-17 13:46:13 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: Don't use expensive glib ways to get an enum nick.
	  Fixes #598761
	  This removes a good 50% of processing time for parsing a buffer.
	  We do this by simply... getting the nicks that we already have handy
	  instead of going through the expensive glib system.

2009-10-24 20:36:41 +0200  Edward Hervey <bilboed@bilboed.com>

	* configure.ac:
	  configure.ac: And back to development we go...

=== release 0.10.13 ===

2009-10-21 17:16:00 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* common:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.prerequisites:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* gst-plugins-ugly.doap:
	* win32/common/config.h:
	  Release 0.10.13

2009-10-21 17:02:42 +0100  Jan Schmidt <thaytan@noraisin.net>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2009-10-16 10:16:55 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 85d1530 to 0702fe1

2009-10-15 23:56:55 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* win32/common/config.h:
	  0.10.12.3 pre-release

2009-10-14 10:41:48 +0200  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From a3e3ce4 to 85d1530

2009-10-13 13:05:32 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Fix reference leak on all input buffers in 'dvd mode'
	  https://bugzilla.gnome.org/show_bug.cgi?id=598272

2009-10-12 13:54:27 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* configure.ac:
	* po/LINGUAS:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/en_GB.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/lv.po:
	* po/ms.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* win32/common/config.h:
	  0.10.12.2 pre-release

2009-10-12 11:31:22 +0100  Jan Schmidt <thaytan@noraisin.net>

	* docs/plugins/gst-plugins-ugly-plugins.args.new:
	* docs/plugins/gst-plugins-ugly-plugins.signals.new:
	  docs: Remove files accidentally added
	  Remove the gst-plugins-ugly-plugins.args.new and
	  gst-plugins-ugly-plugins.signals.new files, that appear
	  to have been accidentally added in commit
	  f5d046a0b034f9bd7274291f7131ee5db1a30052

2009-09-16 00:00:28 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Add some debugging for new segment events

2009-10-11 16:18:37 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: fix warning in macosx snow leopard

2009-10-11 16:16:09 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegstream/gstmpegparse.c:
	  mpegstream: fix warning in macosx snow leopard

2009-10-11 16:14:08 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: fix warning in macosx snow leopard

2009-10-11 16:09:11 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: fix warning on macosx snow leopard

2009-10-11 16:06:25 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix warning in macosx snow leopard

2009-10-08 19:58:25 +0300  René Stadler <rene.stadler@nokia.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: don't fail SEEKING query when upstream query fails for TIME format

2009-10-08 11:01:03 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 19fa4f3 to a3e3ce4

2009-10-07 14:22:09 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/asfdemux/gstasfdemux.c:
	* gst/realmedia/rdtmanager.c:
	  build: fprintf, sprintf, sscanf need stdio.h

2009-10-02 18:27:11 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/mad/gstmad.c:
	  mad: add missing include to fix the build

2009-10-05 12:13:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpcm: whitespace fixes

2009-10-04 22:51:41 +0100  Christian F.K. Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-ugly.spec.in:
	  update spec file

2009-10-02 15:22:38 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* configure.ac:
	  x264enc: adjust configure checking to changed upstream

2009-10-01 18:58:42 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: conditionally adjust to new upstream API
	  Fixes #596517.

2009-09-24 17:49:52 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	  mpegaudioparse: prevent infinite (re)syncing
	  Conflicts:
	  gst/mpegaudioparse/gstmpegaudioparse.c

2009-09-22 12:13:38 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: Refactor checking for sync. Make resyncing more reliable.
	  Previously, we could get false sync relatively easily - it sometimes happened
	  on real files. This cleans the code up a fair bit, and makes it require more
	  confirmation that we've found valid sync before continuing.

2009-09-17 16:12:29 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: ensure 2 valid headers in a row when resyncing

2009-09-11 10:05:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegstream/gstdvddemux.c:
	  dvddemux: remove bogus ifndef

2009-09-05 10:23:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 94f95e3 to 19fa4f3

2009-09-01 12:22:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Fix GstIndex handling, incl. refcounting and NULL indizes

2009-08-31 13:42:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/dvdsub/gstdvdsubparse.c:
	  dvdsubparse: GstAdapter is not a GstObject and should be freed with g_object_unref

2009-08-24 13:59:05 -0700  David Schleef <ds@schleef.org>

	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	  Remove Ronald Bultje from Authors field
	  Replaced with "GStreamer maintainers
	  <gstreamer-devel@lists.sourceforge.net>" or just removed,
	  depending on the number of other authors.

2009-08-24 13:57:14 -0700  David Schleef <ds@schleef.org>

	* gst/asfdemux/Makefile.am:
	* gst/asfdemux/gstasfmux.c:
	* gst/asfdemux/gstasfmux.h:
	  asfdemux: Remove old non-built asfmux code
	  Remove so people don't confuse it with the new asfmux code
	  in -bad.

2009-08-23 13:35:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Only add the MM_ACCEL_DJBFFT flag if it's defined
	  It's not defined for older liba52 versions.

2009-08-23 13:34:32 +0200  Mart Raudsepp <leio@gentoo.org>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Allow liba52 to use djbfft based IMDCT transform
	  liba52 in a52dec-0.7.4 does not have any MMX, MMXEXT or 3DNOW based
	  IMDCT transform acceleration. It does however have a software based
	  acceleration using the djbfft library (D.J. Bernstein's library for
	  fourier transforms - Extremely fast library for floating-point
	  convolution). So allow liba52 to use it through the MM_ACCEL_DJBFFT
	  flag.
	  The liba52 copy in MPlayer sources does have SSE, 3dnowext, 3dnow
	  and AltiVec implementations, but those are checked for first, and
	  djbfft is chosen only if none of those is available - good in the
	  case of some distributions including a port of the MPlayer changes
	  in their system a52dec library.
	  The down and upmix code in liba52 doesn't seem to be disturbed by
	  this additional MM_ACCEL flag and will still use MMX, SSE or 3DNOW
	  versions if passed from oil_cpu_get_flags (SSE currently is not).
	  Fixes bug #592787.

2009-08-17 17:31:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  amr: Use opencore-amr pkg-config files if possible
	  This makes it possible to build the plugins when the libraries
	  are installed at non-standard locations.
	  Fixes bug #591348.

2009-08-14 12:07:40 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: use metadata (xing, vbri) provided bytesize for conversions
	  Metadata provided seek tables are consistent with metadata's view of
	  total size, which typically matches real size, but need not do so
	  (e.g. a truncated file).  Fixes seeking and position reporting
	  in such truncated files (although duration based on metadata may then
	  still be incorrect).

2009-08-10 22:22:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: bump core/base requirements to released versions
	  to avoid confusion.

2009-08-04 10:44:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure: Remove all mentions to the id3tag plugin which was removed

2009-08-01 08:43:21 +0200  Marvin Schmidt <marvin_schmidt@gmx.net>

	* configure.ac:
	  mad: make check for mad independent of the check for id3tag
	  Fixes bug #590432.

2009-07-31 00:25:43 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfdemux/gstrtpasfdepay.c:
	  rtpasfdepay: set padding size to the correct value
	  asf packets in rtp packets should come with their padding fields
	  set to 0 and the depayload must update them to the correct
	  value before pushing downstream

2009-07-27 20:12:20 +0200  Iago Toral <itoral@igalia.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/gst-plugins-ugly-plugins.prerequisites:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-amrwbdec.xml:
	* ext/Makefile.am:
	* ext/amrnb/GstAmrnbEnc.prs:
	* ext/amrnb/Makefile.am:
	* ext/amrnb/README:
	* ext/amrnb/amrnb.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbdec.h:
	* ext/amrnb/amrnbenc.c:
	* ext/amrnb/amrnbenc.h:
	* ext/amrnb/amrnbparse.c:
	* ext/amrnb/amrnbparse.h:
	* ext/amrwbdec/Makefile.am:
	* ext/amrwbdec/README:
	* ext/amrwbdec/amrwb.c:
	* ext/amrwbdec/amrwbdec.c:
	* ext/amrwbdec/amrwbdec.h:
	  amr: Add AMR-WB decoder and AMR-NB encoder and decoder
	  These are based on the OpenCore codecs.
	  Fixes bug #584890.

2009-07-24 00:43:07 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From fedaaee to 94f95e3

2009-07-22 11:10:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* LICENSE_readme:
	* REQUIREMENTS:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins.args.new:
	* docs/plugins/gst-plugins-ugly-plugins.signals.new:
	* docs/plugins/inspect/plugin-dvdnav.xml:
	* ext/Makefile.am:
	* ext/dvdnav/.gitignore:
	* ext/dvdnav/Makefile.am:
	* ext/dvdnav/README:
	* ext/dvdnav/dvdnavsrc.c:
	* ext/dvdnav/dvdnavsrc.h:
	* ext/dvdnav/gst-dvd:
	* ext/dvdread/dvdreadsrc.c:
	* gst-plugins-ugly.spec.in:
	* po/POTFILES.in:
	  dvdnav: remove dvdnav plugin
	  Remove dvdnav plugin, it has no future. resindvd is the plugin to
	  use for dvd playback. Note that dvdnav was never really enabled
	  in -ugly, you had to edit configure.ac to get it built.

2009-06-20 14:31:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/elements/mpeg2dec.c:
	  mpeg2dec: Fix unused variables compiler warnings in unit test

2009-06-26 15:21:12 +0100  Jan Schmidt <thaytan@noraisin.net>

	* autogen.sh:
	  autogen.sh: Use printf instead of 'echo -n'. Check for automake-1.1[01]
	  Check for more automake command variants. Use printf instead of 'echo -n'
	  for portability

2009-07-13 12:24:14 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 5845b63 to fedaaee

2009-02-10 13:25:54 +0000  Tim-Philipp Muller <tpm@mini.centricular.net>

	* .gitignore:
	  Make git ignore more files

2009-06-29 11:10:42 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Refactor multiple packet pull.
	  This also fixes a bug by which the first buffer (in a multi-packet mode)
	  passed to asf_demux_parse_packet() would have a GST_BUFFER_SIZE of the
	  full incoming buffer and not just of the single asf packet.
	  Fixes corrupted frames introduced by latest commit.

2009-06-29 10:58:49 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: use the right accurate field
	  Remove accurate variable and its faulty use because the real variable is an
	  instance variable.

2009-06-28 17:48:11 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Sprinkle branch prediction macros accross the code

2009-06-28 17:43:12 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Delay newsegment handling until we have a keyframe.
	  We now have a chance for packets to be collected before we send out the
	  newsegment. If we're not in accurate seeking (keyunit) it will set
	  the segment start/time to the keyframe's timestamp.

2009-06-28 17:39:23 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Remove useless check. We already have checked for it above.

2009-06-28 17:31:11 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: No longer queue GOPs now that seeking is fixed.
	  We now *always* seek to the keyframe just before our requested position.
	  When we encounter the first keyframe and we were not accurate (therefore doing
	  keyframe seeking), we update the segment start position to the keyframe timestamp.

2009-06-28 17:42:44 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Store the accurate seeking flag

2009-06-28 17:04:00 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Use the average frame duration for buffers without a duration.
	  This will still cause some timestamp jitter, but giving a hint as to the duration
	  rather than nothing seems to be a better idea.
	  Also, this allows some scenarios (like remuxing with asfmux) to estimate the total
	  duration using the accumulated packet duration (which will be correct).

2009-06-28 17:02:17 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Use index entry packet count to optimize seeking.
	  The simple index entries also contain the number of packets one needs
	  to retrieve at a given position to get a full keyframe. We therefore
	  use that information to retrieve all those packets in one buffer when
	  working in pull-mode.

2009-06-26 20:52:29 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Do not try to free const pointer
	  In gst_asf_demux_chain_headers, when 'goto wrong_type' was called
	  asfdemux tried to free a const pointer that had been cast to a
	  normal pointer variable.

2009-06-26 20:44:09 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Use presentation timestamp when searching in the index.
	  We need to take the preroll into account... else we end up too early.

2009-06-26 13:43:16 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From f3bb51b to 5845b63

2009-06-26 13:35:38 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Convert index entry from presentation time to timestamps.
	  We weren't taking the preroll into account previously, meaning that we
	  were always seeking preroll nanoseconds too early... resulting in a lot
	  of dropped packets (which are before the start time).
	  This brings quit a bit closer to as-fast-as-possible seeking in asf files.

2009-06-26 10:58:56 +0200  Edward Hervey <bilboed@bilboed.com>

	* common:
	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Fix byte array metadata handling.
	  We basically discard byte array metadata. Should be trivial to adapt
	  to storing the pointers if we need it later on.

2009-06-26 10:41:28 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Handle PAR/interlaced information stored in packet payload.
	  This is the 'other' way to store non 1/1 PAR in asf streams (by storing it
	  in the ASF Packet payload extensions).

2009-06-26 10:40:39 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: Store/Handle global metadata (not specific to one stream).
	  This allows us to store (and handle) PAR information which might be stored there.

2009-06-25 18:24:56 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: fix Xing inverse seek table building

2009-06-24 15:15:37 +0100  Jan Schmidt <jan.schmidt@sun.com>

	* common:
	  Automatic update of common submodule
	  From f3bb51b to f810030

2009-06-23 16:45:00 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: don't try to free a NULL taglist

2009-06-23 02:14:00 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: post tags only after we've created our source pads
	  Post global tags only after we've added our source pads, so that
	  tag events get sent downstream in addition to tag messages posted
	  on the bus. This makes sure tags can be picked up automatically
	  when transcoding, but also by tagreadbin/playbin2. Fixes #519721.
	  While we're at it, also add a container-format tag.

2009-06-23 01:37:01 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: use new bytereader functions for image tag parsing

2009-06-22 18:53:56 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: remove some more unused variables

2009-06-19 17:25:58 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/realmedia/rmdemux.c:
	  rmdemux: plug buffer leaking

2009-06-22 17:36:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  asfdepay: guard against dropped buffers
	  If a buffer was dropped, we might request data from the adapter that is not
	  there and then we get a NULL buffer.

2009-06-22 17:16:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: set DISCONT on streams
	  When we receive a DISCONT as input, don't clear our complete state but simply
	  mark a discont that will be put on the next buffer. The code will be able to
	  handle and throw away incomplete data.
	  Add some more debug info.
	  Remove an unused variable.

2009-06-22 17:15:52 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  asfdepay: set DELTA_UNIT flag correctly
	  Only set the DELTA_UNIT flag when we are not dealing with a keyframe.
	  Add some more debug info.

2009-06-22 13:37:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix latency calculations
	  We need to check for -1 as an invalid timestamp, not 1.

2009-06-16 09:45:59 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	  mp3parse: don't put every single frame into the index
	  Let's not put every single mp3 frame in our index, a few frames per
	  second should be more than enough. For now use an index interval
	  of 100ms-500ms depending on the upstream size, to keep the index at
	  a reasonable size. Factor out the code that adds the index entry
	  into a separate function for better code readability.

2009-06-16 01:40:42 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	  mp3parse: assume seekability only if we know the upstream size
	  While technically upstream may be seekable even if it doesn't know
	  the exact size, I can't think of a use case where this distincation
	  is relevant in practice, so for now just assume we're not seekable
	  if upstream doesn't provide us with a size. Makes sure we don't
	  build a seek index when streaming internet radio with sources that
	  pretend to be seekable until you try to actually seek.

2009-06-19 17:46:12 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-ugly.spec.in:
	  Fix x264 requirement in SPEC file

2009-06-19 15:01:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* gst/realmedia/rdtmanager.c:
	  x264enc, rdtmanager: fix compilation with debugging disabled

2009-06-11 13:48:22 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	* docs/plugins/Makefile.am:
	  docs: Bump common. Fix comment in the docs Makefile.am

2009-06-18 20:26:04 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* win32/common/config.h:
	  Back to development -> 0.10.12.1

2009-06-18 08:54:17 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst-plugins-ugly.doap:
	  Add 0.10.12 release to the doap file

=== release 0.10.12 ===

2009-06-18 08:34:54 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/gst-plugins-ugly-plugins.prerequisites:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-synaesthesia.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* win32/common/config.h:
	  Release 0.10.12

2009-06-18 08:34:46 +0100  Jan Schmidt <thaytan@noraisin.net>

	* po/bg.po:
	* po/id.po:
	* po/it.po:
	* po/nl.po:
	* po/zh_CN.po:
	  Update .po files

2009-06-18 08:04:40 +0100  Jan Schmidt <thaytan@noraisin.net>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2009-06-05 22:10:02 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* win32/common/config.h:
	  0.10.11.2 pre-release

2009-06-05 22:07:31 +0100  Jan Schmidt <thaytan@noraisin.net>

	* win32/common/config.h.in:
	  win32: Remove #undef inline from the win32 config.h

2009-06-05 20:53:57 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/inspect/plugin-mad.xml:
	* ext/mad/Makefile.am:
	* ext/mad/gstid3tag.c:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	  mad, id3mux: (re)move broken, unmaintained and unloved id3mux element
	  It will be reborn with a shiny new code base under its hood in -bad.
	  See #581756 and #565764.

2009-06-05 19:48:28 +0100  Jan Schmidt <thaytan@noraisin.net>

	* tests/check/pipelines/.gitignore:
	  gitignore: Ignore some built files in the test area

2009-06-05 19:46:17 +0100  Jan Schmidt <thaytan@noraisin.net>

	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-synaesthesia.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	  docs: Update plugin inspect files

2009-06-05 19:25:54 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/inspect/plugin-x264.xml:
	* ext/Makefile.am:
	* gst-plugins-ugly.spec.in:
	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	  Moved 'x264enc' from -bad to -ugly

2009-05-25 11:18:57 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  [MOVED FROM BAD 28/28] x264enc: add multipass-cache-file property
	  Fixes #583627

2009-05-09 23:47:39 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* ext/x264/GstX264Enc.prs:
	  [MOVED FROM BAD 27/28] Remove wrong stuff from preset file

2009-05-09 12:42:25 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* ext/x264/GstX264Enc.prs:
	  [MOVED FROM BAD 26/28] Add a more representative example preset file for x264

2009-05-07 17:53:42 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  [MOVED FROM BAD 25/28] Add ranks to various muxers and encoders in -bad

2009-04-30 00:06:36 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/x264/GstX264Enc.prs:
	* ext/x264/Makefile.am:
	* ext/x264/gstx264enc.c:
	  [MOVED FROM BAD 24/28] x264enc: add preset support
	  Add preset iface and a (dummy) preset file as a starting point.

2009-04-29 16:57:36 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  [MOVED FROM BAD 23/28] x264enc: add some documentation on profile

2009-04-09 23:53:39 +0200  Janin Kolenc <janin.kolenc at marand.si>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  [MOVED FROM BAD 22/28] x264enc: add force keyframe event handling
	  Use the GstForceKeyUnit event to force a keyframe.
	  Fixes #578112.

2009-01-05 10:28:58 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 21/28] ext/x264/gstx264enc.c: Use hyphen in property name, perform safety buffer size check prior to mem access, and some mo...
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_class_init),
	  (gst_x264_enc_header_buf), (gst_x264_enc_encode_frame):
	  Use hyphen in property name, perform safety buffer size check
	  prior to mem access, and some more parentheses in macro.

2009-01-02 01:44:11 +0000  Alessandro Decina <alessandro.d@gmail.com>

	  [MOVED FROM BAD 20/28] ext/apexsink/Makefile.am: Link against -lgcrpyto for RSA_new and RSA_free.
	  Original commit message from CVS:
	  * ext/apexsink/Makefile.am:
	  Link against -lgcrpyto for RSA_new and RSA_free.
	  * ext/faac/gstfaac.c:
	  * ext/x264/gstx264enc.c:
	  Fix compiler warnings.

2008-11-14 19:52:24 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 19/28] ext/x264/gstx264enc.c: Construct source caps in more conventional (and correct) manner.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps):
	  Construct source caps in more conventional (and correct) manner.

2008-11-04 12:42:30 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  [MOVED FROM BAD 18/28] Don't install static libs for plugins. Fixes #550851 for -bad.
	  Original commit message from CVS:
	  * ext/alsaspdif/Makefile.am:
	  * ext/amrwb/Makefile.am:
	  * ext/apexsink/Makefile.am:
	  * ext/arts/Makefile.am:
	  * ext/artsd/Makefile.am:
	  * ext/audiofile/Makefile.am:
	  * ext/audioresample/Makefile.am:
	  * ext/bz2/Makefile.am:
	  * ext/cdaudio/Makefile.am:
	  * ext/celt/Makefile.am:
	  * ext/dc1394/Makefile.am:
	  * ext/dirac/Makefile.am:
	  * ext/directfb/Makefile.am:
	  * ext/divx/Makefile.am:
	  * ext/dts/Makefile.am:
	  * ext/faac/Makefile.am:
	  * ext/faad/Makefile.am:
	  * ext/gsm/Makefile.am:
	  * ext/hermes/Makefile.am:
	  * ext/ivorbis/Makefile.am:
	  * ext/jack/Makefile.am:
	  * ext/jp2k/Makefile.am:
	  * ext/ladspa/Makefile.am:
	  * ext/lcs/Makefile.am:
	  * ext/libfame/Makefile.am:
	  * ext/libmms/Makefile.am:
	  * ext/metadata/Makefile.am:
	  * ext/mpeg2enc/Makefile.am:
	  * ext/mplex/Makefile.am:
	  * ext/musepack/Makefile.am:
	  * ext/musicbrainz/Makefile.am:
	  * ext/mythtv/Makefile.am:
	  * ext/nas/Makefile.am:
	  * ext/neon/Makefile.am:
	  * ext/ofa/Makefile.am:
	  * ext/polyp/Makefile.am:
	  * ext/resindvd/Makefile.am:
	  * ext/sdl/Makefile.am:
	  * ext/shout/Makefile.am:
	  * ext/snapshot/Makefile.am:
	  * ext/sndfile/Makefile.am:
	  * ext/soundtouch/Makefile.am:
	  * ext/spc/Makefile.am:
	  * ext/swfdec/Makefile.am:
	  * ext/tarkin/Makefile.am:
	  * ext/theora/Makefile.am:
	  * ext/timidity/Makefile.am:
	  * ext/twolame/Makefile.am:
	  * ext/x264/Makefile.am:
	  * ext/xine/Makefile.am:
	  * ext/xvid/Makefile.am:
	  * gst-libs/gst/app/Makefile.am:
	  * gst-libs/gst/dshow/Makefile.am:
	  * gst/aiffparse/Makefile.am:
	  * gst/app/Makefile.am:
	  * gst/audiobuffer/Makefile.am:
	  * gst/bayer/Makefile.am:
	  * gst/cdxaparse/Makefile.am:
	  * gst/chart/Makefile.am:
	  * gst/colorspace/Makefile.am:
	  * gst/dccp/Makefile.am:
	  * gst/deinterlace/Makefile.am:
	  * gst/deinterlace2/Makefile.am:
	  * gst/dvdspu/Makefile.am:
	  * gst/festival/Makefile.am:
	  * gst/filter/Makefile.am:
	  * gst/flacparse/Makefile.am:
	  * gst/flv/Makefile.am:
	  * gst/games/Makefile.am:
	  * gst/h264parse/Makefile.am:
	  * gst/librfb/Makefile.am:
	  * gst/mixmatrix/Makefile.am:
	  * gst/modplug/Makefile.am:
	  * gst/mpeg1sys/Makefile.am:
	  * gst/mpeg4videoparse/Makefile.am:
	  * gst/mpegdemux/Makefile.am:
	  * gst/mpegtsmux/Makefile.am:
	  * gst/mpegvideoparse/Makefile.am:
	  * gst/mve/Makefile.am:
	  * gst/nsf/Makefile.am:
	  * gst/nuvdemux/Makefile.am:
	  * gst/overlay/Makefile.am:
	  * gst/passthrough/Makefile.am:
	  * gst/pcapparse/Makefile.am:
	  * gst/playondemand/Makefile.am:
	  * gst/rawparse/Makefile.am:
	  * gst/real/Makefile.am:
	  * gst/rtjpeg/Makefile.am:
	  * gst/rtpmanager/Makefile.am:
	  * gst/scaletempo/Makefile.am:
	  * gst/sdp/Makefile.am:
	  * gst/selector/Makefile.am:
	  * gst/smooth/Makefile.am:
	  * gst/smoothwave/Makefile.am:
	  * gst/speed/Makefile.am:
	  * gst/speexresample/Makefile.am:
	  * gst/stereo/Makefile.am:
	  * gst/subenc/Makefile.am:
	  * gst/tta/Makefile.am:
	  * gst/vbidec/Makefile.am:
	  * gst/videodrop/Makefile.am:
	  * gst/videosignal/Makefile.am:
	  * gst/virtualdub/Makefile.am:
	  * gst/vmnc/Makefile.am:
	  * gst/y4m/Makefile.am:
	  * sys/acmenc/Makefile.am:
	  * sys/cdrom/Makefile.am:
	  * sys/dshowdecwrapper/Makefile.am:
	  * sys/dshowsrcwrapper/Makefile.am:
	  * sys/dvb/Makefile.am:
	  * sys/dxr3/Makefile.am:
	  * sys/fbdev/Makefile.am:
	  * sys/oss4/Makefile.am:
	  * sys/qcam/Makefile.am:
	  * sys/qtwrapper/Makefile.am:
	  * sys/vcd/Makefile.am:
	  * sys/wininet/Makefile.am:
	  * win32/common/config.h:
	  Don't install static libs for plugins. Fixes #550851 for -bad.

2008-10-27 17:01:22 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 17/28] ext/x264/gstx264enc.c: Adapt to slightly modified x264 API.  Fixes #555238.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_init_encoder):
	  Adapt to slightly modified x264 API.  Fixes #555238.

2008-08-12 16:13:15 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 16/28] ext/x264/gstx264enc.*: Do not deal with duplicated input (timestamps).  If needed, a generic element can do so.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_reset),
	  (gst_x264_enc_chain), (gst_x264_enc_encode_frame):
	  * ext/x264/gstx264enc.h:
	  Do not deal with duplicated input (timestamps).  If needed,
	  a generic element can do so.
	  Do not manipulate input timestamps on the way out,
	  since that shifts the timeline and A/V sync.

2008-08-12 15:41:48 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 15/28] docs/plugins/gst-plugins-bad-plugins.args: Integrate new properties into documentation.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  Integrate new properties into documentation.
	  * ext/x264/gstx264enc.c: (gst_x264_enc_class_init),
	  (gst_x264_enc_init), (gst_x264_enc_init_encoder),
	  (gst_x264_enc_set_property), (gst_x264_enc_get_property):
	  Fix up API prior to eventual plugin move.
	  API: GstX264Enc:pass (provides more options, and changed to enum)

2008-08-12 13:08:39 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 14/28] Add documentation and unit test for x264enc.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * ext/x264/gstx264enc.c:
	  * tests/check/Makefile.am:
	  * tests/check/elements/x264enc.c: (setup_x264enc),
	  (cleanup_x264enc), (GST_START_TEST), (x264enc_suite), (main):
	  Add documentation and unit test for x264enc.

2008-08-11 17:24:58 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 13/28] ext/x264/gstx264enc.c: Allocate some buffers in more adaptive and economical fashion.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_init),
	  (gst_x264_enc_header_buf), (gst_x264_enc_encode_frame):
	  Allocate some buffers in more adaptive and economical fashion.

2008-08-11 15:16:14 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 12/28] configure.ac: Check for sufficiently up-to-date x264 API.
	  Original commit message from CVS:
	  * configure.ac:
	  Check for sufficiently up-to-date x264 API.
	  * ext/x264/gstx264enc.c: (gst_x264_enc_pass_get_type),
	  (gst_x264_enc_base_init), (gst_x264_enc_class_init),
	  (gst_x264_enc_init), (gst_x264_enc_init_encoder),
	  (gst_x264_enc_set_property), (gst_x264_enc_get_property):
	  * ext/x264/gstx264enc.h:
	  Expose some more parameters of the x264 encoder as properties.

2008-08-08 15:07:12 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 11/28] ext/x264/gstx264enc.c: Coding style and layout; re-order some functions in more typical and natural flow.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_log_callback),
	  (gst_x264_enc_finalize), (gst_x264_enc_header_buf),
	  (gst_x264_enc_set_src_caps), (gst_x264_enc_sink_set_caps),
	  (gst_x264_enc_flush_frames):
	  Coding style and layout; re-order some functions in more
	  typical and natural flow.

2008-08-08 14:19:16 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 10/28] ext/x264/: Use GQueue in stead of custom queue code.
	  Original commit message from CVS:
	  * ext/x264/Makefile.am:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps),
	  (gst_x264_enc_sink_set_caps), (gst_x264_enc_init),
	  (gst_x264_enc_reset), (gst_x264_enc_finalize),
	  (gst_x264_enc_flush_frames), (gst_x264_enc_sink_event),
	  (gst_x264_enc_chain), (gst_x264_enc_encode_frame),
	  (gst_x264_enc_change_state), (gst_x264_enc_set_property):
	  * ext/x264/gstx264enc.h:
	  Use GQueue in stead of custom queue code.
	  Factorize flushing out encoder delayed frames.
	  Factorize initialization and state change reset.

2008-08-08 10:56:02 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 09/28] Use configure-generated _stdint.h.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.h:
	  * sys/fbdev/gstfbdevsink.c:
	  Use configure-generated _stdint.h.

2008-08-08 10:13:36 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  [MOVED FROM BAD 08/28] ext/x264/: Use video format library and GST_WRITE_*_BE macros where applicable.
	  Original commit message from CVS:
	  * ext/x264/Makefile.am:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_header_buf),
	  (gst_x264_enc_sink_set_caps), (gst_x264_enc_base_init),
	  (gst_x264_enc_class_init), (gst_x264_enc_log_callback),
	  (gst_x264_enc_init), (gst_x264_enc_init_encoder),
	  (gst_x264_enc_finalize), (gst_x264_enc_chain),
	  (gst_x264_enc_encode_frame), (plugin_init):
	  * ext/x264/gstx264enc.h:
	  Use video format library and GST_WRITE_*_BE macros where applicable.
	  Use finalize in stead of dispose.
	  Set up debug category and log callback.

2008-06-04 11:33:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  [MOVED FROM BAD 07/28] ext/x264/gstx264enc.c: Try harder not to crash when we get an EOS event but haven't set up the encoder yet (as may ha...
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_header_buf),
	  (gst_x264_enc_sink_event), (gst_x264_enc_chain),
	  (gst_x264_enc_encode_frame):
	  Try harder not to crash when we get an EOS event but haven't set
	  up the encoder yet (as may happen when upstream errors out with
	  not-negotiated, for example). Also, always push the EOS event
	  downstream.

2007-12-11 16:26:07 +0000  Wim Taymans <wim.taymans@gmail.com>

	  [MOVED FROM BAD 06/28] ext/x264/gstx264enc.c: Fix caps memleak.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps):
	  Fix caps memleak.

2007-10-26 17:18:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  [MOVED FROM BAD 05/28] ext/x264/gstx264enc.c: Fix build against the libx264 version that ships with debian stable.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c:
	  Fix build against the libx264 version that ships with debian stable.

2007-09-24 10:53:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  [MOVED FROM BAD 04/28] Massive leak fixing, plus code cleanups.
	  Original commit message from CVS:
	  * ext/audioresample/gstaudioresample.c:
	  * ext/x264/gstx264enc.c:
	  * gst/dvdspu/gstdvdspu.c:
	  * gst/dvdspu/gstdvdspu.h:
	  * gst/festival/gstfestival.c:
	  * gst/h264parse/gsth264parse.c:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtsparse.c:
	  * gst/multifile/gstmultifilesink.c:
	  * gst/multifile/gstmultifilesrc.c:
	  * gst/nuvdemux/gstnuvdemux.c:
	  * sys/dshowsrcwrapper/gstdshowaudiosrc.c:
	  * sys/dshowsrcwrapper/gstdshowvideosrc.c:
	  * sys/vcd/vcdsrc.c:
	  Massive leak fixing, plus code cleanups.

2007-07-18 07:35:32 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  [MOVED FROM BAD 03/28] Add stdlib include (free, atoi, exit).
	  Original commit message from CVS:
	  * examples/app/appsrc_ex.c:
	  * examples/switch/switcher.c:
	  * ext/neon/gstneonhttpsrc.c:
	  * ext/timidity/gstwildmidi.c:
	  * ext/x264/gstx264enc.c:
	  * gst/mve/mveaudioenc.c: (mve_compress_audio):
	  * gst/rtpmanager/gstrtpclient.c:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  * gst/spectrum/demo-audiotest.c:
	  * gst/spectrum/demo-osssrc.c:
	  * sys/dvb/gstdvbsrc.c:
	  Add stdlib include (free, atoi, exit).

2007-05-15 21:23:53 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  [MOVED FROM BAD 02/28] ext/x264/gstx264enc.c (gst_x264_enc_init_encoder): This needs a version check.
	  Original commit message from CVS:
	  * ext/x264/gstx264enc.c (gst_x264_enc_init_encoder):
	  This needs a version check.
	  * gst/bayer/Makefile.am:
	  Fix the build.

2007-03-25 13:06:26 +0000  Michal Benes <michal.benes@itonis.tv>

	  [MOVED FROM BAD 01/28] Add libx264-based h264 encoder plugin (#421110). Probably doesn't handle 'odd' widths and heights correctly yet.
	  Original commit message from CVS:
	  Patch by: Michal Benes <michal.benes at itonis tv>
	  Patch by: Josef Zlomek <josef.zlomek at itonis tv>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/x264/Makefile.am:
	  * ext/x264/gstx264enc.c: (gst_x264_enc_me_get_type),
	  (gst_x264_enc_analyse_get_type),
	  (gst_x264_enc_timestamp_queue_init),
	  (gst_x264_enc_timestamp_queue_free),
	  (gst_x264_enc_timestamp_queue_put),
	  (gst_x264_enc_timestamp_queue_get), (gst_x264_enc_header_buf),
	  (gst_x264_enc_set_src_caps), (gst_x264_enc_sink_set_caps),
	  (gst_x264_enc_base_init), (gst_x264_enc_class_init),
	  (gst_x264_enc_init), (gst_x264_enc_init_encoder),
	  (gst_x264_enc_close_encoder), (gst_x264_enc_dispose),
	  (gst_x264_enc_sink_event), (gst_x264_enc_chain),
	  (gst_x264_enc_encode_frame), (gst_x264_enc_change_state),
	  (gst_x264_enc_set_property), (gst_x264_enc_get_property),
	  (plugin_init):
	  * ext/x264/gstx264enc.h:
	  Add libx264-based h264 encoder plugin (#421110). Probably doesn't
	  handle 'odd' widths and heights correctly yet.

2009-06-05 01:51:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: nicer metadata extraction of genre tags in some cases
	  Handle pseudo-strings like "(5)" and map them to the ID3v1 genre
	  that they presumably stand for.

2009-06-05 01:32:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: parse WM/Picture tags to extract cover art
	  Fixes #583112.

2009-05-31 20:20:30 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* REQUIREMENTS:
	  docs: fix http links for amr libs in REQUIREMENTS

2009-05-29 20:07:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fix bogus flow return handling in eos handler
	  Don't overwrite the origin flow return by whatever flow we get
	  when trying to push the remaining internally queued payloads.
	  We want to do our eos logic, ie. send an EOS event or segment-done
	  message in any case. Makes things EOS properly when an EOS event
	  is forced upon the pipeline so that the source returns
	  FLOW_UNEXPECTED to a pulling asfdemux. Should fix #582056.

2009-05-29 19:52:58 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* win32/common/config.h:
	  win32: update config.h

2009-05-22 19:27:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: bump core/base requirements to released versions

2009-05-22 19:26:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* autogen.sh:
	* configure.ac:
	  autogen: move the -Wno-portability for automake into configure.ac

2009-05-27 00:16:30 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpcmdec: Add multichannel channel maps, and send some tags
	  Add a multichannel map to the output caps, and send at least a CODEC and
	  BITRATE tag. I'm not too sure about the 5.1 and 7.1 channel maps. I have
	  no samples and can't find info about the channel ordering, but this is
	  better than nothing.

2009-05-26 17:19:54 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 888e0a2 to c572721

2009-05-22 10:20:46 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 6ab11d1 to 888e0a2

2009-05-21 15:18:06 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdsub/gstdvdsubdec.c:
	  dvdsubdec: Remove some dead code
	  Remove some redundant memset - gobject memory is already initalised to 0.
	  Remove a commented out line leftover from the previous commit

2009-05-21 14:20:22 +0100  Kapil Agrawal <kapil@mediamagictechnologies.com>

	* gst/dvdsub/gstdvdsubdec.c:
	* gst/dvdsub/gstdvdsubdec.h:
	  dvdsubdec: Support ARGB output
	  Negotiate to and render into ARGB buffers directly if the peer supports it.
	  Fixes: #580869

2009-05-19 00:51:49 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/a52dec/gsta52dec.c:
	  a52dec: Reconcile code with dtsdec
	  Perform some cleanups based on the dtsdec code such as using the boilerplate
	  macro and static pad template functions.
	  Add some documentation. Don't register a change in flags until we synch on
	  another frame successfully.

2009-05-14 12:32:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: Improve debugging a bit

2009-05-13 19:32:16 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Revert ranking switch with ffdec_mpeg2video. Fixes #574461

2009-05-13 01:55:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/Makevars:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  po: avoid conflicts of local *.po files with files in git
	  Make it so that filenames and line numbers are only stored in the *.pot file
	  (which is not in git), but not in the individual *.po files. This information
	  is hardly useful for translators in our case, and it should avoid the constant
	  conflicts of local *.po files with the ones in git which are caused by the
	  source files changing and the line numbers being updated. This commit might
	  cause one last merge conflict for you, which you can work around with
	  "git checkout po/*.po" before merging or pulling. After that there should
	  (hopefully) not be any more local modifications of these files (unless
	  someone committed additions or changes to translated strings and the
	  *.po files haven't been updated yet, that is).

2009-05-12 19:22:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: add Since tag to gtk-doc chunk

2009-05-13 01:46:00 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/elements/mpeg2dec.c:
	  checks: fix mpeg2dec unit test again after interlace addition to caps

2009-05-12 20:34:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: work around old mpeg2dec versions
	  The repeat first field flag was introduced in 0.5.0 so conditionally disable its
	  detection and just assume no rff is used. This fixes the compilation.
	  Fixes #582375

2009-05-12 20:24:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mpeg2dec/Makefile.am:
	  mpeg2dec: link to gstvideo
	  Fix compilation by adding the right include directories and linking to the video
	  library.

2009-05-12 11:57:04 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/asfpacket.c:
	  asfdemux: Downgrade simple statements from WARNING to DEBUG

2009-05-11 12:37:46 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/asfheaders.c:
	* gst/asfdemux/asfheaders.h:
	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/asfpacket.h:
	  asf: Detect more payload extensions.
	  These should help fix interlaced/PAR issues with more files.

2009-05-12 11:44:13 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	  mpeg2dec: Implement interlaced support.
	  Expand the debugging statements to show more picture information.

2009-05-12 11:19:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Lower rank to MARGINAL to make ffdec_mpeg2video the default
	  ffdec_mpeg2video is much faster, fixes bug #574461.

2009-05-10 16:53:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: Don't write a Xing header

2009-05-10 11:17:25 +0200  Marc-Andre Lureau <marcandre.lureau@gmail.com>

	* autogen.sh:
	  Run libtoolize before aclocal
	  This unbreaks the build in some cases. Fixes bug #582021

2009-05-09 15:28:18 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: use 64bit safe scaling functions.
	  Got this to fail when seeking in a 14GB file (the value in bytes is
	  bigger than 2**32).

2009-05-09 10:57:34 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: remove some pointless g_return_if_fail()s

2009-05-08 14:24:47 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* ext/twolame/gsttwolame.c:
	  Switch twolame to primary rank

2009-05-07 17:59:52 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/twolame/gsttwolame.c:
	  Add ranks to mp3 encoders

2009-05-07 17:57:17 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-ugly.spec.in:
	  Add twolame plugin to spec file

2009-05-02 18:11:06 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: use upstream segment and timestamps for some interpolation
	  This should particularly help in case of upstream live src, e.g. rtspsrc,
	  and especially so if it has to perform fallback to TCP.

2009-05-07 11:09:59 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstrtpasfdepay.c:
	  rtpasfdepay: Add support for fragmented packet (L == 0).
	  This happens with rtp-over-udp.

2009-05-07 10:10:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: Fixup the bitrate only for CBR
	  Additionally clarify some property descriptions.

2009-05-06 21:47:17 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* ext/lame/gstlamemp3enc.c:
	  lame: fix format string in debug statement

2009-05-06 15:37:44 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: Don't reject valid Xing tables of contents
	  Some Xing headers apparently start the TOC at byte 1 instead of 0. Don't
	  reject them because of it, just subtract the initial offset when reading
	  the table.

2009-05-06 15:27:01 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: Allow more bits to change in headers during resynch
	  Be more lenient about what we accept as changing bits in a header - basically,
	  only require that the mp3 sync marker is present, for the mpeg version,
	  layer and samplerate.
	  Fixes: #581464

2009-05-06 13:17:35 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mad/gstmad.c:
	  mad: Add duration of incoming/outgoing buffers in debug statements

2009-05-06 13:15:30 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: Remove useless checks for valid buffer duration.
	  The buffer duration is set to a valid value at the very top of
	  emit_frame(), we therefore don't need to check it later on.

2009-05-06 13:13:35 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: Fix stop condition for outputting buffers.
	  Some mp3 streams have an offset in timestamps, requiring us to push the
	  frame *AFTER* segment.stop in order for the decoder to be able to push
	  all data up to the segment.stop position.

2009-05-02 16:51:11 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: 0-base timestamps consistently (whether or not streaming)
	  This also makes timestamps (more) consistent before and after a possible
	  seek, and moreover makes for reasonable position reporting in live stream
	  (whose payload timestamps should not be taken for granted).

2009-05-02 13:45:22 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: report initial latency due to internal preroll queue

2009-05-02 13:44:48 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: enhance debug statement and refactor some initialization

2009-05-02 13:44:11 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: handle FIXME; activate pads after internal preroll also when streaming

2009-05-02 11:12:51 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: handle FIXME; normalize preroll

2009-05-02 16:08:03 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  asfdemux: fixes for streaming mode
	  * Improve newsegment handling, e.g. upstream might live in TIME.
	  * Only send newsegment if we have needed info.
	  * Avoid reading past end of data section.

2009-05-01 18:08:15 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: fixes/enhancements for streaming mode
	  * Do not rock the boat by reacting to FLUSH_START.
	  * Try to handle TIME seeking by seeking upstream in BYTES.
	  * Handle SEEKING query.

2009-05-05 16:38:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/lame/gstlamemp3enc.c:
	  lame: fix compilation with LAME versions < 3.98
	  lame_set_VBR_quality(), which takes a floating point value for the
	  quality, has been added only in v3.98. Use lame_set_VBR_q(), which
	  takes quality as an integer, for older LAME versions.
	  Fixes #581341.

2009-05-04 20:39:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* win32/common/config.h:
	  win32: update config.h to git
	  Until someone ports the new win32 config.h logic from the
	  other modules to -ugly.

2009-05-04 12:53:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	  Update docs

2009-05-04 12:51:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lamemp3enc: Add a note to the encoding-engine-quality property
	  that says, that this does not affect the bitrate at all.

2009-05-04 12:48:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	  lame: Implement preset interface

2009-05-04 12:47:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/twolame/gsttwolame.c:
	  twolame: Implement preset interface

2009-04-30 10:21:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* docs/plugins/gst-plugins-ugly-plugins.args:
	* ext/lame/gstlamemp3enc.c:
	* ext/lame/gstlamemp3enc.h:
	  lamemp3enc: Remove fast-vbr property and rename vbr-quality to quality

2009-04-30 10:16:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	  lame/lamemp3enc: Fix memory leak on FLUSH_STOP

2009-04-30 10:14:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlame.c:
	  lame: Deprecate the lame element

2009-04-30 10:13:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-synaesthesia.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	  Update docs

2009-04-30 10:10:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/gstlamemp3enc.c:
	  lame: Update example pipelines with the new properties

2009-04-29 19:01:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/lame/Makefile.am:
	* ext/lame/gstlame.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/lame/gstlamemp3enc.h:
	* ext/lame/plugin.c:
	  lame: Add lamemp3enc element with much simplified interface
	  This deprecates the lame element and fixes bug #494528.

2009-04-23 09:04:41 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/asfpacket.c:
	  asfpacket: Fix pull-mode timestamping handling.
	  The problem that happens is the following:
	  * A packet with multiple payloads comes in
	  * Those payloads get handled one by one
	  * The first payload contains the first audio payload with timestamp A
	  * The second payload contains the first video (key)frame with timestamp V (where V < A)
	  With the previous code, the following would happen:
	  * the first payload gets processed, then passed to queue_for_stream
	  * queue_for_stream detects it's the first valid timestamp received and stores
	  first_ts = A
	  * the second payload gets processed, then pass to queue_for_stream
	  * queue_for_stream detects the timestamp is lower than first_ts... and
	  discards it... resulting in losing the first keyframe of the video stream
	  We've been having this issue for *ages*... it's just that nobody noticed it
	  that much with playbin. But with playbin2's aggresive multiqueue handling, this
	  will result in multiqueue not being able to preroll (because the video decoder will
	  be dropping a ton of buffers before (maybe) receiving the next keyframe).
	  Tested with over 200 asf files, and they all play the first frame correctly now,
	  even the most braindead ones.

2009-04-21 14:12:06 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	  mp3parse: don't build seek table if we can't seek.
	  Fixes #573720 - unbounded memory usage increase when listening to mp3
	  stream for a long time.

2009-04-21 22:13:32 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From b3941ea to 6ab11d1

2009-04-21 20:17:57 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstxingmux.c:
	  mpegaudioparse: Remove dead assignment and duplicate code

2009-04-21 20:21:11 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: Actually return the return value for the seek handling.

2009-04-21 20:20:02 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegparse.c:
	  mpegstream: Remove dead assignments.
	  The duplicate assignment of update_time was weird... but it seems normal
	  that it's indeed the second statement which is the valid one.

2009-04-21 20:17:19 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/amrnb/amrnbparse.c:
	  armnb: Remove unused variable, adapt debug message accordingly.

2009-04-21 20:15:56 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/dvdsub/gstdvdsubdec.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegclock.c:
	  dvdsub/mpegstream: _class_init: Remove unused class variables

2009-04-19 14:03:58 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: Initialize flow for a corner case.
	  This might be caused by entering the if() line 1214 and then not having
	  any activated_streams.. resulting in reaching line 1267 without having
	  any valid flow value.

2009-04-19 14:03:38 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/twolame/gsttwolame.c:
	  twolame: Remove unneeded variable, value assigned was never read.

2009-04-19 14:03:19 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  mpeg2dec: Remove dead assignment. Value overwritten later on.

2009-04-19 14:02:44 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mad/gstmad.c:
	  mad: Remove dead assignment and variables given values which are never read.

2009-04-19 14:02:03 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/lame/gstlame.c:
	  lame: Remove unneeded variable, it's assigned a value never read.

2009-04-19 13:59:24 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: Remove dead assignment, value is being overwritten before being read.

2009-04-19 13:58:31 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/realmedia/rmdemux.c:
	  rmdemux: Remove unused accurate flag.
	  I couldn't see any reason why this was there in the first place.

2009-04-19 13:57:59 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/realmedia/asmrules.c:
	* gst/realmedia/rdtdepay.c:
	  realmedia: Remove dead assignments. The results are never read.

2009-04-19 13:57:10 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/realmedia/gstrdtbuffer.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtmanager.c:
	* gst/realmedia/rmdemux.c:
	  realmedia: Remove useless variables, only being used once (or not).

2009-04-19 13:55:24 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	* gst/asfdemux/gstrtspwms.c:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/rdtdepay.c:
	* gst/realmedia/rtspreal.c:
	  remove empty method implementations.

2009-04-18 08:12:08 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/asfdemux/gstrtspwms.c:
	  rtspwms: fix condition to detect extension commands for WMS
	  Reply with OK to the extension commands for WMS.

2009-04-15 11:09:56 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/realmedia/rtspreal.c:
	  realmedia: add special Real header to DESCRIBE message only for Real servers
	  Add headers that are specific to real only if a real server had been
	  detected by the OPTIONS message.

2009-04-14 19:16:46 +0200  David Hoyt <dhoyt at llnl.gov>

	* gst/synaesthesia/synaescope.c:
	  synaesthesia: fix compilation on windows
	  Fix compilation under MSVC due to references to headers
	  that are not available with the MS SDKs.
	  Fixes #578524

2009-04-14 10:54:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtspwms.c:
	  rtspwms: reply to extension commands
	  Reply with OK to the extension commands for WMS.

2009-04-14 10:53:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstrtpasfdepay.c:
	  asfdepay: fix a comment

2009-04-14 10:53:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/gstasfdemux.c:
	  asfdemux: add some more debugging

2009-04-14 10:51:45 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* configure.ac:
	  configure.ac: require git -base
	  We require 0.10.22.1 of -base for the new Match-If and ETag headers in RTSP.

2009-04-09 20:21:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/realmedia/rtspreal.c:
	  realmedia: add special Real header to SETUP message only for Real servers
	  Fixes playback of Windows Media RTSP streams and other non-Real RTSP
	  streams where the server errors out because it can't handle the
	  Real-specific 'Required: com.real.retain-entity-for-setup' header
	  we've been adding unconditionally in the recent past.
	  For reference:
	  rtsp://66.111.34.191:601/broadcast/alnour.rm
	  rtsp://195.134.224.231/snowboard_100.wmv

2009-04-08 11:44:53 -0700  Michael Smith <msmith@songbirdnest.com>

	* configure.ac:
	* gst/asfdemux/Makefile.am:
	  asfdemux: link to all required libraries including indirectly used ones.
	  On win32, we're required to link to all the libraries used - including
	  ones only indirectly used by other libs. So, add gstaudio, gsttag, and
	  (for windows only) winsock.

2009-04-04 21:19:23 +0300  Felipe Contreras <felipe.contreras@gmail.com>

	* common:
	  Automatic update of common submodule
	  From d0ea89e to b3941ea

2009-04-04 14:54:41 +0200  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From f8b3d91 to d0ea89e

2009-03-26 20:23:14 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  dvdlpcmdec: Fix factory klass, It's a 'Decoder', not a 'Demuxer'.

2009-03-25 16:39:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rtspreal.c:
	* gst/realmedia/rtspreal.h:
	  realrtsp: add more headers
	  Parse the ETag from the describe method and pass the sessionid as the value for
	  the If-Match header is subsequent setup calls.
	  Fixes support for more RealMedia RTSP streams.

2009-03-22 13:08:48 -0700  David Schleef <ds@schleef.org>

	* configure.ac:
	  twolame: bump requirement to 0.3.10
	  0.3.10 is the first version with the float32 encoder functions.
	  Fixes #576305.

2009-03-22 20:15:24 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  back to development -> 0.10.11.1

=== release 0.10.11 ===

2009-03-21 01:05:22 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* gst-plugins-ugly.doap:
	* po/cs.po:
	* win32/common/config.h:
	  Release 0.10.11

2009-03-21 00:28:29 +0000  Jan Schmidt <thaytan@noraisin.net>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/lt.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files

2009-03-13 16:45:08 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* win32/common/config.h:
	  0.10.10.3 pre-release

2009-03-13 16:40:38 +0000  Jan Schmidt <thaytan@noraisin.net>

	* po/fi.po:
	* po/id.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/sv.po:
	  po: Update translations from upstream

2009-03-13 16:38:08 +0000  Jan Schmidt <thaytan@noraisin.net>

	* po/LINGUAS:
	* po/tr.po:
	  po: Add Turkish translation

2009-03-13 19:23:12 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	  mp3parse: Fix glitches in the output when playing (for e.g.) AVI
	  Don't introduce glitches in the output by a) relaxing the threshold for
	  taking upstream timestamps in preference to our calculated timestamps and
	  b) only set the discont flag on outgoing buffers in response to an incoming
	  discont buffer.
	  Fixes: #575046

2009-03-12 15:57:31 +0100  Alessandro Decina <alessandro.decina@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: fix deadlock with accurate seeks.
	  Release pending_accurate_seeks_lock before forwarding the seek event upstream.
	  Fixes #575068.

2009-03-10 00:22:35 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/lt.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* win32/common/config.h:
	  0.10.10.2 pre-release
	  Bump version number, update translations and win32 config.h

2009-03-10 00:19:01 +0000  Jan Schmidt <thaytan@noraisin.net>

	* po/LINGUAS:
	* po/ja.po:
	  po: Add Japanese translation

2009-03-10 00:10:20 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* docs/plugins/inspect/plugin-synaesthesia.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* ext/Makefile.am:
	* po/POTFILES.in:
	  Moved twolame from Bad to Ugly

2008-11-04 12:42:30 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  [MOVED FROM BAD] Don't install static libs for plugins. Fixes #550851 for -bad.
	  Original commit message from CVS:
	  * ext/alsaspdif/Makefile.am:
	  * ext/amrwb/Makefile.am:
	  * ext/apexsink/Makefile.am:
	  * ext/arts/Makefile.am:
	  * ext/artsd/Makefile.am:
	  * ext/audiofile/Makefile.am:
	  * ext/audioresample/Makefile.am:
	  * ext/bz2/Makefile.am:
	  * ext/cdaudio/Makefile.am:
	  * ext/celt/Makefile.am:
	  * ext/dc1394/Makefile.am:
	  * ext/dirac/Makefile.am:
	  * ext/directfb/Makefile.am:
	  * ext/divx/Makefile.am:
	  * ext/dts/Makefile.am:
	  * ext/faac/Makefile.am:
	  * ext/faad/Makefile.am:
	  * ext/gsm/Makefile.am:
	  * ext/hermes/Makefile.am:
	  * ext/ivorbis/Makefile.am:
	  * ext/jack/Makefile.am:
	  * ext/jp2k/Makefile.am:
	  * ext/ladspa/Makefile.am:
	  * ext/lcs/Makefile.am:
	  * ext/libfame/Makefile.am:
	  * ext/libmms/Makefile.am:
	  * ext/metadata/Makefile.am:
	  * ext/mpeg2enc/Makefile.am:
	  * ext/mplex/Makefile.am:
	  * ext/musepack/Makefile.am:
	  * ext/musicbrainz/Makefile.am:
	  * ext/mythtv/Makefile.am:
	  * ext/nas/Makefile.am:
	  * ext/neon/Makefile.am:
	  * ext/ofa/Makefile.am:
	  * ext/polyp/Makefile.am:
	  * ext/resindvd/Makefile.am:
	  * ext/sdl/Makefile.am:
	  * ext/shout/Makefile.am:
	  * ext/snapshot/Makefile.am:
	  * ext/sndfile/Makefile.am:
	  * ext/soundtouch/Makefile.am:
	  * ext/spc/Makefile.am:
	  * ext/swfdec/Makefile.am:
	  * ext/tarkin/Makefile.am:
	  * ext/theora/Makefile.am:
	  * ext/timidity/Makefile.am:
	  * ext/twolame/Makefile.am:
	  * ext/x264/Makefile.am:
	  * ext/xine/Makefile.am:
	  * ext/xvid/Makefile.am:
	  * gst-libs/gst/app/Makefile.am:
	  * gst-libs/gst/dshow/Makefile.am:
	  * gst/aiffparse/Makefile.am:
	  * gst/app/Makefile.am:
	  * gst/audiobuffer/Makefile.am:
	  * gst/bayer/Makefile.am:
	  * gst/cdxaparse/Makefile.am:
	  * gst/chart/Makefile.am:
	  * gst/colorspace/Makefile.am:
	  * gst/dccp/Makefile.am:
	  * gst/deinterlace/Makefile.am:
	  * gst/deinterlace2/Makefile.am:
	  * gst/dvdspu/Makefile.am:
	  * gst/festival/Makefile.am:
	  * gst/filter/Makefile.am:
	  * gst/flacparse/Makefile.am:
	  * gst/flv/Makefile.am:
	  * gst/games/Makefile.am:
	  * gst/h264parse/Makefile.am:
	  * gst/librfb/Makefile.am:
	  * gst/mixmatrix/Makefile.am:
	  * gst/modplug/Makefile.am:
	  * gst/mpeg1sys/Makefile.am:
	  * gst/mpeg4videoparse/Makefile.am:
	  * gst/mpegdemux/Makefile.am:
	  * gst/mpegtsmux/Makefile.am:
	  * gst/mpegvideoparse/Makefile.am:
	  * gst/mve/Makefile.am:
	  * gst/nsf/Makefile.am:
	  * gst/nuvdemux/Makefile.am:
	  * gst/overlay/Makefile.am:
	  * gst/passthrough/Makefile.am:
	  * gst/pcapparse/Makefile.am:
	  * gst/playondemand/Makefile.am:
	  * gst/rawparse/Makefile.am:
	  * gst/real/Makefile.am:
	  * gst/rtjpeg/Makefile.am:
	  * gst/rtpmanager/Makefile.am:
	  * gst/scaletempo/Makefile.am:
	  * gst/sdp/Makefile.am:
	  * gst/selector/Makefile.am:
	  * gst/smooth/Makefile.am:
	  * gst/smoothwave/Makefile.am:
	  * gst/speed/Makefile.am:
	  * gst/speexresample/Makefile.am:
	  * gst/stereo/Makefile.am:
	  * gst/subenc/Makefile.am:
	  * gst/tta/Makefile.am:
	  * gst/vbidec/Makefile.am:
	  * gst/videodrop/Makefile.am:
	  * gst/videosignal/Makefile.am:
	  * gst/virtualdub/Makefile.am:
	  * gst/vmnc/Makefile.am:
	  * gst/y4m/Makefile.am:
	  * sys/acmenc/Makefile.am:
	  * sys/cdrom/Makefile.am:
	  * sys/dshowdecwrapper/Makefile.am:
	  * sys/dshowsrcwrapper/Makefile.am:
	  * sys/dvb/Makefile.am:
	  * sys/dxr3/Makefile.am:
	  * sys/fbdev/Makefile.am:
	  * sys/oss4/Makefile.am:
	  * sys/qcam/Makefile.am:
	  * sys/qtwrapper/Makefile.am:
	  * sys/vcd/Makefile.am:
	  * sys/wininet/Makefile.am:
	  * win32/common/config.h:
	  Don't install static libs for plugins. Fixes #550851 for -bad.

2008-09-02 09:56:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  [MOVED FROM BAD] Enable/fix up translations for these plugins.
	  Original commit message from CVS:
	  * ext/resindvd/plugin.c: (plugin_init):
	  * ext/resindvd/resindvdsrc.c:
	  * ext/twolame/gsttwolame.c: (plugin_init):
	  * gst/aiffparse/aiffparse.c: (plugin_init):
	  Enable/fix up translations for these plugins.
	  * po/LINGUAS:
	  Add 'ca' to LINGUAS.
	  * po/POTFILES.in:
	  * po/POTFILES.skip:
	  Add more files for translation and more files which tools
	  should skip.

2008-08-07 14:34:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  [MOVED FROM BAD] ext/twolame/gsttwolame.*: Allow raw float samples as input for encoding.
	  Original commit message from CVS:
	  * ext/twolame/gsttwolame.c: (gst_two_lame_sink_setcaps),
	  (gst_two_lame_chain):
	  * ext/twolame/gsttwolame.h:
	  Allow raw float samples as input for encoding.

2008-08-02 17:39:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  [MOVED FROM BAD] Add TwoLAME MP2 encoding element, based on the LAME element.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/twolame/Makefile.am:
	  * ext/twolame/gsttwolame.c: (gst_two_lame_mode_get_type),
	  (gst_two_lame_padding_get_type), (gst_two_lame_emphasis_get_type),
	  (gst_two_lame_release_memory), (gst_two_lame_finalize),
	  (gst_two_lame_base_init), (gst_two_lame_class_init),
	  (gst_two_lame_src_setcaps), (gst_two_lame_sink_setcaps),
	  (gst_two_lame_init), (gst_two_lame_set_property),
	  (gst_two_lame_get_property), (gst_two_lame_sink_event),
	  (gst_two_lame_chain), (gst_two_lame_setup),
	  (gst_two_lame_change_state), (gst_two_lame_get_default_settings),
	  (plugin_init):
	  * ext/twolame/gsttwolame.h:
	  Add TwoLAME MP2 encoding element, based on the LAME element.

2009-03-09 23:13:20 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 7032163 to f8b3d91

2009-03-08 12:05:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From ffa738d to 7032163

2009-03-08 11:21:32 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 3f13e4e to ffa738d

2009-03-07 11:47:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 3c7456b to 3f13e4e

2009-03-07 10:47:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 57c83f2 to 3c7456b

2009-03-06 12:30:36 -0800  Michael Smith <msmith@songbirdnest.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: be more conservative when changing layer/rate/etc.
	  Don't allow a change in sample rate/channels/layer/version unless we can
	  see another frame at the correct offset. Prevents accidently flipping
	  due to simple single-bit corruption.

2009-03-04 16:52:59 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/realmedia/realhash.c:
	  rmdemux: Fix strict-aliasing warnings.
	  Use existing GST_READ_UINT32 and GST_WRITE_UINT32 macros instead of
	  hand-rolled ones.

2009-03-04 16:15:00 +0200  René Stadler <mail@renestadler.de>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: Remove empty lines added by buggy indent.

2009-02-27 13:41:58 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mpegaudioparse: Provide SEEKING query handling.
	  Since SEEK event handling might perform some conversion
	  from TIME to BYTES, do not let upstream fool application
	  into (TIME) seeking not being possible.

2009-02-25 13:34:05 -0800  Michael Smith <msmith@songbirdnest.com>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	  mp3parse: fix accurate seeks to near 0
	  Integer underflow made accurate seeks to near zero fail and seek to
	  completely the wrong place. Fix by clamping to zero, since we can't seek
	  to negative times anyway.

2009-02-25 20:52:08 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	* configure.ac:
	  build: Update shave init statement for changes in common. Bump common.

2009-02-25 18:19:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rtspreal.c:
	  rtspreal: ignore data streams. Fixes #527112
	  Ignore data streams when parsing the SDP as they don't contain anything we need
	  to put in the realmedia header.

2009-02-25 11:32:37 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 9cf8c9b to a6ce5c6

2009-02-24 15:25:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/mad/gstid3tag.c:
	  Forward unknown events
	  Forward unknown events upstream instead of dropping them. Also return the result
	  of the seek event instead of a fixed value.

2009-02-23 10:50:50 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/asfdemux/gstrtpasfdepay.c:
	  rtpasfdepay: Fix the build by adding the needed include for atoi.

2009-02-22 19:19:12 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	  Use shave for the build output

2009-02-22 16:00:02 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 5d7c9cc to 9cf8c9b

2009-02-22 14:22:30 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/asfdemux/gstasf.c:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rdtdepay.c:
	* gst/synaesthesia/gstsynaesthesia.c:
	* gst/synaesthesia/synaescope.c:
	  Fix indentation.

2009-02-22 14:21:22 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/realmedia/pnmsrc.c:
	  pnmsrc: Error out gracefully if location is NULL. Run gst-indent

2009-02-21 11:13:55 -0800  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From 80c627d to 5d7c9cc

2009-02-20 15:53:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/Makefile.am:
	* gst/realmedia/pnmsrc.c:
	* gst/realmedia/pnmsrc.h:
	* gst/realmedia/rademux.c:
	* gst/realmedia/rademux.h:
	* gst/realmedia/realmedia.c:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmdemux.h:
	  Add pnm:// uri source
	  Add a new utri handler for pnm:// that for now just redirects to the same uri
	  with the rtsp:// protocol, which usually works nowadays.
	  Separate the registration of the various plugins into a separate source file.

2009-02-20 13:48:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/asfdemux/Makefile.am:
	* gst/asfdemux/gstasf.c:
	* gst/asfdemux/gstrtpasfdepay.c:
	* gst/asfdemux/gstrtpasfdepay.h:
	  Add ASF depayloader
	  Add ASF depayloader based on latest public MicroSoft docs (MS-RTSP).
	  Fixes #335067.

2009-02-19 19:10:53 +0000  Zaheer Merali <zaheerabbas@merali.org>

	* ext/mad/gstmad.c:
	  mad: remove log line added in error

2009-02-19 19:08:10 +0000  Zaheer Merali <zaheerabbas@merali.org>

	* ext/mad/gstmad.c:
	  mad: just flush data when seeing BADDATAPTR instead of going into error state

2009-02-18 12:55:16 +0100  Roland Moser <rmoser@gmx.at>

	* gst/realmedia/rmdemux.c:
	  Fix parsing of the flags in rmdemux
	  Fix parsing of the flags in version 1 realmedia streams.
	  Fixes #571358.

2009-02-09 12:03:15 +0100  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Bump revision to use for common submodule.

2009-01-30 22:27:05 +0200  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  Add releaseinfo with online url.

2009-01-30 17:34:27 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Bump common

2009-01-30 14:35:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  Remove redundant push_mode struct member

2009-01-30 09:04:46 +0100  Edward Hervey <bilboed@bilboed.com>

	* autogen.sh:
	  Fix previous commit, wasn't actually setting up a symbolic link

2009-01-30 08:56:33 +0100  Edward Hervey <bilboed@bilboed.com>

	* autogen.sh:
	* common:
	  Use a symbolic link for the pre-commit client-side hook

2009-01-30 08:56:24 +0100  Edward Hervey <bilboed@bilboed.com>

	* .gitignore:
	  Ignore some more files

2009-01-26 22:40:10 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/synaesthesia/synaescope.c:
	* gst/synaesthesia/synaescope.h:
	  Precalculate some size dependent variables. Demystify the height scaling a bit.
	  Adds more comments to the code about the height scaling. RIght now only certain heights are screen filling.

2009-01-26 21:26:46 +0200  Stefan Kost <ensonic@users.sf.net>

	  Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-ugly

2009-01-26 20:12:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/rdtdepay.c:
	  Set flags on the realmedia chunks
	  Set the keyframe flags from the RDT packet to the realmedia chunk so that the
	  descrambler can be reset on keyframes. Fixes #556714.

2009-01-26 20:10:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/realmedia/gstrdtbuffer.c:
	* gst/realmedia/gstrdtbuffer.h:
	  Add method to get RDT flags
	  Add a method to get the RDT flags. We need these flags to mark keyframes to
	  reset the descrambing queue. See #556714.

2009-01-26 10:00:57 +0100  Hans de Goede <jwrdegoede@fedoraproject.org>

	* gst/asfdemux/asfpacket.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	  Add seeking support to asfdemux in push mode
	  Fixes bug #568836.

2009-01-26 09:57:26 +0100  Hans de Goede <jwrdegoede@fedoraproject.org>

	* gst/asfdemux/asfpacket.c:
	  Drop packets with an invalid replicated data length
	  Drop packets with an invalid replicated data length
	  instead of continuing with an invalid timestamp
	  and uninitialized payload metadata.
	  All other code assumes that the timestamps are valid.

2009-01-25 22:31:52 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/synaesthesia/synaescope.h:
	  Change comment to refer to right variable.

2009-01-24 23:27:08 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/synaesthesia/gstsynaesthesia.c:
	* gst/synaesthesia/gstsynaesthesia.h:
	* gst/synaesthesia/synaescope.c:
	* gst/synaesthesia/synaescope.h:
	  Bring synaesthesia to next century.
	  Do proper size negotiation. Change engine API to allow resizes. Small cleanups elsewhere.

2009-01-23 17:51:00 -0800  David Schleef <ds@schleef.org>

	* gst/asfdemux/gstasfdemux.c:
	  Fix leak of converted string

2009-01-23 23:44:01 +0000  Jan Schmidt <thaytan@noraisin.net>

	* .gitignore:
	* po/.gitignore:
	  Add more to the gitignores

2009-01-23 23:59:38 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/synaesthesia/gstsynaesthesia.c:
	  Make synaesthesia build again.
	  _init() has no params.

2009-01-22 18:15:36 +0200  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Update common snapshot.

2009-01-22 13:50:09 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* common:
	  Fix pre-commit hook

2009-01-22 06:14:31 +0100  Edward Hervey <bilboed@bilboed.com>

	* autogen.sh:
	* common:
	  Install and use pre-commit indentation hook from common

2009-01-21 04:32:33 +0100  Edward Hervey <bilboed@bilboed.com>

	* autogen.sh:
	  autogen.sh : Use git submodule

2009-01-08 08:19:25 +0000  Yves Lefebvre <ivanohe@abacom.com>

	  gst/mpegstream/: Fix some caps leaks. Fixes bug #564885.
	  Original commit message from CVS:
	  Patch by: Yves Lefebvre <ivanohe at abacom dot com>
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_video_stream),
	  (gst_dvd_demux_get_audio_stream),
	  (gst_dvd_demux_get_subpicture_stream), (gst_dvd_demux_reset):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_init_stream),
	  (gst_mpeg_demux_get_video_stream),
	  (gst_mpeg_demux_get_audio_stream), (gst_mpeg_demux_reset):
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_chain):
	  Fix some caps leaks. Fixes bug #564885.

2009-01-02 00:43:53 +0000  Alessandro Decina <alessandro.d@gmail.com>

	  ext/cdio/gstcdio.c: Remove unused format argument.
	  Original commit message from CVS:
	  * ext/cdio/gstcdio.c:
	  Remove unused format argument.

2008-12-13 20:41:40 +0000  Tim-Philipp Müller <tim@centricular.net>

	  win32/common/: Hardcode cpu for win32 build, just like we do in the other modules, to remove VCS conflicts and incons...
	  Original commit message from CVS:
	  * win32/common/.cvsignore:
	  * win32/common/config.h:
	  * win32/common/config.h.in:
	  Hardcode cpu for win32 build, just like we do in the other modules,
	  to remove VCS conflicts and inconsistent defines between modules,
	  and update version defines to CVS.

2008-12-13 16:29:38 +0000  Edward Hervey <bilboed@bilboed.com>

	  m4/Makefile.am: Removed two more .m4 that aren't shipped with gettext 0.17 anymore.
	  Original commit message from CVS:
	  * m4/Makefile.am:
	  Removed two more .m4 that aren't shipped with gettext 0.17 anymore.

2008-12-13 13:01:49 +0000  Edward Hervey <bilboed@bilboed.com>

	  m4/Makefile.am: inttypes.m4 hasn't been available since gettext-0.15, and since we now require gettext >= 0.17 ... we...
	  Original commit message from CVS:
	  * m4/Makefile.am:
	  inttypes.m4 hasn't been available since gettext-0.15, and since we now
	  require gettext >= 0.17 ... we can remove it from the list of files to
	  dist.

2008-12-10 15:42:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Do an initial class_ref on an internal enum type from within the class_init f...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (channel_mode_class),
	  (GST_TYPE_MP3_CHANNEL_MODE), (mp3_type_frame_length_from_header),
	  (gst_mp3parse_emit_frame), (mp3parse_get_query_types):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Do an initial class_ref on an internal enum type from within the
	  class_init function so that there aren't any issues when multiple
	  mp3parse elements are started in separate threads at the same
	  time. (Why we use an enum type here if the tag is registered as
	  a string type, I don't know). Also remove custom UNUSED macro
	  and use GLib's instead.

2008-12-04 20:11:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Apparently AC_CONFIG_MACRO_DIR breaks when using more than one macro directory, reverting last change.
	  Original commit message from CVS:
	  * configure.ac:
	  Apparently AC_CONFIG_MACRO_DIR breaks when using more
	  than one macro directory, reverting last change.

2008-12-04 19:48:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Set AC_CONFIG_MACRO_DIR to common/m4 to point autoconf to our M4 macros.
	  Original commit message from CVS:
	  * configure.ac:
	  Set AC_CONFIG_MACRO_DIR to common/m4 to point autoconf to
	  our M4 macros.

2008-12-01 14:39:34 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mpeg2dec/gstmpeg2dec.c: Last change introduced a regression that made mpeg2dec handle some 4:2:2 videos as 4:4:4....
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format):
	  Last change introduced a regression that made mpeg2dec handle
	  some 4:2:2 videos as 4:4:4. Fixes bug #562086.

2008-11-29 13:33:37 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Require gettext 0.17 because older versions don't mix with libtool 2.2. At build time an older gettext version will s...
	  Original commit message from CVS:
	  Patch by: Cygwin Ports maintainer
	  <yselkowitz at users dot sourceforge dot net>
	  * autogen.sh:
	  * configure.ac:
	  Require gettext 0.17 because older versions don't mix with libtool
	  2.2. At build time an older gettext version will still work.
	  Fixes bug #556091.

2008-11-25 03:44:06 +0000  David Schleef <ds@schleef.org>

	  ext/mpeg2dec/gstmpeg2dec.*: Add support for 4:4:4 video.  Fixes #562086
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c:
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Add support for 4:4:4 video.  Fixes #562086

2008-11-24 09:51:39 +0000  Simon Holm Thøgersen <odie@cs.aau.dk>

	  ext/mpeg2dec/gstmpeg2dec.c: Add support for the STATE_SEQUENCE_MODIFIED state in mpeg2dec >= 0.5.0. Fixes bug #562065.
	  Original commit message from CVS:
	  Patch by: Simon Holm Thøgersen <odie at cs dot aau dot dk>
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_chain):
	  Add support for the STATE_SEQUENCE_MODIFIED state in mpeg2dec
	  >= 0.5.0. Fixes bug #562065.

2008-11-20 21:31:19 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/asfdemux/gstasfdemux.c: Remove duplicate and broken code for the streaming case and simply reuse the much better ...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_chain):
	  Remove duplicate and broken code for the streaming case and simply reuse
	  the much better working pull based code. Fixes #560348.

2008-11-20 20:42:33 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to development -> 0.10.10.1
	  Original commit message from CVS:
	  * configure.ac:
	  Back to development -> 0.10.10.1

=== release 0.10.10 ===

2008-11-19 14:30:44 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* gst-plugins-ugly.doap:
	* po/LINGUAS:
	  Release 0.10.10 - "Under the House"
	  Original commit message from CVS:
	  Release 0.10.10 - "Under the House"

2008-11-19 13:59:12 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* po/bg.po:
	* po/ca.po:
	* po/da.po:
	* po/id.po:
	* po/it.po:
	* po/mt.po:
	* po/vi.po:
	  Update .po files
	  Original commit message from CVS:
	  Update .po files

2008-11-17 09:53:39 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/sidplay/Makefile.am: Use GST_CXXFLAGS for C++ code instead of GST_CFLAGS. The latter could contain CFLAGS that do...
	  Original commit message from CVS:
	  * ext/sidplay/Makefile.am:
	  Use GST_CXXFLAGS for C++ code instead of GST_CFLAGS. The latter could
	  contain CFLAGS that do not exist for C++, like -Wvla or
	  -Wdeclaration-after-statement. Fixes bug #561161.

2008-11-12 23:19:55 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: 0.10.9.3 pre-release
	  Original commit message from CVS:
	  * configure.ac:
	  0.10.9.3 pre-release

2008-11-11 17:14:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/asfdemux/gstasfdemux.c: Only copy sane aspect ratio values on the caps. Fixes #559682.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_video_stream):
	  Only copy sane aspect ratio values on the caps. Fixes #559682.

2008-11-06 13:29:37 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	* ChangeLog:
	  Add bug number to the mp3parse mpeg 2.5 fix
	  Original commit message from CVS:
	  Add bug number to the mp3parse mpeg 2.5 fix

2008-11-05 11:03:07 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/amrnb/amrnbdec.*: Add a property to select the amr variant. Fixes #424070.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnb_variant_get_type),
	  (gst_amrnbdec_class_init), (gst_amrnbdec_set_property),
	  (gst_amrnbdec_get_property), (gst_amrnbdec_chain):
	  * ext/amrnb/amrnbdec.h:
	  Add a property to select the amr variant. Fixes #424070.

2008-11-03 11:31:49 +0000  Tal Shalif <tshalif@nargila.org>

	  gst/mpegstream/: Fix memmory corruption due to not storing the new updated pointer after a g_renew(). Fixes #558896.
	  Original commit message from CVS:
	  Patch by: Tal Shalif <tshalif at nargila dot org>
	  * gst/mpegstream/gstdvddemux.c:
	  (gst_dvd_demux_get_subpicture_stream):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
	  (gst_mpeg_demux_get_audio_stream):
	  Fix memmory corruption due to not storing the new updated pointer
	  after a g_renew(). Fixes #558896.

2008-10-30 14:50:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/Makefile.am: Blacklist cdiocddasrc from state-change tests. Fixes #558277.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Blacklist cdiocddasrc from state-change tests. Fixes #558277.

2008-10-24 20:44:13 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: oops, forgot to bump the version back to devel after the last release 0.10.9.1
	  Original commit message from CVS:
	  * configure.ac:
	  oops, forgot to bump the version back to devel
	  after the last release 0.10.9.1

2008-10-24 12:47:05 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.c: Add suport for mpeg4 and aac audio. See #556714.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
	  (gst_rmdemux_descramble_mp4a_audio),
	  (gst_rmdemux_handle_scrambled_packet):
	  Add suport for mpeg4 and aac audio. See #556714.

2008-10-14 19:28:05 +0000  Michael Smith <msmith@xiph.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Calculate samples per frame correctly for "MPEG 2.5" layer 3.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  Calculate samples per frame correctly for "MPEG 2.5" layer 3.
	  Fixes skipping on these files.

2008-10-14 12:51:41 +0000  Robin Stocker <robin@nibor.org>

	  ext/mpeg2dec/gstmpeg2dec.*: Prefer the container's PAR over the stream's PAR if it's given in the srcpad caps. Fixes ...
	  Original commit message from CVS:
	  Patch by: Robin Stocker <robin at nibor dot org>
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
	  (handle_sequence), (gst_mpeg2dec_setcaps):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Prefer the container's PAR over the stream's PAR if it's
	  given in the srcpad caps. Fixes bug #556184.

2008-10-13 18:10:25 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Don't install static libs for plugins. Fixes #550851 for ugly.
	  Original commit message from CVS:
	  * ext/a52dec/Makefile.am:
	  * ext/amrnb/Makefile.am:
	  * ext/cdio/Makefile.am:
	  * ext/dvdnav/Makefile.am:
	  * ext/dvdread/Makefile.am:
	  * ext/lame/Makefile.am:
	  * ext/mad/Makefile.am:
	  * ext/mpeg2dec/Makefile.am:
	  * ext/sidplay/Makefile.am:
	  * gst/ac3parse/Makefile.am:
	  * gst/asfdemux/Makefile.am:
	  * gst/dvdlpcmdec/Makefile.am:
	  * gst/dvdsub/Makefile.am:
	  * gst/iec958/Makefile.am:
	  * gst/mpegaudioparse/Makefile.am:
	  * gst/mpegstream/Makefile.am:
	  * gst/realmedia/Makefile.am:
	  * gst/synaesthesia/Makefile.am:
	  Don't install static libs for plugins. Fixes #550851 for ugly.

2008-10-13 09:04:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Post a GST_ELEMENT_ERROR if we get EOS before seeing any valid frames. Partia...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event):
	  Post a GST_ELEMENT_ERROR if we get EOS before seeing any valid
	  frames. Partially fixes bug #552237.

2008-10-09 09:23:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/amrnb/amrnbparse.c: use #defines for HEADER. Unref the object in _sink_activate_pull().
	  Original commit message from CVS:
	  * ext/amrnb/amrnbparse.c:
	  use #defines for HEADER. Unref the object in _sink_activate_pull().

2008-10-08 13:59:57 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mad/gstmad.*: track discont on incomming buffers and set discont on outgoing buffers.
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_src_event), (gst_mad_chain),
	  (gst_mad_change_state):
	  * ext/mad/gstmad.h:
	  track discont on incomming buffers and set discont on outgoing
	  buffers.
	  Pass unknown events upstreams instead of dropping them.

2008-09-28 17:33:43 +0000  Sameer Naik <sameer.subscriptions@damagehead.com>

	  ext/mpeg2dec/gstmpeg2dec.*: Fix compilation with --disable-index. Fixes bug #554150.
	  Original commit message from CVS:
	  Patch by: Sameer Naik <sameer dot subscriptions at damagehead dot com>
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_class_init),
	  (handle_slice), (gst_mpeg2dec_sink_event),
	  (gst_mpeg2dec_src_event):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Fix compilation with --disable-index. Fixes bug #554150.

2008-09-28 17:31:37 +0000  Sameer Naik <sameer.subscriptions@damagehead.com>

	  ext/mad/gstmad.*: Fix compilation with --disable-index. Fixes bug #554142.
	  Original commit message from CVS:
	  Patch by: Sameer Naik <sameer dot subscriptions at damagehead dot com>
	  * ext/mad/gstmad.c: (gst_mad_class_init), (gst_mad_dispose),
	  (gst_mad_src_event), (gst_mad_chain):
	  * ext/mad/gstmad.h:
	  Fix compilation with --disable-index. Fixes bug #554142.

2008-09-27 00:20:48 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  ext/a52dec/gsta52dec.*: Fix channel re-negotiation on a change of the incoming stream.
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c:
	  * ext/a52dec/gsta52dec.h:
	  Fix channel re-negotiation on a change of the incoming stream.
	  Patch By: Thijs Vermeir <thijsvermeir@gmail.com>
	  Fixes: #551660

2008-09-26 14:39:42 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/amrnb/amrnbenc.*: Pass the discont flag from the input buffer on to the output buffer in the AMR encoder.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_chain),
	  (gst_amrnbenc_state_change):
	  * ext/amrnb/amrnbenc.h:
	  Pass the discont flag from the input buffer on to the output buffer in
	  the AMR encoder.

2008-09-26 10:04:35 +0000  Benoit Fouet <benoit.fouet@purplelabs.com>

	  ext/amrnb/amrnbparse.*: Add flush seek handler. Fixes #536274.
	  Original commit message from CVS:
	  Patch by: Benoit Fouet <benoit dot fouet at purplelabs dot com>
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_init),
	  (gst_amrnbparse_handle_pull_seek),
	  (gst_amrnbparse_handle_push_seek), (gst_amrnbparse_src_event),
	  (gst_amrnbparse_sink_activate_push),
	  (gst_amrnbparse_sink_activate_pull):
	  * ext/amrnb/amrnbparse.h:
	  Add flush seek handler. Fixes #536274.

2008-09-26 09:57:02 +0000  Benoit Fouet <benoit.fouet@purplelabs.com>

	  ext/amrnb/amrnbparse.*: Fix the duration query. Fixes #536226.
	  Original commit message from CVS:
	  Patch by: Benoit Fouet <benoit dot fouet at purplelabs dot com>
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_query),
	  (gst_amrnbparse_chain), (gst_amrnbparse_loop),
	  (gst_amrnbparse_state_change):
	  * ext/amrnb/amrnbparse.h:
	  Fix the duration query. Fixes #536226.
	  Also set caps on the pads and buffers more correctly.

2008-09-02 09:43:10 +0000  Tim-Philipp Müller <tim@centricular.net>

	  po/LINGUAS: Add 'ca' to LINGUAS.
	  Original commit message from CVS:
	  * po/LINGUAS:
	  Add 'ca' to LINGUAS.

2008-08-28 09:57:30 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/asfdemux/gstasfdemux.c: Fix aggregated GST_FLOW_RETURN check for when to send an error message on the bus.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_loop):
	  Fix aggregated GST_FLOW_RETURN check for when to send an error message
	  on the bus.
	  Re-fixes #546859

2008-08-27 15:55:05 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtdepay.*: Parse other values from the incomming caps.
	  Original commit message from CVS:
	  * gst/realmedia/rdtdepay.c: (gst_rdt_depay_init),
	  (gst_rdt_depay_setcaps), (gst_rdt_depay_sink_event),
	  (create_segment_event), (gst_rdt_depay_push),
	  (gst_rdt_depay_handle_data), (gst_rdt_depay_change_state):
	  * gst/realmedia/rdtdepay.h:
	  Parse other values from the incomming caps.
	  Add event handler to handle flushing and segments.
	  Create segment events.
	  * gst/realmedia/rdtjitterbuffer.c: (rdt_jitter_buffer_insert):
	  Do skew correction based on RDT timestamps.
	  * gst/realmedia/rdtmanager.c: (activate_session),
	  (gst_rdt_manager_parse_caps), (gst_rdt_manager_setcaps),
	  (create_recv_rtp):
	  Parse caps to get the clockrate needed for the jitterbuffer.
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_video_packet):
	  Apply timestamp fixup after correcting for initial timestamp and
	  internal base timestamp corrections.

2008-08-27 11:28:50 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtdepay.*: Check seqnum gaps and drop duplicate packets or mark outgoing buffers with a DISCONT flag w...
	  Original commit message from CVS:
	  * gst/realmedia/rdtdepay.c: (gst_rdt_depay_handle_data),
	  (gst_rdt_depay_change_state):
	  * gst/realmedia/rdtdepay.h:
	  Check seqnum gaps and drop duplicate packets or mark outgoing buffers
	  with a DISCONT flag when needed.
	  * gst/realmedia/rdtmanager.c: (gst_rdt_manager_query_src):
	  Report the configure latency instead of a hardcoded value.

2008-08-27 10:02:06 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtmanager.c: Include the new rdt jitterbuffer in the session manager.
	  Original commit message from CVS:
	  * gst/realmedia/rdtmanager.c: (create_session), (activate_session),
	  (free_session), (gst_rdt_manager_query_src),
	  (gst_rdt_manager_src_activate_push),
	  (gst_rdt_manager_handle_data_packet), (gst_rdt_manager_chain_rdt),
	  (gst_rdt_manager_loop), (create_recv_rtp):
	  Include the new rdt jitterbuffer in the session manager.

2008-08-27 09:58:00 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtdepay.*: Use new RDT parsing helper functions.
	  Original commit message from CVS:
	  * gst/realmedia/rdtdepay.c: (gst_rdt_depay_class_init),
	  (gst_rdt_depay_finalize), (gst_rdt_depay_setcaps),
	  (gst_rdt_depay_push), (gst_rdt_depay_handle_data),
	  (gst_rdt_depay_chain), (gst_rdt_depay_change_state):
	  * gst/realmedia/rdtdepay.h:
	  Use new RDT parsing helper functions.
	  Copy discont flags correctly.
	  Push the header from the chain function instead of the setcaps function.
	  Copy incomming timestamp to the output buffers instead of doing magic
	  with the RDT timestamps.

2008-08-27 09:52:49 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/: Add first support for parsing RDT messages.
	  Original commit message from CVS:
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/gstrdtbuffer.c: (gst_rdt_buffer_validate_data),
	  (gst_rdt_buffer_validate), (gst_rdt_buffer_get_packet_count),
	  (read_packet_header), (gst_rdt_buffer_get_first_packet),
	  (gst_rdt_packet_move_to_next), (gst_rdt_packet_get_type),
	  (gst_rdt_packet_get_length), (gst_rdt_packet_to_buffer),
	  (gst_rdt_buffer_compare_seqnum), (gst_rdt_packet_data_get_seq),
	  (gst_rdt_packet_data_peek_data),
	  (gst_rdt_packet_data_get_stream_id),
	  (gst_rdt_packet_data_get_timestamp):
	  * gst/realmedia/gstrdtbuffer.h:
	  Add first support for parsing RDT messages.
	  * gst/realmedia/rdtjitterbuffer.c: (rdt_jitter_buffer_class_init),
	  (rdt_jitter_buffer_init), (rdt_jitter_buffer_finalize),
	  (rdt_jitter_buffer_new), (rdt_jitter_buffer_reset_skew),
	  (calculate_skew), (rdt_jitter_buffer_insert),
	  (rdt_jitter_buffer_pop), (rdt_jitter_buffer_peek),
	  (rdt_jitter_buffer_flush), (rdt_jitter_buffer_num_packets),
	  (rdt_jitter_buffer_get_ts_diff):
	  * gst/realmedia/rdtjitterbuffer.h:
	  Add first version of an RDT jitterbuffer.

2008-08-27 09:47:17 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.*: Keep track of the first timestamp of the stream and add this to the outgoing buffer timestam...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_init),
	  (find_seek_offset_time), (gst_rmdemux_reset), (gst_rmdemux_chain),
	  (gst_rmdemux_parse_mdpr), (gst_rmdemux_descramble_cook_audio),
	  (gst_rmdemux_descramble_dnet_audio),
	  (gst_rmdemux_parse_video_packet), (gst_rmdemux_parse_audio_packet):
	  * gst/realmedia/rmdemux.h:
	  Keep track of the first timestamp of the stream and add this to the
	  outgoing buffer timestamps so that we can handle live streams.
	  Set discont flag on the first buffers and after a seek.

=== release 0.10.9 ===

2008-08-26 23:06:04 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* gst-plugins-ugly.doap:
	  Release 0.10.9
	  Original commit message from CVS:
	  Release 0.10.9

2008-08-26 22:56:30 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/lt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files
	  Original commit message from CVS:
	  Update .po files

2008-08-26 15:35:43 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/a52dec/gsta52dec.c: Set up a default time segment for output when receiving an incoming byte segment (as for raw ...
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c:
	  Set up a default time segment for output when receiving
	  an incoming byte segment (as for raw AC3 files).
	  Fixes: #548194

2008-08-12 09:16:13 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  0.10.8.2 pre-release.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  * docs/plugins/gst-plugins-ugly-plugins.args:
	  * docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	  * docs/plugins/gst-plugins-ugly-plugins.interfaces:
	  * docs/plugins/inspect/plugin-a52dec.xml:
	  * docs/plugins/inspect/plugin-asf.xml:
	  * docs/plugins/inspect/plugin-cdio.xml:
	  * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	  * docs/plugins/inspect/plugin-dvdread.xml:
	  * docs/plugins/inspect/plugin-dvdsub.xml:
	  * docs/plugins/inspect/plugin-iec958.xml:
	  * docs/plugins/inspect/plugin-lame.xml:
	  * docs/plugins/inspect/plugin-mad.xml:
	  * docs/plugins/inspect/plugin-mpeg2dec.xml:
	  * docs/plugins/inspect/plugin-mpegaudioparse.xml:
	  * docs/plugins/inspect/plugin-mpegstream.xml:
	  * docs/plugins/inspect/plugin-realmedia.xml:
	  * docs/plugins/inspect/plugin-siddec.xml:
	  * ext/Makefile.am:
	  0.10.8.2 pre-release.
	  * po/LINGUAS:
	  * po/POTFILES.in:
	  * po/id.po:
	  Add new translation.

2008-08-11 18:44:35 +0000  Michael Smith <msmith@xiph.org>

	  gst/asfdemux/gstasfdemux.c: Properly aggregate flow returns for both push and pull mode, so we shut down if all pads ...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  Properly aggregate flow returns for both push and pull mode, so we shut
	  down if all pads are unlinked.
	  Fixes #546859.

2008-08-07 16:14:42 +0000  Frederic Crozat <fcrozat@mandriva.org>

	  Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding (#546822).
	  Original commit message from CVS:
	  Patch by: Frederic Crozat <fcrozat@mandriva.org>
	  * ext/dvdread/dvdreadsrc.c: (plugin_init):
	  * ext/lame/gstlame.c: (plugin_init):
	  * gst/asfdemux/gstasf.c: (plugin_init):
	  Make sure gettext returns translations in UTF-8 encoding rather
	  than in the current locale encoding (#546822).

2008-07-31 14:35:40 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Don't recurse from mp3parse_bytepos_to_time() to mp3parse_total_time() if we'...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event), (gst_mp3parse_emit_frame),
	  (mp3parse_total_time), (mp3parse_bytepos_to_time):
	  Don't recurse from mp3parse_bytepos_to_time() to mp3parse_total_time()
	  if we're called from there already. Otherwise we end up in a endless
	  recursion and crash with a stack overflow.
	  This can happen when a Xing or VBRI header with TOC exists but it
	  doesn't contain the total time. Fixes bug #545370.

2008-07-31 14:24:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/lame/gstlame.c: Use the default for the strict-iso property too.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_class_init),
	  (gst_lame_get_default_settings):
	  Use the default for the strict-iso property too.
	  Allow a bitrate setting of 0, which lets lame choose the default value
	  and which makes it possible to set the compression-ratio property.

2008-07-29 16:57:16 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/lame/gstlame.*: Get the defaults settings of LAME in the plugin initialization function and return FALSE here if ...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init),
	  (gst_lame_chain), (gst_lame_get_default_settings), (plugin_init):
	  * ext/lame/gstlame.h:
	  Get the defaults settings of LAME in the plugin initialization
	  function and return FALSE here if something goes wrong. This removes
	  the hacky failing instance init function.
	  Use LAMEs default value for all settings instead of overwriting some
	  of them. Overwriting some of them gives unexpected results if one only
	  sets a preset. Fixes bug #498004.

2008-07-27 15:56:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/lame/gstlame.c: Use LAME's default for the min/max/mean VBR bitrate. Setting our own defaults will restrict the b...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_init):
	  Use LAME's default for the min/max/mean VBR bitrate. Setting our own
	  defaults will restrict the bitrate when using the presets in a bad way.
	  Fixes bug #498004.

2008-07-27 11:01:12 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Put the MPEG audio version into the caps as "mpegaudioversion".
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_setcaps):
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (mp3_type_frame_length_from_header), (mp3_caps_create),
	  (gst_mp3parse_chain):
	  Put the MPEG audio version into the caps as "mpegaudioversion".
	  This is different from "mpegversion".

2008-07-22 18:25:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/lame/gstlame.*: Fix build with lame >= 3.97. The padding type and cwlimit settings are deprecated now and the fun...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init),
	  (gst_lame_set_property), (gst_lame_get_property), (gst_lame_setup):
	  * ext/lame/gstlame.h:
	  Fix build with lame >= 3.97. The padding type and cwlimit settings
	  are deprecated now and the function declarations are hidden in the
	  headers so deprecate the GObject properties for them and remove them
	  in 0.11. Fixes bug #544039.

2008-07-13 10:13:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mpeg2dec/gstmpeg2dec.c: Don't allow width/height outside the spec (i.e. smaller than 16 and higher than 4096). Su...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence):
	  Don't allow width/height outside the spec (i.e. smaller than 16
	  and higher than 4096). Such files are corrupted ones and setting
	  caps that are not a subset of the template caps confuses playbin.
	  Fixes bug #542646.

2008-07-11 12:30:22 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/sidplay/Makefile.am: Fix the build.
	  Original commit message from CVS:
	  * ext/sidplay/Makefile.am:
	  Fix the build.

2008-07-08 14:01:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Don't include ERROR_CFLAGS in GST_CXXFLAGS as it might include flags that are invalid for C++.
	  Original commit message from CVS:
	  * configure.ac:
	  Don't include ERROR_CFLAGS in GST_CXXFLAGS as it might include
	  flags that are invalid for C++.

2008-07-05 18:57:30 +0000  Tal Shalif <tshalif@nargila.org>

	  ext/dvdnav/dvdnavsrc.c: Prevent double free. Fixes bug #541697.
	  Original commit message from CVS:
	  Patch by: Tal Shalif <tshalif at nargila dot org>
	  * ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_stop):
	  Prevent double free. Fixes bug #541697.

2008-07-05 15:56:56 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/mpegstream/: Resend tags event after a FLUSH (seek) to support prerolling a partial pipeline.
	  Original commit message from CVS:
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init),
	  (gst_dvd_demux_get_audio_stream),
	  (gst_dvd_demux_get_subpicture_stream),
	  (gst_dvd_demux_parse_packhead), (gst_dvd_demux_reset):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_init),
	  (gst_mpeg_demux_process_event), (gst_mpeg_demux_init_stream),
	  (gst_mpeg_demux_parse_packhead), (gst_mpeg_demux_reset):
	  * gst/mpegstream/gstmpegdemux.h:
	  Resend tags event after a FLUSH (seek) to support prerolling
	  a partial pipeline.

2008-07-03 13:12:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Use correct error code for encrypted streams.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_object):
	  Use correct error code for encrypted streams.

2008-07-02 07:49:19 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/mpegstream/gstmpegdemux.c: Bridge gaps in stream by NEWSEGMENT sending.  Fixes #540194.
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer),
	  (gst_mpeg_demux_sync_stream_to_time):
	  Bridge gaps in stream by NEWSEGMENT sending.  Fixes #540194.

2008-06-27 12:58:35 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  ext/dvdread/dvdreadsrc.c: Allow and implement non-flushing and/or segment seek (mainly in TIME and chapter format).
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_read),
	  (gst_dvd_read_src_create), (gst_dvd_read_src_handle_seek_event):
	  Allow and implement non-flushing and/or segment seek
	  (mainly in TIME and chapter format).
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event),
	  (gst_dvd_demux_get_subpicture_stream),
	  (gst_dvd_demux_synchronise_pads),
	  (gst_dvd_demux_sync_stream_to_time):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_process_event),
	  (gst_mpeg_demux_send_subbuffer),
	  (gst_mpeg_demux_sync_stream_to_time),
	  (gst_mpeg_streams_reset_cur_ts):
	  * gst/mpegstream/gstmpegdemux.h:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
	  (gst_mpeg_parse_pad_added), (gst_mpeg_parse_handle_src_query):
	  Delegate a query to upstream if it can't be handled.
	  Make segment stop aware.
	  Fix (subtitle) stream synchronization.
	  Add some debug statements.

2008-06-26 10:40:03 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Fix build on macosx.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (head_check):
	  Fix build on macosx.

2008-06-13 06:57:21 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Add missing elements to docs. Restore alphabetical order in section file. Document mad (it was included in docs alrea...
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  * ext/a52dec/gsta52dec.c:
	  * ext/amrnb/amrnbdec.c:
	  * ext/amrnb/amrnbenc.c:
	  * ext/amrnb/amrnbparse.c:
	  * ext/lame/gstlame.c:
	  * ext/mad/gstmad.c:
	  * ext/sidplay/gstsiddec.cc:
	  * gst/asfdemux/gstrtspwms.c:
	  * gst/mpegaudioparse/gstxingmux.c:
	  * gst/realmedia/rademux.c:
	  * gst/realmedia/rdtmanager.c:
	  * gst/realmedia/rtspreal.c:
	  * gst/synaesthesia/gstsynaesthesia.c:
	  Add missing elements to docs. Restore alphabetical order in section
	  file. Document mad (it was included in docs already).
	  Fix doc-markup: use convinience syntax for examples
	  (produces valid docbook), add several refsec2 when we have several
	  titles. Fix some types.

2008-06-13 05:52:17 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Do not use short_description in section docs for elements. We extract them from element details and there will be war...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c:
	  * ext/sidplay/gstsiddec.cc:
	  * gst/mpegaudioparse/gstxingmux.c:
	  Do not use short_description in section docs for elements. We extract
	  them from element details and there will be warnings if they differ.

2008-06-09 20:02:05 +0000  Benjamin Kampmann <benjamin@fluendo.com>

	  ext/cdio/: Also extract album title and album genre from CD-TEXT if available (#537021).
	  Original commit message from CVS:
	  Patch by: Benjamin Kampmann  <benjamin at fluendo dot com>
	  * ext/cdio/gstcdio.c: (gst_cdio_get_cdtext),
	  (gst_cdio_add_cdtext_album_tags):
	  * ext/cdio/gstcdio.h:
	  * ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open):
	  Also extract album title and album genre from CD-TEXT if
	  available (#537021).

2008-06-09 07:51:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Don't mark MPEG headers with emphasis == 0x2 as invalid. This emphasis value ...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (head_check):
	  Don't mark MPEG headers with emphasis == 0x2 as invalid. This
	  emphasis value is reserved but unfortunately files with that
	  value exist and the information is not important for the decoder
	  anyway. Fixes bug #537235.

2008-06-07 18:48:54 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Require libcdio >= 0.76.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/cdio/gstcdio.c:
	  * ext/cdio/gstcdio.h:
	  * ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open):
	  Require libcdio >= 0.76.

2008-06-02 15:44:57 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/a52dec/gsta52dec.c: Drain queued buffers before forwarding the segment event.
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event):
	  Drain queued buffers before forwarding the segment event.

2008-06-02 11:59:07 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/a52dec/gsta52dec.*: Add segment handling, buffer clipping and basic reverse playback.
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (clear_queued), (flush_queued),
	  (gst_a52dec_drain), (gst_a52dec_push), (gst_a52dec_sink_event),
	  (gst_a52dec_chain), (gst_a52dec_change_state):
	  * ext/a52dec/gsta52dec.h:
	  Add segment handling, buffer clipping and basic reverse playback.

2008-05-28 11:43:01 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Random doc of the day. Also print human readable format of newsegment in log message if we complain about it.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  * docs/plugins/gst-plugins-ugly-plugins.args:
	  * docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	  * docs/plugins/gst-plugins-ugly-plugins.interfaces:
	  * docs/plugins/inspect/plugin-a52dec.xml:
	  * docs/plugins/inspect/plugin-amrnb.xml:
	  * docs/plugins/inspect/plugin-asf.xml:
	  * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	  * docs/plugins/inspect/plugin-dvdread.xml:
	  * docs/plugins/inspect/plugin-dvdsub.xml:
	  * docs/plugins/inspect/plugin-iec958.xml:
	  * docs/plugins/inspect/plugin-lame.xml:
	  * docs/plugins/inspect/plugin-mad.xml:
	  * docs/plugins/inspect/plugin-mpeg2dec.xml:
	  * docs/plugins/inspect/plugin-mpegaudioparse.xml:
	  * docs/plugins/inspect/plugin-mpegstream.xml:
	  * docs/plugins/inspect/plugin-realmedia.xml:
	  * docs/plugins/inspect/plugin-siddec.xml:
	  * docs/plugins/inspect/plugin-synaesthesia.xml:
	  * ext/a52dec/gsta52dec.c:
	  Random doc of the day. Also print human readable format of newsegment
	  in log message if we complain about it.

2008-05-26 09:06:54 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/a52dec/gsta52dec.*: Mark discont on outgoing buffers after receiving a DISCONT buffer or when we have a decoding ...
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_init), (gst_a52dec_push),
	  (gst_a52dec_sink_event), (gst_a52dec_handle_frame),
	  (gst_a52dec_chain), (gst_a52dec_change_state):
	  * ext/a52dec/gsta52dec.h:
	  Mark discont on outgoing buffers after receiving a DISCONT buffer or
	  when we have a decoding error.
	  We don't need to clear the cache when we receive a NEWSEGMENT event.
	  Clear buffer cache in DISCONT.
	  Add beginnings of GstSegment handling.

2008-05-26 07:41:24 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstxingmux.c: Fix alignment issues that caused SIGBUS on some architectures.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstxingmux.c: (generate_xing_header):
	  Fix alignment issues that caused SIGBUS on some architectures.

2008-05-25 21:30:40 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/ac3parse/gstac3parse.c: Fix alignment issue which isn't really an issue at all because the plugin hasn't been por...
	  Original commit message from CVS:
	  * gst/ac3parse/gstac3parse.c: (gst_ac3parse_chain):
	  Fix alignment issue which isn't really an issue at all because
	  the plugin hasn't been ported to 0.10 yet.

2008-05-25 21:03:41 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to devel -> 0.10.8.1
	  Original commit message from CVS:
	  * configure.ac:
	  Back to devel -> 0.10.8.1

=== release 0.10.8 ===

2008-05-21 23:03:13 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* gst-plugins-ugly.doap:
	* po/LINGUAS:
	  Release 0.10.8
	  Original commit message from CVS:
	  Release 0.10.8

2008-05-21 22:43:42 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* common:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/it.po:
	* po/lt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files
	  Original commit message from CVS:
	  Update .po files

2008-05-19 21:38:16 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: 0.10.7.4 pre-release
	  Original commit message from CVS:
	  * configure.ac:
	  0.10.7.4 pre-release

2008-05-19 15:07:07 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/mad/gstmad.c: Fix inconsistent use of rate and channels.
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_convert_src), (gst_mad_chain):
	  Fix inconsistent use of rate and channels.
	  Fixes #533581

2008-05-19 10:23:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.c: Flush timestamp correction variables on a flush. Fixes #533832.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_send_event):
	  Flush timestamp correction variables on a flush. Fixes #533832.

2008-05-19 10:02:41 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* common:
	* configure.ac:
	  Commit 0.10.7.3 pre-rel marker
	  Original commit message from CVS:
	  Commit 0.10.7.3 pre-rel marker

2008-05-13 09:33:09 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/realmedia/rmdemux.c: Properly aggregate GstFlowReturn from downstream in order to properly stop, and doing that a...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_video_packet):
	  Properly aggregate GstFlowReturn from downstream in order to properly
	  stop, and doing that as early as possible.
	  Fixes #532807

2008-05-10 15:32:41 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: 0.10.7.2 pre-release
	  Original commit message from CVS:
	  * configure.ac:
	  0.10.7.2 pre-release

2008-05-10 00:44:00 +0000  Edward Hervey <bilboed@bilboed.com>

	  Always let FLUSH_START events flow downstream.
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_sink_event):
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event):
	  Always let FLUSH_START events flow downstream.

2008-05-07 08:00:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Error out if we don't have the required core/base versions.
	  Original commit message from CVS:
	  * configure.ac:
	  Error out if we don't have the required core/base versions.

2008-05-06 17:53:26 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.c: Fix video timestamps by adjusting it with the first timestamp found.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr),
	  (gst_rmdemux_fix_timestamp), (gst_rmdemux_parse_video_packet),
	  (gst_rmdemux_parse_audio_packet), (gst_rmdemux_parse_packet):
	  Fix video timestamps by adjusting it with the first timestamp found.
	  Don't assume we have a complete fragment when flushing the adapter,
	  packets might have been lost or the stream might just be broken.

2008-05-06 10:30:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtmanager.c: Set Rank to NONE so that we don't accidentally try to autoplug the rdtmanager.
	  Original commit message from CVS:
	  * gst/realmedia/rdtmanager.c: (gst_rdt_manager_plugin_init):
	  Set Rank to NONE so that we don't accidentally try to autoplug the
	  rdtmanager.

2008-05-05 08:43:38 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Send a new duration message if the average bitrate changed and we don't know ...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_emit_frame):
	  Send a new duration message if the average bitrate changed and
	  we don't know the duration from the Xing or VBRI header.
	  Fixes bug #321857.

2008-04-30 17:16:47 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rtspreal.*: Move assembly rule parsing to the place where we parse the SDP as it's also there that we c...
	  Original commit message from CVS:
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_before_send),
	  (rtsp_ext_real_parse_sdp), (rtsp_ext_real_stream_select):
	  * gst/realmedia/rtspreal.h:
	  Move assembly rule parsing to the place where we parse the SDP as it's
	  also there that we create the MDPR and we need the currently selected
	  asmrule in order to select the right MTLI.
	  Fixes #529359.

2008-04-29 17:34:19 +0000  Michael Smith <msmith@xiph.org>

	  gst/realmedia/: Include generated "_stdint.h" instead of <stdint.h> which might not exist on some systems.
	  Original commit message from CVS:
	  * gst/realmedia/realhash.c:
	  * gst/realmedia/rtspreal.c:
	  Include generated "_stdint.h" instead of <stdint.h> which might not
	  exist on some systems.

2008-04-25 23:10:54 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/sidplay/gstsiddec.cc: Cast NULL sentinels to void * as NULL is defined as an integer constant in most environment...
	  Original commit message from CVS:
	  * ext/sidplay/gstsiddec.cc:
	  Cast NULL sentinels to void * as NULL is defined as an integer
	  constant in most environments when using C++ and it's size might
	  be different from a pointer. Fixes #529488.

2008-04-22 12:11:30 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstrtspwms.c:
	  Fix "unused var" compiler error when --disable-gst-debug is used.
	  Original commit message from CVS:
	  Fix "unused var" compiler error when --disable-gst-debug is used.

2008-04-17 20:58:00 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/amrnb/amrnbparse.c: We should also stop the streaming task when we get a NOT_LINKED flow return, which is not cov...
	  Original commit message from CVS:
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_loop):
	  We should also stop the streaming task when we get a NOT_LINKED
	  flow return, which is not covered by FLOW_IS_FATAL.

2008-04-17 10:24:32 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/: gst_atomic_int_set ==> g_atomic_int_set
	  Original commit message from CVS:
	  * ext/cdio/gstcdiocddasrc.c:
	  * ext/dv/gstdvdemux.c:
	  gst_atomic_int_set ==> g_atomic_int_set

2008-04-11 08:09:55 +0000  Julien Moutte <julien@moutte.net>

	  gst/mpegaudioparse/gstxingmux.c: Fix argument formats.
	  Original commit message from CVS:
	  2008-04-11  Julien Moutte  <julien@fluendo.com>
	  * gst/mpegaudioparse/gstxingmux.c: (generate_xing_header): Fix
	  argument formats.

2008-04-06 08:57:33 +0000  Damien Lespiau <damien.lespiau@gmail.com>

	  configure.ac: Actually build dlls when cross-compiling with mingw32.
	  Original commit message from CVS:
	  Patch by: Damien Lespiau <damien dot lespiau at gmail dot com>
	  * configure.ac:
	  Actually build dlls when cross-compiling with mingw32.
	  Fixes bug #526247.

2008-04-04 19:04:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Depend on GLib 2.12 and use it unconditionally as we do in other modules too already.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (mpeg_audio_seek_entry_free):
	  * gst/mpegaudioparse/gstxingmux.c: (gst_xing_seek_entry_free):
	  Depend on GLib 2.12 and use it unconditionally as we do in other
	  modules too already.

2008-04-03 15:21:50 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/: Use GSlice for allocating the seek table entries if we compile with
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (mpeg_audio_seek_entry_new), (mpeg_audio_seek_entry_free),
	  (gst_mp3parse_reset), (gst_mp3parse_emit_frame):
	  * gst/mpegaudioparse/gstxingmux.c: (gst_xing_seek_entry_new),
	  (gst_xing_seek_entry_free), (gst_xing_mux_finalize), (xing_reset),
	  (gst_xing_mux_chain):
	  Use GSlice for allocating the seek table entries if we compile with
	  GLib 2.10 or newer.

2008-04-01 14:39:24 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/asfdemux/gstasfdemux.c: Remove some debug code.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  (gst_asf_demux_process_ext_stream_props):
	  Remove some debug code.

2008-04-01 14:29:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/asfdemux/gstasfdemux.c: Guard against division by 0 and fall back to 25/1 framerate.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  (gst_asf_demux_process_ext_stream_props):
	  Guard against division by 0 and fall back to 25/1 framerate.

2008-04-01 14:00:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/asfdemux/gstasfdemux.c: Instead of adding a fixes 25/1 framerate to the video caps, use the average frame duratio...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_video_stream),
	  (gst_asf_demux_process_ext_stream_props):
	  Instead of adding a fixes 25/1 framerate to the video caps, use the
	  average frame duration in the extended properties of the video stream as
	  the framerate. Fixes #524346.

2008-03-21 14:15:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Check if the compiler supports do { } while (0) macros. This fixes a warning when compiling with g++ 4....
	  Original commit message from CVS:
	  * configure.ac:
	  Check if the compiler supports do { } while (0) macros. This fixes
	  a warning when compiling with g++ 4.3, resulting in a build failure
	  because of -Werror.

2008-03-19 11:01:25 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/asmrules.c: make ) also a delimiter for rules.
	  Original commit message from CVS:
	  * gst/realmedia/asmrules.c: (gst_asm_scan_string), (main):
	  make ) also a delimiter for rules.
	  Skip \\ when scanning strings.
	  Add new testcase for these problems.

2008-03-12 16:09:48 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Don't take the stream lock when caching events. This is not necessary and res...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event):
	  Don't take the stream lock when caching events. This is not necessary
	  and results in a deadlock when seeking with rhythmbox (but not with
	  totem or banshee for some reason).

2008-03-10 15:17:24 +0000  Pizpot Gargravarr <pgargravarr@siriuscybernetics.org>

	  gst/realmedia/rtspreal.c: Add the version field when creating the CONT chunk resulting in the Author, Comment and Cop...
	  Original commit message from CVS:
	  Patch by: Pizpot Gargravarr <pgargravarr at siriuscybernetics dot org>
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_parse_sdp):
	  Add the version field when creating the CONT chunk resulting in
	  the Author, Comment and Copyright tags not being parsed correctly.
	  Fixes #521459.

2008-03-10 15:13:10 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Remove trailing newlines from debug statements.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event), (gst_mp3parse_chain):
	  Remove trailing newlines from debug statements.

2008-03-04 22:54:21 +0000  Simone Gotti <simone.gotti@email.it>

	  ext/dvdnav/dvdnavsrc.*: Apply patch that adds some seeking support to dvdnav, and fixes it in various other ways. Thi...
	  Original commit message from CVS:
	  * ext/dvdnav/dvdnavsrc.c:
	  * ext/dvdnav/dvdnavsrc.h:
	  Apply patch that adds some seeking support to dvdnav, and fixes it
	  in various other ways. This doesn't make dvdnavsrc fully functional,
	  but moves it forward.
	  Fixes: #476149
	  Patch By: Simone Gotti <simone.gotti@email.it>
	  * ext/dvdnav/gst-dvd:
	  Update the simple dvdnavsrc gst-launch example to work for 0.10

2008-03-03 12:50:56 +0000  Peter Kjellerstedt <pkj@axis.com>

	  configure.ac: Use AG_GST_CHECK_PLUGIN and AG_GST_DISABLE_PLUGIN to simplify which plug-ins are included/excluded. (#4...
	  Original commit message from CVS:
	  * configure.ac:
	  Use AG_GST_CHECK_PLUGIN and AG_GST_DISABLE_PLUGIN to simplify which
	  plug-ins are included/excluded. (#498222)

2008-02-27 15:23:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Push EOS, FLUSH_STOP and NEWSEGMENT immediately instead of dropping and leaking them.
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_sink_event):
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event):
	  Push EOS, FLUSH_STOP and NEWSEGMENT immediately instead
	  of dropping and leaking them.

2008-02-27 13:18:57 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Cache all events except EOS if we still have to send a NEWSEGMENT event. This will let TAG events be forwarded until ...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_dispose), (gst_mad_sink_event),
	  (gst_mad_chain):
	  * ext/mad/gstmad.h:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_dispose),
	  (gst_mp3parse_sink_event), (gst_mp3parse_emit_frame):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Cache all events except EOS if we still have to send a NEWSEGMENT
	  event. This will let TAG events be forwarded until after decodebin
	  to an encoder for example as decodebin only links the pads
	  after NEWSEGMENT. Fixes bug #518933.

2008-02-27 12:48:41 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstxingmux.c: Write Xing header at the correct position in the MP3 frame for stereo files. Fixes b...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstxingmux.c: (get_xing_offset):
	  Write Xing header at the correct position in the MP3 frame for
	  stereo files. Fixes bug #518676.

2008-02-23 12:35:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them when building C++ code (#516509).
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/sidplay/Makefile.am:
	  Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them
	  when building C++ code (#516509).

2008-02-22 14:55:57 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.c: Fix broken GST_ELEMENT_ERROR macro, fixes compile with the Sun
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_setcaps):
	  Fix broken GST_ELEMENT_ERROR macro, fixes compile with the Sun
	  Workshop 12 compiler, but probably also crashes (#517985).

2008-02-22 07:11:17 +0000  Thiago Sousa Santos <thiagoss@lcc.ufcg.edu.br>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Post channel mode and CRC as tags. Fixes bug #504493.
	  Original commit message from CVS:
	  Patch by: Thiago Sousa Santos <thiagoss at lcc dot ufcg dot edu dot br>
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3_channel_mode_get_type),
	  (mp3_type_frame_length_from_header), (gst_mp3parse_class_init),
	  (gst_mp3parse_reset), (gst_mp3parse_emit_frame),
	  (gst_mp3parse_chain):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Post channel mode and CRC as tags. Fixes bug #504493.

2008-02-22 06:27:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/dvdnav/dvdnavsrc.c: Correctly chain up to the parent's finalize function.
	  Original commit message from CVS:
	  * ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_finalize):
	  Correctly chain up to the parent's finalize function.

2008-02-22 06:25:28 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Try a bit harder to get valid timestamps, especially if upstream gives us one...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_emit_frame), (gst_mp3parse_chain):
	  Try a bit harder to get valid timestamps, especially if upstream
	  gives us one and we are at the first frame or resyncing.
	  Return UNEXPECTED if we get a valid timestamp that is outside of
	  our configured segment. After all changes done so far this doesn't
	  seem to cause any regression, please test.

2008-02-22 06:19:41 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/asfdemux/gstasfdemux.c: If we don't have the position to seek to in our index first try to convert from TIME to B...
	  Original commit message from CVS:
	  Patch by:
	  Hans de Goede <j dot w dot r dot degoede at hhs dot nl>
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event):
	  If we don't have the position to seek to in our index first try
	  to convert from TIME to BYTES upstream and only if that fails
	  too use the old hack to simply seek to an earlier position
	  and let the sink drop everything before segment start.
	  Partially fixes bug #469930.

2008-02-21 23:54:25 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to development...
	  Original commit message from CVS:
	  * configure.ac:
	  Back to development...

=== release 0.10.7 ===

2008-02-21 00:15:22 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	* docs/plugins/gst-plugins-ugly-plugins.interfaces:
	* docs/plugins/gst-plugins-ugly-plugins.prerequisites:
	* docs/plugins/gst-plugins-ugly-plugins.signals:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-realmedia.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	* gst-plugins-ugly.doap:
	* po/LINGUAS:
	  Release 0.10.7 - I Cheated Time
	  Original commit message from CVS:
	  Release 0.10.7 - I Cheated Time

2008-02-20 23:51:56 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/sk.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  Update .po files
	  Original commit message from CVS:
	  Update .po files

2008-02-18 20:40:29 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  tests/check/Makefile.am: Exclude dvdreadsrc from the states test too.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Exclude dvdreadsrc from the states test too.

2008-02-18 10:25:16 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Handler buffers without valid timestamp more correctly: Don't drop them and d...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_emit_frame):
	  Handler buffers without valid timestamp more correctly: Don't drop
	  them and don't use the invalid timestamp to calculate the next
	  timestamp. Fixes bug #516811.

2008-02-18 05:16:44 +0000  Tal Shalif <tshalif@nargila.org>

	  ext/dvdread/dvdreadsrc.c: Add some gint64 casts to prevent 32 bit integer overflows.
	  Original commit message from CVS:
	  Patch by: Tal Shalif <tshalif at nargila dot org>
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_create),
	  (gst_dvd_read_src_do_seek), (gst_dvd_read_src_do_position_query):
	  Add some gint64 casts to prevent 32 bit integer overflows.
	  Fixes bug #516989.

2008-02-17 18:49:30 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Revert previous commit to mp3parse, as it breaks playback of AVI files.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  Revert previous commit to mp3parse, as it breaks playback
	  of AVI files.

2008-02-14 13:58:42 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Return GST_FLOW_UNEXPECTED if we get data that is after our configured segmen...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_emit_frame):
	  Return GST_FLOW_UNEXPECTED if we get data that is after our
	  configured segment. This makes upstream go EOS immediately instead
	  of sending us the complete stream. Also improve debugging a bit.

2008-02-13 22:57:54 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/dvdread/dvdreadsrc.c: Fix regression in DVD seeking - when a pack we expect to be a NAV block turns out not to be...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c:
	  Fix regression in DVD seeking - when a pack we
	  expect to be a NAV block turns out not to be, scan forwards
	  for up to 2MB (at most ~1sec) until we find one.
	  Fixes: #516278

2008-02-12 21:42:19 +0000  Sébastien Moutte <sebastien@moutte.net>

	  win32/vs6/libgstmpegaudioparse.dsp: Add xing files to VS project file.
	  Original commit message from CVS:
	  * win32/vs6/libgstmpegaudioparse.dsp:
	  Add xing files to VS project file.

2008-02-11 13:31:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/dvdsub/gstdvdsubparse.c: Stop leaking src pad templates. Fixes bug #515708.
	  Original commit message from CVS:
	  * gst/dvdsub/gstdvdsubparse.c: (gst_dvd_sub_parse_init):
	  Stop leaking src pad templates. Fixes bug #515708.

2008-02-11 13:29:07 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstxingmux.c: Correctly write the size in bytes on big endian systems.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstxingmux.c: (generate_xing_header):
	  Correctly write the size in bytes on big endian systems.
	  Fixes bug #515725.

2008-02-11 09:13:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/lame/gstlame.c: Don't leak the allowed caps.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_setup):
	  Don't leak the allowed caps.
	  * tests/check/pipelines/lame.c: (GST_START_TEST):
	  Stop leaking all buffers. Fixes bug #515575.

2008-02-08 10:17:11 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/plugin.c: Commit new file I forgot to add.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/plugin.c:
	  Commit new file I forgot to add.

2008-02-08 01:09:53 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Make DISABLE_DEPRECATED defined *only* during CVS, not during pre-releases or releases.
	  Original commit message from CVS:
	  * configure.ac:
	  Make DISABLE_DEPRECATED defined *only* during CVS, not during
	  pre-releases or releases.

2008-02-08 00:44:19 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	  Mention bug 511497 fixed in previous commit
	  Original commit message from CVS:
	  Mention bug 511497 fixed in previous commit

2008-02-08 00:36:51 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Move xingmux from -bad.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-mpegaudioparse.xml:
	  * gst/mpegaudioparse/Makefile.am:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  * gst/mpegaudioparse/gstxingmux.c:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  Move xingmux from -bad.

2008-02-07 19:25:08 +0000  Sébastien Moutte <sebastien@moutte.net>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Use gst_guint64_to_gdouble for conversion
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:(mp3parse_time_to_bytepos):
	  Use gst_guint64_to_gdouble for conversion
	  * win32/vs6/libgstasfdemux.dsp:
	  * win32/vs6/libgstdvdsub.dsp:
	  * win32/vs6/libgstrealmedia.dsp:
	  Update project dependencies and add new source files

2008-02-04 14:27:32 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  ext/mpeg2dec/gstmpeg2dec.c: Reset decoder when handling sequence where libmpeg2 has set frame period to 0, probably d...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c:
	  Reset decoder when handling sequence where libmpeg2 has set
	  frame period to 0, probably due to a corrupt packet.
	  Fixes bug #514297

2008-01-29 19:10:38 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Don't set new caps on the srcpad everytime the bitrate or MPEG version change...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (mp3_caps_create),
	  (gst_mp3parse_chain):
	  Don't set new caps on the srcpad everytime the bitrate or MPEG
	  version changes but calculate new spf value when the MPEG version
	  changes.

2008-01-23 10:34:40 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add documentation for the xingheader plugin.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * gst/xingheader/gstxingmux.c:
	  * gst/xingheader/gstxingmux.h:
	  Add documentation for the xingheader plugin.
	  * tests/check/elements/xingmux.c: (GST_START_TEST):
	  Set element state to PLAYING before doing something else.

2008-01-23 10:11:44 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/: Add simple unit test for the xingmux element.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/xingmux.c: (setup_xingmux),
	  (cleanup_xingmux), (GST_START_TEST), (xingmux_suite), (main):
	  * tests/check/elements/xingmux_testdata.h:
	  Add simple unit test for the xingmux element.
	  * gst/xingheader/gstxingmux.c: (generate_xing_header),
	  (gst_xing_mux_finalize), (xing_reset):
	  Fix a memleak and invalid seek tables with less than 100 MP3 frames.

2008-01-21 13:35:02 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Add the real and rtsp elements and update the lists.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  Add the real and rtsp elements and update the lists.
	  * docs/plugins/inspect/plugin-amrnb.xml:
	  * docs/plugins/inspect/plugin-asf.xml:
	  * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	  * docs/plugins/inspect/plugin-dvdsub.xml:
	  * docs/plugins/inspect/plugin-mpegaudioparse.xml:
	  * docs/plugins/inspect/plugin-mpegstream.xml:
	  * docs/plugins/inspect/plugin-realmedia.xml:
	  * docs/plugins/inspect/plugin-siddec.xml:
	  * docs/plugins/inspect/plugin-synaesthesia.xml:
	  Regenerate docs.
	  * gst/iec958/ac3_padder.c:
	  * gst/iec958/ac3_padder.h:
	  Do not use gtk-doc style comments for non gtk-doc comments. Note -
	  there are functions defined using extern in the .c file - does that
	  make sense?

2008-01-21 12:43:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/mad/gstmad.c: Chain up at the end of the function.
	  Original commit message from CVS:
	  * ext/mad/gstmad.c:
	  Chain up at the end of the function.

2008-01-19 16:04:14 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mad/gstid3tag.c: Don't add pad templates for the base class but only in the subclasses.
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (gst_id3_tag_class_init):
	  Don't add pad templates for the base class but only in the
	  subclasses.

2008-01-17 17:26:48 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  ext/lame/gstlame.*: Fix the case where you initially have stereo input, and so lame's mode is not set to mono, and th...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c:
	  * ext/lame/gstlame.h:
	  Fix the case where you initially have stereo input, and so lame's
	  mode is not set to mono, and then you get input with mono audio and
	  soon after you get stereo input again. What happened before this
	  commit is that it would keep the encoding mode as mono. It should
	  change it back to the one requested by the app (or the default one)
	  if not requested.

2008-01-15 17:18:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Interpolate the VBRI seek table entries to get better results, support 3 byte...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_handle_first_frame), (mp3parse_time_to_bytepos),
	  (mp3parse_bytepos_to_time):
	  Interpolate the VBRI seek table entries to get better results,
	  support 3 byte seek table entries and prevent overflows in the
	  seek table by adding the relative offsets when using the seek
	  table in a large enough data type.

2008-01-14 15:02:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Add support for seeking based on the VBRI seek table. Might make sense to use...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
	  (gst_mp3parse_handle_first_frame), (mp3parse_time_to_bytepos),
	  (mp3parse_bytepos_to_time):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Add support for seeking based on the VBRI seek table. Might make
	  sense to use interpolation in the table later to get hopefully a
	  bit more accurate values.

2008-01-14 11:41:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Fix compilation error. Fixes #509313.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (clear_queued), (flush_queued),
	  (handle_picture), (handle_slice):
	  Fix compilation error. Fixes #509313.

2008-01-14 11:24:57 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/lame/gstlame.c: Use gst_util_uint64_scale instead of gst_util_uint64_scale_int as 8 * GST_SECOND is too large for...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_event):
	  Use gst_util_uint64_scale instead of gst_util_uint64_scale_int
	  as 8 * GST_SECOND is too large for int.

2008-01-14 10:52:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/xingheader/gstxingmux.c: Bitrate is 4 bits, not 8 so check for 0xe as maximum value instead of 0xfe.
	  Original commit message from CVS:
	  * gst/xingheader/gstxingmux.c: (generate_xing_header):
	  Bitrate is 4 bits, not 8 so check for 0xe as maximum value instead
	  of 0xfe.

2008-01-14 10:42:48 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Add initial support for reading VBRI headers as found in VBR files created by...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
	  (gst_mp3parse_emit_frame), (gst_mp3parse_handle_first_frame),
	  (mp3parse_total_bytes), (mp3parse_total_time):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Add initial support for reading VBRI headers as found in VBR files
	  created by some Fraunhofer encoders. Currently we only read the
	  number of frames and bytes (and calculate duration, etc from this)
	  but there is also a seek table that we currently don't use.

2008-01-14 09:17:47 +0000  Mark Nauwelaerts <manauw@syknet.be>

	  ext/lame/gstlame.c: Correctly set number of channels when using mono-encoding mode and fix the duration calculation o...
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <manauw at syknet dot be>
	  * ext/lame/gstlame.c: (gst_lame_sink_setcaps),
	  (gst_lame_sink_event):
	  Correctly set number of channels when using mono-encoding mode
	  and fix the duration calculation of the EOS buffer.

2008-01-14 09:13:29 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Guard against 0 values in the Xing header as frame count and byte count and c...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_handle_first_frame):
	  Guard against 0 values in the Xing header as frame count and
	  byte count and calculate the bitrate when we have all values
	  we need and not before.

2008-01-14 09:09:49 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/xingheader/gstxingmux.c: Remove accidentially leftover debug printf.
	  Original commit message from CVS:
	  * gst/xingheader/gstxingmux.c: (generate_xing_header):
	  Remove accidentially leftover debug printf.

2008-01-14 08:56:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/xingheader/gstxingmux.c: Choose smallest possible frame size for the Xing header, properly set the timestamp, dur...
	  Original commit message from CVS:
	  * gst/xingheader/gstxingmux.c: (has_xing_header),
	  (generate_xing_header), (gst_xing_mux_chain),
	  (gst_xing_mux_sink_event):
	  Choose smallest possible frame size for the Xing header, properly
	  set the timestamp, duration and offset on the outgoing buffers,
	  only send NEWSEGMENT events in BYTE format downstream and also
	  drop VBRI headers if already existing.

2008-01-12 09:22:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/xingheader/: Major cleanup and rewrite of xingmux with less bugs and new features:
	  Original commit message from CVS:
	  * gst/xingheader/Makefile.am:
	  * gst/xingheader/gstxingmux.c: (parse_header), (get_xing_offset),
	  (has_xing_header), (generate_xing_header),
	  (gst_xing_mux_base_init), (gst_xing_mux_finalize), (xing_reset),
	  (gst_xing_mux_init), (gst_xing_mux_chain),
	  (gst_xing_mux_sink_event), (gst_xing_mux_change_state):
	  * gst/xingheader/gstxingmux.h:
	  Major cleanup and rewrite of xingmux with less bugs and new features:
	  - Handles other layers as 3
	  - Write TOC

2008-01-10 17:24:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: Call g_type_class_ref() from a thread-safe context and not from the streaming thread to avoid GLib ...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (GST_TYPE_MAD_MODE),
	  (GST_TYPE_MAD_EMPHASIS), (GST_TAG_EMPHASIS), (CHECK_HEADER):
	  Call g_type_class_ref() from a thread-safe context and not
	  from the streaming thread to avoid GLib screwing up (see
	  bug #349410 and #493432). Comment out unused code.

2008-01-10 15:24:08 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.*: Add buffer clipping.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (clear_queued), (flush_queued),
	  (handle_picture), (clip_buffer), (handle_slice),
	  (gst_mpeg2dec_chain), (gst_mpeg2dec_sink_event),
	  (gst_mpeg2dec_change_state):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Add buffer clipping.
	  Add basic reverse playback support. Not complete yet when dealing with
	  non-closed GOPs.

2008-01-10 12:28:19 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  autogen.sh: Add -Wno-portability to the automake parameters to stop warnings about GNU make extensions being used. We...
	  Original commit message from CVS:
	  * autogen.sh:
	  Add -Wno-portability to the automake parameters to stop warnings
	  about GNU make extensions being used. We require GNU make in almost
	  every Makefile anyway.
	  * configure.ac:
	  Use AM_PROG_CC_C_O as a compiler that accepts both -c and -o
	  at the same time is required for per target flags.

2008-01-09 13:51:38 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Makefile.am: Include lcov.mak to allow building coverage reports.
	  Original commit message from CVS:
	  * Makefile.am:
	  Include lcov.mak to allow building coverage reports.

2008-01-08 19:42:38 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Make sure that the Xing TOC starts with 0 and the entries are increasing over time. Otherwise it's broken and should ...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (mpg123_parse_xing_header):
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_handle_first_frame):
	  Make sure that the Xing TOC starts with 0 and the entries
	  are increasing over time. Otherwise it's broken and should
	  be skipped. Fixes bug #507821.

2008-01-08 16:31:29 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.*: Parse metadata object and extract pixel aspect ratio. Fixes #507844.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (asfdemux_dbg), (gst_asf_demux_reset),
	  (gst_asf_demux_add_video_stream),
	  (gst_asf_demux_process_ext_content_desc),
	  (gst_asf_demux_get_metadata_for_stream),
	  (gst_asf_demux_process_metadata), (gst_asf_demux_process_object),
	  (gst_asf_demux_change_state):
	  * gst/asfdemux/gstasfdemux.h:
	  Parse metadata object and extract pixel aspect ratio. Fixes #507844.

2007-12-31 21:41:52 +0000  David Schleef <ds@schleef.org>

	  docs/plugins/.cvsignore: Add *-undeclared.txt
	  Original commit message from CVS:
	  * docs/plugins/.cvsignore:
	  Add *-undeclared.txt

2007-12-21 14:01:06 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtmanager.*: Implement some more signals that rtspsrc connects to.
	  Original commit message from CVS:
	  * gst/realmedia/rdtmanager.c:
	  (gst_rdt_manager_marshal_VOID__UINT_UINT),
	  (gst_rdt_manager_class_init):
	  * gst/realmedia/rdtmanager.h:
	  Implement some more signals that rtspsrc connects to.
	  Fixes #504671.

2007-12-18 09:07:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Makefile.am: Include common/win32.mak for CRLF check of win32 project files (see #393626).
	  Original commit message from CVS:
	  * Makefile.am:
	  Include common/win32.mak for CRLF check of win32 project
	  files (see #393626).

2007-12-13 11:20:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Don't post SEGMENT_START messages on the bus, only the element driving the pi...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event), (mp3parse_handle_seek):
	  Don't post SEGMENT_START messages on the bus, only the element
	  driving the pipeline should do that.

2007-12-09 04:29:35 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Don't define GST_DISABLE_DEPRECATED for releases. Fixes #498181.
	  Original commit message from CVS:
	  * configure.ac:
	  Don't define GST_DISABLE_DEPRECATED for releases. Fixes #498181.

2007-12-03 19:05:20 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.h: Use G_GINT64_CONSTANT, fixes compilation with MSVC 6.0.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Use G_GINT64_CONSTANT, fixes compilation with MSVC 6.0.
	  Fixes #500808.

2007-11-20 12:15:51 +0000  Julien Moutte <julien@moutte.net>

	  gst/realmedia/rtspreal.c: Fix build on Mac OS X.
	  Original commit message from CVS:
	  2007-11-20  Julien MOUTTE  <julien@moutte.net>
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_parse_sdp): Fix build
	  on Mac OS X.

2007-11-19 11:38:49 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Restore the segment handling logic.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  Restore the segment handling logic.
	  Please don't do behavioural changes under the heading of 'leak fixes'
	  or 'whitespace changes', people.

2007-11-19 09:50:58 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Plug some leaks.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  Plug some leaks.

2007-11-13 06:57:57 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/asfdemux/gstasfdemux.c: Sync _activate_pull() a little more with other demuxers.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  Sync _activate_pull() a little more with other demuxers.

2007-11-11 20:41:32 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/mpegstream/gstmpegdemux.c: recognize the padding stream
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegdemux.c:
	  recognize the padding stream

2007-10-31 14:33:03 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Convert tags that come as string into the type required by
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_ext_content_desc):
	  Convert tags that come as string into the type required by
	  GstTagList.

2007-10-30 12:27:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Remove some more broken code, it seems to clip even when it should not.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_emit_frame):
	  Remove some more broken code, it seems to clip even when it should not.
	  See #491305.

2007-10-30 11:13:49 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: When the element is not driving the streaming thread it is not supposed to em...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_emit_frame):
	  When the element is not driving the streaming thread it is not supposed
	  to emit EOS or post SEGMENT done. It is allowed to return UNEXPECTED
	  upstream when it detects EOS. See #491305.

2007-10-13 15:13:34 +0000  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	  gst/dvdsub/: Add dvd subtitle parser, which just packetizes the input stream. This is needed to mux dvd subtitles int...
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <mnauw at users.sourceforge.net>
	  * gst/dvdsub/Makefile.am:
	  * gst/dvdsub/gstdvdsubdec.c:
	  * gst/dvdsub/gstdvdsubparse.c:
	  * gst/dvdsub/gstdvdsubparse.h:
	  Add dvd subtitle parser, which just packetizes the input
	  stream. This is needed to mux dvd subtitles into matroska
	  files, since the muxer expects unfragmented and properly
	  timestamped input (#415754).

2007-10-10 12:02:30 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Update requirements from past CVS versions to released versions (0.10.14 in this case).
	  Original commit message from CVS:
	  * configure.ac:
	  Update requirements from past CVS versions to released
	  versions (0.10.14 in this case).
	  * ext/sidplay/gstsiddec.cc:
	  Fix compilation with g++-4.2.

2007-10-08 17:51:33 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/realmedia/: Fix some compiler warnings shown on Forte.
	  Original commit message from CVS:
	  * gst/realmedia/asmrules.c: (gst_asm_scan_parse_expression),
	  (gst_asm_scan_parse_condition):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_video_packet):
	  Fix some compiler warnings shown on Forte.

2007-10-05 08:51:44 +0000  Gautier Portet <kassoulet@gmail.com>

	  gst/xingheader/gstxingmux.c: The size of the Xing header is actually 417 as it's rounded to the next smaller integer....
	  Original commit message from CVS:
	  Patch by: Gautier Portet <kassoulet at gmail dot com>
	  * gst/xingheader/gstxingmux.c:
	  The size of the Xing header is actually 417 as it's rounded to the
	  next smaller integer. Fixes #397759.
	  * gst/xingheader/gstxingmux.c: (xing_generate_header),
	  (xing_push_header):
	  Some random cleanup, add FIXMEs and TODOs and check if the newsegment
	  event to the beginning was successful before pushing the header again.

2007-09-29 17:11:16 +0000  Sébastien Moutte <sebastien@moutte.net>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Use gst_util_guint64_to_gdouble for conversions.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (mp3parse_time_to_bytepos),
	  (mp3parse_bytepos_to_time):
	  Use gst_util_guint64_to_gdouble for conversions.
	  * win32/vs6/libgstmad.dsp:
	  Add a link to libgstaudio.

2007-09-26 13:40:35 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.c: Fix up case where there is no peer, in which case _get_allowed_caps() will return NULL.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c:
	  Fix up case where there is no peer, in which case
	  _get_allowed_caps() will return NULL.

2007-09-25 13:20:27 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.c: Use GST_PTR_FORMAT to print caps in debug statement.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c:
	  Use GST_PTR_FORMAT to print caps in debug statement.

2007-09-25 09:16:05 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Use AG_GST_ARG_WITH_PLUGINS, AG_GST_ARG_ENABLE_EXTERNAL and
	  Original commit message from CVS:
	  * configure.ac:
	  Use AG_GST_ARG_WITH_PLUGINS, AG_GST_ARG_ENABLE_EXTERNAL and
	  AG_GST_ARG_ENABLE_EXPERIMENTAL instead of duplicating those macros
	  in configure.ac.

2007-09-24 10:26:21 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  ext/lame/gstlame.c: Allow fixing the sample rate lame converts to by negotiating fixed sample rate on the src pad caps.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c:
	  Allow fixing the sample rate lame converts to by negotiating fixed
	  sample rate on the src pad caps.
	  Add docs for it.
	  * tests/check/Makefile.am:
	  * tests/check/pipelines/lame.c:
	  Add a check for it.

2007-09-22 18:22:12 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Updated translations.
	  Original commit message from CVS:
	  * po/LINGUAS:
	  * po/da.po:
	  Updated translations.

2007-09-22 18:20:50 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/pl.po: Added Polish translation.
	  Original commit message from CVS:
	  translated by: Jakub Bogusz <qboosh@pld-linux.org>
	  * po/pl.po:
	  Added Polish translation.

2007-09-22 18:19:08 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/fi.po: Added Finnish translation.
	  Original commit message from CVS:
	  translated by: Ilkka Tuohela <hile@iki.fi>
	  * po/fi.po:
	  Added Finnish translation.

2007-09-22 18:17:52 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/es.po: Added Spanish translation.
	  Original commit message from CVS:
	  translated by: Jorge González González <aloriel@gmail.com>
	  * po/es.po:
	  Added Spanish translation.

2007-09-22 18:17:08 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/bg.po: Added Bulgarian translation.
	  Original commit message from CVS:
	  translated by: Alexander Shopov <ash@contact.bg>
	  * po/bg.po:
	  Added Bulgarian translation.

2007-09-20 11:47:52 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/iec958/ac3iec.c: Chainup in finalize.
	  Original commit message from CVS:
	  * gst/iec958/ac3iec.c:
	  Chainup in finalize.
	  * tests/check/Makefile.am:
	  * tests/check/generic/states.c:
	  Improved state change unit test.

2007-09-19 18:20:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Ignore registries in any format.
	  Original commit message from CVS:
	  * docs/plugins/.cvsignore:
	  * tests/check/.cvsignore:
	  Ignore registries in any format.

2007-09-08 20:54:54 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Use AC_TRY_COMPILE instead of AC_TRY_RUN to check for a define in the lame headers.  This has the advan...
	  Original commit message from CVS:
	  * configure.ac:
	  Use AC_TRY_COMPILE instead of AC_TRY_RUN to check for a
	  define in the lame headers.  This has the advantage that
	  it should still work when we're cross-compiling (#452025).

2007-08-24 15:55:03 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/dvdlpcmdec/gstdvdlpcmdec.c: Add other allowed rates to the pad templates.
	  Original commit message from CVS:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  Add other allowed rates to the pad templates.
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_dispose):
	  Reset the parser to release memory in dispose.

2007-08-17 06:56:53 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/: Fix more leaks.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c:
	  * ext/amrnb/amrnbenc.c:
	  * ext/amrnb/amrnbparse.c:
	  * ext/sidplay/gstsiddec.cc:
	  Fix more leaks.

2007-08-16 14:49:11 +0000  Daniel Charles <dcharles@ti.com>

	  ext/amrnb/amrnbenc.*: Add property to select the BandMode of the AMR encoder.
	  Original commit message from CVS:
	  Patch by: Daniel Charles <dcharles at ti dot com>
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_bandmode_get_type),
	  (gst_amrnbenc_set_property), (gst_amrnbenc_get_property),
	  (gst_amrnbenc_base_init), (gst_amrnbenc_class_init),
	  (gst_amrnbenc_chain), (gst_amrnbenc_state_change):
	  * ext/amrnb/amrnbenc.h:
	  Add property to select the BandMode of the AMR encoder.
	  See #466442.

2007-08-16 12:15:32 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/realmedia/asmrules.c: Make ro memory to share.
	  Original commit message from CVS:
	  * gst/realmedia/asmrules.c:
	  Make ro memory to share.

2007-08-16 11:52:57 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Queue segment event and push it after we know the caps on the pad or else an ...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event), (gst_mp3parse_emit_frame):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Queue segment event and push it after we know the caps on the pad or
	  else an autoplugger might not have plugged the element yet and the
	  segment is lost.

2007-08-16 07:17:13 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/iec958/ac3iec.c: Fix tests.
	  Original commit message from CVS:
	  * gst/iec958/ac3iec.c:
	  Fix tests.

2007-08-16 06:48:13 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/: Add generic state-change test suite to help to fi leaks.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/generic/.cvsignore:
	  * tests/check/generic/states.c:
	  Add generic state-change test suite to help to fi leaks.

2007-08-09 10:57:11 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Added Portuguese (Brazilian) translation.
	  Original commit message from CVS:
	  translated by: Raphael Higino <phhigino@gmail.com>
	  * po/LINGUAS:
	  * po/pt_BR.po:
	  Added Portuguese (Brazilian) translation.

2007-08-09 10:55:59 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Updated translations.
	  Original commit message from CVS:
	  * po/hu.po:
	  * po/nl.po:
	  * po/sv.po:
	  * po/uk.po:
	  Updated translations.

2007-08-07 11:50:44 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.c: Activate timestamp fixing code.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_fix_timestamp),
	  (gst_rmdemux_parse_video_packet):
	  Activate timestamp fixing code.

2007-08-07 10:57:09 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.c: Do fragment collection in the demuxer so that we can now work with both ffmpeg and realvideo...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_reset),
	  (gst_rmdemux_chain), (gst_rmdemux_parse_mdpr),
	  (gst_rmdemux_fix_timestamp), (gst_rmdemux_parse_video_packet),
	  (gst_rmdemux_parse_audio_packet), (gst_rmdemux_parse_packet):
	  Do fragment collection in the demuxer so that we can now work with
	  both ffmpeg and realvideodec to decoder real video content.

2007-08-04 12:59:24 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/realmedia/asmrules.c: Include stdlib.h.
	  Original commit message from CVS:
	  * gst/realmedia/asmrules.c:
	  Include stdlib.h.

2007-08-03 16:21:19 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtmanager.c: Fix caps.
	  Original commit message from CVS:
	  * gst/realmedia/rdtmanager.c:
	  Fix caps.

2007-08-03 16:11:09 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rtspreal.c: Disable UDP transport for now.
	  Original commit message from CVS:
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_get_transports),
	  (rtsp_ext_real_parse_sdp), (rtsp_ext_real_stream_select):
	  Disable UDP transport for now.

2007-08-03 16:09:01 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/: Add simple rdt manager.
	  Original commit message from CVS:
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/rdtmanager.c: (find_session_by_id),
	  (create_session), (free_session), (gst_rdt_manager_base_init),
	  (gst_rdt_manager_marshal_BOXED__UINT_UINT),
	  (gst_rdt_manager_class_init), (gst_rdt_manager_init),
	  (gst_rdt_manager_finalize), (gst_rdt_manager_query_src),
	  (gst_rdt_manager_chain_rtp), (gst_rdt_manager_chain_rtcp),
	  (gst_rdt_manager_set_property), (gst_rdt_manager_get_property),
	  (gst_rdt_manager_provide_clock), (gst_rdt_manager_change_state),
	  (create_recv_rtp), (create_recv_rtcp), (create_rtcp),
	  (gst_rdt_manager_request_new_pad), (gst_rdt_manager_release_pad),
	  (gst_rdt_manager_plugin_init):
	  * gst/realmedia/rdtmanager.h:
	  * gst/realmedia/rmdemux.c: (plugin_init):
	  Add simple rdt manager.

2007-08-03 14:19:50 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtdepay.c: Fix the encoding-name so that it matches what the rtsp extension sets.
	  Original commit message from CVS:
	  * gst/realmedia/rdtdepay.c:
	  Fix the encoding-name so that it matches what the rtsp extension sets.

2007-08-02 19:37:41 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/: Use g_hash_table_destroy instead of _unref which is too new.
	  Original commit message from CVS:
	  * gst/realmedia/asmrules.c: (gst_asm_node_free),
	  (gst_asm_node_evaluate), (gst_asm_scan_new), (gst_asm_scan_free),
	  (gst_asm_scan_string), (gst_asm_scan_number),
	  (gst_asm_scan_identifier), (gst_asm_scan_print_token),
	  (gst_asm_scan_next_token), (gst_asm_rule_free),
	  (gst_asm_rule_add_property), (gst_asm_scan_parse_operand),
	  (gst_asm_scan_parse_expression), (gst_asm_scan_parse_condition),
	  (gst_asm_scan_parse_property), (gst_asm_scan_parse_rule),
	  (gst_asm_rule_evaluate), (gst_asm_rule_book_new),
	  (gst_asm_rule_book_n_rules), (gst_asm_rule_book_free),
	  (gst_asm_rule_book_match), (main):
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_parse_sdp),
	  (rtsp_ext_real_stream_select), (gst_rtsp_real_plugin_init):
	  Use g_hash_table_destroy instead of _unref which is too new.

2007-08-02 19:30:05 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/.cvsignore: Add test to ignore.
	  Original commit message from CVS:
	  * gst/realmedia/.cvsignore:
	  Add test to ignore.
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/asmrules.c: (gst_asm_node_new),
	  (gst_asm_node_free), (gst_asm_operator_eval),
	  (gst_asm_node_evaluate), (gst_asm_scan_new), (gst_asm_scan_free),
	  (gst_asm_scan_string), (gst_asm_scan_number),
	  (gst_asm_scan_identifier), (gst_asm_scan_print_token),
	  (gst_asm_scan_next_token), (gst_asm_rule_new), (gst_asm_rule_free),
	  (gst_asm_rule_add_property), (gst_asm_scan_parse_operand),
	  (gst_asm_scan_parse_expression), (gst_asm_scan_parse_condition),
	  (gst_asm_scan_parse_property), (gst_asm_scan_parse_rule),
	  (gst_asm_rule_evaluate), (gst_asm_rule_book_new),
	  (gst_asm_rule_book_n_rules), (gst_asm_rule_book_free),
	  (gst_asm_rule_book_match), (main):
	  * gst/realmedia/asmrules.h:
	  Added asembler rule book parser and evaluator.
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_parse_sdp),
	  (rtsp_ext_real_stream_select), (gst_rtsp_real_plugin_init):
	  * gst/realmedia/rtspreal.h:
	  Keep per stream config info.
	  Parse and evaluate asm rule books for stream selection.

2007-07-31 19:16:44 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/realmedia/rtspreal.c: Include stdlib.
	  Original commit message from CVS:
	  * gst/realmedia/rtspreal.c:
	  Include stdlib.

2007-07-27 16:39:45 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/: Split out hash code in separate file.
	  Original commit message from CVS:
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/realhash.c: (hash), (call_hash),
	  (gst_rtsp_ext_real_calc_response_and_checksum):
	  * gst/realmedia/realhash.h:
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_get_transports),
	  (rtsp_ext_real_after_send), (rtsp_ext_real_stream_select):
	  Split out hash code in separate file.

2007-07-27 10:12:55 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/: Fix include paths and link dependecies for rtsp extension.
	  Original commit message from CVS:
	  * gst/asfdemux/Makefile.am:
	  * gst/asfdemux/gstrtspwms.c: (gst_rtsp_wms_parse_sdp), (_do_init),
	  (gst_rtsp_wms_class_init):
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_get_transports),
	  (rtsp_ext_real_before_send), (rtsp_ext_real_after_send),
	  (rtsp_ext_real_parse_sdp), (rtsp_ext_real_stream_select),
	  (_do_init), (gst_rtsp_real_class_init):
	  Fix include paths and link dependecies for rtsp extension.

2007-07-26 15:52:43 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/: Add RealMedia RTSP extension module. It has rank NONE until it is fully functional.
	  Original commit message from CVS:
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/rmdemux.c: (plugin_init):
	  * gst/realmedia/rtspreal.c: (rtsp_ext_real_get_transports),
	  (rtsp_ext_real_before_send), (rtsp_ext_real_after_send), (hash),
	  (call_hash), (rtsp_ext_real_calc_response_and_checksum),
	  (rtsp_ext_real_parse_sdp), (rtsp_ext_real_stream_select),
	  (_do_init), (gst_rtsp_real_base_init), (gst_rtsp_real_class_init),
	  (gst_rtsp_real_init), (gst_rtsp_real_finalize),
	  (gst_rtsp_real_change_state), (gst_rtsp_real_extension_init),
	  (gst_rtsp_real_plugin_init):
	  * gst/realmedia/rtspreal.h:
	  Add RealMedia RTSP extension module. It has rank NONE until it is fully
	  functional.

2007-07-25 18:38:42 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/asfdemux/: Move WMS RTSP extension from -good to here.
	  Original commit message from CVS:
	  * gst/asfdemux/Makefile.am:
	  * gst/asfdemux/gstasf.c: (plugin_init):
	  * gst/asfdemux/gstrtspwms.c: (gst_rtsp_wms_before_send),
	  (gst_rtsp_wms_after_send), (gst_rtsp_wms_parse_sdp),
	  (gst_rtsp_wms_configure_stream), (_do_init),
	  (gst_rtsp_wms_base_init), (gst_rtsp_wms_class_init),
	  (gst_rtsp_wms_init), (gst_rtsp_wms_finalize),
	  (gst_rtsp_wms_change_state), (gst_rtsp_wms_extension_init):
	  * gst/asfdemux/gstrtspwms.h:
	  Move WMS RTSP extension from -good to here.
	  Port it to the new pluggable extension interface.

2007-07-24 06:58:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/mad/Makefile.am: Link to audio helper from plugins-base.
	  Original commit message from CVS:
	  * ext/mad/Makefile.am:
	  Link to audio helper from plugins-base.

2007-07-24 05:05:29 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Use the new buffer clipping function from gstaudio here and require gst-plugins-base CVS.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  Use the new buffer clipping function from gstaudio here and
	  require gst-plugins-base CVS.

2007-07-23 09:07:19 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Sync liboil check with plugins-base. Add libm check.
	  Original commit message from CVS:
	  * configure.ac:
	  Sync liboil check with plugins-base. Add libm check.
	  * gst/synaesthesia/Makefile.am:
	  Link against libm. We're using sqrt here.

2007-07-20 07:58:25 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/asfdemux/gstasfdemux.c: Include stdlib.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  Include stdlib.

2007-07-20 07:41:57 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/annodex/Makefile.am: Fix CFLAGS/LIBS.
	  Original commit message from CVS:
	  * ext/annodex/Makefile.am:
	  Fix CFLAGS/LIBS.
	  * ext/cdio/gstcdiocddasrc.c:
	  * ext/libpng/gstpngdec.c: (gst_pngdec_task):
	  Include stdlib
	  * ext/cairo/Makefile.am:
	  * gst/videofilter/Makefile.am:
	  * tests/examples/level/Makefile.am:
	  Use $(LIBM) instead of -lm

2007-07-18 17:51:55 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Save some memory for each frame by only saving the start timestamp and start ...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
	  (gst_mp3parse_emit_frame), (mp3parse_handle_seek):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Save some memory for each frame by only saving the start timestamp
	  and start byte position instead of additionally the stop timestamp
	  and stop byte position. This requires us to use a doubly-linked list
	  but still saves 8-12 bytes per frame.

2007-07-16 09:14:18 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mad/gstmad.c: Fix buffer clipping to correctly clip to the segment stop.
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (clip_outgoing_buffer):
	  Fix buffer clipping to correctly clip to the segment stop.

2007-07-15 19:39:46 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Fix a calculation that was causing mp3parse to drop every incoming frame when...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_emit_frame):
	  Fix a calculation that was causing mp3parse to drop every incoming
	  frame when upstream delivered a segment in TIME format, breaking
	  playback of all mpeg system streams.

2007-07-13 16:46:35 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove bogus check for libcheck, since we check for gstreamer-check and it pulls in the required info from and we wer...
	  Original commit message from CVS:
	  * Makefile.am:
	  * configure.ac:
	  * tests/Makefile.am:
	  Remove bogus check for libcheck, since we check for
	  gstreamer-check and it pulls in the required info from
	  and we weren't actually _using_ the information for
	  libcheck ourselves anyway.

2007-07-13 16:27:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Implement accurate seeking in mpegaudioparse. Fixes #308312.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
	  (gst_mp3parse_init), (gst_mp3parse_dispose),
	  (gst_mp3parse_sink_event), (mp3parse_seek_table_last_entry),
	  (gst_mp3parse_emit_frame), (gst_mp3parse_chain),
	  (mp3parse_handle_seek), (mp3parse_src_query):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Implement accurate seeking in mpegaudioparse. Fixes #308312.
	  Also implement segment seeks.

2007-07-13 15:46:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mad/gstmad.*: Implement buffer clipping and use GST_BOILERPLATE instead of manual
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (_do_init), (gst_mad_init), (index_seek),
	  (normal_seek), (gst_mad_sink_event), (clip_outgoing_buffer),
	  (gst_mad_chain), (gst_mad_change_state):
	  * ext/mad/gstmad.h:
	  Implement buffer clipping and use GST_BOILERPLATE instead of manual
	  GType magic. Part one of bug #308312.

2007-07-12 11:21:23 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Use pkg-config to locate check.
	  Original commit message from CVS:
	  * configure.ac:
	  Use pkg-config to locate check.

2007-07-11 23:18:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Fix build against core CVS by not using deprecated API. Bump requirements for new API (overdue anyway).
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer):
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_descramble_buffer):
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_raw):
	  Fix build against core CVS by not using deprecated API. Bump
	  requirements for new API (overdue anyway).

2007-07-09 06:05:48 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  REQUIREMENTS: Also add amr-libs here and update a little.
	  Original commit message from CVS:
	  * REQUIREMENTS:
	  Also add amr-libs here and update a little.

2007-07-06 17:59:29 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/inspect/: Add inspect file for synaesthesia so the docs can be built even if the plugin isn't built yet....
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-dvdnav.xml:
	  * docs/plugins/inspect/plugin-realmedia.xml:
	  * docs/plugins/inspect/plugin-synaesthesia.xml:
	  Add inspect file for synaesthesia so the docs can be built even if
	  the plugin isn't built yet. Fixes #454311. Also add inspect files
	  for dvdnavsrc and realmedia.

2007-07-05 08:44:30 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/Makefile.am: Simplify --extra-dir as gtkdoc scans recursively.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  Simplify --extra-dir as gtkdoc scans recursively.

2007-07-03 13:05:01 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  And yet more docs enabled.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  * gst/synaesthesia/Makefile.am:
	  * gst/synaesthesia/gstsynaesthesia.c:
	  * gst/synaesthesia/gstsynaesthesia.h:
	  And yet more docs enabled.

2007-07-03 11:55:45 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Add new docs. Scan c++ files too.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-a52dec.xml:
	  * docs/plugins/inspect/plugin-amrnb.xml:
	  * docs/plugins/inspect/plugin-asf.xml:
	  * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	  * docs/plugins/inspect/plugin-dvdsub.xml:
	  * docs/plugins/inspect/plugin-iec958.xml:
	  * docs/plugins/inspect/plugin-lame.xml:
	  * docs/plugins/inspect/plugin-mad.xml:
	  * docs/plugins/inspect/plugin-mpeg2dec.xml:
	  * docs/plugins/inspect/plugin-mpegaudioparse.xml:
	  * docs/plugins/inspect/plugin-mpegstream.xml:
	  Add new docs. Scan c++ files too.
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_base_init),
	  (gst_amrnbdec_event):
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_base_init):
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_base_init),
	  (gst_amrnbparse_loop):
	  Add documentation headers.
	  * ext/mad/gstmad.c:
	  * ext/mad/gstmad.h:
	  Refactor for docs.

2007-07-01 19:12:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Use GST_BOILERPLATE instead of manual GType magic.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_base_init),
	  (gst_mp3parse_init):
	  Use GST_BOILERPLATE instead of manual GType magic.
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_handle_first_frame), (mp3parse_time_to_bytepos),
	  (mp3parse_bytepos_to_time):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Implement seeking, byte->time, time->byte conversions with the Xing
	  seek table if available. This allows better at least a bit more
	  accurate seeks and file position reporting.

2007-06-28 20:33:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Copy the complete Xing seek table in the 100 byte array instead of copying th...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_handle_first_frame):
	  Copy the complete Xing seek table in the 100 byte array instead of
	  copying the first byte 100 times.
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (mp3parse_total_bytes),
	  (mp3parse_total_time), (mp3parse_time_to_bytepos):
	  Add seeking support based on the Xing header but comment it out for
	  now as it seems to yield worse result than the other method.
	  Also use gst_pad_query_peer_duration() instead of getting the peer pad
	  ourself, creating a new GstQuery, etc.

2007-06-25 12:46:47 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Update docs with caps info.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-ugly-plugins.args:
	  * docs/plugins/inspect/plugin-a52dec.xml:
	  * docs/plugins/inspect/plugin-amrnb.xml:
	  * docs/plugins/inspect/plugin-asf.xml:
	  * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	  * docs/plugins/inspect/plugin-dvdread.xml:
	  * docs/plugins/inspect/plugin-dvdsub.xml:
	  * docs/plugins/inspect/plugin-iec958.xml:
	  * docs/plugins/inspect/plugin-lame.xml:
	  * docs/plugins/inspect/plugin-mad.xml:
	  * docs/plugins/inspect/plugin-mpeg2dec.xml:
	  * docs/plugins/inspect/plugin-mpegaudioparse.xml:
	  * docs/plugins/inspect/plugin-mpegstream.xml:
	  Update docs with caps info.

2007-06-25 12:25:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  po/POTFILES.in: Make sure dvdnav strings get translated too (no reason not to have them in the .po file, even if the ...
	  Original commit message from CVS:
	  * po/POTFILES.in:
	  Make sure dvdnav strings get translated too (no reason not to have
	  them in the .po file, even if the plugin is disabled for now).
	  Fixes #450879.

2007-06-25 11:46:24 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/amrnb/: Add newsegment and discont handling. Some code cleanups.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_base_init),
	  (gst_amrnbdec_event), (gst_amrnbdec_chain),
	  (gst_amrnbdec_state_change):
	  * ext/amrnb/amrnbdec.h:
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_base_init),
	  (gst_amrnbparse_loop):
	  Add newsegment and discont handling. Some code cleanups.

2007-06-25 07:55:51 +0000  David Schleef <ds@schleef.org>

	  ext/dvdread/dvdreadsrc.c: check for an error from
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: check for an error from
	  DVDReadBlocks() correctly.

2007-06-25 07:22:10 +0000  David Schleef <ds@schleef.org>

	  ext/dvdread/dvdreadsrc.c: If we can't read a nav packet, or it doesn't look like a nav packet, that's an error.  Prev...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c:
	  If we can't read a nav packet, or it doesn't look like a nav
	  packet, that's an error.  Previous behavior was to look at
	  the next packet; I can't find any justification for doing that.
	  Fixes: #358891.

2007-06-23 22:57:29 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/it.po: Updated Italian translation.
	  Original commit message from CVS:
	  * po/it.po:
	  Updated Italian translation.

2007-06-23 11:22:39 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/vi.po: Updated Vietnames translation.
	  Original commit message from CVS:
	  * po/vi.po:
	  Updated Vietnames translation.

2007-06-23 11:21:54 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Added Chinese (simplified) translation.
	  Original commit message from CVS:
	  contributed by: Wenzheng Hu <db_lobster@163.com>
	  * po/LINGUAS:
	  * po/zh_CN.po:
	  Added Chinese (simplified) translation.

2007-06-22 14:27:18 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  MAINTAINERS: Updating all the maintainers files
	  Original commit message from CVS:
	  * MAINTAINERS:
	  Updating all the maintainers files

2007-06-22 10:57:06 +0000  Edward Hervey <bilboed@bilboed.com>

	  Fix leaks some more.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_init):
	  * gst/ac3parse/gstac3parse.c: (gst_ac3parse_init):
	  * gst/asfdemux/gstasfmux.c: (gst_asfmux_init):
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_init):
	  * gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_init):
	  * gst/iec958/ac3iec.c: (ac3iec_init):
	  * gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_init):
	  Fix leaks some more.

2007-06-21 14:33:58 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: "She's leaking me", said valgrind.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_init):
	  "She's leaking me", said valgrind.

2007-06-19 14:40:20 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Fix "pad caps are not a real subset of its template caps" warning.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (mp3_caps_create):
	  Fix "pad caps are not a real subset of its template caps" warning.

2007-06-19 14:15:50 +0000  Laurent Glayal <spglegle@yahoo.fr>

	  ext/amrnb/amrnbdec.c: Don't leak the adapter, unref it in a new finalize method instead.
	  Original commit message from CVS:
	  Patch by: Laurent Glayal <spglegle at yahoo dot fr>
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_class_init),
	  (gst_amrnbdec_finalize):
	  Don't leak the adapter, unref it in a new finalize method instead.
	  Fixes #448782.

2007-06-19 10:43:26 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to CVS
	  Original commit message from CVS:
	  * configure.ac:
	  Back to CVS
	  * gst-plugins-ugly.doap:
	  Add 0.10.6 to the list of releases.

=== release 0.10.6 ===

2007-06-19 10:31:04 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	  Release 0.10.6
	  Original commit message from CVS:
	  Release 0.10.6

2007-06-19 10:21:25 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/da.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	  Update .po files
	  Original commit message from CVS:
	  Update .po files

2007-06-15 09:31:16 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  win32/vs6/: Convert line endings to CRLF and mark as binary files.
	  Original commit message from CVS:
	  * win32/vs6/gst_plugins_ugly.dsw:
	  * win32/vs6/libgstac3parse.dsp:
	  * win32/vs6/libgstasfdemux.dsp:
	  * win32/vs6/libgstdvdlpcmdec.dsp:
	  * win32/vs6/libgstdvdsub.dsp:
	  * win32/vs6/libgstiec958.dsp:
	  * win32/vs6/libgstlame.dsp:
	  * win32/vs6/libgstmad.dsp:
	  * win32/vs6/libgstmpegaudioparse.dsp:
	  * win32/vs6/libgstmpegstream.dsp:
	  * win32/vs6/libgstrealmedia.dsp:
	  * win32/vs6/libgstsynaesthesia.dsp:
	  Convert line endings to CRLF and mark as binary files.

2007-06-13 14:29:39 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdnav/dvdnavsrc.c: Don't forget to unlock when setting the device property, or we'll sooner or later deadlock.
	  Original commit message from CVS:
	  * ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_set_property):
	  Don't forget to unlock when setting the device property, or
	  we'll sooner or later deadlock.

2007-06-12 21:46:10 +0000  Sébastien Moutte <sebastien@moutte.net>

	  gst/dvdsub/gstdvdsubdec.c: Use gst_util_guint64_to_gdouble for conversion.
	  Original commit message from CVS:
	  * gst/dvdsub/gstdvdsubdec.c:(gst_dvd_sub_dec_parse_subpic):
	  Use gst_util_guint64_to_gdouble for conversion.
	  * win32/vs6/libgstasfdemux.dsp:
	  Add asfpacket.c to the build.

2007-06-08 08:39:43 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/gstmpegaudioparse.*: If the Xing header provides a total time, use it to calculate the correct ave...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
	  (gst_mp3parse_emit_frame), (gst_mp3parse_handle_first_frame):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  If the Xing header provides a total time, use it to calculate the
	  correct average bitrate immediately, instead of sending updates as
	  we parse the stream.

2007-06-05 21:47:29 +0000  by Mark Nauwelaerts <manauw@skynet.be>

	  gst/dvdsub/gstdvdsubdec.c: Use GstClockTime instead of guint for a time variable to prevent overflows on too large su...
	  Original commit message from CVS:
	  Patch by by: Mark Nauwelaerts <manauw at skynet dot be>
	  * gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_parse_subpic):
	  Use GstClockTime instead of guint for a time variable to prevent
	  overflows on too large subtitle durations. Fixes #444514.

2007-05-31 22:33:26 +0000  Mark Nauwelaerts <manauw@skynet.be>

	  gst/dvdsub/gstdvdsubdec.c: Clear state when handling the serialized FLUSH_STOP event instead of the FLUSH_START event...
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <manauw at skynet be>
	  * gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_sink_event):
	  Clear state when handling the serialized FLUSH_STOP event instead of
	  the FLUSH_START event, thereby making sure we don't free buffers the
	  chain function is still using. Fixes dvdsubdec crashing when flusing
	  or seeking (#442706).

2007-05-23 11:16:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Initialise variable to make fc4 build bot happy.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	  Initialise variable to make fc4 build bot happy.

2007-05-21 15:11:45 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/gstmpegdemux.c: Add sanity check so we don't abort for broken or non-MPEG streams, but instead error o...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer):
	  Add sanity check so we don't abort for broken or non-MPEG streams,
	  but instead error out. Fixes crashes/aborts for when our typefinder
	  wrongly identifies quicktime files as mpeg (which should be fixed in
	  -base now too). (#440120).

2007-05-18 09:35:17 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	* ChangeLog:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/amrnb/amrnbparse.c:
	  ext/amrnb/amrnbdec.c (gst_amrnbdec_debug, GST_CAT_DEFAULT, block_size, _do_init, gst_amrnbdec_base_init, gst_amrnbdec...
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c (gst_amrnbdec_debug, GST_CAT_DEFAULT,
	  block_size, _do_init, gst_amrnbdec_base_init,
	  gst_amrnbdec_class_init, gst_amrnbdec_init):
	  * ext/amrnb/amrnbenc.c (gst_amrnbenc_debug, GST_CAT_DEFAULT, _do_init,
	  gst_amrnbenc_base_init, gst_amrnbenc_class_init, gst_amrnbenc_init):
	  * ext/amrnb/amrnbparse.c (gst_amrnbparse_debug, GST_CAT_DEFAULT,
	  block_size, _do_init, gst_amrnbparse_base_init,
	  gst_amrnbparse_class_init, gst_amrnbparse_init):
	  First round of cleanups, that use GST_BOILERPLATE, GST_ELEMENT_DETAILS,
	  GST_DEBUG_FUNCPTR and add log-category.

2007-05-18 08:42:25 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Implement parsing of Xing headers from the first frame of the stream, and use...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (mp3_type_frame_length_from_header), (gst_mp3parse_reset),
	  (gst_mp3parse_emit_frame), (gst_mp3parse_handle_first_frame),
	  (gst_mp3parse_chain), (mp3parse_total_bytes),
	  (mp3parse_total_time):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Implement parsing of Xing headers from the first frame of the stream,
	  and use it to report duration correctly where possible.

2007-05-16 19:15:13 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: After descrambling, push the packets out as individual packets instead of one big descramble...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_descramble_cook_audio):
	  After descrambling, push the packets out as individual packets
	  instead of one big descrambled buffer. Makes cook audio decoding
	  work with the 'realaudiodec' decoder from gst-plugins-bad.

2007-05-16 19:07:45 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.*: Remember first timestamp encountered in stream and re-timestamp stream to start from zero (f...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_init),
	  (gst_rmdemux_sink_event), (gst_rmdemux_perform_seek),
	  (gst_rmdemux_reset), (gst_rmdemux_chain), (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_packet):
	  * gst/realmedia/rmdemux.h:
	  Remember first timestamp encountered in stream and re-timestamp
	  stream to start from zero (fixes #397219); only send one newsegment
	  event, not two; when seeking, send newsegment events from the
	  streaming thread and not from the seeking thread.

2007-05-16 12:48:43 +0000  Mark Nauwelaerts <manauw@skynet.be>

	  gst/mpegstream/: Reset last_flow values for the various streams after a flushing seek, otherwise we might aggregate w...
	  Original commit message from CVS:
	  Based on patch by: Mark Nauwelaerts  <manauw skynet be>
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
	  (gst_mpeg_demux_process_event), (gst_mpeg_streams_reset_last_flow):
	  * gst/mpegstream/gstmpegdemux.h:
	  Reset last_flow values for the various streams after a flushing
	  seek, otherwise we might aggregate wrong flow returns afterwards
	  that will make upstream pause silently. This should fix seeking
	  in DVDs and also fix the Thoggen cropping dialog (#438610).

2007-05-07 13:51:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.*: Activate streams (ie. add the pads to the element) depending on whether we actually get d...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_reset),
	  (gst_asf_demux_chain_headers),
	  (gst_asf_demux_parse_data_object_start), (all_streams_prerolled),
	  (gst_asf_demux_have_mutually_exclusive_active_stream),
	  (gst_asf_demux_check_activate_streams),
	  (gst_asf_demux_find_stream_with_complete_payload),
	  (gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop),
	  (gst_asf_demux_activate_ext_props_streams),
	  (gst_asf_demux_process_object):
	  * gst/asfdemux/gstasfdemux.h:
	  Activate streams (ie. add the pads to the element) depending on
	  whether we actually get data for those streams within the ASF
	  preroll value specified. Currently only done in pull-mode though
	  (this will fix problems with playbin hanging on mms streams once
	  we use this in push-mode as well).

2007-05-04 11:04:16 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Make all timestamps start from zero in pull-mode too; some small clean-ups and FIXMEs here and there.
	  Original commit message from CVS:
	  * gst/asfdemux/asfpacket.c: (gst_asf_payload_queue_for_stream):
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_reset),
	  (gst_asf_demux_init), (gst_asf_demux_push_complete_payloads),
	  (gst_asf_demux_process_file):
	  * gst/asfdemux/gstasfdemux.h:
	  Make all timestamps start from zero in pull-mode too; some small
	  clean-ups and FIXMEs here and there.

2007-05-01 11:10:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/asfpacket.c: If packet size is specified within the packet and smaller than the actual packet size, don'...
	  Original commit message from CVS:
	  * gst/asfdemux/asfpacket.c: (gst_asf_demux_parse_payload),
	  (gst_asf_demux_parse_packet):
	  If packet size is specified within the packet and smaller than
	  the actual packet size, don't parse beyond the size specified in
	  the packet (this makes us parse some cases of packets with single
	  compressed payloads cleanly, see e.g stream from #431318). Also
	  add a sanity check when parsing compressed single payloads.

2007-05-01 09:19:13 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Seeking improvements: honour the KEY_UNIT seek flag; after a seek, only send data from the keyframe ri...
	  Original commit message from CVS:
	  * gst/asfdemux/asfpacket.c: (gst_asf_payload_queue_for_stream):
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_seek_index_lookup),
	  (gst_asf_demux_handle_seek_event),
	  (gst_asf_demux_push_complete_payloads):
	  Seeking improvements: honour the KEY_UNIT seek flag; after a seek, only
	  send data from the keyframe right before the new segment start to
	  make sure the decoder doesn't have to decode more than absolutely
	  necessary.

2007-04-30 15:36:00 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Implement payload extension system/extended replicated data parsing, so we can extract payload duratio...
	  Original commit message from CVS:
	  * gst/asfdemux/asfheaders.c:
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/asfpacket.c:
	  (asf_payload_parse_replicated_data_extensions),
	  (gst_asf_demux_parse_payload):
	  * gst/asfdemux/asfpacket.h:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
	  (gst_asf_demux_push_complete_payloads),
	  (gst_asf_demux_process_ext_stream_props):
	  * gst/asfdemux/gstasfdemux.h:
	  Implement payload extension system/extended replicated data parsing,
	  so we can extract payload durations if they're specified.

2007-04-30 11:41:22 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Refactor stream parse/activation a bit (stream activation heuristics are still the same though); some ...
	  Original commit message from CVS:
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
	  (gst_asf_demux_reset), (gst_asf_demux_parse_data_object_start),
	  (gst_asf_demux_loop), (gst_asf_demux_setup_pad),
	  (gst_asf_demux_add_audio_stream), (gst_asf_demux_activate_stream),
	  (gst_asf_demux_parse_stream_object),
	  (gst_asf_demux_process_ext_stream_props),
	  (gst_asf_demux_process_queued_extended_stream_objects),
	  (gst_asf_demux_activate_ext_props_streams),
	  (gst_asf_demux_process_object):
	  * gst/asfdemux/gstasfdemux.h:
	  Refactor stream parse/activation a bit (stream activation heuristics
	  are still the same though); some more clean-ups.

2007-04-28 12:23:16 +0000  Tim-Philipp Müller <tim@centricular.net>

	  win32/common/.cvsignore: Ignore generated config.h file to make build bot happy.
	  Original commit message from CVS:
	  * win32/common/.cvsignore:
	  Ignore generated config.h file to make build bot happy.

2007-04-28 10:49:17 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Init debug category before using it.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasf.c: (plugin_init):
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init):
	  * gst/asfdemux/gstasfdemux.h:
	  Init debug category before using it.

2007-04-27 18:39:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Fix silly bug when we can't pull as much data as we want; don't forget to announce pendin...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_pull_data),
	  (gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop):
	  Fix silly bug when we can't pull as much data as we want; don't
	  forget to announce pending tags in the new packet parsing code.

2007-04-25 17:23:33 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Generate a win32 config.h into win32/common and add to MANIFEST so it gets disted (#393890). Looks like win32/common/...
	  Original commit message from CVS:
	  * configure.ac:
	  * win32/MANIFEST:
	  Generate a win32 config.h into win32/common and add to MANIFEST so
	  it gets disted (#393890). Looks like win32/common/config.h.in needs
	  some work though.

2007-04-22 22:41:20 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/amrnb/amrnbparse.c: Fix pull mode operation some more: send newsegment event before sending data; handle EOS and ...
	  Original commit message from CVS:
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_get_type),
	  (gst_amrnbparse_class_init), (gst_amrnbparse_init),
	  (gst_amrnbparse_pull_header), (gst_amrnbparse_loop):
	  Fix pull mode operation some more: send newsegment event before
	  sending data; handle EOS and fatal flow returns a bit better; don't
	  leak buffers in some cases. Misc. minor cleanups. Fixes #431707.

2007-04-20 20:57:56 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: New packet parsing code: should put halfway decent timestamps on buffers, and might even set the appro...
	  Original commit message from CVS:
	  * gst/asfdemux/Makefile.am:
	  * gst/asfdemux/asfpacket.c: (asf_packet_read_varlen_int),
	  (asf_packet_create_payload_buffer),
	  (asf_payload_find_previous_fragment),
	  (gst_asf_payload_queue_for_stream), (gst_asf_demux_parse_payload),
	  (gst_asf_demux_parse_packet):
	  * gst/asfdemux/asfpacket.h:
	  * gst/asfdemux/gstasfdemux.c:
	  (gst_asf_demux_reset_stream_state_after_discont),
	  (gst_asf_demux_push_complete_payloads), (gst_asf_demux_loop),
	  (gst_asf_demux_setup_pad), (gst_asf_demux_descramble_buffer),
	  (gst_asf_demux_process_chunk):
	  * gst/asfdemux/gstasfdemux.h:
	  New packet parsing code: should put halfway decent timestamps on
	  buffers, and might even set the appropriate keyframe/discont buffer
	  flags from time to time (and even if it doesn't, I'm at least able
	  to debug this code); only used in pull-mode so far. Still needs
	  some more work, like payload extensions parsing and proper flow
	  aggregation, and stream activation based on preroll. Stay tuned.

2007-04-20 17:32:00 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Some clean-ups and small fixes: rename asf_stream_context structure to
	  Original commit message from CVS:
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
	  (gst_asf_demux_seek_index_lookup),
	  (gst_asf_demux_handle_seek_event), (gst_asf_demux_get_stream),
	  (gst_asf_demux_setup_pad), (gst_asf_demux_add_video_stream),
	  (gst_asf_demux_process_ext_content_desc),
	  (gst_asf_demux_process_file), (gst_asf_demux_descramble_segment),
	  (gst_asf_demux_push_buffer), (gst_asf_demux_process_chunk),
	  (gst_asf_demux_process_segment), (gst_asf_demux_handle_data):
	  * gst/asfdemux/gstasfdemux.h:
	  Some clean-ups and small fixes: rename asf_stream_context structure to
	  AsfStream; inline some three-line utility functions that are only used
	  once anyway and get rid of their associated helper structs; make debug
	  category global so that it is used by the debug statements in the other
	  file as well; simplify gst_asf_demux_get_stream(); fix accidental
	  implicit initialisation of stream->last_buffer_timestamp to 0, which
	  would lead to missing timestamps on the first buffer; put fourcc format
	  into video caps to make certain proprietary wmv decoders happy (for the
	  case of WMVA in particular); play_time is offset by preroll as well, so
	  fix overreporting of duration for some files.

2007-04-17 10:21:50 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Printf format fixes.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event),
	  (gst_asf_demux_pull_indices):
	  Printf format fixes.

2007-04-16 16:30:50 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/gstmpegparse.c: Post an error message if EOS wasn't handled by anything downstream.
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
	  (gst_mpeg_parse_send_event):
	  Post an error message if EOS wasn't handled by anything downstream.
	  This should fix playbin freezing/hanging with small VobSub subtitle
	  files (background: not-linked flow returns from downstream are
	  ignored for a while at the beginning, so if the file is small
	  upstream will never get a not-linked flow return even if nothing
	  is connected downstream). (#429960).

2007-04-16 15:15:07 +0000  Michael Smith <msmith@xiph.org>

	  ext/amrnb/amrnbparse.c: Rewrite terminally broken sinkpad activation code. and push mode activation doesn't leave the...
	  Original commit message from CVS:
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_init),
	  (gst_amrnbparse_sink_activate),
	  (gst_amrnbparse_sink_activate_pull):
	  Rewrite terminally broken sinkpad activation code.
	  Now actually supports pull-mode activation (didn't before), and push
	  mode activation doesn't leave the sinkpad flushing.

2007-04-12 13:38:03 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Make asfdemux work in pull mode where possible. If there's an index at the end of the file, read it an...
	  Original commit message from CVS:
	  * gst/asfdemux/asfheaders.c:
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
	  (gst_asf_demux_reset), (gst_asf_demux_init),
	  (gst_asf_demux_activate), (gst_asf_demux_activate_push),
	  (gst_asf_demux_activate_pull), (gst_asf_demux_sink_event),
	  (gst_asf_demux_seek_index_lookup),
	  (gst_asf_demux_reset_stream_state_after_discont),
	  (gst_asf_demux_handle_seek_event),
	  (gst_asf_demux_handle_src_event), (gst_asf_demux_chain_headers),
	  (gst_asf_demux_chain), (gst_asf_demux_pull_data),
	  (gst_asf_demux_pull_indices),
	  (gst_asf_demux_parse_data_object_start),
	  (gst_asf_demux_pull_headers), (gst_asf_demux_loop),
	  (gst_asf_demux_setup_pad), (gst_asf_demux_process_file),
	  (gst_asf_demux_process_simple_index),
	  (gst_asf_demux_process_object),
	  (gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
	  (gst_asf_demux_handle_data), (gst_asf_demux_change_state):
	  * gst/asfdemux/gstasfdemux.h:
	  Make asfdemux work in pull mode where possible. If there's an index
	  at the end of the file, read it and use it for seeking purposes.

2007-04-12 10:19:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/synaesthesia/gstsynaesthesia.c: Some timestamp fixes.
	  Original commit message from CVS:
	  * gst/synaesthesia/gstsynaesthesia.c: (gst_synaesthesia_init),
	  (gst_synaesthesia_sink_setcaps), (gst_synaesthesia_src_setcaps),
	  (gst_synaesthesia_chain), (gst_synaesthesia_change_state):
	  Some timestamp fixes.
	  * gst/synaesthesia/synaescope.c: (synaescope_coreGo):
	  Fix for 64-bit machines.

2007-04-12 10:10:22 +0000  René Stadler <mail@renestadler.de>

	  gst/realmedia/rmdemux.*: Make rmdemux handle any number of logical streams. Fixes #428698.
	  Original commit message from CVS:
	  Patch by: René Stadler <mail at renestadler dot de>
	  * gst/realmedia/rmdemux.c: (find_seek_offset_bytes),
	  (find_seek_offset_time), (gst_rmdemux_reset),
	  (gst_rmdemux_get_stream_by_id), (gst_rmdemux_send_event),
	  (gst_rmdemux_add_stream), (gst_rmdemux_combine_flows):
	  * gst/realmedia/rmdemux.h:
	  Make rmdemux handle any number of logical streams. Fixes #428698.

2007-04-05 13:48:52 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* po/nl.po:
	  update dutch
	  Original commit message from CVS:
	  update dutch

2007-04-05 13:48:12 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Added Danish translation.
	  Original commit message from CVS:
	  submitted by: Mogens Jaeger <mogens@jaeger.tf>
	  * po/LINGUAS:
	  * po/da.po:
	  Added Danish translation.

2007-03-28 16:01:06 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  po/.cvsignore: Add pot.
	  Original commit message from CVS:
	  * po/.cvsignore:
	  Add pot.

2007-03-27 12:02:49 +0000  Julien Moutte <julien@moutte.net>

	  ext/mad/gstmad.c: Generate a perfect stream and try to adapt to incoming timestamps lack of precision up to half a fr...
	  Original commit message from CVS:
	  2007-03-27  Julien MOUTTE  <julien@moutte.net>
	  * ext/mad/gstmad.c: (gst_mad_chain): Generate a perfect
	  stream and try to adapt to incoming timestamps lack of
	  precision up to half a frame. This allows generating
	  a perfect stream even with muxed formats like FLV where
	  the timestamps are stored in milliseconds.

2007-03-22 21:44:45 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Remove unused zlib.h include. Fixes #421594.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c:
	  Remove unused zlib.h include. Fixes #421594.

2007-03-21 12:53:57 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/lame/gstlame.c: Disable the bitrate checking when the user has requested
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_setup):
	  Disable the bitrate checking when the user has requested
	  Free Format mode, as all bitrates less than the maximum
	  are valid then.

2007-03-14 15:21:41 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Update translations.
	  Original commit message from CVS:
	  * po/hu.po:
	  * po/it.po:
	  * po/sv.po:
	  Update translations.

2007-03-12 17:26:13 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mad/gstmad.c: When handling seeks, don't convert -1 start or stop values to a bogus byte position - pass them ups...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_convert_sink), (gst_mad_convert_src):
	  When handling seeks, don't convert -1 start or stop values to a bogus
	  byte position - pass them upstream as -1.

2007-03-12 10:47:01 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Implement seeking via average bitrate, and position+duration querying in mp3p...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (mp3_type_frame_length_from_header), (gst_mp3parse_reset),
	  (gst_mp3parse_init), (gst_mp3parse_sink_event),
	  (gst_mp3parse_emit_frame), (gst_mp3parse_chain),
	  (gst_mp3parse_change_state), (mp3parse_time_to_bytepos),
	  (mp3parse_bytepos_to_time), (mp3parse_total_bytes),
	  (mp3parse_total_time), (mp3parse_handle_seek),
	  (mp3parse_src_event), (mp3parse_src_query),
	  (mp3parse_get_query_types), (plugin_init):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Implement seeking via average bitrate, and position+duration
	  querying in mp3parse. Later, it will support frame-accurate seeking by
	  building a seek table as it parses.
	  Add 'parsed=false' to the sink pad caps, and 'parsed=true' to the src
	  pad caps. Bump the priority to PRIMARY+1 so that it is autoplugged
	  before any extant MP3 decoder plugin. This allows us to remove framing
	  support from the decoders, if we want, and will provide them with
	  accurate seeking automatically once it is finished.
	  Fix the handling of MPEG-1 Layer 1 files.
	  Partially fix timestamping of packets arriving from a demuxer by
	  queueing the incoming timestamp until the next packet starts, rather
	  than applying it immediately to the next pushed buffer.

2007-03-10 15:56:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Printf format fix.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_header_ext):
	  Printf format fix.

2007-03-04 17:13:19 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/cdio/gstcdiocddasrc.c: Make sure we always destroy our libcdio handle.
	  Original commit message from CVS:
	  * ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open),
	  (gst_cdio_cdda_src_finalize):
	  Make sure we always destroy our libcdio handle.

2007-03-02 16:08:17 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/cdio/gstcdiocddasrc.c: Small code cleanups.
	  Original commit message from CVS:
	  * ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_probe_devices),
	  (gst_cdio_cdda_src_read_sector), (gst_cdio_cdda_src_open),
	  (gst_cdio_cdda_src_finalize):
	  Small code cleanups.
	  Don't use pad_alloc as the base class cannot deal with the error codes.

2007-03-02 13:01:48 +0000  Zaheer Abbas Merali <zaheermerali@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Never post a (fatal) error message on the bus on decoding errors. We should only do this ...
	  Original commit message from CVS:
	  Patch by: Zaheer Abbas Merali  <zaheermerali at gmail com>
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_chain):
	  Never post a (fatal) error message on the bus on decoding errors. We
	  should only do this if we can't recover, but mpeg2dec can always
	  recover. This is needed for DVB streams, for example, where there
	  may be temporary glitches in the stream. Instead of an error
	  message, post a warning message on the bus for every N decoding
	  errors. Fixes #370020.

2007-02-28 19:30:35 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  configure.ac: Convert to new AG_GST style.
	  Original commit message from CVS:
	  * configure.ac:
	  Convert to new AG_GST style.

2007-02-28 18:41:38 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/lame/gstlame.c: Display sensible defaults and limits for the vbr-min/max/mean properties. Fix the 'hard-limit' VB...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init),
	  (gst_lame_setup):
	  Display sensible defaults and limits for the
	  vbr-min/max/mean properties. Fix the 'hard-limit' VBR min
	  property - it's supposed to be a boolean 0/1 value.

2007-02-28 16:01:08 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/lame/gstlame.c: Initialise the variables so gcc doesn't complain about possibly uninitialised uses, even though t...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c:
	  Initialise the variables so gcc doesn't complain about possibly
	  uninitialised uses, even though they can't actually happen.

2007-02-28 15:52:23 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/dvdlpcmdec/gstdvdlpcmdec.*: Implement all sample rates.
	  Original commit message from CVS:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcm_reset),
	  (update_timestamps), (parse_header), (gst_dvdlpcmdec_chain_dvd),
	  (gst_dvdlpcmdec_chain_raw), (dvdlpcmdec_sink_event):
	  * gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  Implement all sample rates.
	  Implement sample permutation a little smarter avoiding a memcpy.
	  Fix timestamps, use segments, fix seeking.

2007-02-28 15:49:35 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Document siddec.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-siddec.xml:
	  * ext/sidplay/gstsiddec.cc:
	  * ext/sidplay/gstsiddec.h:
	  Document siddec.

2007-02-21 16:02:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  ext/lame/gstlame.c: Fix up bitrate checking macro.  Make it give us a
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_setcaps),
	  (gst_lame_set_property), (gst_lame_setup):
	  Fix up bitrate checking macro.  Make it give us a
	  GST_ELEMENT_WARNING message so the application has a chance of
	  reporting this to the user.  Move the checking to _setup, so we
	  are sure it runs in the READY state, when we hope to have a pipeline
	  and a bus that is not flushing.
	  This fixes e.g. using 96 kbit/sec as a bitrate.

2007-02-15 19:55:55 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.*: Parse advanced mutual exclusion object and only add pads for 'hidden' streams (those in a...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_file),
	  (gst_asf_demux_process_advanced_mutual_exclusion),
	  (gst_asf_demux_process_queued_extended_stream_objects),
	  (gst_asf_demux_process_object), (gst_asf_demux_change_state):
	  * gst/asfdemux/gstasfdemux.h:
	  Parse advanced mutual exclusion object and only add pads for
	  'hidden' streams (those in an extended stream header) that are
	  mutually exclusive with an already existing 'main stream' if
	  the broadcasting flag is not set. If the broadcasting flag is set,
	  assume that data for this stream isn't sent. (This should ideally be
	  solved better by making playbin more robust against this and/or by
	  making mmssrc send some information downstream about which streams
	  will be streamed). Fixes #353116.

2007-02-13 12:00:59 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/synaesthesia/: Move all the mutable engine state into a structure so that multiple element instances can run with...
	  Original commit message from CVS:
	  * gst/synaesthesia/gstsynaesthesia.c:
	  (gst_synaesthesia_class_init), (gst_synaesthesia_init),
	  (gst_synaesthesia_finalize), (gst_synaesthesia_chain):
	  * gst/synaesthesia/synaescope.c: (synaescope_coreGo),
	  (synaescope32), (synaescope_set_data), (synaesthesia_update),
	  (synaesthesia_init), (synaesthesia_new), (synaesthesia_close):
	  * gst/synaesthesia/synaescope.h:
	  Move all the mutable engine state into a structure so that
	  multiple element instances can run without interfering.

2007-02-13 09:15:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Add crossreferences to glib/gobject/gstream docs.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  Add crossreferences to glib/gobject/gstream docs.

2007-02-12 12:46:20 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/synaesthesia/: More source cleanups and add FIXME comments.
	  Original commit message from CVS:
	  * gst/synaesthesia/gstsynaesthesia.c: (gst_synaesthesia_init),
	  (gst_synaesthesia_sink_setcaps), (gst_synaesthesia_src_getcaps),
	  (gst_synaesthesia_src_setcaps), (gst_synaesthesia_chain),
	  (plugin_init):
	  * gst/synaesthesia/synaescope.c: (synaescope_coreGo),
	  (synaescope8):
	  More source cleanups and add FIXME comments.

2007-02-11 13:42:45 +0000  Sébastien Moutte <sebastien@moutte.net>

	  gst/realmedia/rmdemux.c: Use gst_guint64_to_gdouble for conversions.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c:(gst_rmdemux_parse_indx_data):
	  Use gst_guint64_to_gdouble for conversions.
	  * gst/synaesthesia/synaescope.c:
	  Define M_PI and do not include <pthread.h> and
	  <sys/time.h> for G_OS_WIN32
	  * win32/vs6/libgstrealmedia.dsp:
	  * win32/vs6/synaesthesia.dsp:
	  Update projects files.
	  * win32/common/config.h.in:
	  Add config.h.in for autogen of config.h

2007-02-11 10:51:42 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Add --enable-experimental support. Activate synaesthesia when building with --enable-experimental. Fix ...
	  Original commit message from CVS:
	  * configure.ac:
	  Add --enable-experimental support. Activate synaesthesia when building
	  with --enable-experimental. Fix --enable external configure switch
	  description.

2007-02-09 16:24:45 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.*: On receiving EOS, we try to push a last buffer with the remaining samples. Don't do that if we go...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_event), (gst_lame_chain),
	  (gst_lame_change_state):
	  * ext/lame/gstlame.h:
	  On receiving EOS, we try to push a last buffer with the remaining
	  samples. Don't do that if we got an unclean flow return on the last
	  gst_pad_push(), downstream might not handle this very gracefully
	  (see #403168).
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	  Pass flow returns upstream (helps #403168).

2007-02-09 08:03:09 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/synaesthesia/gstsynaesthesia.c: check result of gst_pad_push() in _chain.
	  Original commit message from CVS:
	  * gst/synaesthesia/gstsynaesthesia.c:
	  (gst_synaesthesia_class_init), (gst_synaesthesia_init),
	  (gst_synaesthesia_sink_setcaps), (gst_synaesthesia_src_getcaps),
	  (gst_synaesthesia_chain), (plugin_init):
	  check result of gst_pad_push() in _chain.

2007-02-09 07:48:50 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/synaesthesia/: Added docs (not yet added to gst-plugins-ugl/docs/plugins as plugin is not built by default). Fixe...
	  Original commit message from CVS:
	  * gst/synaesthesia/Makefile.am:
	  * gst/synaesthesia/gstsynaesthesia.c:
	  (gst_synaesthesia_class_init), (gst_synaesthesia_init),
	  (gst_synaesthesia_sink_setcaps), (gst_synaesthesia_src_getcaps),
	  (gst_synaesthesia_chain), (plugin_init):
	  * gst/synaesthesia/synaescope.c:
	  * gst/synaesthesia/synaescope.h:
	  Added docs (not yet added to gst-plugins-ugl/docs/plugins as plugin is not
	  built by default). Fixed Makefile.am. Fixed license headers (its GPL as it
	  is derived from GPL code). Fixed GST_SYNAESTHESIA_CLASS macro. Added
	  GST_DEBUG_FUNCPTR. Reflowed _setcaps. Updated pad setup in _init. Fix
	  possible leak in _chain. (#356882)

2007-02-08 21:07:27 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
	  Original commit message from CVS:
	  * gst/asfdemux/asfheaders.c:
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
	  (gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
	  (gst_asf_demux_identify_guid), (asf_demux_peek_object),
	  (gst_asf_demux_chain_headers), (gst_asf_demux_chain),
	  (gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
	  (gst_asf_demux_process_ext_content_desc),
	  (gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
	  (gst_asf_demux_process_file), (gst_asf_demux_process_comment),
	  (gst_asf_demux_process_bitrate_props_object),
	  (gst_asf_demux_process_header_ext),
	  (gst_asf_demux_process_language_list),
	  (gst_asf_demux_process_ext_stream_props),
	  (gst_asf_demux_process_queued_extended_stream_objects),
	  (gst_asf_demux_process_object), (gst_asf_demux_change_state):
	  * gst/asfdemux/gstasfdemux.h:
	  Refactor and clean up header parsing and chain function a bit; get
	  rid of some cruft; make header parsing a tad more robust, fixing
	  #403188.

2007-02-01 11:12:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Post an error if we receive an EOS event while still waiting for the
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event):
	  Post an error if we receive an EOS event while still waiting for the
	  ASF header object to come through.

2007-01-24 17:36:36 +0000  Xavier B <xavierb@gmail.com>

	  gst/asfdemux/gstasfdemux.c: Guard places where we assume that a certain amount of data is available better against le...
	  Original commit message from CVS:
	  Patch by: Xavier B. <xavierb gmail com>
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_guid),
	  (gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
	  (gst_asf_demux_process_ext_content_desc),
	  (gst_asf_demux_process_data),
	  (gst_asf_demux_process_language_list),
	  (gst_asf_demux_process_ext_stream_props),
	  (gst_asf_demux_process_segment), (gst_asf_demux_handle_data):
	  Guard places where we assume that a certain amount of data is
	  available better against less data being available (should fix
	  infamous assertion crasher bug #336370). Also fixes a small
	  memory leak.

2007-01-11 12:49:23 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/: Add demuxer for RealAudio files (#349779).
	  Original commit message from CVS:
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/rademux.c:
	  * gst/realmedia/rademux.h:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
	  (gst_rmdemux_descramble_dnet_audio), (gst_rmdemux_plugin_init):
	  * gst/realmedia/rmutils.c: (gst_rm_utils_descramble_dnet_buffer):
	  * gst/realmedia/rmutils.h:
	  Add demuxer for RealAudio files (#349779).

2007-01-07 13:37:19 +0000  Sébastien Moutte <sebastien@moutte.net>

	  Makefile.am: Add win32/MANIFEST to EXTRA_DIST so win32 files will be include in the next release.
	  Original commit message from CVS:
	  * Makefile.am:
	  Add win32/MANIFEST to EXTRA_DIST so win32 files will
	  be include in the next release.
	  * win32/MANIFEST:
	  Remove win32/common/config.h is which is not autogenerated yet.

2006-12-30 20:01:35 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  ext/lame/gstlame.c: warn when outgoing sample rate is different from incoming
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_setcaps), (gst_lame_chain):
	  warn when outgoing sample rate is different from incoming

2006-12-29 14:51:19 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: All sample-rates < 32khz come from the LSF extensions, which only use 1 granu...
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	  All sample-rates < 32khz come from the LSF extensions, which only
	  use 1 granule. Fixes parsing of 22.05khz, 24khz and 16khz files.
	  Use gst_util_uint64_scale because we can.

2006-12-22 13:06:24 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/amrnbenc.c: and fix compilation of this test
	  Original commit message from CVS:
	  * tests/check/elements/amrnbenc.c: (setup_amrnbenc),
	  (cleanup_amrnbenc):
	  and fix compilation of this test

2006-12-22 12:41:52 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/: re-apply as it was -bad and not -ugly that is frozen, doh
	  Original commit message from CVS:
	  * tests/check/elements/amrnbenc.c: (setup_amrnbenc),
	  (cleanup_amrnbenc):
	  * tests/check/elements/mpeg2dec.c: (setup_mpeg2dec),
	  (cleanup_mpeg2dec):
	  re-apply as it was -bad and not -ugly that is frozen, doh

2006-12-21 12:50:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/: revert my freeze breakage
	  Original commit message from CVS:
	  * tests/check/elements/amrnbenc.c: (setup_amrnbenc),
	  (cleanup_amrnbenc):
	  * tests/check/elements/mpeg2dec.c: (setup_mpeg2dec),
	  (cleanup_mpeg2dec):
	  revert my freeze breakage

2006-12-21 08:16:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/asfdemux/gstasfdemux.c: add a comment about a future change
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  (gst_asf_demux_get_gst_tag_from_tag_name),
	  (gst_asf_demux_process_ext_content_desc):
	  add a comment about a future change
	  * tests/check/elements/amrnbenc.c: (setup_amrnbenc),
	  (cleanup_amrnbenc):
	  * tests/check/elements/mpeg2dec.c: (setup_mpeg2dec),
	  (cleanup_mpeg2dec):
	  consistent pad (de)activation

2006-12-15 18:26:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Update query_types function too.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_src_query_types):
	  Update query_types function too.

2006-12-15 18:25:17 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Implement SEEKING query, make query function thread-safe.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_src_query),
	  (gst_rmdemux_src_query_types):
	  Implement SEEKING query, make query function thread-safe.

2006-12-15 17:59:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Use alignment-safe macros here too (subbuffers ...); guard against hypothetical memory acces...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_descramble_dnet_audio):
	  Use alignment-safe macros here too (subbuffers ...); guard against
	  hypothetical memory access beyond our given buffer in the case
	  where the buffer size is not a multiple of 2.

2006-12-15 17:54:48 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.*: Don't crash in the seek event handling code when playtime is 0, as may be the case with l...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event),
	  (gst_asf_demux_process_data), (gst_asf_demux_process_file),
	  (gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
	  * gst/asfdemux/gstasfdemux.h:
	  Don't crash in the seek event handling code when playtime is 0,
	  as may be the case with live streams (#386218). Implement SEEKING
	  query so applications can query seekability without second-guessing
	  based on whether we have a duration or not.

2006-12-15 11:12:21 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  add doap file
	  Original commit message from CVS:
	  * Makefile.am:
	  * gst-plugins-ugly.doap:
	  * gst-plugins-ugly.spec.in:
	  add doap file

2006-12-14 12:05:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/gstmpegparse.c: Use our alignment-safe macros here too, since we can't assume that
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
	  Use our alignment-safe macros here too, since we can't assume that
	  GST_BUFFER_DATA is aligned (these are subbuffers we're dealing with
	  here).

2006-12-14 11:49:39 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Also, don't read the index for a stream a second time when operating in pull-mode and reachi...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_indx_data):
	  Also, don't read the index for a stream a second time when
	  operating in pull-mode and reaching the end of the file.

2006-12-14 11:25:00 +0000  Roland Kay <roland.kay@ox.compsoc.net>

	  gst/realmedia/rmdemux.c: Don't leak stream index (#385292).
	  Original commit message from CVS:
	  Patch by: Roland Kay  <roland.kay at ox compsoc net>
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_reset):
	  Don't leak stream index (#385292).

2006-12-14 10:15:24 +0000  Roland Kay <roland.kay@ox.compsoc.net>

	  ext/lame/gstlame.*: Fix leak (by calling lame_init_params() before lame_close()); handle
	  Original commit message from CVS:
	  Based on patch by: Roland Kay  <roland.kay at ox compsoc net>
	  * ext/lame/gstlame.c: (gst_lame_init), (gst_lame_chain),
	  (gst_lame_setup):
	  * ext/lame/gstlame.h:
	  Fix leak (by calling lame_init_params() before lame_close()); handle
	  NULL return from lame_init() more gracefully. Fixes #385311.

2006-12-14 09:57:12 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to CVS
	  Original commit message from CVS:
	  * configure.ac:
	  Back to CVS

=== release 0.10.5 ===

2006-12-13 21:04:12 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	  Release 0.10.5
	  Original commit message from CVS:
	  Release 0.10.5

2006-12-12 21:09:16 +0000  David Schleef <ds@schleef.org>

	  gst/mpegstream/gstmpegparse.c: Use the GST_READ macro I meant to in the previous checkin.  see #385192.  You can have...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: Use the GST_READ macro I meant
	  to in the previous checkin.  see #385192.  You can have your
	  cheese back now.

2006-12-12 20:56:58 +0000  David Schleef <ds@schleef.org>

	  gst/mpegstream/gstmpegparse.c: Fix unaligned load that loads from the dereferenced integer, not the pointer itself.  ...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: Fix unaligned load that loads
	  from the dereferenced integer, not the pointer itself.  Fixes
	  #385192.
	  I'm takin ur cheese!

2006-12-12 10:29:32 +0000  Tim-Philipp Müller <tim@centricular.net>

	* ChangeLog:
	  ChangeLog surgery: fix bug number
	  Original commit message from CVS:
	  ChangeLog surgery: fix bug number

2006-12-12 10:24:40 +0000  Roland Kay <roland.kay@ox.compsoc.net>

	  gst/realmedia/rmdemux.c: For version 4 streams, read the extra codec data size from the header instead of assuming it...
	  Original commit message from CVS:
	  Based on patch by: Roland Kay  <roland.kay at ox compsoc net>
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr):
	  For version 4 streams, read the extra codec data size from the
	  header instead of assuming it is always 16 (also read it from the
	  right position) (#384989). For version 4 and 5 streams, check that
	  the specified extra codec data size doesn't make us read beyond the
	  chunk boundary (#384989).

2006-12-10 21:27:03 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	  Update .po files
	  Original commit message from CVS:
	  Update .po files

2006-11-21 12:33:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.c: Cosmetic changes: fix misleading debug statement, update comment, add cast.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_sized_buf):
	  Cosmetic changes: fix misleading debug statement, update
	  comment, add cast.

2006-11-21 12:15:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mpeg2dec/gstmpeg2dec.*: Align buffers to a 16 byte boundary so the altivec optimisations don't crash. Fixes #327350.
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge  <slomo@circular-chaos.org>
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
	  (gst_mpeg2dec_reset), (gst_mpeg2dec_alloc_sized_buf),
	  (gst_mpeg2dec_alloc_buffer), (init_dummybuf), (handle_slice):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Align buffers to a 16 byte boundary so the altivec optimisations
	  don't crash. Fixes #327350.

2006-11-20 15:52:42 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: The availability of extra codec data isn't something that warrants debug messages at WARN...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_audio_stream):
	  The availability of extra codec data isn't something that
	  warrants debug messages at WARNING level (see #376958).

2006-11-19 13:08:30 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/: Fix flow value combination; this fixes playbin/totem locking up if a VobSub file is specified as sub...
	  Original commit message from CVS:
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init),
	  (gst_dvd_demux_class_init), (gst_dvd_demux_combine_flows),
	  (gst_dvd_demux_send_subbuffer):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
	  (gst_mpeg_demux_init_stream), (gst_mpeg_demux_parse_packet),
	  (gst_mpeg_demux_parse_pes), (gst_mpeg_demux_combine_flows),
	  (gst_mpeg_demux_send_subbuffer):
	  * gst/mpegstream/gstmpegdemux.h:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
	  (gst_mpeg_parse_chain):
	  Fix flow value combination; this fixes playbin/totem locking up if
	  a VobSub file is specified as subtitle file (#334322). Flow value
	  combination should only happen once we are fairly sure we've got all
	  pads that are available for now. Since there isn't a well-specified
	  time when this is the case in MPEG, we'll just assume this is the
	  case once there has been a certain number of packets for each
	  stream we've found so far.

2006-11-15 13:57:21 +0000  Jan Arne Petersen <jpetersen@jpetersen.org>

	  ext/mpeg2dec/gstmpeg2dec.c: Simplify the framerate code and support more framerates. Fixes #361584.
	  Original commit message from CVS:
	  Patch by: Jan Arne Petersen <jpetersen at jpetersen dot org>
	  * ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence), (handle_slice):
	  Simplify the framerate code and support more framerates. Fixes #361584.

2006-11-15 11:41:39 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mpeg2dec/gstmpeg2dec.c: Fix minor memleak when creating pads from static pad templates (#369627).
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge  <slomo@circular-chaos.org>
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init):
	  Fix minor memleak when creating pads from static pad templates (#369627).
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/mpeg2dec.c: (setup_mpeg2dec),
	  (cleanup_mpeg2dec), (GST_START_TEST), (mpeg2dec_suite), (main):
	  Add unit tests for mpeg2dec (#369627).

2006-11-14 10:31:11 +0000  Wim Taymans <wim.taymans@gmail.com>

	* ChangeLog:
	  give credit
	  Original commit message from CVS:
	  give credit

2006-11-14 10:29:37 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/lame/gstlame.*: Make lame timestamp flushed eos buffer by some additional timestamp accounting. Fixes #374760.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_event), (gst_lame_chain),
	  (gst_lame_change_state):
	  * ext/lame/gstlame.h:
	  Make lame timestamp flushed eos buffer by some additional timestamp
	  accounting. Fixes #374760.

2006-11-13 17:01:15 +0000  Michael Smith <msmith@xiph.org>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Make timestamp handling in mp3parse saner; now works for at least simple cases.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (mp3_type_frame_length_from_header), (gst_mp3parse_reset),
	  (gst_mp3parse_init), (gst_mp3parse_dispose),
	  (gst_mp3parse_sink_event), (gst_mp3parse_chain), (head_check),
	  (gst_mp3parse_change_state):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Make timestamp handling in mp3parse saner; now works for at least
	  simple cases.

2006-11-13 16:23:22 +0000  Michael Smith <msmith@xiph.org>

	  gst/mpegaudioparse/: Bring mp3parse into the 21st century.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/Makefile.am:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (mp3_type_frame_length_from_header), (gst_mp3parse_class_init),
	  (gst_mp3parse_reset), (gst_mp3parse_init), (gst_mp3parse_dispose),
	  (gst_mp3parse_sink_event), (gst_mp3parse_chain), (head_check),
	  (gst_mp3parse_change_state), (plugin_init):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Bring mp3parse into the 21st century.
	  Use its own debug category, use gstadapter, format nicely to 80
	  columns, and fix incorrect handling of 32 kHz and less files.

2006-11-03 09:52:12 +0000  Sebastian Droege <slomo@ubuntu.com>

	  ext/mpeg2dec/gstmpeg2dec.*: libmpeg2 requires its output buffers to start at a 16byte aligned address or the altivec ...
	  Original commit message from CVS:
	  Patch by: Sebastian Droege <slomo at ubuntu dot com>
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_finalize),
	  (gst_mpeg2dec_alloc_buffer), (init_dummybuf), (handle_slice):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  libmpeg2 requires its output buffers to start at a 16byte aligned
	  address or the altivec optimizations will explode.

2006-11-02 14:43:11 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/cdio/: Move CD-TEXT utility function into common file so it can also be used by a future cdioparanoiasrc.
	  Original commit message from CVS:
	  * ext/cdio/gstcdio.c: (gst_cdio_get_cdtext):
	  * ext/cdio/gstcdio.h:
	  * ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open):
	  Move CD-TEXT utility function into common file so it can also be
	  used by a future cdioparanoiasrc.

2006-10-19 10:17:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Use dsi_pack.dsi_gi.vobu_ea correctly, add some more debugging information (fixes #340433).
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_read):
	  Use dsi_pack.dsi_gi.vobu_ea correctly, add some more debugging
	  information (fixes #340433).

2006-10-16 18:07:23 +0000  Josep Torra Valles <josep@fluendo.com>

	  gst/: Misc. fixes for problems discovered by Forte (different return types in function declaration and definition, po...
	  Original commit message from CVS:
	  Patch by: Josep Torra Valles  <josep at fluendo com>
	  * gst/iec958/ac3_padder.c: (ac3p_init):
	  * gst/mpegstream/gstmpegparse.c:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse__rmf),
	  (gst_rmdemux_parse_prop), (gst_rmdemux_parse_mdpr),
	  (gst_rmdemux_parse_indx), (gst_rmdemux_parse_indx_data),
	  (gst_rmdemux_parse_data), (gst_rmdemux_parse_cont),
	  (gst_rmdemux_parse_packet):
	  Misc. fixes for problems discovered by Forte (different return types
	  in function declaration and definition, pointer arithmetics with
	  void pointers). Fixes #362639.

2006-10-13 19:11:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Don't announce audio or subtitle streams that aren't really present, it makes dvddemux crea...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_goto_title):
	  Don't announce audio or subtitle streams that aren't really present,
	  it makes dvddemux create pads that will never carry any data, which
	  is not good.

2006-10-13 14:45:11 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.c: Round up not allowed bitrates to the next higher allowed one (Closes: #361140).
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_set_property):
	  Round up not allowed bitrates to the next higher allowed one
	  (Closes: #361140).

2006-10-13 14:19:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Add docs for lame and lame to docs. Specify allowed bitrates in the properties description (#361140). Canonicalise ob...
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
	  * ext/lame/gstlame.c: (gst_lame_class_init):
	  * ext/lame/gstlame.h:
	  Add docs for lame and lame to docs. Specify allowed bitrates
	  in the properties description (#361140). Canonicalise object
	  property names (ie. use hyphen instead of underscore).
	  * docs/plugins/inspect/plugin-a52dec.xml:
	  * docs/plugins/inspect/plugin-amrnb.xml:
	  * docs/plugins/inspect/plugin-asf.xml:
	  * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	  * docs/plugins/inspect/plugin-dvdread.xml:
	  * docs/plugins/inspect/plugin-dvdsub.xml:
	  * docs/plugins/inspect/plugin-iec958.xml:
	  * docs/plugins/inspect/plugin-lame.xml:
	  * docs/plugins/inspect/plugin-mad.xml:
	  * docs/plugins/inspect/plugin-mpeg2dec.xml:
	  * docs/plugins/inspect/plugin-mpegaudioparse.xml:
	  * docs/plugins/inspect/plugin-mpegstream.xml:
	  * docs/plugins/inspect/plugin-siddec.xml:
	  Update version to CVS.

2006-10-13 10:00:27 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Add i18n magic to lame plugin. Throw decent error message when we fail to setup the encoder (#361140, 361151); misc. ...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_setcaps),
	  (gst_lame_set_property), (gst_lame_get_property), (gst_lame_chain),
	  (plugin_init):
	  * po/POTFILES.in:
	  Add i18n magic to lame plugin. Throw decent error message when we
	  fail to setup the encoder (#361140, 361151); misc. minor clean-ups.

2006-10-10 17:02:05 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rdtdepay.c: Change caps to x-rdt, because it's not x-rtp.
	  Original commit message from CVS:
	  * gst/realmedia/rdtdepay.c: (gst_rdt_depay_base_init),
	  (gst_rdt_depay_init), (gst_rdt_depay_setcaps),
	  (gst_rdt_depay_chain), (gst_rdt_depay_change_state):
	  Change caps to x-rdt, because it's not x-rtp.
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_packet),
	  (gst_rmdemux_plugin_init):
	  Activate pad before adding to the element.
	  Return the combined stream return values after pad_alloc.

2006-10-10 16:58:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.*: Add some debugging to timestamp handling.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (handle_slice):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Add some debugging to timestamp handling.
	  Make sure we don't convert invalid timestamps.

2006-10-09 12:09:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/: Active pads before adding them to the running element. Don't assert on non-BYTE format newsegment events in asf...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event),
	  (gst_asf_demux_setup_pad), (gst_asf_demux_process_segment):
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream),
	  (gst_dvd_demux_get_subpicture_stream):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
	  (gst_mpeg_demux_get_audio_stream),
	  (gst_mpeg_demux_get_private_stream):
	  Active pads before adding them to the running element. Don't assert
	  on non-BYTE format newsegment events in asfdemux.

2006-10-05 17:07:52 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Printf format fixes.
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_goto_title),
	  (gst_dvd_read_src_handle_seek_event):
	  * ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  * ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_chain):
	  * ext/sidplay/gstsiddec.cc:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_parse_data):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_loop),
	  (gst_rmdemux_parse_packet):
	  Printf format fixes.

2006-10-03 10:55:42 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/: Added RDT depayloader.
	  Original commit message from CVS:
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/rdtdepay.c: (gst_rdt_depay_base_init),
	  (gst_rdt_depay_class_init), (gst_rdt_depay_init),
	  (gst_rdt_depay_setcaps), (gst_rdt_depay_chain),
	  (gst_rdt_depay_set_property), (gst_rdt_depay_get_property),
	  (gst_rdt_depay_change_state), (gst_rdt_depay_plugin_init):
	  * gst/realmedia/rdtdepay.h:
	  Added RDT depayloader.
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr),
	  (gst_rmdemux_plugin_init), (plugin_init):
	  Remove unused function.
	  Added some more mime-types.

2006-09-28 21:44:49 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/dvdlpcmdec/gstdvdlpcmdec.c: If an incoming timestamp is within one sample of our current timestamp, then keep it....
	  Original commit message from CVS:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (update_timestamps):
	  If an incoming timestamp is within one sample of our current
	  timestamp, then keep it. This prevents imprecision in the
	  PTS (which only has 90khz granularity) from affecting our stream.

2006-09-28 09:16:38 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/gstmpegparse.c: Reflow code so that compiler doesn't complain about possible use of uninitialised vari...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_query):
	  Reflow code so that compiler doesn't complain about possible use
	  of uninitialised variable any longer; but just in case, initialise
	  it anyway; also take object ref in query function and do peer pad
	  stuff in a more thread-safe way.

2006-09-27 09:54:01 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/dvdread/dvdreadsrc.c: Init a variable to make compilers happy.
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_do_convert_query):
	  Init a variable to make compilers happy.

2006-09-21 13:34:59 +0000  Martin Zlomek <martin.zlomek@itonis.tv>

	  gst/mpegstream/: Send newsegment updates for sparse streams (#350778).
	  Original commit message from CVS:
	  Patch by: Martin Zlomek <martin dot zlomek at itonis dot tv>
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_reset),
	  (gst_dvd_demux_sync_stream_to_time):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer),
	  (gst_mpeg_demux_synchronise_pads),
	  (gst_mpeg_demux_sync_stream_to_time):
	  Send newsegment updates for sparse streams (#350778).

2006-09-20 16:18:24 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  ext/dvdread/dvdreadsrc.c: fix compile warning
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_do_convert_query):
	  fix compile warning

2006-09-20 16:16:18 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  bump the nano bitches
	  Original commit message from CVS:
	  bump the nano bitches

2006-09-20 11:55:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: As another attempt, synaesthesia can be enabled by passing
	  Original commit message from CVS:
	  * configure.ac:
	  As another attempt, synaesthesia can be enabled by passing
	  --with-plugins="synaesthesia" to configure

2006-09-20 11:12:22 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Don't build synaesthesia by default, until someone confirms that it is okay (filed as #356882)
	  Original commit message from CVS:
	  * configure.ac:
	  Don't build synaesthesia by default, until someone confirms that it
	  is okay (filed as #356882)

2006-09-20 11:11:26 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Don't build synaesthesia by default, until someone confirms that it is okay (filed as #356882)
	  Original commit message from CVS:
	  * configure.ac:
	  Don't build synaesthesia by default, until someone confirms that it
	  is okay (filed as #356882)

2006-09-18 12:29:09 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Port synaesthesia.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/synaesthesia/Makefile.am:
	  * gst/synaesthesia/gstsynaesthesia.c: (gst_synaesthesia_init),
	  (gst_synaesthesia_sink_setcaps), (gst_synaesthesia_src_getcaps),
	  (gst_synaesthesia_src_setcaps), (gst_synaesthesia_chain),
	  (gst_synaesthesia_change_state), (plugin_init):
	  Port synaesthesia.

2006-09-16 21:58:48 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  More G_OBJECT macro fixing.
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c:
	  * gst/mpegstream/gstrfc2250enc.h:
	  * gst/synaesthesia/gstsynaesthesia.c:
	  More G_OBJECT macro fixing.

2006-09-15 16:14:15 +0000  Yves Lefebvre <ivanohe@abacom.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Fix initialisation dummy buffer, the offsets are relative to the start of the buffers. Fi...
	  Original commit message from CVS:
	  Patch by: Yves Lefebvre <ivanohe at abacom dot com>
	  * ext/mpeg2dec/gstmpeg2dec.c: (init_dummybuf):
	  Fix initialisation dummy buffer, the offsets are relative to the start
	  of the buffers. Fixes #356004.

2006-09-12 10:14:29 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-ugly.spec.in:
	  update spec file
	  Original commit message from CVS:
	  update spec file

2006-09-09 15:22:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Add convert query (needed for later when we just operate in time format and let the base so...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_read):
	  Add convert query (needed for later when we just operate in time
	  format and let the base source class handle all the seeking stuff).

2006-09-07 16:05:31 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/asfdemux/gstasfdemux.c: Erm, lets properly fix it. The only non-text tag that we support is the track-number and ...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  (gst_asf_demux_get_gst_tag_from_tag_name),
	  (gst_asf_demux_process_ext_content_desc):
	  Erm, lets properly fix it. The only non-text tag that we support is
	  the track-number and that is an UINT. asfdemux was returning a GValue
	  initialized as INT. Further the Track and not the TrackNumber tag
	  (the latter is a string too).

2006-09-07 14:08:42 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/asfdemux/gstasfdemux.c: Skip tags that are unknown (was producing an uninialized GValue).
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  (gst_asf_demux_get_gst_tag_from_tag_name),
	  (gst_asf_demux_process_ext_content_desc):
	  Skip tags that are unknown (was producing an uninialized GValue).

2006-09-01 16:21:43 +0000  from Michal Benes <michal.benes@itonis.tv>

	  ext/a52dec/gsta52dec.*: Add two things to a52dec: configure the exact output format for ac3 decoding through properti...
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_mode_get_type),
	  (gst_a52dec_class_init), (gst_a52dec_init), (gst_a52dec_channels),
	  (gst_a52dec_handle_frame), (gst_a52dec_change_state),
	  (gst_a52dec_set_property), (gst_a52dec_get_property):
	  * ext/a52dec/gsta52dec.h:
	  Patch from from Michal Benes <michal.benes@itonis.tv>:
	  Add two things to a52dec: configure the exact output format for ac3
	  decoding through properties, if desired.
	  By default, configure an output format preferred by downstream. Now
	  that audioconvert lists caps by preference, this means that a52dec
	  can do downmixing (iff required) rather than audioconvert, so it can
	  use the ac3 downmix levels from the bitstream.

2006-08-31 13:04:31 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Add missing GST_LIBS to the link flags
	  Original commit message from CVS:
	  * ext/lame/Makefile.am:
	  * ext/mpeg2dec/Makefile.am:
	  * gst/dvdlpcmdec/Makefile.am:
	  * gst/dvdsub/Makefile.am:
	  * gst/mpegaudioparse/Makefile.am:
	  Add missing GST_LIBS to the link flags

2006-08-29 13:28:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Up requirements to core 0.10.6 for gst_event_new_new_segment_full().
	  Original commit message from CVS:
	  * configure.ac:
	  Up requirements to core 0.10.6 for gst_event_new_new_segment_full().

2006-08-27 20:46:54 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/mpegstream/gstmpegpacketize.c: fix build for debug disabled
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_new):
	  fix build for debug disabled

2006-08-22 15:52:16 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Use static pad templates with ANY caps for the source pads for simplicity and to avoid wa...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
	  (gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream):
	  Use static pad templates with ANY caps for the source pads for
	  simplicity and to avoid warnings when creating pads for unhandled
	  codec IDs (#351795).

2006-08-16 10:34:57 +0000  Michal Benes <michal.benes@itonis.tv>

	  ext/mad/gstmad.c: Fix timestamping in mad by only activating a new timestamp when the previous frame has been decoded...
	  Original commit message from CVS:
	  Patch by: Michal Benes <michal dot benes at itonis dot tv>
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  Fix timestamping in mad by only activating a new timestamp when the
	  previous frame has been decoded. Fixes #350723.
	  Also clean up some of the non fatal warnings when the input buffer is
	  too small to decode a header.

=== release 0.10.4 ===

2006-08-14 11:15:09 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	* docs/plugins/inspect/plugin-siddec.xml:
	  releasing 0.10.4
	  Original commit message from CVS:
	  releasing 0.10.4

2006-08-14 11:06:29 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	  Update .po files
	  Original commit message from CVS:
	  Update .po files

2006-08-14 10:19:41 +0000  Wim Taymans <wim@fluendo.com>

	  ext/a52dec/gsta52dec.c: Instead of forwarding the event in the wrong format, unref it and set a boolean that we still...
	  Original commit message from CVS:
	  Patch by: Wim Taymans <wim at fluendo dot com>
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event):
	  Instead of forwarding the event in the wrong format, unref it and set
	  a boolean that we still need to send it in the streaming thread.
	  Fixes #350554

2006-08-14 09:50:26 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  ext/dvdread/dvdreadsrc.c: Put debug category initialization before use of GST_DEBUG, in order to remove a fatal warni...
	  Original commit message from CVS:
	  Patch by: Edward Hervey (edward at fluendo dot com)
	  * ext/dvdread/dvdreadsrc.c: (plugin_init):
	  Put debug category initialization before use of GST_DEBUG, in order
	  to remove a fatal warning.  Fixes #350895

2006-08-08 13:23:27 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/dvdsub/gstdvdsubdec.c: Set rank to NONE for the time being until we make playbin handle subtitle pictures again (...
	  Original commit message from CVS:
	  * gst/dvdsub/gstdvdsubdec.c: (plugin_init):
	  Set rank to NONE for the time being until we make playbin handle
	  subtitle pictures again (dvdsubdec seems to be a bit shaky at
	  times when seeking, so it's probably better if it doesn't get
	  autoplugged for the time being).

2006-08-07 19:01:40 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Handle audio streams with stream_version 3 properly; warn about unknown stream versions; han...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_mdpr):
	  Handle audio streams with stream_version 3 properly; warn about
	  unknown stream versions; handle unknown fourccs a tad more
	  gracefully (setting bogus caps). Also, use GST_FOURCC_ARGS
	  with GST_FOURCC_FORMAT.

2006-08-07 16:25:45 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Error out properly if this is an interactive DVD (fixes #345694).
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_goto_title):
	  Error out properly if this is an interactive DVD (fixes #345694).

2006-08-07 16:18:33 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/a52dec/gsta52dec.c: When the first_access is 1 or 0, we should copy the timestamp from the incoming buffer if the...
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_chain):
	  When the first_access is 1 or 0, we should copy the timestamp from
	  the incoming buffer if there is one.

2006-08-07 14:01:33 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/a52dec/gsta52dec.c: Use GST_ELEMENT_ERROR for error reporting; post errors in some more places; remove superfluou...
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (gst_a52dec_push),
	  (gst_a52dec_reneg), (gst_a52dec_handle_frame), (gst_a52dec_chain):
	  Use GST_ELEMENT_ERROR for error reporting; post errors in some
	  more places; remove superfluous newlines from debug statements.

2006-08-07 09:17:01 +0000  Frédéric Riss <frederic.riss@gmail.com>

	  gst/dvdsub/gstdvdsubdec.c: which happens when you use macros that got changed during the last unstable cycle because ...
	  Original commit message from CVS:
	  Patch by: Frédéric Riss  <frederic.riss at gmail com>
	  * gst/dvdsub/gstdvdsubdec.c: (gst_send_subtitle_frame):
	  Don't set negative durations on outgoing buffers (#350044),
	  which happens when you use macros that got changed during
	  the last unstable cycle because they were thought not to
	  be used anywhere.

2006-08-06 19:47:40 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.*: Add basic support for time-based seeking; set timestamps on outgoing buffers if we have the...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_stop),
	  (gst_dvd_read_src_goto_chapter),
	  (gst_dvd_read_src_get_chapter_starts),
	  (gst_dvd_read_src_goto_title), (gst_dvd_read_src_get_next_cell),
	  (gst_dvd_read_src_get_time_for_sector),
	  (gst_dvd_read_src_get_sector_from_time), (gst_dvd_read_src_read),
	  (gst_dvd_read_src_handle_seek_event), (gst_dvd_read_src_do_seek),
	  (gst_dvd_read_src_goto_sector):
	  * ext/dvdread/dvdreadsrc.h:
	  Add basic support for time-based seeking; set timestamps on
	  outgoing buffers if we have them; create table with
	  chapter to time mapping when opening a title; rename
	  gst_dvd_read_src_get_next_cell_for() to _get_next_cell() and
	  make it take an explicit pgc argument; fix up some debugging
	  messages so that title/chapter numbers are printed as starting
	  from 1 for easier readability.

2006-08-04 13:05:01 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/: Factor out some code into rmutils.[ch]; when reading strings, don't read beyond the available data; r...
	  Original commit message from CVS:
	  * gst/realmedia/Makefile.am:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr),
	  (gst_rmdemux_parse_cont):
	  * gst/realmedia/rmutils.c: (gst_rm_utils_read_string8),
	  (gst_rm_utils_read_string16), (gst_rm_utils_read_tags):
	  * gst/realmedia/rmutils.h:
	  Factor out some code into rmutils.[ch]; when reading
	  strings, don't read beyond the available data; read
	  metadata strings correctly (string length is 16 bits
	  here, not just 8).

2006-07-31 09:53:05 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Fix dist by including gst-libs/
	  Original commit message from CVS:
	  * Makefile.am:
	  * configure.ac:
	  * gst/asfdemux/gstasfdemux.c:
	  Fix dist by including gst-libs/

2006-07-29 11:20:30 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Make custom error messages translatable.
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (plugin_init):
	  * po/POTFILES.in:
	  Make custom error messages translatable.
	  * gst/asfdemux/gstasf.c: (plugin_init):
	  Remove setlocale() call, doesn't seem to be needed or recommended for
	  plugins, at least not according to gstreamer/docs/random/i18n.

2006-07-28 15:15:15 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Error out when the stream is encrypted (rather than feeding garbage to the decoders). Fixes #349025.
	  Original commit message from CVS:
	  * gst/asfdemux/Makefile.am:
	  * gst/asfdemux/asfheaders.c:
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/gstasf.c: (plugin_init):
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_object):
	  Error out when the stream is encrypted (rather than feeding
	  garbage to the decoders). Fixes #349025.

2006-07-28 15:11:42 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Add/enable autofoo magic for translations.
	  Original commit message from CVS:
	  * Makefile.am:
	  * autogen.sh:
	  * configure.ac:
	  * po/POTFILES.in:
	  Add/enable autofoo magic for translations.

2006-07-28 13:28:19 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Don't leak streams, strings or caps. Get rid of unnecessary getcaps() function.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_reset),
	  (gst_rmdemux_change_state), (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_cont), (gst_rmdemux_descramble_cook_audio),
	  (gst_rmdemux_handle_scrambled_packet), (gst_rmdemux_parse_packet):
	  Don't leak streams, strings or caps. Get rid of unnecessary
	  getcaps() function.

2006-07-27 20:34:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Descramble cook audio streams before sending them to the decoder. Fixes #347292.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_class_init),
	  (gst_rmdemux_init), (gst_rmdemux_chain), (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_data),
	  (gst_rmdemux_stream_clear_cached_subpackets),
	  (gst_rmdemux_descramble_cook_audio),
	  (gst_rmdemux_descramble_dnet_audio),
	  (gst_rmdemux_handle_scrambled_packet), (gst_rmdemux_parse_packet):
	  Descramble cook audio streams before sending them to the
	  decoder. Fixes #347292.
	  Also miscellaneous clean-ups and log-level changes.

2006-07-26 17:09:04 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  ext/lame/gstlame.c: Fix lame putting lots of 0's at start of mp3.  Fixes bug #348786.
	  Original commit message from CVS:
	  2006-07-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * ext/lame/gstlame.c: (gst_lame_setup):
	  Fix lame putting lots of 0's at start of mp3.  Fixes bug #348786.

2006-07-21 11:01:55 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/sidplay/gstsiddec.*: Remove old metadata thing.
	  Original commit message from CVS:
	  * ext/sidplay/gstsiddec.cc:
	  * ext/sidplay/gstsiddec.h:
	  Remove old metadata thing.

2006-07-15 13:33:38 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Find language codes for audio streams if they are available.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c:
	  (gst_asf_demux_get_ext_stream_props_for_stream),
	  (gst_asf_demux_add_audio_stream), (gst_asf_demux_change_state):
	  Find language codes for audio streams if they are available.

2006-07-14 13:02:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Parse extended stream properties objects and stream objects hidden inside them (but delay creation of ...
	  Original commit message from CVS:
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_obj_stream),
	  (gst_asf_demux_process_stream),
	  (gst_asf_demux_process_language_list),
	  (gst_asf_demux_process_ext_stream_props),
	  (gst_asf_demux_process_queued_extended_stream_objects),
	  (gst_asf_demux_process_object), (gst_asf_demux_change_state):
	  * gst/asfdemux/gstasfdemux.h:
	  Parse extended stream properties objects and stream objects
	  hidden inside them (but delay creation of the appropriate
	  pads until after all the 'normal' stream objects have been
	  dealt with) (#343763). Also parse language list object.

2006-07-13 11:28:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.*: Cleanups, use GstSegment for seeking.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_class_init),
	  (gst_rmdemux_finalize), (gst_rmdemux_src_event),
	  (find_seek_offset_time), (gst_rmdemux_perform_seek),
	  (gst_rmdemux_src_query), (gst_rmdemux_change_state),
	  (gst_rmdemux_loop), (gst_rmdemux_chain), (gst_rmdemux_send_event),
	  (gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr),
	  (gst_rmdemux_combine_flows), (gst_rmdemux_parse_packet):
	  * gst/realmedia/rmdemux.h:
	  Cleanups, use GstSegment for seeking.
	  Fix error handling.
	  Combine flow return from all streams.

2006-07-11 22:46:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/cdio/gstcdiocddasrc.c: Remove g_assert that shouldn't be there.
	  Original commit message from CVS:
	  * ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_close):
	  Remove g_assert that shouldn't be there.

2006-07-10 11:52:58 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Fix refcounting when cropping. Fixes #341677.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer), (handle_slice):
	  Fix refcounting when cropping. Fixes #341677.

2006-07-09 14:07:31 +0000  Grzegorz Lukasik <hauserx@gmail.com>

	  gst/asfdemux/gstasfdemux.c: Fix typo. Closes #347029.
	  Original commit message from CVS:
	  Patch by: Grzegorz Lukasik <hauserx at gmail dot com>
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_video_stream),
	  (gst_asf_demux_process_segment):
	  Fix typo. Closes #347029.

2006-07-08 20:29:56 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Skip chunks for unknown streams properly. Fixes broken sound and/or video for files that ...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
	  Skip chunks for unknown streams properly. Fixes broken sound
	  and/or video for files that have additional streams that
	  we don't recognise yet (e.g. if they are embedded in extended
	  stream properties). Partly fixes #343763.

2006-07-07 19:26:40 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/: Add some more GUIDs and make debug log more readable and easier to follow when parsing the headers.
	  Original commit message from CVS:
	  * gst/asfdemux/asfheaders.c:
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_identify_guid),
	  (gst_asf_demux_process_header), (gst_asf_demux_push_obj),
	  (gst_asf_demux_pop_obj), (gst_asf_demux_process_object),
	  (gst_asf_demux_change_state):
	  * gst/asfdemux/gstasfdemux.h:
	  Add some more GUIDs and make debug log more readable
	  and easier to follow when parsing the headers.

2006-06-30 11:26:22 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.*: Rewrite seeking code and make seeking in DVDs work (#337834).
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_init),
	  (gst_dvd_read_src_is_seekable), (gst_dvd_read_src_class_init),
	  (gst_dvd_read_src_stop), (gst_dvd_read_src_goto_title),
	  (gst_dvd_read_src_create), (gst_dvd_read_src_handle_seek_event),
	  (gst_dvd_read_src_do_seek), (gst_dvd_read_src_src_event):
	  * ext/dvdread/dvdreadsrc.h:
	  Rewrite seeking code and make seeking in DVDs work (#337834).

2006-06-29 14:31:55 +0000  Tim-Philipp Müller <tim@centricular.net>

	  autogen.sh: Check for automake-1.9 as well.
	  Original commit message from CVS:
	  * autogen.sh:
	  Check for automake-1.9 as well.

2006-06-29 12:25:15 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Make check stronger.
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_is_nav_pack):
	  Make check stronger.

2006-06-28 11:20:03 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.*: Handle unknown codec IDs/fourccs properly (#345879); send tag events after newsegment eve...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
	  (gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
	  (gst_asf_demux_push_buffer):
	  * gst/asfdemux/gstasfdemux.h:
	  Handle unknown codec IDs/fourccs properly (#345879); send tag
	  events after newsegment event; fix use of GST_FOURCC_FORMAT
	  macro.

2006-06-23 16:29:41 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/a52dec/gsta52dec.c: Call the channel positions get_type() method in plugin_init to ensure that it isn't simultane...
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (plugin_init):
	  Call the channel positions get_type() method in plugin_init
	  to ensure that it isn't simultaneously called later from
	  multiple threads.

2006-06-23 12:24:56 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/: Also flush packetizer cache when we get a buffer that has the
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegpacketize.c:
	  (gst_mpeg_packetize_flush_cache), (gst_mpeg_packetize_put):
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_chain):
	  Also flush packetizer cache when we get a buffer that has the
	  DISCONT flag set; update current byte position from buffer
	  offset after a flush.

2006-06-23 11:22:04 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/: Flush packetizer cache when we get a FLUSH_STOP event; remove unused source pad member from packetiz...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_new),
	  (gst_mpeg_packetize_flush_cache), (gst_mpeg_packetize_destroy),
	  (gst_mpeg_packetize_read):
	  * gst/mpegstream/gstmpegpacketize.h:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
	  (gst_mpeg_parse_change_state):
	  Flush packetizer cache when we get a FLUSH_STOP event;
	  remove unused source pad member from packetizer; add debug
	  category for packetizer.

2006-06-23 09:28:28 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/a52dec/gsta52dec.c: Treat dual-mono as stereo. It should really be output on 2 separate pads, but isn't for now.
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (plugin_init):
	  Treat dual-mono as stereo. It should really be output on 2 separate
	  pads, but isn't for now.

2006-06-19 15:16:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.c: Assume 4:3 DAR rather than 4:3 PAR (#345184).
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format):
	  Assume 4:3 DAR rather than 4:3 PAR (#345184).

2006-06-19 11:59:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.c: Assume pixel-aspect-ratio of 4:3 if libmpeg2dec doesn't give us any PAR whatsoever (rathe...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format):
	  Assume pixel-aspect-ratio of 4:3 if libmpeg2dec doesn't give us
	  any PAR whatsoever (rather than using 0/0, which will lead to
	  an abort later on). Fixes #345184.

2006-06-17 19:35:41 +0000  Michael Dominic K <mdk@mdk.org.pl>

	  ext/mad/gstmad.c: Send newsegment event before calling gst_pad_alloc_buffer_and_set_caps(), makes mad behave better i...
	  Original commit message from CVS:
	  Patch by: Michael Dominic K.  < mdk at mdk org pl>
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  Send newsegment event before calling
	  gst_pad_alloc_buffer_and_set_caps(), makes mad behave better
	  in connection with pad blocking (#342594). While we're at it,
	  do some minor clean-ups.

2006-06-17 14:48:04 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Fix --disable-external (can't set conditionals conditionally, #343602).
	  Original commit message from CVS:
	  * configure.ac:
	  Fix --disable-external (can't set conditionals conditionally,
	  #343602).

2006-06-15 17:10:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/a52dec/Makefile.am: ... and then he said "When you go and fix the build you better make sure you have some spare ...
	  Original commit message from CVS:
	  * ext/a52dec/Makefile.am:
	  ... and then he said "When you go and fix the build you
	  better make sure you have some spare backslashes in your
	  pocket".

2006-06-13 15:46:09 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/sidplay/gstsiddec.cc: Fix copyright, email addresses and descriptions.
	  Original commit message from CVS:
	  * ext/sidplay/gstsiddec.cc:
	  Fix copyright, email addresses and descriptions.
	  Use saner defaults for arguments. Fixes #344667.
	  constify some stuff.
	  Fix memleaks.
	  Add tags.
	  Fix negotiation to do mono/44100 by default.
	  Post error messages.
	  Use _scale_int where possible.

2006-06-12 14:09:20 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/dvdnav/.cvsignore: More ignore
	  Original commit message from CVS:
	  * ext/dvdnav/.cvsignore:
	  More ignore

2006-06-12 13:49:42 +0000  Wim Taymans <wim.taymans@gmail.com>

	  tests/check/elements/amrnbenc.c: Init memory before feeding it to the encoder to make the valgrind test succeed.
	  Original commit message from CVS:
	  * tests/check/elements/amrnbenc.c: (push_data):
	  Init memory before feeding it to the encoder to make
	  the valgrind test succeed.

2006-06-12 13:27:18 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/asfdemux/.cvsignore: More ignore
	  Original commit message from CVS:
	  * gst/asfdemux/.cvsignore:
	  More ignore

2006-06-11 20:38:54 +0000  Tim-Philipp Müller <tim@centricular.net>

	  .cvsignore: Ignore files generated by 'make dist'.
	  Original commit message from CVS:
	  * .cvsignore:
	  Ignore files generated by 'make dist'.

2006-06-11 17:08:11 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  update build files
	  Original commit message from CVS:
	  * autogen.sh:
	  * configure.ac:
	  * ext/a52dec/Makefile.am:
	  * ext/dvdnav/Makefile.am:
	  * ext/dvdread/Makefile.am:
	  * ext/lame/Makefile.am:
	  * ext/mad/Makefile.am:
	  * ext/mpeg2dec/Makefile.am:
	  * ext/sidplay/Makefile.am:
	  update build files

2006-06-11 13:57:18 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  autogen.sh: require am17
	  Original commit message from CVS:
	  * autogen.sh:
	  require am17
	  * configure.ac:
	  * ext/annodex/Makefile.am:
	  * ext/cdio/Makefile.am:
	  * ext/dv/Makefile.am:
	  * ext/esd/Makefile.am:
	  * ext/flac/Makefile.am:
	  * ext/gdk_pixbuf/Makefile.am:
	  * ext/ladspa/Makefile.am:
	  * ext/libcaca/Makefile.am:
	  * ext/speex/Makefile.am:
	  * ext/taglib/Makefile.am:
	  * sys/oss/Makefile.am:
	  * sys/sunaudio/Makefile.am:
	  * sys/ximage/Makefile.am:
	  clean up build further

2006-06-07 17:05:48 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.*: Simplify and don't leak our buffer pool.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_finalize),
	  (gst_mpeg2dec_reset), (clear_buffers), (handle_picture),
	  (gst_mpeg2dec_sink_convert), (gst_mpeg2dec_src_convert),
	  (gst_mpeg2dec_change_state):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Simplify and don't leak our buffer pool.
	  Use _scale_int.
	  Remove unfixed bug number from previous ChangeLog entry.

2006-06-07 16:15:42 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.*: Fix padtemplate as we can now do fractional framerates.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init),
	  (gst_mpeg2dec_class_init), (gst_mpeg2dec_init),
	  (gst_mpeg2dec_finalize), (gst_mpeg2dec_reset),
	  (gst_mpeg2dec_qos_reset), (gst_mpeg2dec_alloc_buffer),
	  (gst_mpeg2dec_negotiate_format), (init_dummybuf),
	  (handle_sequence), (handle_picture), (handle_slice),
	  (gst_mpeg2dec_chain), (gst_mpeg2dec_sink_event),
	  (gst_mpeg2dec_src_event), (gst_mpeg2dec_change_state):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Fix padtemplate as we can now do fractional framerates.
	  Small cleanups.
	  Use GstSegment.
	  Add simple frame dropping QoS.
	  Precalc buffer output sizes and UV offsets.
	  Always give libmpeg2 a valid fbuf when it wants one.
	  don't trust libmpeg to discard our buffers but manage it
	  ourselves.
	  Fixes #343627, #327350, #335288

2006-06-05 20:57:12 +0000  Sébastien Moutte <sebastien@moutte.net>

	  win32/MANIFEST: Add a manifest for futures ugly win32 releases.
	  Original commit message from CVS:
	  * win32/MANIFEST:
	  Add a manifest for futures ugly win32 releases.
	  * gst/iec958/ac3iec.c: (ac3iec_chain_raw):
	  Move bufcaps declaration at the begining of the instructions
	  block.

2006-06-01 22:00:26 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
	  Original commit message from CVS:
	  * ext/alsaspdif/alsaspdifsink.h:
	  * ext/amrwb/gstamrwbdec.h:
	  * ext/amrwb/gstamrwbenc.h:
	  * ext/amrwb/gstamrwbparse.h:
	  * ext/arts/gst_arts.h:
	  * ext/artsd/gstartsdsink.h:
	  * ext/audiofile/gstafparse.h:
	  * ext/audiofile/gstafsink.h:
	  * ext/audiofile/gstafsrc.h:
	  * ext/audioresample/gstaudioresample.h:
	  * ext/bz2/gstbz2dec.h:
	  * ext/bz2/gstbz2enc.h:
	  * ext/dirac/gstdiracdec.h:
	  * ext/directfb/dfbvideosink.h:
	  * ext/divx/gstdivxdec.h:
	  * ext/divx/gstdivxenc.h:
	  * ext/dts/gstdtsdec.h:
	  * ext/faac/gstfaac.h:
	  * ext/gsm/gstgsmdec.h:
	  * ext/gsm/gstgsmenc.h:
	  * ext/ivorbis/vorbisenc.h:
	  * ext/libfame/gstlibfame.h:
	  * ext/nas/nassink.h:
	  * ext/neon/gstneonhttpsrc.h:
	  * ext/polyp/polypsink.h:
	  * ext/sdl/sdlaudiosink.h:
	  * ext/sdl/sdlvideosink.h:
	  * ext/shout/gstshout.h:
	  * ext/snapshot/gstsnapshot.h:
	  * ext/sndfile/gstsf.h:
	  * ext/swfdec/gstswfdec.h:
	  * ext/tarkin/gsttarkindec.h:
	  * ext/tarkin/gsttarkinenc.h:
	  * ext/theora/theoradec.h:
	  * ext/wavpack/gstwavpackdec.h:
	  * ext/wavpack/gstwavpackparse.h:
	  * ext/xine/gstxine.h:
	  * ext/xvid/gstxviddec.h:
	  * ext/xvid/gstxvidenc.h:
	  * gst/cdxaparse/gstcdxaparse.h:
	  * gst/cdxaparse/gstcdxastrip.h:
	  * gst/colorspace/gstcolorspace.h:
	  * gst/festival/gstfestival.h:
	  * gst/freeze/gstfreeze.h:
	  * gst/gdp/gstgdpdepay.h:
	  * gst/gdp/gstgdppay.h:
	  * gst/modplug/gstmodplug.h:
	  * gst/mpeg1sys/gstmpeg1systemencode.h:
	  * gst/mpeg1videoparse/gstmp1videoparse.h:
	  * gst/mpeg2sub/gstmpeg2subt.h:
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  * gst/multifilesink/gstmultifilesink.h:
	  * gst/overlay/gstoverlay.h:
	  * gst/playondemand/gstplayondemand.h:
	  * gst/qtdemux/qtdemux.h:
	  * gst/rtjpeg/gstrtjpegdec.h:
	  * gst/rtjpeg/gstrtjpegenc.h:
	  * gst/smooth/gstsmooth.h:
	  * gst/smoothwave/gstsmoothwave.h:
	  * gst/spectrum/gstspectrum.h:
	  * gst/speed/gstspeed.h:
	  * gst/stereo/gststereo.h:
	  * gst/switch/gstswitch.h:
	  * gst/tta/gstttadec.h:
	  * gst/tta/gstttaparse.h:
	  * gst/videodrop/gstvideodrop.h:
	  * gst/xingheader/gstxingmux.h:
	  * sys/directdraw/gstdirectdrawsink.h:
	  * sys/directsound/gstdirectsoundsink.h:
	  * sys/dxr3/dxr3audiosink.h:
	  * sys/dxr3/dxr3spusink.h:
	  * sys/dxr3/dxr3videosink.h:
	  * sys/qcam/gstqcamsrc.h:
	  * sys/vcd/vcdsrc.h:
	  Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass

2006-06-01 21:11:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.h:
	  * ext/amrnb/amrnbdec.h:
	  * ext/amrnb/amrnbenc.h:
	  * ext/amrnb/amrnbparse.h:
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  * ext/sidplay/gstsiddec.h:
	  * gst/ac3parse/gstac3parse.h:
	  * gst/asfdemux/gstasfdemux.h:
	  * gst/asfdemux/gstasfmux.h:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  * gst/iec958/ac3iec.h:
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  * gst/mpegstream/gstdvddemux.h:
	  * gst/mpegstream/gstmpegclock.h:
	  * gst/mpegstream/gstmpegdemux.h:
	  * gst/mpegstream/gstmpegparse.h:
	  Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass

2006-05-27 11:35:11 +0000  Tim-Philipp Müller <tim@centricular.net>

	  README: Replace current README (containing the release notes from some 0.9.x version) with a proper README taken from...
	  Original commit message from CVS:
	  * README:
	  Replace current README (containing the release notes from
	  some 0.9.x version) with a proper README taken from the core.

2006-05-24 15:56:13 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/amrnb/: Sortof first quick cleanup of all this mess...
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_event), (gst_amrnbdec_chain):
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_init),
	  (gst_amrnbparse_sink_event), (gst_amrnbparse_chain),
	  (gst_amrnbparse_sink_activate), (gst_amrnbparse_state_change):
	  * ext/amrnb/amrnbparse.h:
	  Sortof first quick cleanup of all this mess...
	  Don't crap out on empty and invalid FTs but treat them as
	  empty packets, the decoder handles them fine.
	  Fixes #342222.

2006-05-22 08:24:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasf.c: Call gst_riff_init() so the riff debug category gets set up before it is being used.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasf.c: (plugin_init):
	  Call gst_riff_init() so the riff debug category gets set up
	  before it is being used.

2006-05-19 13:55:11 +0000  Michael Smith <msmith@xiph.org>

	  gst/iec958/: Write rate into the caps, for the allowed ac3 rates. Some minor cleanups.
	  Original commit message from CVS:
	  * gst/iec958/ac3_padder.c: (ac3p_parse):
	  * gst/iec958/ac3_padder.h:
	  * gst/iec958/ac3iec.c: (ac3iec_init), (ac3iec_set_property),
	  (ac3iec_chain_raw), (ac3iec_change_state):
	  * gst/iec958/ac3iec.h:
	  Write rate into the caps, for the allowed ac3 rates. Some minor
	  cleanups.

2006-05-18 13:00:21 +0000  James Doc Livingston <doclivingston@gmail.com>

	  ext/mad/gstid3tag.c: Do tag merging correctly (#339918). Output taglists properly in debug statements too while we're...
	  Original commit message from CVS:
	  Patch by: James "Doc" Livingston  <doclivingston gmail com>
	  * ext/mad/gstid3tag.c: (gst_id3_tag_get_tag_to_render):
	  Do tag merging correctly (#339918). Output taglists
	  properly in debug statements too while we're at it.

2006-05-11 16:17:44 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/a52dec/gsta52dec.c: Add more debug
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_chain):
	  Add more debug
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcm_reset),
	  (gst_dvdlpcmdec_init), (update_timestamps),
	  (gst_dvdlpcmdec_chain_dvd), (gst_dvdlpcmdec_chain_raw),
	  (dvdlpcmdec_sink_event):
	  * gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  If we have a first_access offset but no current timestamp (might
	  happen after a seek), then calculate a start time for the first
	  portion so that it will align with the timestamp given for the
	  first_access portion.
	  If a new-segment arrives with format time, store the start
	  time as a failsafe timestamp in case we never get any further
	  timestamp info (unlikely)
	  Mask out the 'frame number' section of the incoming header so
	  that we don't consider it to be changing on every buffer and
	  reset the caps constantly.
	  Use gst_util_uint64_scale for duration calculation

2006-05-11 14:34:10 +0000  Michael Smith <msmith@xiph.org>

	  gst/dvdlpcmdec/gstdvdlpcmdec.c: Fix timestamping for cases where the first_access parameter is 4.
	  Original commit message from CVS:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_dvd):
	  Fix timestamping for cases where the first_access parameter is 4.
	  Ensure we don't overrun buffers in other cases.

2006-05-10 14:40:03 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: Fix silly bug when reading metadata (#341254).
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_string):
	  Fix silly bug when reading metadata (#341254).

2006-05-08 11:57:26 +0000  Edward Hervey <bilboed@bilboed.com>

	  autogen.sh: libtoolize on Darwin/MacOSX is called glibtoolize
	  Original commit message from CVS:
	  * autogen.sh: (CONFIGURE_DEF_OPT):
	  libtoolize on Darwin/MacOSX is called glibtoolize

2006-05-06 11:38:30 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.*: Remove tag writing from lame (which was completely broken anyway, #329184). Leaving GstTagSetter ...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_get_type),
	  (gst_lame_release_memory), (gst_lame_init), (gst_lame_sink_event),
	  (gst_lame_setup), (gst_lame_change_state):
	  * ext/lame/gstlame.h:
	  Remove tag writing from lame (which was completely broken
	  anyway, #329184). Leaving GstTagSetter interface around for
	  now, albeit non-functional. Should be removed completely
	  in 0.11. Use the 'id3v2mux' plugin from -good for writing
	  tags.

2006-05-06 00:18:31 +0000  Maciej Katafiasz <mathrick@mathrick.org>

	* ChangeLog:
	* ext/dvdread/dvdreadsrc.c:
	* gst/asfdemux/gstasfdemux.c:
	  Add semicolons after GST_BOILERPLATE[_FULL] so that indent doesn't mess up following lines.
	  Original commit message from CVS:
	  Add semicolons after GST_BOILERPLATE[_FULL] so that indent doesn't mess up following lines.

2006-05-05 08:23:39 +0000  Andres Salomon <dilinger@debian.org>

	  ext/lame/gstlame.c: Fix typo (comma vs. semicolon) (#340710).
	  Original commit message from CVS:
	  Patch by: Andres Salomon  <dilinger at debian org>
	  * ext/lame/gstlame.c: (gst_lame_sink_event):
	  Fix typo (comma vs. semicolon) (#340710).

2006-05-04 08:24:52 +0000  Lutz Müller <lutz@topfrose.de>

	  ext/mad/gstmad.c: Make mad the second element to support the highly useful
	  Original commit message from CVS:
	  Patch by: Lutz Müller <lutz at topfrose de>
	  * ext/mad/gstmad.c: (gst_mad_init), (gst_mad_src_query):
	  Make mad the second element to support the highly useful
	  FORMATS query (#340594)

2006-05-02 10:28:48 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Remember the query duration format before passing it upstream since it could have been mo...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_sink_convert),
	  (gst_mpeg2dec_src_query):
	  Remember the query duration format before passing it upstream since it
	  could have been modified.
	  Add GST_WARNING_OBJECT in sink convert function to detail why the
	  conversion didn't work.

2006-04-25 21:56:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Define GstElementDetails as const and also static (when defined as global)
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbdec.c:
	  * ext/amrwb/gstamrwbenc.c:
	  * ext/amrwb/gstamrwbparse.c:
	  * ext/arts/gst_arts.c:
	  * ext/artsd/gstartsdsink.c:
	  * ext/audiofile/gstafparse.c:
	  * ext/audiofile/gstafsink.c:
	  * ext/audiofile/gstafsrc.c:
	  * ext/audioresample/gstaudioresample.c:
	  * ext/bz2/gstbz2dec.c:
	  * ext/bz2/gstbz2enc.c:
	  * ext/cdaudio/gstcdaudio.c:
	  * ext/directfb/dfbvideosink.c:
	  * ext/divx/gstdivxdec.c:
	  * ext/divx/gstdivxenc.c:
	  * ext/dts/gstdtsdec.c: (gst_dtsdec_base_init):
	  * ext/faac/gstfaac.c: (gst_faac_base_init):
	  * ext/faad/gstfaad.c:
	  * ext/gsm/gstgsmdec.c:
	  * ext/gsm/gstgsmenc.c:
	  * ext/hermes/gsthermescolorspace.c:
	  * ext/ivorbis/vorbisfile.c:
	  * ext/lcs/gstcolorspace.c:
	  * ext/libfame/gstlibfame.c:
	  * ext/libmms/gstmms.c: (gst_mms_base_init):
	  * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init):
	  * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
	  * ext/nas/nassink.c: (gst_nassink_base_init):
	  * ext/neon/gstneonhttpsrc.c:
	  * ext/sdl/sdlaudiosink.c:
	  * ext/sdl/sdlvideosink.c:
	  * ext/shout/gstshout.c:
	  * ext/snapshot/gstsnapshot.c:
	  * ext/sndfile/gstsf.c:
	  * ext/swfdec/gstswfdec.c:
	  * ext/tarkin/gsttarkindec.c:
	  * ext/tarkin/gsttarkinenc.c:
	  * ext/theora/theoradec.c:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
	  * ext/xvid/gstxviddec.c:
	  * ext/xvid/gstxvidenc.c:
	  * gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init):
	  * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init):
	  * gst/chart/gstchart.c:
	  * gst/colorspace/gstcolorspace.c:
	  * gst/deinterlace/gstdeinterlace.c:
	  * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init):
	  * gst/festival/gstfestival.c:
	  * gst/filter/gstbpwsinc.c:
	  * gst/filter/gstiir.c:
	  * gst/filter/gstlpwsinc.c:
	  * gst/freeze/gstfreeze.c:
	  * gst/games/gstpuzzle.c: (gst_puzzle_base_init):
	  * gst/librfb/gstrfbsrc.c:
	  * gst/mixmatrix/mixmatrix.c:
	  * gst/mpeg1sys/gstmpeg1systemencode.c:
	  * gst/mpeg1videoparse/gstmp1videoparse.c:
	  * gst/mpeg2sub/gstmpeg2subt.c:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  * gst/multifilesink/gstmultifilesink.c:
	  * gst/overlay/gstoverlay.c:
	  * gst/passthrough/gstpassthrough.c:
	  * gst/playondemand/gstplayondemand.c:
	  * gst/qtdemux/qtdemux.c:
	  * gst/rtjpeg/gstrtjpegdec.c:
	  * gst/rtjpeg/gstrtjpegenc.c:
	  * gst/smooth/gstsmooth.c:
	  * gst/smoothwave/gstsmoothwave.c:
	  * gst/spectrum/gstspectrum.c:
	  * gst/speed/gstspeed.c:
	  * gst/stereo/gststereo.c:
	  * gst/switch/gstswitch.c:
	  * gst/tta/gstttadec.c: (gst_tta_dec_base_init):
	  * gst/tta/gstttaparse.c: (gst_tta_parse_base_init):
	  * gst/vbidec/gstvbidec.c:
	  * gst/videocrop/gstvideocrop.c:
	  * gst/videodrop/gstvideodrop.c:
	  * gst/virtualdub/gstxsharpen.c:
	  * gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init):
	  * gst/y4m/gsty4mencode.c:
	  * sys/cdrom/gstcdplayer.c:
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directsound/gstdirectsoundsink.c:
	  * sys/glsink/glimagesink.c:
	  * sys/qcam/gstqcamsrc.c:
	  * sys/v4l2/gstv4l2src.c:
	  * sys/vcd/vcdsrc.c: (gst_vcdsrc_base_init):
	  * sys/ximagesrc/ximagesrc.c:
	  Define GstElementDetails as const and also static (when defined as
	  global)

2006-04-25 21:47:03 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Define GstElementDetails as const and also static (when defined as global)
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c:
	  * ext/mad/gstmad.c:
	  * gst/ac3parse/gstac3parse.c:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  * gst/synaesthesia/gstsynaesthesia.c:
	  Define GstElementDetails as const and also static (when defined as
	  global)

2006-04-25 21:39:40 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Define GstElementDetails as const and also static (when defined as global)
	  Original commit message from CVS:
	  * ext/aalib/gstaasink.c:
	  * ext/annodex/gstcmmldec.c:
	  * ext/annodex/gstcmmlenc.c:
	  * ext/cairo/gsttextoverlay.c:
	  * ext/cairo/gsttimeoverlay.c:
	  * ext/cdio/gstcdiocddasrc.c:
	  * ext/dv/gstdvdec.c:
	  * ext/dv/gstdvdemux.c:
	  * ext/esd/esdmon.c:
	  * ext/esd/esdsink.c:
	  * ext/flac/gstflacenc.c:
	  * ext/flac/gstflactag.c:
	  * ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init):
	  * ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init):
	  * ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init):
	  * ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init):
	  * ext/gdk_pixbuf/pixbufscale.c:
	  * ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init):
	  * ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init):
	  * ext/jpeg/gstjpegdec.c:
	  * ext/jpeg/gstjpegenc.c:
	  * ext/jpeg/gstsmokedec.c:
	  * ext/jpeg/gstsmokeenc.c:
	  * ext/libcaca/gstcacasink.c:
	  * ext/libmng/gstmngdec.c:
	  * ext/libmng/gstmngenc.c:
	  * ext/libpng/gstpngdec.c:
	  * ext/libpng/gstpngenc.c:
	  * ext/mikmod/gstmikmod.c:
	  * ext/raw1394/gstdv1394src.c:
	  * ext/shout2/gstshout2.c: (gst_shout2send_init):
	  * ext/shout2/gstshout2.h:
	  * ext/speex/gstspeexdec.c:
	  * ext/speex/gstspeexenc.c:
	  * gst/alpha/gstalpha.c:
	  * gst/alpha/gstalphacolor.c:
	  * gst/apetag/gstapedemux.c:
	  * gst/auparse/gstauparse.c:
	  * gst/autodetect/gstautoaudiosink.c:
	  (gst_auto_audio_sink_base_init):
	  * gst/autodetect/gstautovideosink.c:
	  (gst_auto_video_sink_base_init):
	  * gst/avi/gstavidemux.c: (gst_avi_demux_base_init):
	  * gst/avi/gstavimux.c: (gst_avimux_base_init):
	  * gst/cutter/gstcutter.c:
	  * gst/debug/breakmydata.c:
	  * gst/debug/efence.c:
	  * gst/debug/gstnavigationtest.c:
	  * gst/debug/gstnavseek.c:
	  * gst/debug/negotiation.c:
	  * gst/debug/progressreport.c:
	  * gst/debug/testplugin.c:
	  * gst/effectv/gstaging.c:
	  * gst/effectv/gstdice.c:
	  * gst/effectv/gstedge.c:
	  * gst/effectv/gstquark.c:
	  * gst/effectv/gstrev.c:
	  * gst/effectv/gstshagadelic.c:
	  * gst/effectv/gstvertigo.c:
	  * gst/effectv/gstwarp.c:
	  * gst/flx/gstflxdec.c:
	  * gst/goom/gstgoom.c:
	  * gst/icydemux/gsticydemux.c:
	  * gst/id3demux/gstid3demux.c:
	  * gst/interleave/deinterleave.c:
	  * gst/interleave/interleave.c:
	  * gst/law/alaw-decode.c: (gst_alawdec_base_init):
	  * gst/law/alaw-encode.c: (gst_alawenc_base_init):
	  * gst/law/mulaw-decode.c: (gst_mulawdec_base_init):
	  * gst/law/mulaw-encode.c: (gst_mulawenc_base_init):
	  * gst/level/gstlevel.c:
	  * gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init):
	  * gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init):
	  * gst/median/gstmedian.c:
	  * gst/monoscope/gstmonoscope.c:
	  * gst/multipart/multipartdemux.c:
	  * gst/multipart/multipartmux.c:
	  * gst/oldcore/gstaggregator.c:
	  * gst/oldcore/gstfdsink.c:
	  * gst/oldcore/gstmd5sink.c:
	  * gst/oldcore/gstmultifilesrc.c:
	  * gst/oldcore/gstpipefilter.c:
	  * gst/oldcore/gstshaper.c:
	  * gst/oldcore/gststatistics.c:
	  * gst/rtp/gstasteriskh263.c:
	  * gst/rtp/gstrtpL16depay.c:
	  * gst/rtp/gstrtpL16pay.c:
	  * gst/rtp/gstrtpamrdepay.c:
	  * gst/rtp/gstrtpamrpay.c:
	  * gst/rtp/gstrtpdepay.c:
	  * gst/rtp/gstrtpgsmpay.c:
	  * gst/rtp/gstrtph263pay.c:
	  * gst/rtp/gstrtph263pdepay.c:
	  * gst/rtp/gstrtph263ppay.c:
	  * gst/rtp/gstrtpilbcdepay.c:
	  * gst/rtp/gstrtpmp4gpay.c:
	  * gst/rtp/gstrtpmp4vdepay.c:
	  * gst/rtp/gstrtpmp4vpay.c:
	  * gst/rtp/gstrtpmpadepay.c:
	  * gst/rtp/gstrtpmpapay.c:
	  * gst/rtp/gstrtppcmadepay.c:
	  * gst/rtp/gstrtppcmapay.c:
	  * gst/rtp/gstrtppcmudepay.c:
	  * gst/rtp/gstrtppcmupay.c:
	  * gst/rtp/gstrtpspeexdepay.c:
	  * gst/rtp/gstrtpspeexpay.c:
	  * gst/rtsp/gstrtpdec.c:
	  * gst/rtsp/gstrtspsrc.c:
	  * gst/smpte/gstsmpte.c:
	  * gst/udp/gstdynudpsink.c:
	  * gst/udp/gstmultiudpsink.c:
	  * gst/udp/gstudpsink.c:
	  * gst/udp/gstudpsrc.c:
	  * gst/videobox/gstvideobox.c:
	  * gst/videofilter/gstgamma.c: (gst_gamma_base_init):
	  * gst/videofilter/gstvideobalance.c:
	  * gst/videofilter/gstvideoflip.c:
	  * gst/videofilter/gstvideotemplate.c:
	  (gst_videotemplate_base_init):
	  * gst/videomixer/videomixer.c:
	  * gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
	  (gst_wavparse_class_init), (gst_wavparse_dispose),
	  (gst_wavparse_reset), (gst_wavparse_init),
	  (gst_wavparse_perform_seek), (gst_wavparse_peek_chunk_info),
	  (gst_wavparse_peek_chunk), (gst_wavparse_stream_headers),
	  (gst_wavparse_parse_stream_init), (gst_wavparse_send_event),
	  (gst_wavparse_add_src_pad), (gst_wavparse_stream_data),
	  (gst_wavparse_chain), (gst_wavparse_srcpad_event),
	  (gst_wavparse_sink_activate), (gst_wavparse_sink_activate_pull),
	  (gst_wavparse_change_state):
	  * gst/wavparse/gstwavparse.h:
	  * sys/oss/gstossmixerelement.c:
	  * sys/oss/gstosssink.c:
	  * sys/oss/gstosssrc.c:
	  * sys/osxaudio/gstosxaudioelement.c:
	  * sys/osxaudio/gstosxaudiosink.c:
	  * sys/osxaudio/gstosxaudiosrc.c:
	  * sys/sunaudio/gstsunaudiomixer.c:
	  * sys/sunaudio/gstsunaudiosink.c:
	  Define GstElementDetails as const and also static (when defined as
	  global)

2006-04-25 12:17:02 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdnav/dvdnavsrc.c: Fix name of custom event (use same as dvdreadsrc).
	  Original commit message from CVS:
	  * ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_push_titlelang_event):
	  Fix name of custom event (use same as dvdreadsrc).
	  * gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_chain),
	  (gst_dvd_sub_dec_sink_event), (gst_dvd_sub_dec_handle_dvd_event):
	  Fix event parsing (the event name is in the structure, not the
	  name of the structure itself); also fix indentation after
	  boilerplate macro.

2006-04-23 09:49:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstid3tag.c: Change debug category to 'id3mux'.
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (plugin_init):
	  Change debug category to 'id3mux'.

2006-04-22 18:49:01 +0000  Alexander Lancaster <alexl@users.sourceforge.net>

	  ext/mad/gstid3tag.c: When acting as a muxer, set caps on outgoing buffers and set caps on source pad (fixes #323658)....
	  Original commit message from CVS:
	  Patch by: Alexander Lancaster  <alexl at users sourceforge net>
	  * ext/mad/gstid3tag.c: (gst_id3_tag_get_caps), (gst_id3_tag_init),
	  (gst_id3_tag_sink_event), (gst_id3_tag_src_link),
	  (gst_id3_tag_chain):
	  When acting as a muxer, set caps on outgoing buffers and set caps
	  on source pad (fixes #323658). Remove unused application/x-gst-tags
	  cruft from the 0.6 days.

2006-04-21 20:37:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: .. and DEFAULT queries should work too. Use magic gst util scale functions in some places.
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_convert_sink), (gst_mad_convert_src),
	  (gst_mad_src_query), (gst_mad_chain):
	  .. and DEFAULT queries should work too. Use magic gst util scale
	  functions in some places.

2006-04-21 19:31:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: Fix duration query in BYTES format (#336824).
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_src_query):
	  Fix duration query in BYTES format (#336824).

2006-04-21 12:40:41 +0000  Ed Catmur <ed@catmur.co.uk>

	  ext/lame/gstlame.c: Don't crash if we get an EOS event before the encoder has been set up (#339287).
	  Original commit message from CVS:
	  Patch by: Ed Catmur  <ed at catmur dot co dot uk>
	  * ext/lame/gstlame.c: (gst_lame_sink_event):
	  Don't crash if we get an EOS event before the encoder
	  has been set up (#339287).

2006-04-21 11:17:08 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/dvdread/dvdreadsrc.c: Move errors out of the normal code flow.
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_start),
	  (gst_dvd_read_src_goto_title), (gst_dvd_read_src_read),
	  (gst_dvd_read_src_create), (gst_dvd_read_src_goto_sector):
	  Move errors out of the normal code flow.
	  Don't send eos, basesrc will do that for us when needed.

2006-04-21 10:50:17 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegstream/: Do state changes correctly
	  Original commit message from CVS:
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_change_state):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_change_state):
	  * gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_change_state):
	  Do state changes correctly

2006-04-13 19:08:20 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.c: Can't use gst_pad_alloc_buffer*() when we are going to crop the image before sending it o...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_sized_buf),
	  (gst_mpeg2dec_alloc_buffer):
	  Can't use gst_pad_alloc_buffer*() when we are going to crop
	  the image before sending it out. Downstream basetransform-based
	  elements will complain about the wrong unit size otherwise
	  (when not operating in passthrough-mode at least).
	  Const-ify some static variables and do some minor clean-ups.
	  Use I420 macros for size/offsets (not really necessary in this
	  particular context, but this kind of code gets copy'n'pasted).

2006-04-13 18:21:08 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/gstmpegpacketize.*: g_malloc() can't fail, we don't need to handle this. Same for gst_buffer_new_and_a...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_put),
	  (read_cache):
	  * gst/mpegstream/gstmpegpacketize.h:
	  g_malloc() can't fail, we don't need to handle this. Same for
	  gst_buffer_new_and_alloc().
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_chain):
	  klass->send_buffer() should have the same semantics as
	  gst_pad_push(), ie. ownership of the buffer is transfered,
	  so we never have to unref the buffer no matter what the flow
	  return value was.

2006-04-12 16:21:17 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/check/gst-plugins-ugly.supp:
	  one more suppression for FC4
	  Original commit message from CVS:
	  one more suppression for FC4

2006-04-10 16:58:24 +0000  Michael Smith <msmith@xiph.org>

	* tests/check/gst-plugins-ugly.supp:
	  The AMR encoder sucks giant sucky things through a sucky object with a giant sucking machine. More suppressions.
	  Original commit message from CVS:
	  The AMR encoder sucks giant sucky things through a sucky object with a giant
	  sucking machine. More suppressions.

2006-04-10 14:47:11 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  add test for amrnbenc, enable test infrastructure, and fix a leak
	  Original commit message from CVS:
	  add test for amrnbenc, enable test infrastructure, and fix a leak
	  * common/check.mak:
	  allow for specifying more than one suppressions file in SUPPRESSIONS
	  * Makefile.am:
	  * tests/Makefile.am:
	  * tests/check/.cvsignore:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * configure.ac:
	  add tests/check
	  * tests/check/gst-plugins-ugly.supp:
	  add suppressions for libs used by -ugly
	  * tests/check/elements/amrnbenc.c: (buffer_new), (buffer_unref),
	  (setup_amrnbenc), (cleanup_amrnbenc), (push_data),
	  (GST_START_TEST), (amrnbenc_suite), (main):
	  add a simple test for encoding amr
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_init):
	  fix pad template leaks

2006-04-10 11:48:29 +0000  Michael Smith <msmith@xiph.org>

	  ext/amrnb/amrnbenc.c: Plug big leak in AMR encoder.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_chain):
	  Plug big leak in AMR encoder.

2006-04-09 18:09:40 +0000  Sébastien Moutte <sebastien@moutte.net>

	  ext/mad/gstmad.c: move GstIndexEntry *entry variable declaration before the first instruction
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (index_seek):
	  move GstIndexEntry *entry variable declaration before
	  the first instruction
	  * ext/mad/gstmad.c:
	  remove debug macros with variable number of parameter by using
	  GST_DEBUG for WIN32
	  * gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_parse_subpic):
	  use gst_guint64_to_gdouble for conversions
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_sync_stream_to_time):
	  replace __FUNCTION__ which is not supported by MSVC by the current function name
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_reset):
	  remove LL suffix by using G_GINT64_CONSTANT
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead),(gst_mpeg_parse_get_rate):
	  use gst_guint64_to_gdouble for conversions
	  * gst/mpegstream/gstmpegparse.h:
	  remove LL suffix by using G_GINT64_CONSTANT
	  * win32/vs6:
	  add project files for tagac3parse, asfdemux, dvdlpcmdec, dvdsub, iec958, lame,
	  mad, mpegaudioparse, mpegstream, realmedia, synaesthesia

2006-04-08 21:42:19 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_class_init):
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_class_init):
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_class_init):
	  * ext/mad/gstmad.c: (gst_mad_class_init):
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_class_init):
	  * gst/ac3parse/gstac3parse.c: (gst_ac3parse_class_init):
	  * gst/asfdemux/gstasfmux.c: (gst_asfmux_class_init):
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_class_init):
	  * gst/iec958/ac3iec.c: (ac3iec_class_init):
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_class_init):
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init):
	  * gst/mpegstream/gstmpegclock.c: (gst_mpeg_clock_class_init):
	  * gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_class_init):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_class_init):
	  * gst/synaesthesia/gstsynaesthesia.c:
	  (gst_synaesthesia_class_init):
	  Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)

2006-04-07 09:14:26 +0000  Fabrizio Gennari <fabrizio.ge@tiscali.it>

	  gst/asfdemux/gstasfdemux.c: Send newsegment event only once per pad, fixes #336550.
	  Original commit message from CVS:
	  Patch by: Fabrizio Gennari  <fabrizio dot ge at tiscali dot it>
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event),
	  (gst_asf_demux_push_buffer):
	  Send newsegment event only once per pad, fixes #336550.

2006-04-06 11:35:26 +0000  j^ <j@bootlab.org>

	  Unify the long descriptions in the plugin details (#337263).
	  Original commit message from CVS:
	  Patch by: j^  <j at bootlab dot org>
	  * ext/amrwb/gstamrwbdec.c:
	  * ext/amrwb/gstamrwbenc.c:
	  * ext/amrwb/gstamrwbparse.c:
	  * ext/arts/gst_arts.c:
	  * ext/artsd/gstartsdsink.c:
	  * ext/audiofile/gstafparse.c:
	  * ext/audiofile/gstafsink.c:
	  * ext/audiofile/gstafsrc.c:
	  * ext/cdaudio/gstcdaudio.c:
	  * ext/directfb/dfbvideosink.c:
	  * ext/divx/gstdivxdec.c:
	  * ext/divx/gstdivxenc.c:
	  * ext/dts/gstdtsdec.c: (gst_dtsdec_base_init):
	  * ext/faac/gstfaac.c: (gst_faac_base_init):
	  * ext/faad/gstfaad.c:
	  * ext/gsm/gstgsmdec.c:
	  * ext/gsm/gstgsmenc.c:
	  * ext/hermes/gsthermescolorspace.c:
	  * ext/ivorbis/vorbisfile.c:
	  * ext/lcs/gstcolorspace.c:
	  * ext/libfame/gstlibfame.c:
	  * ext/libmms/gstmms.c: (gst_mms_base_init):
	  * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
	  * ext/nas/nassink.c: (gst_nassink_base_init):
	  * ext/neon/gstneonhttpsrc.c:
	  * ext/polyp/polypsink.c: (gst_polypsink_base_init):
	  * ext/sdl/sdlaudiosink.c:
	  * ext/sdl/sdlvideosink.c:
	  * ext/shout/gstshout.c:
	  * ext/snapshot/gstsnapshot.c:
	  * ext/sndfile/gstsf.c:
	  * ext/tarkin/gsttarkindec.c:
	  * ext/tarkin/gsttarkinenc.c:
	  * ext/theora/theoradec.c:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
	  * ext/xvid/gstxviddec.c:
	  * ext/xvid/gstxvidenc.c:
	  * gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init):
	  * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init):
	  * gst/chart/gstchart.c:
	  * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init):
	  * gst/festival/gstfestival.c:
	  * gst/filter/gstiir.c:
	  * gst/filter/gstlpwsinc.c:
	  * gst/freeze/gstfreeze.c:
	  * gst/games/gstpuzzle.c: (gst_puzzle_base_init):
	  * gst/mixmatrix/mixmatrix.c:
	  * gst/mpeg1sys/gstmpeg1systemencode.c:
	  * gst/mpeg1videoparse/gstmp1videoparse.c:
	  * gst/mpeg2sub/gstmpeg2subt.c:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  * gst/multifilesink/gstmultifilesink.c:
	  * gst/overlay/gstoverlay.c:
	  * gst/passthrough/gstpassthrough.c:
	  * gst/playondemand/gstplayondemand.c:
	  * gst/qtdemux/qtdemux.c:
	  * gst/rtjpeg/gstrtjpegdec.c:
	  * gst/rtjpeg/gstrtjpegenc.c:
	  * gst/smooth/gstsmooth.c:
	  * gst/tta/gstttadec.c: (gst_tta_dec_base_init):
	  * gst/tta/gstttaparse.c: (gst_tta_parse_base_init):
	  * gst/videocrop/gstvideocrop.c:
	  * gst/videodrop/gstvideodrop.c:
	  * gst/virtualdub/gstxsharpen.c:
	  * gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init):
	  * gst/y4m/gsty4mencode.c:
	  Unify the long descriptions in the plugin details (#337263).

2006-04-05 10:02:34 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-ugly.spec.in:
	  fix version numbering
	  Original commit message from CVS:
	  fix version numbering

2006-04-05 09:18:35 +0000  Christian Schaller <uraeus@gnome.org>

	* common:
	* gst-plugins-ugly.spec.in:
	  add dvdsub plugin to spec
	  Original commit message from CVS:
	  add dvdsub plugin to spec

2006-04-01 15:43:46 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/: add siddec
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  * docs/plugins/inspect/plugin-siddec.xml:
	  add siddec
	  * ext/dvdnav/dvdnavsrc.c:
	  doc fixes

2006-04-01 15:30:56 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* configure.ac:
	* ext/sidplay/Makefile.am:
	  disable use of AS_LIBTOOL_TAGS, it doesn't work correctly
	  Original commit message from CVS:
	  disable use of AS_LIBTOOL_TAGS, it doesn't work correctly

2006-04-01 14:08:36 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/.gitignore:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	  ignore more
	  Original commit message from CVS:
	  ignore more

2006-04-01 14:08:11 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-asf.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-dvdread.xml:
	* docs/plugins/inspect/plugin-dvdsub.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-mpegstream.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  update plugin inspect files
	  Original commit message from CVS:
	  update plugin inspect files

2006-04-01 10:09:10 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/mpegaudioparse/gstxingmux.c:
	  rework build; add translations for v4l2
	  Original commit message from CVS:
	  rework build; add translations for v4l2

2006-04-01 09:54:39 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  configure.ac: rework similarly to other modules
	  Original commit message from CVS:
	  * configure.ac:
	  rework similarly to other modules
	  * ext/a52dec/gsta52dec.c:
	  * ext/amrnb/amrnb.c:
	  * ext/dvdnav/dvdnavsrc.c:
	  * ext/dvdread/dvdreadsrc.c:
	  * ext/lame/gstlame.c:
	  * ext/mad/gstid3tag.c:
	  * ext/mpeg2dec/gstmpeg2dec.c:
	  * ext/sidplay/gstsiddec.cc:
	  * gst/asfdemux/gstasf.c:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  * gst/dvdsub/gstdvdsubdec.c:
	  * gst/iec958/ac3iec.c:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  * gst/mpegstream/gstmpegstream.c:
	  * gst/realmedia/rmdemux.c: (plugin_init):
	  use the correct defines

2006-04-01 09:53:17 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* docs/.gitignore:
	* docs/plugins/.gitignore:
	  ignore more
	  Original commit message from CVS:
	  ignore more

2006-03-31 11:13:50 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* common:
	* configure.ac:
	  back to HEAD
	  Original commit message from CVS:
	  back to HEAD

=== release 0.10.3 ===

2006-03-31 11:10:46 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.signals:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  releasing 0.10.3
	  Original commit message from CVS:
	  releasing 0.10.3

2006-03-30 15:37:00 +0000  Wim Taymans <wim.taymans@gmail.com>

	  better/unified long descriptions
	  Original commit message from CVS:
	  * ext/aalib/gstaasink.c:
	  * ext/annodex/gstcmmldec.c:
	  * ext/annodex/gstcmmlenc.c:
	  * ext/cairo/gsttextoverlay.c:
	  * ext/cairo/gsttimeoverlay.c:
	  * ext/cdio/gstcdiocddasrc.c:
	  * ext/dv/gstdvdec.c:
	  * ext/esd/esdmon.c:
	  * ext/esd/esdsink.c:
	  * ext/flac/gstflacdec.c:
	  * ext/flac/gstflacenc.c:
	  * ext/flac/gstflactag.c:
	  * ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init):
	  * ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init):
	  * ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init):
	  * ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init):
	  * ext/gdk_pixbuf/gstgdkpixbuf.c:
	  * ext/gdk_pixbuf/pixbufscale.c:
	  * ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init):
	  * ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init):
	  * ext/jpeg/gstjpegdec.c:
	  * ext/jpeg/gstjpegenc.c:
	  * ext/jpeg/gstsmokedec.c:
	  * ext/jpeg/gstsmokeenc.c:
	  * ext/libcaca/gstcacasink.c:
	  * ext/libmng/gstmngdec.c:
	  * ext/libmng/gstmngenc.c:
	  * ext/libpng/gstpngdec.c:
	  * ext/libpng/gstpngenc.c:
	  * ext/mikmod/gstmikmod.c:
	  * ext/raw1394/gstdv1394src.c:
	  * ext/shout2/gstshout2.c:
	  * ext/speex/gstspeexdec.c:
	  * ext/speex/gstspeexenc.c:
	  * gst/alpha/gstalpha.c:
	  * gst/alpha/gstalphacolor.c:
	  * gst/auparse/gstauparse.c:
	  * gst/autodetect/gstautoaudiosink.c:
	  (gst_auto_audio_sink_base_init):
	  * gst/autodetect/gstautovideosink.c:
	  (gst_auto_video_sink_base_init):
	  * gst/avi/gstavimux.c: (gst_avimux_base_init):
	  * gst/cutter/gstcutter.c:
	  * gst/debug/breakmydata.c:
	  * gst/debug/efence.c:
	  * gst/debug/gstnavigationtest.c:
	  * gst/debug/negotiation.c:
	  * gst/debug/progressreport.c:
	  * gst/debug/testplugin.c:
	  * gst/effectv/gstaging.c:
	  * gst/effectv/gstdice.c:
	  * gst/effectv/gstedge.c:
	  * gst/effectv/gstquark.c:
	  * gst/effectv/gstrev.c:
	  * gst/effectv/gstvertigo.c:
	  * gst/effectv/gstwarp.c:
	  * gst/flx/gstflxdec.c:
	  * gst/goom/gstgoom.c:
	  * gst/interleave/deinterleave.c:
	  * gst/interleave/interleave.c:
	  * gst/law/alaw-decode.c: (gst_alawdec_base_init):
	  * gst/law/alaw-encode.c: (gst_alawenc_base_init):
	  * gst/law/mulaw-decode.c: (gst_mulawdec_base_init):
	  * gst/law/mulaw-encode.c: (gst_mulawenc_base_init):
	  * gst/level/gstlevel.c:
	  * gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init):
	  * gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init):
	  * gst/median/gstmedian.c:
	  * gst/monoscope/gstmonoscope.c:
	  * gst/multipart/multipartdemux.c:
	  * gst/multipart/multipartmux.c:
	  * gst/oldcore/gstmd5sink.c:
	  * gst/oldcore/gstmultifilesrc.c:
	  * gst/oldcore/gstpipefilter.c:
	  * gst/oldcore/gstshaper.c:
	  * gst/oldcore/gststatistics.c:
	  * gst/rtp/gstasteriskh263.c:
	  * gst/rtp/gstrtpL16depay.c:
	  * gst/rtp/gstrtpL16pay.c:
	  * gst/rtp/gstrtpamrdepay.c:
	  * gst/rtp/gstrtpamrpay.c:
	  * gst/rtp/gstrtpdepay.c:
	  * gst/rtp/gstrtpgsmpay.c:
	  * gst/rtp/gstrtph263pay.c:
	  * gst/rtp/gstrtph263pdepay.c:
	  * gst/rtp/gstrtph263ppay.c:
	  * gst/rtp/gstrtpmp4gpay.c:
	  * gst/rtp/gstrtpmp4vdepay.c:
	  * gst/rtp/gstrtpmp4vpay.c:
	  * gst/rtp/gstrtpmpadepay.c:
	  * gst/rtp/gstrtpmpapay.c:
	  * gst/rtp/gstrtppcmadepay.c:
	  * gst/rtp/gstrtppcmapay.c:
	  * gst/rtp/gstrtppcmudepay.c:
	  * gst/rtp/gstrtppcmupay.c:
	  * gst/rtp/gstrtpspeexdepay.c:
	  * gst/rtp/gstrtpspeexpay.c:
	  * gst/rtsp/gstrtpdec.c:
	  * gst/smpte/gstsmpte.c:
	  * gst/videobox/gstvideobox.c:
	  * gst/videofilter/gstgamma.c: (gst_gamma_base_init):
	  * gst/videofilter/gstvideobalance.c:
	  * gst/videofilter/gstvideoflip.c:
	  * gst/videofilter/gstvideotemplate.c:
	  (gst_videotemplate_base_init):
	  * gst/videomixer/videomixer.c:
	  * gst/wavenc/gstwavenc.c:
	  * gst/wavparse/gstwavparse.c: (gst_wavparse_base_init):
	  better/unified long descriptions
	  Fixed #336602
	  Some cleanups to auparse, don't send multiple newsegments.

2006-03-29 11:31:55 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/gstmpegparse.c: Don't unref event unconditionally after giving away ownership (gst_pad_push_event(), g...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_event):
	  Don't unref event unconditionally after giving away ownership
	  (gst_pad_push_event(), gst_pad_send_event() and
	  gst_pad_event_default() take ownership of the event
	  passed to them). Fixes warnings/crashes caused by
	  navigation events.

2006-03-28 20:19:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/gstmpegdemux.c: Don't ref NULL caps (private streams have NULL caps) (#336387); also, no need to set c...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer):
	  Don't ref NULL caps (private streams have NULL caps) (#336387);
	  also, no need to set caps on the same buffer twice.

2006-03-28 19:44:51 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/: Don't leak element and pad names in error messages, use
	  Original commit message from CVS:
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event),
	  (gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_get_audio_stream),
	  (gst_dvd_demux_get_subpicture_stream):
	  * gst/mpegstream/gstmpegdemux.c:
	  (gst_mpeg_demux_sync_stream_to_time):
	  Don't leak element and pad names in error messages, use
	  GST_DEBUG_PAD_NAME instead. Add some more debug code.

2006-03-28 19:29:39 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Name the structure in the custom event with the language codes for the audio and subtitle s...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_init),
	  (gst_dvd_read_src_goto_title), (gst_dvd_read_src_read):
	  Name the structure in the custom event with the
	  language codes for the audio and subtitle streams
	  actually like dvddemux expects it to be named.
	  Set caps on source pad and outgoing buffers.

2006-03-28 16:06:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.*: Make xingheader property non-functional, it's broken anyway after all (use xingmux instead).
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_init), (gst_lame_set_property),
	  (gst_lame_get_property), (gst_lame_setup):
	  * ext/lame/gstlame.h:
	  Make xingheader property non-functional, it's broken anyway
	  after all (use xingmux instead).

2006-03-28 15:10:18 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.c: On EOS, flush encoder and send remaining data. Fix return value handling in sink event function.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_event):
	  On EOS, flush encoder and send remaining data. Fix
	  return value handling in sink event function.

2006-03-27 14:04:08 +0000  Jürg Billeter <j@bitron.ch>

	  ext/dvdread/dvdreadsrc.c: Fix wrong check for started flag when setting the 'device' property.
	  Original commit message from CVS:
	  Patch by: Jürg Billeter  <j at bitron dot ch>
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_set_property):
	  Fix wrong check for started flag when setting the 'device' property.
	  We want to allow it when the source is NOT started yet and ignore it
	  when the source is running.

2006-03-27 10:39:03 +0000  Fabrizio Gennari <fabrizio.ge@tiscali.it>

	  gst/asfdemux/gstasfdemux.*: Subtract first timestamp from timestamps, so that stream starts from 0; makes live stream...
	  Original commit message from CVS:
	  Patch by: Fabrizio Gennari  <fabrizio dot ge at tiscali dot it>
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
	  (gst_asf_demux_process_chunk):
	  * gst/asfdemux/gstasfdemux.h:
	  Subtract first timestamp from timestamps, so that
	  stream starts from 0; makes live streams that don't
	  start at 0 work again (fixes #317310, #336097).

2006-03-27 10:09:43 +0000  Christian Kirbach <christian.kirbach@googlemail.com>

	  configure.ac: Remove CXX tag from AS_LIBTOOL_TAGS, just like we did for
	  Original commit message from CVS:
	  Patch by: Christian Kirbach
	  * configure.ac:
	  Remove CXX tag from AS_LIBTOOL_TAGS, just like we did for
	  -good. Fixes build on some systems (#331838).

2006-03-24 19:47:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Extract more tags and also post codec name tag on the bus so this shows up in totem and naut...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_cont):
	  Extract more tags and also post codec name tag on the
	  bus so this shows up in totem and nautilus.

2006-03-24 19:06:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: Extra data usually goes into the caps as 'codec_data', not as first buffer into the stream.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
	  (gst_rmdemux_fill_audio_packet), (gst_rmdemux_parse_packet):
	  Extra data usually goes into the caps as 'codec_data', not
	  as first buffer into the stream.
	  Need to byte swap AC3 content in realmedia files for some
	  reason (fixes #331588).

2006-03-24 12:08:39 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: When operating in pull mode, post an error message on the bus when all source pads are unlin...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_init),
	  (gst_rmdemux_validate_offset), (gst_rmdemux_loop),
	  (gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_packet):
	  When operating in pull mode, post an error message on the
	  bus when all source pads are unlinked or some other fatal
	  error occured (#323023). Regrade some recurring debug messages
	  to LOG level. Convert c++-style comments into C-style ones.

2006-03-24 11:42:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.*: Handle unlinked source pads properly and stop if all source pads are unlinked (#323023).
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_perform_seek),
	  (gst_rmdemux_loop), (gst_rmdemux_chain), (gst_rmdemux_send_event),
	  (gst_rmdemux_all_source_pads_unlinked),
	  (gst_rmdemux_at_least_one_stream_flowok), (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_packet):
	  * gst/realmedia/rmdemux.h:
	  Handle unlinked source pads properly and stop if all source pads
	  are unlinked (#323023).

2006-03-23 18:17:34 +0000  Michal Benes <michal.benes@xeris.cz>

	  gst/mpegstream/: Timestamps in mpeg stream are 32-bit numbers. Therefore, with a clock_freq of 90kHz this timestamp o...
	  Original commit message from CVS:
	  Patch by: Michal Benes <michal dot benes at xeris dot cz>
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_init),
	  (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes),
	  (gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_reset):
	  * gst/mpegstream/gstmpegdemux.h:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
	  Timestamps in mpeg stream are 32-bit numbers. Therefore, with a
	  clock_freq of 90kHz this timestamp overflows every ~13 hours. This
	  situation really happens when grabbing DVB streams. Current
	  mpegdemuxer can not handle this situation correctly and it
	  restarts counting gstreamer timestamps from zero.
	  Fixes #326598.

2006-03-15 22:01:40 +0000  Michael Smith <msmith@xiph.org>

	  ext/a52dec/gsta52dec.*: Fix #334550: failure to play raw AC3 files due to segment problems.
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event),
	  (gst_a52dec_chain_raw), (gst_a52dec_change_state):
	  * ext/a52dec/gsta52dec.h:
	  Fix #334550: failure to play raw AC3 files due to segment problems.

2006-03-15 13:43:42 +0000  Christophe Fergeau <teuf@gnome.org>

	  ext/lame/gstlame.c: use GST_DEBUG_FUNCPTR more often.
	  Original commit message from CVS:
	  Patch by: Christophe Fergeau  <teuf gnome org>
	  * ext/lame/gstlame.c: (gst_lame_release_memory),
	  (gst_lame_finalize), (gst_lame_class_init),
	  (gst_lame_sink_setcaps), (gst_lame_init), (gst_lame_sink_event),
	  (gst_lame_change_state):
	  Fix some memory leaks (#333345), use GST_DEBUG_FUNCPTR more often.

2006-03-14 19:41:17 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: Include AUDIO_CODEC tag with tags posted if input is not framed (#334258). Use _scale() util functi...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_convert_sink), (gst_mad_update_info),
	  (gst_mad_sink_event), (gst_mad_change_state):
	  Include AUDIO_CODEC tag with tags posted if input is not
	  framed (#334258). Use _scale() util functions in more places.

2006-03-12 11:00:33 +0000  Christophe Fergeau <teuf@gnome.org>

	  ext/lame/gstlame.c: mark the xing-header property as BROKEN (see http://bugzilla.gnome.org/show_bug.cgi?id=330317#c19...
	  Original commit message from CVS:
	  2006-03-12  Christophe Fergeau  <teuf@gnome.org>
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * ext/lame/gstlame.c: (gst_lame_class_init): mark the xing-header
	  property as BROKEN (see
	  http://bugzilla.gnome.org/show_bug.cgi?id=330317#c19 for an
	  explanation why it's broken).

2006-03-11 11:12:30 +0000  Christophe Fergeau <teuf@gnome.org>

	  added new element to add Xing headers to MP3 files (this allows decoder to figure out the length of VBR files)
	  Original commit message from CVS:
	  2006-03-11  Christophe Fergeau  <teuf@gnome.org>
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * configure.ac:
	  * gst/xingheader/Makefile.am:
	  * gst/xingheader/gstxingmux.c:
	  * gst/xingheader/gstxingmux.h: added new element to add Xing headers
	  to MP3 files (this allows decoder to figure out the length of VBR
	  files)

2006-03-07 11:19:55 +0000  Alex Lancaster <alexlan@fedoraproject.org>

	  ext/mad/gstid3tag.c: Add support for writing the GST_TAG_ALBUM_VOLUME_NUMBER
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (tag_list_to_id3_tag_foreach):
	  Add support for writing the GST_TAG_ALBUM_VOLUME_NUMBER
	  tag (#333683, patch by: Alex Lancaster).

2006-03-02 20:03:00 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/amrnb/: Further fancyfication.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_init),
	  (gst_amrnbdec_setcaps), (gst_amrnbdec_chain),
	  (gst_amrnbdec_state_change):
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_init),
	  (gst_amrnbenc_setcaps), (gst_amrnbenc_chain),
	  (gst_amrnbenc_state_change):
	  * ext/amrnb/amrnbenc.h:
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_init),
	  (gst_amrnbparse_query):
	  Further fancyfication.
	  Use _take to get writable data from the adapter.
	  Precalc packet duration.
	  Handle disconts.
	  Forward _push to upstream.
	  Post error messages when something goes wrong.
	  Remove old code in amrnbparse.
	  Don't ignore query results from upstream.

2006-03-02 18:45:40 +0000  Michael Smith <msmith@xiph.org>

	  ext/amrnb/amrnbenc.c: The AMR encoder writes into the audio buffers it processes, so use gst_buffer_make_writable() o...
	  Original commit message from CVS:
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_chain):
	  The AMR encoder writes into the audio buffers it processes, so
	  use gst_buffer_make_writable() on buffers we might (they go through
	  an adapter, so there can be copying going on later anyway) be
	  encoding.

2006-03-01 12:35:09 +0000  Jens Granseuer <jensgr@gmx.net>

	  gst/mpegstream/gstmpegparse.c: Declare variables at the beginning of a block and make
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_pad_added),
	  (gst_mpeg_parse_handle_src_query):
	  Declare variables at the beginning of a block and make
	  gcc-2.9x happy (fixes #328957; patch by: Jens Granseuer).

2006-03-01 09:55:49 +0000  Fabrizio <fabrizio.ge@tiscali.it>

	  gst/asfdemux/gstasfdemux.c: Read packet size, sequence and padsize in right order again
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_data):
	  Read packet size, sequence and padsize in right order again
	  (fixes #332796; patch by: Fabrizio Gennari).

2006-02-28 13:50:02 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/iec958/ac3iec.c: Set a proper klass (Codec/Muxer/Audio) for the ElementDetails.
	  Original commit message from CVS:
	  * gst/iec958/ac3iec.c:
	  Set a proper klass (Codec/Muxer/Audio) for the ElementDetails.

2006-02-27 18:37:47 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Make the id3tag and mad checks check for both a header and the appropriate library if the pkg-config is...
	  Original commit message from CVS:
	  * configure.ac:
	  Make the id3tag and mad checks check for both a header and the
	  appropriate library if the pkg-config is missing. (Closes #331842)
	  Split the id3tag and mad checks into 2 pieces. Sometime soon I might
	  do the same for the plugins themselves.

2006-02-27 14:49:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.*: Don't treat STATE_INVALID as fatal error; throw an error only after five consecutive deco...
	  Original commit message from CVS:
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
	  (gst_mpeg2dec_reset), (gst_mpeg2dec_chain):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Don't treat STATE_INVALID as fatal error; throw an error
	  only after five consecutive decoding errors. Makes decoding
	  mpeg streams more robust and fixes playback of joined clips
	  (#300682).

2006-02-26 22:33:33 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdnav/dvdnavsrc.h: Oops. forgot to add this one.
	  Original commit message from CVS:
	  * ext/dvdnav/dvdnavsrc.h:
	  Oops. forgot to add this one.

2006-02-26 21:25:01 +0000  Julien Moutte <julien@moutte.net>

	  ext/Makefile.am: Fix dist-check.
	  Original commit message from CVS:
	  2006-02-26  Julien MOUTTE  <julien@moutte.net>
	  * ext/Makefile.am: Fix dist-check.

2006-02-26 18:01:15 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Disable dvdnavsrc for now.
	  Original commit message from CVS:
	  * configure.ac:
	  Disable dvdnavsrc for now.

2006-02-26 17:55:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  dvdnavsrc ported to 0.10, for the most part at least. Not quite ready for prime time yet though.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/dvdnav/Makefile.am:
	  * ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_base_init),
	  (gst_dvd_nav_src_class_init), (gst_dvd_nav_src_check_get_range),
	  (gst_dvd_nav_src_init), (gst_dvd_nav_src_finalize),
	  (gst_dvd_nav_src_is_open), (gst_dvd_nav_src_set_property),
	  (gst_dvd_nav_src_get_property), (gst_dvd_nav_src_set_clock),
	  (gst_dvd_nav_src_tca_seek), (gst_dvd_nav_src_update_streaminfo),
	  (gst_dvd_nav_src_set_domain), (gst_dvd_nav_src_update_highlight),
	  (gst_dvd_nav_src_user_op), (dvdnav_get_event_name),
	  (dvdnav_get_read_domain_name), (gst_dvd_nav_src_print_event),
	  (gst_dvd_nav_src_make_dvd_event),
	  (gst_dvd_nav_src_structure_set_uint64),
	  (gst_dvd_nav_src_push_dvd_nav_packet_event),
	  (gst_dvd_nav_src_push_clut_change_event), (read_vts_info),
	  (gst_dvd_nav_src_push_titlelang_event),
	  (gst_dvd_nav_src_process_next_block), (gst_dvd_nav_src_create),
	  (gst_dvd_nav_src_start), (gst_dvd_nav_src_stop),
	  (gst_dvd_nav_src_handle_navigation_event),
	  (gst_dvd_nav_src_handle_seek_event), (gst_dvd_nav_src_src_event),
	  (gst_dvd_nav_src_query_position), (gst_dvd_nav_src_query_duration),
	  (gst_dvd_nav_src_query), (gst_dvd_nav_src_uri_get_type),
	  (gst_dvd_nav_src_uri_get_protocols), (gst_dvd_nav_src_uri_get_uri),
	  (gst_dvd_nav_src_uri_set_uri), (gst_dvd_nav_src_uri_handler_init),
	  (gst_dvd_nav_src_do_init), (plugin_init):
	  dvdnavsrc ported to 0.10, for the most part at least. Not quite
	  ready for prime time yet though.

2006-02-23 20:08:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/cdio/Makefile.am: Add GST_BASE_CFLAGS and GST_BASE_LIBS (seems to be required for Cygwin, see #317048)
	  Original commit message from CVS:
	  * ext/cdio/Makefile.am:
	  Add GST_BASE_CFLAGS and GST_BASE_LIBS (seems to be
	  required for Cygwin, see #317048)
	  * gst/rtp/gstasteriskh263.c:
	  Cygwin has includes for both the unix network socket API
	  and the windows API, but only one can be included, so fix
	  includes to only use one or the other, prefering the unxi
	  one (#317048).

2006-02-22 14:54:54 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Port dvdsubdec to 0.10
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/dvdsub/Makefile.am:
	  * gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_base_init),
	  (gst_dvd_sub_dec_class_init), (gst_dvd_sub_dec_init),
	  (gst_dvd_sub_dec_finalize), (gst_dvd_sub_dec_src_event),
	  (gst_dvd_sub_dec_get_event_delay), (gst_dvd_sub_dec_parse_subpic),
	  (gst_get_nibble), (gst_setup_palette), (gst_get_rle_code),
	  (gst_draw_rle_line), (gst_dvd_sub_dec_merge_title),
	  (gst_send_empty_fill), (gst_send_subtitle_frame),
	  (gst_dvd_sub_dec_advance_time), (gst_dvd_sub_dec_chain),
	  (gst_dvd_sub_dec_sink_event), (gst_dvd_sub_dec_handle_dvd_event),
	  (plugin_init):
	  * gst/dvdsub/gstdvdsubdec.h:
	  Port dvdsubdec to 0.10

2006-02-21 16:24:10 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegstream/gstdvddemux.c: Push the rank up to SECONDARY+1 so that dvddemux is preferred over mpegdemux for MPEG-2...
	  Original commit message from CVS:
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_plugin_init):
	  Push the rank up to SECONDARY+1 so that dvddemux is preferred over
	  mpegdemux for MPEG-2 video streams.

2006-02-20 19:16:10 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Bump nano back to CVS
	  Original commit message from CVS:
	  * configure.ac:
	  Bump nano back to CVS

=== release 0.10.2 ===

2006-02-20 19:13:54 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: releasing 0.10.2, "Season to Taste"
	  Original commit message from CVS:
	  * configure.ac:
	  releasing 0.10.2, "Season to Taste"

2006-02-19 23:45:34 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: releasing 0.10.1.3 prelease for 0.10.2
	  Original commit message from CVS:
	  * configure.ac:
	  releasing 0.10.1.3 prelease for 0.10.2

2006-02-17 17:58:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/asfdemux/gstasfdemux.c: In sink event handler, release object lock again _before_ sending EOS event downstream (#...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event):
	  In sink event handler, release object lock again
	  _before_ sending EOS event downstream (#313838).

2006-02-17 17:54:37 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* gst/asfdemux/gstasf.c:
	  fix rank of asfdemux
	  Original commit message from CVS:
	  fix rank of asfdemux

2006-02-17 15:08:28 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: releasing 0.10.1.2 prelease for 0.10.2
	  Original commit message from CVS:
	  * configure.ac:
	  releasing 0.10.1.2 prelease for 0.10.2

2006-02-17 15:02:30 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-ugly.spec.in:
	  latest updates
	  Original commit message from CVS:
	  latest updates

2006-02-17 11:51:12 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.c: When we need to crop the output buffer, make sure we create a buffer of the right size an...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (crop_copy_i420_buffer),
	  (crop_copy_i422_buffer), (crop_buffer):
	  When we need to crop the output buffer, make sure we
	  create a buffer of the right size and respect the implicit
	  striding used for I420 elsewhere in GStreamer (#331301).

2006-02-17 11:19:34 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/cdio/gstcdio.c: Init debug category (#331253).
	  Original commit message from CVS:
	  * ext/cdio/gstcdio.c: (plugin_init):
	  Init debug category (#331253).

2006-02-17 10:24:56 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/asfdemux/gstasfdemux.c: Do not error out on non-recognized streams. Ignore them and allow playback of the other s...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_stream):
	  Do not error out on non-recognized streams. Ignore them and allow
	  playback of the other streams.

2006-02-17 10:10:40 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/dvdlpcmdec/gstdvdlpcmdec.c: Add a small sanity check for LPCM reading.
	  Original commit message from CVS:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_dvd):
	  Add a small sanity check for LPCM reading.

2006-02-17 09:54:43 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/asfdemux/gstasfdemux.c: Take into account the file properties preroll value for timestamping/newsegment. It's wei...
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_file):
	  Take into account the file properties preroll value for
	  timestamping/newsegment. It's weird this value was commented out.

2006-02-16 17:57:59 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/asfdemux/Makefile.am: More asf makefile fixing.
	  Original commit message from CVS:
	  * gst/asfdemux/Makefile.am:
	  More asf makefile fixing.

2006-02-16 17:16:06 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/lame/gstlame.c: Fix up lame a bit.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_init), (gst_lame_chain),
	  (gst_lame_change_state):
	  Fix up lame a bit.
	  Apply patch #319782 by Gautier Portet.

2006-02-16 11:14:11 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/asfdemux/Makefile.am: But we do need to link against the riff libraryr.
	  Original commit message from CVS:
	  * gst/asfdemux/Makefile.am:
	  But we do need to link against the riff libraryr.

2006-02-16 11:08:51 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/asfdemux/Makefile.am: We don't want asfmux.c yet.
	  Original commit message from CVS:
	  * gst/asfdemux/Makefile.am:
	  We don't want asfmux.c yet.

2006-02-16 09:50:43 +0000  Jon Trowbridge <trow@ximian.com>

	  ext/mad/gstmad.c: Port fixes for bugs 314771, 308772, 140237, and 302625
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_init), (scale), (gst_mad_update_info),
	  (gst_mad_sink_event), (gst_mad_check_caps_reset), (gst_mad_chain),
	  (gst_mad_change_state):
	  Port fixes for bugs 314771, 308772, 140237, and 302625
	  from 0.8 (Patch by Jonathan Matthew, Fixes #329575)
	  Use GST_EVENT_FLUSH_STOP to clear data from the current input
	  buffer, to avoid using it for any future decoding.

2006-02-15 15:48:07 +0000  Tim-Philipp Müller <tim@centricular.net>

	  asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
	  (gst_asf_get_guid_nick):
	  * gst/asfdemux/asfheaders.h:
	  * gst/asfdemux/gstasf.c: (plugin_init):
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
	  (gst_asf_demux_class_init), (gst_asf_demux_init),
	  (gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
	  (gst_asf_demux_handle_src_event),
	  (gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
	  (gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
	  (gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
	  (gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
	  (gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
	  (gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
	  (gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
	  (gst_asf_demux_get_bitrate_record),
	  (gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
	  (gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
	  (gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
	  (gst_asf_demux_get_obj_data_correction),
	  (gst_asf_demux_get_stream_audio),
	  (gst_asf_demux_get_stream_correction),
	  (gst_asf_demux_get_stream_video),
	  (gst_asf_demux_get_stream_video_format),
	  (gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
	  (gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
	  (gst_asf_demux_process_stream),
	  (gst_asf_demux_get_gst_tag_from_tag_name),
	  (gst_asf_demux_commit_taglist),
	  (gst_asf_demux_process_ext_content_desc),
	  (gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
	  (gst_asf_demux_process_header), (gst_asf_demux_process_file),
	  (gst_asf_demux_process_comment),
	  (gst_asf_demux_process_bitrate_props_object),
	  (gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
	  (gst_asf_demux_descramble_segment),
	  (gst_asf_demux_element_send_event),
	  (gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
	  (gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
	  (gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
	  (gst_asf_demux_get_src_query_types),
	  (gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
	  * gst/asfdemux/gstasfdemux.h:
	  asfdemux ported to 0.10. Does still need a bit of work (seems like
	  there's something funky going on when timestamping video frames).
	  The seeking code is likely to make Wim cry, but hey, at least it
	  compiles.

2006-02-15 10:18:39 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/amrnb/amrnbdec.c: Some more comments.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_setcaps),
	  (gst_amrnbdec_chain), (gst_amrnbdec_state_change):
	  Some more comments.
	  * ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer), (handle_slice):
	  Applied patch from Fabrizio Gennari, fixes #330844.

2006-02-14 14:57:18 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.*: Let's try to play the title the user set via the URI handler or via properties instead of a...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_init),
	  (gst_dvd_read_src_class_init), (gst_dvd_read_src_start),
	  (gst_dvd_read_src_stop), (gst_dvd_read_src_goto_title),
	  (gst_dvd_read_src_set_property), (gst_dvd_read_src_get_property),
	  (gst_dvd_read_src_uri_get_uri), (gst_dvd_read_src_uri_set_uri):
	  * ext/dvdread/dvdreadsrc.h:
	  Let's try to play the title the user set via the URI handler or
	  via properties instead of always playing the first title. Also,
	  Also, count title/chapter/angle number in URI and properties
	  from 1 rather than 0.

2006-02-13 14:09:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Don't implement GstBaseSrc::get_size or GstBaseSrc::is_seekable, otherwise GstBaseSrc will ...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_class_init),
	  (gst_dvd_read_src_get_size), (gst_dvd_read_src_do_seek),
	  (gst_dvd_read_src_do_duration_query):
	  Don't implement GstBaseSrc::get_size or GstBaseSrc::is_seekable,
	  otherwise GstBaseSrc will think we can operate pull_range based,
	  which we don't really, and typefinding will fail miserably.
	  Also, make seeking work somewhat (only works with flumpegdemux
	  at the moment, mpegstream needs fixing for that first).

2006-02-13 14:00:35 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Only allocate buffer once we know exactly how much we need, rather than gratuitously alloca...
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_read),
	  (gst_dvd_read_src_create), (gst_dvd_read_src_src_event):
	  Only allocate buffer once we know exactly how much we need,
	  rather than gratuitously allocating 2MB-buffers all the time
	  even if we usually need much less than that. Also, demote
	  a debug message from DEBUG to LOG level.

2006-02-10 12:40:54 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dvdread/dvdreadsrc.c: Add some more debugging and fix duration query in BYTES.
	  Original commit message from CVS:
	  * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_class_init),
	  (gst_dvd_read_src_seekable), (gst_dvd_read_src_get_size),
	  (gst_dvd_read_src_do_seek), (gst_dvd_read_src_do_duration_query),
	  (gst_dvd_read_src_do_position_query):
	  Add some more debugging and fix duration query in BYTES.

2006-02-09 17:27:57 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Half-baked port to 0.10. Needs some love in the seeking department, but at least it does something.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/dvdread/Makefile.am:
	  * ext/dvdread/dvdreadsrc.c:
	  * ext/dvdread/dvdreadsrc.h:
	  Half-baked port to 0.10. Needs some love
	  in the seeking department, but at least
	  it does something.
	  * ext/dvdread/stream_labels.c:
	  * ext/dvdread/stream_labels.h:
	  Remove these (we use ISO-639 language codes internally; applications
	  that want to translate those into language names for display to the
	  user should rely on the iso-codes package for that).

2006-02-06 15:55:28 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/amrnb/amrnbdec.*: Fix amrnbdec, handle events, take copy from adapter since the decoder apparently writes in the ...
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_init),
	  (gst_amrnbdec_setcaps), (gst_amrnbdec_event), (gst_amrnbdec_chain),
	  (gst_amrnbdec_state_change):
	  * ext/amrnb/amrnbdec.h:
	  Fix amrnbdec, handle events, take copy from adapter since the decoder
	  apparently writes in the source data.
	  Use some _scale_int, and precalc duration.
	  Fix some leaks, post ERROR messages.

2006-02-06 11:34:23 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/: Add cdio plugin to docs.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-good-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-good-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-cdio.xml:
	  Add cdio plugin to docs.
	  * ext/cdio/gstcdiocddasrc.c:
	  Add gtk-doc blurb.
	  * ext/cdio/gstcdio.c:
	  The plugin is called 'cdio' not 'cddio'.

2006-02-04 15:22:02 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/realmedia/rmdemux.c: One source pad not being linked is not an error condition when we're still parsing the heade...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream):
	  One source pad not being linked is not an error condition when we're
	  still parsing the header. In this case (e.g. where we don't have a
	  suitable decoder installed) just pretend everything is fine, so that
	  the demuxer will actually go on to signal no-more-pads when done
	  parsing the header, otherwise  decodebin/playbin will never post the
	  appropriate error message if decoders are not available.

2006-02-03 18:24:54 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* ext/mad/gstid3tag.c:
	* gst/realmedia/rmdemux.c:
	  Just make it compile with --disable-gst-debug.
	  Original commit message from CVS:
	  Just make it compile with --disable-gst-debug.

2006-01-31 22:03:30 +0000  Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>

	  ext/mad/gstmad.c: Merge patch from Radoslaw Szkodzinski (bug 326734)
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_convert_src), (scale),
	  (gst_mad_check_caps_reset), (gst_mad_chain):
	  Merge patch from Radoslaw Szkodzinski (bug 326734)

2006-01-30 22:00:18 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/mad/gstid3tag.c: fixing Gdate handling enabling mux/demux mode switching adding better debug output
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (tag_list_to_id3_tag_foreach),
	  (gst_id3_tag_get_tag_to_render), (gst_id3_tag_sink_event),
	  (gst_id3_tag_src_link), (gst_id3_tag_send_tag_event),
	  (gst_id3_tag_chain):
	  fixing Gdate handling
	  enabling mux/demux mode switching
	  adding better debug output

2006-01-30 18:57:45 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/gstmpegparse.c: If we haven't set caps on a source pad yet, the caps on the pad are NULL, not un-fixed...
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_buffer):
	  If we haven't set caps on a source pad yet, the caps on the
	  pad are NULL, not un-fixed. Set caps on outgoing buffers.

2006-01-23 18:37:16 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.*: Contrary to what the const char in the lame API might suggest, lame expects us to keep the string...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_finalize), (gst_lame_class_init),
	  (gst_lame_init), (add_one_tag), (gst_lame_set_metadata):
	  * ext/lame/gstlame.h:
	  Contrary to what the const char in the lame API might suggest,
	  lame expects us to keep the strings we pass to id3tag_set_foo()
	  around; it doesn't free them either though, so we have to store
	  them somewhere and free them later when we can be sure lame
	  doesn't need them any longer.

2006-01-23 15:02:04 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/lame/gstlame.c: don't pass an uninitialised string pointer to lame if we don't know how to handle the tag type, a...
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (add_one_tag):
	  Fix handling of GST_TAG_DATE (#311679), don't pass an
	  uninitialised string pointer to lame if we don't know
	  how to handle the tag type, and fix minor memory leak.

2006-01-23 10:15:27 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: Fix debug message.
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  Fix debug message.

2006-01-22 12:00:46 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event): Erase spurious call to gst_segment_set_newsegment.
	  Original commit message from CVS:
	  2006-01-22  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
	  Erase spurious call to gst_segment_set_newsegment.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event): Call
	  the superclass method when handling NEWSEGMENT events.
	  (gst_dvd_demux_handle_dvd_event): Get rid of dvd-audio-shutdown
	  and dvd-audio-restart event handling. There are currently less
	  hackish ways of handling the sparse audio stream problem.

2006-01-20 14:18:20 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  fix up error domains, error strings, and use of translation
	  Original commit message from CVS:
	  2006-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>
	  * ext/dvdnav/dvdnavsrc.c: (if):
	  * ext/dvdread/stream_labels.c:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_segment):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_loop):
	  fix up error domains, error strings, and use of translation
	  * po/POTFILES.in:
	  fix up this file, even though none of them are actually marked
	  for build yet.

2006-01-19 21:32:05 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse): gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset) (gst_mpeg_...
	  Original commit message from CVS:
	  2006-01-19  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset)
	  (gst_mpeg_parse_process_event, gst_mpeg_parse_parse_packhead)
	  (gst_mpeg_parse_change_state):
	  Make timestamp adjustment somewhat milder. Actual timestamps are
	  now sent unmodified unless an actual gap is found in the
	  stream. This should fix time display when playing most MPEG
	  files.

2006-01-19 00:10:51 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/cdio/: Fix build for libcdio versions >= 76; give slightly lower rank than cdparanoia.
	  Original commit message from CVS:
	  * ext/cdio/gstcdio.c: (gst_cdio_add_cdtext_field), (plugin_init):
	  * ext/cdio/gstcdio.h:
	  * ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_get_cdtext):
	  Fix build for libcdio versions >= 76; give slightly lower rank
	  than cdparanoia.

2006-01-18 19:30:36 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Port libcdio cdda source, formerly known as cddasrc, now known as cdiocddasrc (fixes #323327). Should also read CD-TE...
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/cdio/Makefile.am:
	  * ext/cdio/gstcdio.c:
	  * ext/cdio/gstcdio.h:
	  * ext/cdio/gstcdiocddasrc.c:
	  * ext/cdio/gstcdiocddasrc.h:
	  Port libcdio cdda source, formerly known as cddasrc, now known as
	  cdiocddasrc (fixes #323327). Should also read CD-TEXT if available,
	  but that's not tested (fixes #317658).

2006-01-18 09:30:00 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegstream/gstmpegdemux.c: tss tss... always set caps on outgoing buffer.
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer):
	  tss tss... always set caps on outgoing buffer.

2006-01-17 14:16:52 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-ugly.spec.in:
	  update spec file
	  Original commit message from CVS:
	  update spec file

2006-01-13 19:30:31 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	  back to HEAD
	  Original commit message from CVS:
	  back to HEAD

=== release 0.10.1 ===

2006-01-13 19:25:42 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  releasing 0.10.1
	  Original commit message from CVS:
	  releasing 0.10.1

2006-01-11 11:44:02 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	  prerelease
	  Original commit message from CVS:
	  prerelease

2006-01-10 11:43:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Pass unhandled queries upstream (useful e.g. for SEEKING query)
	  Original commit message from CVS:
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_query):
	  * ext/mad/gstid3tag.c: (gst_id3_tag_src_query):
	  * ext/mad/gstmad.c: (gst_mad_src_query):
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_src_query):
	  * ext/sidplay/gstsiddec.cc:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_query):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_src_query):
	  Pass unhandled queries upstream (useful e.g. for SEEKING query)
	  (fixes #325652; based on patch by: Philippe); make rmdemux return
	  FALSE for position queries, instead of setting -1 as value and
	  returning TRUE.

2006-01-05 21:36:49 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts)
	  Original commit message from CVS:
	  2006-01-05  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts)
	  (gst_mpeg_parse_process_event, gst_mpeg_parse_pad_added): Don't
	  rewrite timestamps in the case segments are being set from
	  upstream, but use timestamps unmodified. Also send proper position
	  values. This allows for correct time display and makes queries
	  work in sink elements.
	  * gst/mpegstream/gstdvddemux.h:
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
	  (gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer):
	  Rename flush_filter to segment_filter, which is better represents
	  what the arreibute does.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event):
	  Activate segment filtering when a timestamp discontinuity is seen.

2006-01-04 15:17:15 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: Don't forget that we need to send out a newsegment event after a restart even if we don't have enou...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  Don't forget that we need to send out a newsegment event after a
	  restart even if we don't have enough data to decode a frame right
	  now.

2005-12-30 23:51:46 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event): Use the new "audio-shutdown" and "audio-restart" DVD e...
	  Original commit message from CVS:
	  2005-12-31  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
	  Use the new "audio-shutdown" and "audio-restart" DVD events
	  instead of the "spu-still-frame" event to shutdown and restart
	  the audio pipeline.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts):
	  Check for cases where the segment-based adjustment calculation
	  would produce negative values (which result in an overflow) and
	  return GST_CLOCK_TIME_NONE instead.
	  * gst/mpegstream/gstdvddemux.h:
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
	  (gst_dvd_demux_process_event, gst_dvd_demux_send_subbuffer):
	  Add a mechanism to discard audio buffers with timestamps outside
	  the currently set segment. This was causing (sometimes serious)
	  synchronization problems after seeking in DVDs with LPCM audio,
	  since VOBUs usually contain audio material that lies outside the
	  timestamp range specified by the header.

2005-12-30 16:25:05 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mad/gstid3tag.c: Remove lingering reference to GstID3Demux
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (gst_id3_tag_get_type):
	  Remove lingering reference to GstID3Demux
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_pes):
	  Don't output debug saying padding streams are unknown type,
	  because they're not

2005-12-27 19:06:08 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/gstdvddemux.c (AUDIO_CAPS)
	  Original commit message from CVS:
	  2005-12-27  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/mpegstream/gstdvddemux.c (AUDIO_CAPS)
	  (gst_dvd_demux_get_audio_stream): Use audio/x-lpcm as mimetype for
	  LPCM.
	  * gstmpegdemux.h:
	  * gstmpegdemux.c (gst_mpeg_demux_get_video_stream)
	  (gst_mpeg_demux_get_audio_stream):
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_get_video_stream)
	  (gst_dvd_demux_get_audio_stream)
	  (gst_dvd_demux_get_subpicture_stream)
	  (gst_dvd_demux_send_subbuffer):
	  Send current* pad buffers with appropriate caps.

2005-12-26 17:48:32 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/iec958/ac3iec.*: (NORMAL_CAPS_DEF, RAW_AUDIO_CAPS_DEF, ac3iec_class_init)
	  Original commit message from CVS:
	  2005-12-26  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/iec958/ac3iec.h:
	  * gst/iec958/ac3iec.c:
	  (NORMAL_CAPS_DEF, RAW_AUDIO_CAPS_DEF, ac3iec_class_init)
	  (ac3iec_init, ac3iec_set_property, ac3iec_get_property): Add a
	  raw-audio property to ac3iec958 that allows setting the source pad
	  caps to raw audio instead of audio/x-iec958. This makes it
	  possible to use ac3iec958 together with the normal alsasink
	  element to drive an external receiver that autodetects AC3
	  content.

2005-12-23 15:48:04 +0000  Michael Smith <msmith@xiph.org>

	  gst/iec958/ac3iec.*: Accept audio/x-ac3 and audio/ac3 to ac3iec958 element.
	  Original commit message from CVS:
	  * gst/iec958/ac3iec.c: (ac3iec_init), (ac3iec_setcaps),
	  (ac3iec_chain_dvd):
	  * gst/iec958/ac3iec.h:
	  Accept audio/x-ac3 and audio/ac3 to ac3iec958 element.

2005-12-21 10:25:34 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.c: When getting a seek event, first check if the upstream element can handle it and only do ...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_src_event):
	  When getting a seek event, first check if the upstream element
	  can handle it and only do our own seek stuff when it can't
	  (should fix #322856).

2005-12-21 09:58:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.c: Really convert to BYTES format when we want to convert to bytes (use right variable; fixe...
	  Original commit message from CVS:
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * ext/mpeg2dec/gstmpeg2dec.c: (normal_seek):
	  Really convert to BYTES format when we want to convert
	  to bytes (use right variable; fixes #322856).

2005-12-19 17:26:47 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  Big mpegparse clean up, second round:
	  Original commit message from CVS:
	  2005-12-19  Martin Soto  <martinsoto@users.sourceforge.net>
	  Big mpegparse clean up, second round:
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
	  Send and EOS event down the audio pipeline when an still frame
	  event arrives. This prevents the pipeline from locking when a
	  still menu comes directly after a flush.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset):
	  Don't send a newsegment in reset.
	  (gst_mpeg_parse_adjust_ts): Check for invalid timestamps.
	  (gst_mpeg_parse_handle_newsegment, gst_mpeg_parse_process_event):
	  Move the code of handle_newsegment to process_event. Send a
	  NEWSEGMENT after FLUSH_STOP.
	  (gst_mpeg_parse_change_state): Send a NEWSEGMENT right after
	  moving to PAUSED.
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event)
	  (gst_mpeg_demux_class_init): Don't override send_event.
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_init)
	  (gst_mpeg_demux_send_event, gst_mpeg_demux_send_subbuffer)
	  (gst_mpeg_demux_reset):
	  * gst/mpegstream/gstmpegdemux.h:  Get rid of just_flushed
	  attribute.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
	  Reset the mpegparse element after a flush.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment):
	  Don't forward events.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
	  handle_newsegment is not a virtual method anymore.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_send_newsegment)
	  (gst_mpeg_parse_reset, gst_mpeg_parse_class_init):
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass): Get
	  rid of send_newsegment virtual method.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event): Only
	  handle DVD events and call the superclass method for other event
	  types.
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event): Don't
	  override process_event anymore.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_event)
	  (gst_mpeg_parse_process_event): Move actual event processing to
	  process event so that subclasses can properly override or extend
	  it.
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
	  Eliminate time parameter in process event.
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_init)
	  (gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes)
	  (gst_mpeg_demux_send_subbuffer):
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
	  (gst_mpeg_parse_parse_packhead, gst_mpeg_parse_event)
	  (gst_mpeg_parse_chain): Use the new adjust_ts method instead of
	  adding the value of the adjust attribute.
	  * gst/mpegstream/gstmpegdemux.h (struct _GstMPEGVideoStream): Get
	  rid of the adjust attribute. Now all timestamp adjustments are
	  performed by mpegparse using the current segment.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts)
	  (gst_mpeg_parse_class_init): Implement the adjust_ts method based
	  on the adjust attribute for SCR values and the current segment.
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass): New
	  adjust_ts virtual method to adjust timestamps for outgoing
	  buffers.
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_newsegment)
	  (gst_mpeg_demux_parse_packet): Don't override send_newsegment.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
	  (gst_dvd_demux_handle_newsegment): Don't override
	  handle_newsegment.
	  (gst_dvd_demux_process_event, gst_dvd_demux_handle_dvd_event):
	  Check for DVD events in process_event instead of
	  handle_dvd_event.
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment)
	  (gst_mpeg_parse_send_newsegment, gst_mpeg_parse_send_event):
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_process_event)
	  (gst_mpeg_demux_send_event):
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event)
	  (gst_dvd_demux_handle_dvd_event):
	  Eliminate the time parameter in send_event.

2005-12-18 15:08:15 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mad/gstid3tag.c: Fix typefinding in id3demux, and then remove it in favour of the new LGPL id3demux in gst-plugin...
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (gst_id3_tag_do_typefind),
	  (gst_id3_tag_do_caps_nego), (gst_id3_tag_chain), (plugin_init):
	  Fix typefinding in id3demux, and then remove it in favour
	  of the new LGPL id3demux in gst-plugins-good
	  * ext/mad/gstmad.c: (gst_mad_dispose):
	  dispose can run more than once.

2005-12-16 21:56:32 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/asfdemux/gstasfmux.c: change some char* into char[]
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfmux.c: (gst_asfmux_file_start):
	  change some char* into char[]

2005-12-15 17:06:10 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/realmedia/rmdemux.c: Remove memleak from unused GstRMDemuxStream
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream):
	  Remove memleak from unused GstRMDemuxStream

2005-12-12 19:17:11 +0000  Michael Smith <msmith@xiph.org>

	  ext/mad/gstid3tag.c: Use the correct function to free typefind factory list.
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list),
	  (gst_id3_tag_do_typefind):
	  Use the correct function to free typefind factory list.

2005-12-09 18:38:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: For position and duration queries in TIME format, try the peer first (might be a demuxer).
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_src_query):
	  For position and duration queries in TIME format, try the peer
	  first (might be a demuxer).

2005-12-08 12:45:09 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_newsegment): Properly handle non contiguous VOBUs by adding the se...
	  Original commit message from CVS:
	  2005-12-08  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_newsegment):
	  Properly handle non contiguous VOBUs by adding the segment accum
	  field to the adjust value.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
	  (gst_dvd_demux_init, gst_dvd_demux_handle_newsegment): Extend
	  handle_newsegment to prevent sending actual newsegment events and
	  use tiemstamp rewriting instead.
	  (gst_dvd_demux_handle_dvd_event): Don't send a newsegment after
	  dvd-lang-codes.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment)
	  (gst_mpeg_parse_event):
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
	  Add a new parameter to handle_newsegment to allow controlling
	  whether newsegment events are forwarded or not.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
	  (gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer)
	  (gst_dvd_demux_reset):
	  last_end_ptm and discont_time aren't necessary anymore, since
	  timestamp adjustment is now replaced by newsegment events.
	  (gst_dvd_demux_init): Prevent MPEGParse from adjusting
	  timestamps.
	  * gst/mpegstream/gstdvddemux.h:
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
	  Don't handle dvd-nav-packet events anymore, since the are now
	  replaced by standard newsegment events.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
	  (gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer)
	  (gst_dvd_demux_change_state):
	  * gst/mpegstream/gstdvddemux.h:
	  Get rid of the ignore_next_newmedia_discont hack.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
	  (gst_dvd_demux_handle_newsegment):
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_class_init)
	  (gst_mpeg_demux_handle_newsegment): Don't override
	  handle_newsegment anymore. It was only necessary to handle
	  NEWMEDIA events.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event)
	  (gst_dvd_demux_handle_dvd_event, gst_dvd_demux_set_cur_audio)
	  (gst_dvd_demux_set_cur_subpicture):
	  Reactivate handling of DVD events.
	  * gst/mpegstream/gstmpegparse.c (normal_seek)
	  (gst_mpeg_parse_handle_src_event)
	  (gst_mpeg_parse_handle_src_query):
	  First attempt at reenabling seek.
	  * gst/mpegstream/gstmpegparse.h:
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
	  (gst_mpeg_parse_update_streaminfo)
	  (gst_mpeg_parse_get_rate)
	  (gst_mpeg_parse_convert, gst_mpeg_parse_get_src_query_types)
	  (gst_mpeg_parse_handle_src_query):
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_new_output_pad):
	  Make queries work again.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset)
	  (gst_mpeg_parse_handle_newsegment)
	  (gst_mpeg_parse_send_newsegment, gst_mpeg_parse_pad_added)
	  (gst_mpeg_parse_chain, gst_mpeg_parse_handle_src_event):
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
	  Get rid of the newsegment_pending attribute, and rely instead on
	  proper timestamp adjustment.
	  * gst/mpegstream/gstmpegparse.c
	  (gst_mpeg_parse_get_src_event_masks): Erase.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init):
	  Initialize fields before creating pads to prevent the pad creation
	  callback from failing.
	  (gst_mpeg_parse_reset): Initialize new fields, and change
	  initialization order to match the order in the structure.
	  (gst_mpeg_parse_handle_newsegment): Forward new segment events
	  whenever possible, and update the current segment.
	  (gst_mpeg_parse_send_newsegment): Update the current segment and
	  pending_newsegment.
	  (gst_mpeg_parse_pad_added): Use the current segment to send
	  newsegment events to new pads.
	  (gst_mpeg_parse_chain): Properly add adjust time to sent buffers
	  and events. Properly update newsegment_pending.
	  * gst/mpegstream/gstmpegparse.h	(struct _GstMPEGParse):
	  New fields do_adjust and current_segment.
	  * gst/mpegstream/gstmpegdemux.c:
	  * gst/mpegstream/gstdvddemux.c:
	  * gst/mpegstream/gstmpegparse.h:
	  Rename handle_discont virtual method to handle_newsegment. Erase
	  some (already commented out support) for old NEW_MEDIA events.
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
	  (gst_mpeg_parse_reset, gst_mpeg_parse_handle_discont)
	  (gst_mpeg_parse_pad_added, gst_mpeg_parse_parse_packhead)
	  (gst_mpeg_parse_event, gst_mpeg_parse_chain):
	  Erase the "pending_scr" field, and replace it by a slightly
	  different handling of the current SCR. Document code blocks in
	  parse_packhead and chain.

2005-12-07 11:50:10 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/mad/gstid3tag.c: g_warning() are only for really fatal warnings. If we can't decode a tag, just ignore that tag a...
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list):
	  g_warning() are only for really fatal warnings. If we can't decode a
	  tag, just ignore that tag and do a GST_WARNING.

2005-12-06 19:48:07 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* ext/a52dec/gsta52dec.h:
	* ext/dvdread/dvdreadsrc.h:
	* ext/lame/gstlame.h:
	* ext/mad/gstid3tag.c:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	* ext/mpeg2dec/gstmpeg2dec.h:
	* ext/sidplay/gstsiddec.h:
	* gst/ac3parse/gstac3parse.c:
	* gst/ac3parse/gstac3parse.h:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfdemux.h:
	* gst/iec958/ac3iec.h:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	* gst/mpegstream/gstdvddemux.h:
	* gst/mpegstream/gstmpegclock.h:
	* gst/mpegstream/gstmpegdemux.h:
	* gst/mpegstream/gstmpegpacketize.h:
	* gst/mpegstream/gstmpegparse.c:
	* gst/mpegstream/gstmpegparse.h:
	* gst/mpegstream/gstrfc2250enc.c:
	* gst/mpegstream/gstrfc2250enc.h:
	* gst/realmedia/rmdemux.c:
	* gst/realmedia/rmdemux.h:
	* gst/synaesthesia/synaescope.c:
	  expand tabs
	  Original commit message from CVS:
	  expand tabs

2005-12-05 18:12:24 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  back to HEAD
	  Original commit message from CVS:
	  back to HEAD

=== release 0.10.0 ===

2005-12-05 18:04:06 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  releasing 0.10.0
	  Original commit message from CVS:
	  releasing 0.10.0

2005-12-05 13:03:40 +0000  Andy Wingo <wingo@pobox.com>

	  Update for alloc_buffer changes.
	  Original commit message from CVS:
	  2005-12-05  Andy Wingo  <wingo@pobox.com>
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_push):
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer):
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_raw):
	  * gst/iec958/ac3iec.c: (ac3iec_chain_raw):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_packet): Update for alloc_buffer changes.

2005-12-05 09:33:32 +0000  Andy Wingo <wingo@pobox.com>

	  ext/mad/gstid3tag.c (plugin_init): Remove id3tag -- there's just id3demux and id3mux now. Fixes #323199.
	  Original commit message from CVS:
	  2005-12-05  Andy Wingo  <wingo@pobox.com>
	  * ext/mad/gstid3tag.c (plugin_init): Remove id3tag -- there's just
	  id3demux and id3mux now. Fixes #323199.

2005-12-04 22:36:51 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-ugly.spec.in:
	  update spec file for latest changes
	  Original commit message from CVS:
	  update spec file for latest changes

2005-12-02 12:28:03 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  fix silly Makefile.am bug so they link correctly again
	  Original commit message from CVS:
	  * ext/amrnb/Makefile.am:
	  * gst/realmedia/Makefile.am:
	  fix silly Makefile.am bug so they link correctly again

2005-12-01 19:18:24 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  back to HEAD
	  Original commit message from CVS:
	  back to HEAD

=== release 0.9.7 ===

2005-12-01 19:14:57 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* common:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	* docs/random/LICENSE:
	* docs/random/PORTED_09:
	  releasing 0.9.7
	  Original commit message from CVS:
	  releasing 0.9.7

2005-12-01 15:49:59 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* common:
	* ext/amrnb/Makefile.am:
	* gst/realmedia/Makefile.am:
	  Don't know how these escaped my eye before.  Fix link flags.
	  Original commit message from CVS:
	  Don't know how these escaped my eye before.  Fix link flags.

2005-11-30 18:37:24 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* examples/Makefile.am:
	* examples/capsfilter/Makefile.am:
	* examples/capsfilter/capsfilter1.c:
	* examples/gob/Makefile.am:
	* examples/gob/gst-identity2.gob:
	* examples/gstplay/.gitignore:
	* examples/gstplay/Makefile.am:
	* examples/gstplay/player.c:
	* examples/indexing/.gitignore:
	* examples/indexing/Makefile.am:
	* examples/indexing/indexmpeg.c:
	* examples/level/Makefile.am:
	* examples/level/README:
	* examples/level/demo.c:
	* examples/level/plot.c:
	* examples/stats/Makefile.am:
	* examples/stats/mp2ogg.c:
	* examples/switch/.gitignore:
	* examples/switch/Makefile.am:
	* examples/switch/switcher.c:
	  no examples
	  Original commit message from CVS:
	  no examples

2005-11-29 11:26:35 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/: Ref events before sending them to multiple pads, after all gst_pad_send_event() takes ownership of e...
	  Original commit message from CVS:
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_event):
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_newsegment),
	  (gst_mpeg_parse_send_event):
	  Ref events before sending them to multiple pads, after all
	  gst_pad_send_event() takes ownership of events. Don't leak
	  events that have not been handled (fixes #322745).

2005-11-28 19:13:51 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event)
	  Original commit message from CVS:
	  2005-11-28  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event)
	  (gst_dvd_demux_handle_dvd_event): Erase code to prevent mpegparse
	  from making timestamp adjustments. This will have to be re-added
	  in some form in the near future, but in order to do that, some nav
	  packet parsing will be necessary in mpegdemux.
	  * gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
	  (g_value_set_int, gst_mpeg_parse_set_property)
	  Get rid of do_adjust and use_adjust. Rename max_discont to
	  max_src_gap.
	  (gst_mpeg_parse_parse_packhead): When max_scr_gap has a value of
	  -1, no adjustment is made.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init):
	  Rename max_discont property to max_scr_gap. Erase "adjust"
	  property.
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_send_event): Don't
	  override send_event anymore, base class does the job.
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event):
	  Base class now does most of the work.
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_send_event):
	  Generalize to forwarding the event to all source pads in the
	  element.
	  * gst/mpegstream/gstmpegparse.h:
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
	  (gst_mpeg_parse_init, gst_mpeg_parse_set_clock)
	  (gst_mpeg_parse_chain, gst_mpeg_parse_get_property)
	  (gst_mpeg_parse_set_property):
	  Clock synchronization doesn't make sense anymore for a
	  demultiplexer.

2005-11-28 18:54:09 +0000  Michael Smith <msmith@xiph.org>

	  gst/realmedia/rmdemux.c: Don't treat normal EOS as a fatal error.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_loop):
	  Don't treat normal EOS as a fatal error.

2005-11-28 15:47:01 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/mad/gstmad.c: Proper warning statements,
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  Proper warning statements,
	  Don't error if the src pad isn't linked when pushing.
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_change_state):
	  Proper state_change, avoids borkage when going to READY

2005-11-27 15:34:00 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	* gst-libs/Makefile.am:
	* gst-libs/README:
	* gst-libs/ext/.gitignore:
	* gst-libs/gst/media-info/.gitignore:
	* gst-libs/gst/play/.gitignore:
	* gst-libs/gst/play/play.h:
	* gst-libs/gst/play/play.vcproj:
	  no need for an AS_LIBTOOL call
	  Original commit message from CVS:
	  no need for an AS_LIBTOOL call

2005-11-27 14:34:34 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* Makefile.am:
	* common:
	* gst-plugins-ugly.spec.in:
	  add ACLOCAL_AMFLAGS; remove old stuff from spec changelog
	  Original commit message from CVS:
	  add ACLOCAL_AMFLAGS; remove old stuff from spec changelog

2005-11-25 17:02:41 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Prime libmpeg2's pumps with some null custom buffers to ensure it doesn't ask us to disca...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence):
	  Prime libmpeg2's pumps with some null custom buffers
	  to ensure it doesn't ask us to discard garbage later yay.

2005-11-25 17:01:46 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Prime libmpeg2's pumps with some null custom buffers to ensure it ask us to discard garba...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence):
	  Prime libmpeg2's pumps with some null custom buffers
	  to ensure it ask us to discard garbage later yay.

2005-11-25 14:50:19 +0000  Michael Smith <msmith@xiph.org>

	  ext/a52dec/gsta52dec.*: Accept AC3 in audio/x-private1-ac3 format, which includes
	  Original commit message from CVS:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_init),
	  (gst_a52dec_sink_setcaps), (gst_a52dec_chain),
	  (gst_a52dec_chain_raw):
	  * ext/a52dec/gsta52dec.h:
	  Accept AC3 in audio/x-private1-ac3 format, which includes
	  DVD-specific headers, as well as raw AC3, for compatibility with
	  some demuxers.

2005-11-25 00:03:52 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mad/gstmad.c: When pad_alloc returns other-than-GST_FLOW_OK and mad exits early, skip frame synthesis and consume...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  When pad_alloc returns other-than-GST_FLOW_OK and mad exits early,
	  skip frame synthesis and consume input data as if we'd done the
	  decode. Makes mad not error when the src pad is not connected.
	  (#319784)

2005-11-24 13:58:55 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	* ChangeLog:
	  Erase old CVS conflict line.
	  Original commit message from CVS:
	  Erase old CVS conflict line.

2005-11-24 13:52:49 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init) (gst_mpeg_parse_handle_discont, gst_mpeg_parse_send_newsegm...
	  Original commit message from CVS:
	  2005-11-23  Martin Soto  <martinsoto@users.sourceforge.net>
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
	  (gst_mpeg_parse_handle_discont, gst_mpeg_parse_send_newsegment)
	  (gst_mpeg_parse_chain):
	  * gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_class_init)
	  (gst_mpeg_demux_send_newsegment):
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_send_subbuffer):
	  * gst/mpegstream/gstmpegparse.h:
	  Rename send_discont method to send_newsegment and add parameters
	  to handle actual segments. Adapt code all around to run with the
	  new name and signature.
	  * gst/mpegstream/gstmpegdemux.c:
	  * gst/mpegstream/gstmpegparse.c:
	  * gst/mpegstream/gstdvddemux.c:
	  Convert to GST_BOILERPLATE.

2005-11-24 12:23:04 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  fix AS_LIBTOOL call
	  Original commit message from CVS:
	  fix AS_LIBTOOL call

2005-11-23 21:26:35 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* Makefile.am:
	  add a torture target
	  Original commit message from CVS:
	  add a torture target

2005-11-23 20:05:47 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	  back to HEAD
	  Original commit message from CVS:
	  back to HEAD

=== release 0.9.6 ===

2005-11-23 19:57:04 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.signals:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  releasing 0.9.6
	  Original commit message from CVS:
	  releasing 0.9.6

2005-11-23 00:26:42 +0000  Michael Smith <msmith@xiph.org>

	  gst/realmedia/rmdemux.c: Fractional framerates.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_sink_event),
	  (gst_rmdemux_src_event), (gst_rmdemux_validate_offset),
	  (find_seek_offset_bytes), (find_seek_offset_time),
	  (gst_rmdemux_perform_seek), (gst_rmdemux_src_query),
	  (gst_rmdemux_loop), (gst_rmdemux_fourcc_isplausible),
	  (gst_rmdemux_chain), (gst_rmdemux_send_event),
	  (gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr),
	  (gst_rmdemux_parse_packet):
	  Fractional framerates.

2005-11-23 00:12:24 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mpeg2dec/gstmpeg2dec.*: Use fractional framerates
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (src_templ),
	  (gst_mpeg2dec_negotiate_format), (handle_sequence),
	  (gst_mpeg2dec_sink_event):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Use fractional framerates

2005-11-22 19:07:13 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegstream/gstmpegparse.c: set_clock returns a boolean.
	  Original commit message from CVS:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_set_clock):
	  set_clock returns a boolean.

2005-11-22 18:39:36 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: Fix seeking even more by sending the newsegment event with the right parameters. Should fix queryin...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  Fix seeking even more by sending the newsegment event with the
	  right parameters. Should fix querying in playbin/totem after
	  a seek.

2005-11-22 17:39:36 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstmad.c: Fix seeking in stand-alone mode. Fix nonexistant enum value introduced in previous commit. Improve ...
	  Original commit message from CVS:
	  * ext/mad/gstmad.c: (gst_mad_mode_get_type), (gst_mad_src_query),
	  (normal_seek), (gst_mad_sink_event), (gst_mad_chain):
	  Fix seeking in stand-alone mode. Fix nonexistant enum value
	  introduced in previous commit. Improve debug messages here and
	  there. Actually return a proper return value in the sink event
	  handler.

2005-11-22 17:15:25 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/lame/gstlame.c:
	  doh
	  Original commit message from CVS:
	  doh

2005-11-22 17:04:38 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* ext/lame/gstlame.c:
	* ext/mad/gstmad.c:
	* ext/sidplay/gstsiddec.cc:
	  fix up GValueEnum
	  Original commit message from CVS:
	  fix up GValueEnum

2005-11-22 12:39:29 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* ext/lame/gstlame.c:
	* ext/mad/gstid3tag.c:
	* ext/sidplay/gstsiddec.cc:
	  Update for gst_tag_setter API changes.
	  Original commit message from CVS:
	  2005-11-22  Andy Wingo  <wingo@pobox.com>
	  * Update for gst_tag_setter API changes.

2005-11-22 11:55:32 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* ext/a52dec/gsta52dec.c:
	* ext/mad/gstid3tag.c:
	* ext/mad/gstmad.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegparse.c:
	* gst/realmedia/rmdemux.c:
	  ext/a52dec/gsta52dec.c (gst_a52dec_sink_event) ext/mad/gstid3tag.c (gst_id3_tag_sink_event) ext/mad/gstmad.c (gst_mad...
	  Original commit message from CVS:
	  2005-11-22  Andy Wingo  <wingo@pobox.com>
	  * ext/a52dec/gsta52dec.c (gst_a52dec_sink_event)
	  * ext/mad/gstid3tag.c (gst_id3_tag_sink_event)
	  * ext/mad/gstmad.c (gst_mad_chain)
	  * gst/mpegaudioparse/gstmpegaudioparse.c
	  (gst_mp3parse_sink_event)
	  * gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event)
	  * gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_discont)
	  (gst_mpeg_parse_send_discont, gst_mpeg_parse_pad_added)
	  * gst/realmedia/rmdemux.c (gst_rmdemux_perform_seek)
	  (gst_rmdemux_chain, gst_rmdemux_add_stream): Run update-funcnames.

2005-11-22 11:39:06 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/Makefile.am: libgsttagedit => libgsttag
	  Original commit message from CVS:
	  * ext/mad/Makefile.am:
	  libgsttagedit => libgsttag

2005-11-21 23:50:02 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/lame/gstlame.c: Don't take the stream lock
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_sink_event):
	  Don't take the stream lock

2005-11-21 17:34:30 +0000  Andy Wingo <wingo@pobox.com>

	  ext/: Don't take the stream lock.
	  Original commit message from CVS:
	  2005-11-21  Andy Wingo  <wingo@pobox.com>
	  * ext/sidplay/gstsiddec.cc (gst_siddec_sink_event):
	  * ext/mpeg2dec/gstmpeg2dec.c (gst_mpeg2dec_sink_event):
	  * ext/mad/gstmad.c (gst_mad_sink_event):
	  * ext/a52dec/gsta52dec.c (gst_a52dec_sink_event): Don't take the
	  stream lock.
	  * gst/realmedia/rmdemux.c (gst_rmdemux_perform_seek): Update for
	  stream lock changes.

2005-11-21 16:36:44 +0000  Andy Wingo <wingo@pobox.com>

	  *.*: Ran scripts/update-macros. Oh yes.
	  Original commit message from CVS:
	  2005-11-21  Andy Wingo  <wingo@pobox.com>
	  * *.h:
	  * *.c: Ran scripts/update-macros. Oh yes.

2005-11-21 15:12:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegstream/: Filler events have beem removed for now.
	  Original commit message from CVS:
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_process_event):
	  Filler events have beem removed for now.

2005-11-21 14:08:45 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/: Update for GST_FOURCC_FORMAT API change.
	  Original commit message from CVS:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_video_stream):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_chain),
	  (gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr):
	  Update for GST_FOURCC_FORMAT API change.

2005-11-21 10:32:55 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/: Modifications for disapearance of GST_PAD_IS_USABLE()
	  Original commit message from CVS:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_raw):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_chain),
	  (gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr),
	  (gst_rmdemux_parse_packet):
	  Modifications for disapearance of GST_PAD_IS_USABLE()

2005-11-18 16:14:00 +0000  Michael Smith <msmith@xiph.org>

	  gst/iec958/ac3iec.c: Remove some setcaps brokenness.
	  Original commit message from CVS:
	  * gst/iec958/ac3iec.c: (ac3iec_init), (ac3iec_chain_dvd):
	  Remove some setcaps brokenness.
	  Don't crash on bad input.

2005-11-15 22:46:23 +0000  Johan Dahlin <johan@gnome.org>

	  ext/mad/gstid3tag.c (gst_mad_id3_to_tag_list): unset GValues after calling transform.
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c (gst_mad_id3_to_tag_list): unset GValues after
	  calling transform.
	  (gst_id3_tag_do_typefind): Unref caps
	  * ext/mad/gstmad.c (gst_mad_check_caps_reset): Ditto

2005-11-15 21:00:44 +0000  Johan Dahlin <johan@gnome.org>

	* ext/mad/gstmad.c:
	  remove accidentally commited hack
	  Original commit message from CVS:
	  remove accidentally commited hack

2005-11-15 20:30:53 +0000  Johan Dahlin <johan@gnome.org>

	* ext/mad/gstmad.c:
	  free pad templates
	  Original commit message from CVS:
	  free pad templates

2005-11-15 14:19:38 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2dec/gstmpeg2dec.c: Set DELTA_UNIT flag on outgoing buffers if this is NOT a keyframe; nice-ify debug message...
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (handle_slice),
	  (gst_mpeg2dec_sink_event):
	  Set DELTA_UNIT flag on outgoing buffers if this is NOT a keyframe;
	  nice-ify debug message in event handler; add CHECKME.
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event),
	  (gst_dvd_demux_send_event), (gst_dvd_demux_process_private),
	  (gst_dvd_demux_send_subbuffer), (gst_dvd_demux_reset),
	  (gst_dvd_demux_sync_stream_to_time):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
	  (gst_mpeg_demux_process_event), (gst_mpeg_demux_send_event),
	  (gst_mpeg_demux_handle_discont), (gst_mpeg_demux_new_output_pad),
	  (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes),
	  (gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_process_private),
	  (gst_mpeg_demux_sync_stream_to_time),
	  (gst_mpeg_demux_handle_src_event), (gst_mpeg_demux_reset):
	  * gst/mpegstream/gstmpegdemux.h:
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init),
	  (gst_mpeg_parse_handle_discont), (gst_mpeg_parse_send_buffer),
	  (gst_mpeg_parse_process_event), (gst_mpeg_parse_send_discont),
	  (gst_mpeg_parse_send_event), (gst_mpeg_parse_event),
	  (gst_mpeg_parse_chain):
	  * gst/mpegstream/gstmpegparse.h:
	  Get rid of GST_PAD_IS_USABLE and fix GstFlowReturn vs. gboolean
	  return value confusion (gst_pad_push vs. gst_pad_send_event and
	  gst_pad_push_event); pass flow return values to caller;
	  miscellaneous fixes and clean-ups.

2005-11-15 08:37:00 +0000  Christian Schaller <uraeus@gnome.org>

	* gst/mpegstream/gstdvddemux.c:
	  set rank to secondary until it works 100%
	  Original commit message from CVS:
	  set rank to secondary until it works 100%

2005-11-15 07:59:58 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-ugly.spec.in:
	  add mpegstream plugin to spec file
	  Original commit message from CVS:
	  add mpegstream plugin to spec file

2005-11-14 22:18:21 +0000  Martin Soto <martinsoto@users.sourceforge.net>

	  gst/mpegstream/Makefile.am (noinst_HEADERS): Add gstrfc2250enc.h.
	  Original commit message from CVS:
	  2005-11-14  Martin Soto  <soto@localhost.localdomain>
	  * gst/mpegstream/Makefile.am (noinst_HEADERS): Add
	  gstrfc2250enc.h.

2005-11-14 21:20:21 +0000  Josef Zlomek <josef.zlomek@xeris.cz>

	  partially port the mpegstream plugin to GStreamer 0.9.
	  Original commit message from CVS:
	  2005-11-14  Martin Soto  <martinsoto@users.sourceforge.net>
	  * configure.ac:
	  * gst/mpegstream/Makefile.am:
	  * gst/mpegstream/gstdvddemux.c:
	  * gst/mpegstream/gstdvddemux.h:
	  * gst/mpegstream/gstmpegdemux.c:
	  * gst/mpegstream/gstmpegdemux.h:
	  * gst/mpegstream/gstmpegpacketize.c:
	  * gst/mpegstream/gstmpegpacketize.h:
	  * gst/mpegstream/gstmpegparse.c:
	  * gst/mpegstream/gstmpegparse.h:
	  * gst/mpegstream/gstmpegstream.c:
	  * gst/mpegstream/gstrfc2250enc.c:
	  * gst/mpegstream/gstrfc2250enc.h:
	  Applied patch from Josef Zlomek <josef.zlomek@xeris.cz> to
	  partially port the mpegstream plugin to GStreamer 0.9.

2005-11-14 17:13:20 +0000  Andy Wingo <wingo@pobox.com>

	  configure.ac (GST_PLUGIN_LDFLAGS): -no-undefined for better debugging, allows dll builds on windows. Fixes #316076.
	  Original commit message from CVS:
	  2005-11-14  Andy Wingo  <wingo@pobox.com>
	  * configure.ac (GST_PLUGIN_LDFLAGS): -no-undefined for better
	  debugging, allows dll builds on windows. Fixes #316076.

2005-11-11 19:37:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	  back to head
	  Original commit message from CVS:
	  back to head

=== release 0.9.5 ===

2005-11-11 19:35:55 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* common:
	* configure.ac:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  releasing 0.9.5
	  Original commit message from CVS:
	  releasing 0.9.5

2005-10-27 21:50:11 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Forward GstFlowReturn about everywhere.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_reset),
	  (gst_mpeg2dec_alloc_buffer), (gst_mpeg2dec_negotiate_format),
	  (handle_sequence), (handle_picture), (handle_slice),
	  (gst_mpeg2dec_chain), (gst_mpeg2dec_src_query), (normal_seek),
	  (gst_mpeg2dec_src_event), (gst_mpeg2dec_change_state):
	  Forward GstFlowReturn about everywhere.
	  Handle seeking correctly.

2005-10-27 17:26:13 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.c: Small cleanups in refcounting.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format),
	  (handle_sequence), (handle_slice), (gst_mpeg2dec_chain),
	  (gst_mpeg2dec_src_query), (gst_mpeg2dec_change_state):
	  Small cleanups in refcounting.

2005-10-26 16:45:04 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/mpeg2dec/gstmpeg2dec.*: Removed lots of dubious code.
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
	  (gst_mpeg2dec_dispose), (gst_mpeg2dec_reset),
	  (gst_mpeg2dec_alloc_buffer), (gst_mpeg2dec_negotiate_format),
	  (handle_sequence), (handle_picture):
	  * ext/mpeg2dec/gstmpeg2dec.h:
	  Removed lots of dubious code.
	  Handle flushing and seeking correctly. Still leaks though...

2005-10-24 13:37:47 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* configure.ac:
	  port plugins listing changes
	  Original commit message from CVS:
	  port plugins listing changes

2005-10-23 23:06:09 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	  back to HEAD
	  Original commit message from CVS:
	  back to HEAD

=== release 0.9.4 ===

2005-10-23 22:44:44 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* Makefile.am:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins.args:
	* docs/plugins/gst-plugins-ugly-plugins.signals:
	* docs/plugins/inspect/plugin-a52dec.xml:
	* docs/plugins/inspect/plugin-amrnb.xml:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpeg2dec.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	* gst/realmedia/rmdemux.c:
	* po/POTFILES.in:
	  releasing 0.9.4
	  Original commit message from CVS:
	  releasing 0.9.4

2005-10-23 14:32:49 +0000  Julien Moutte <julien@moutte.net>

	  gst/realmedia/rmdemux.c: STOPPED->FAILED
	  Original commit message from CVS:
	  2005-10-23  Julien MOUTTE  <julien@moutte.net>
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_loop): STOPPED->FAILED

2005-10-21 16:22:00 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-ugly.spec.in:
	  add packaging of a52dec
	  Original commit message from CVS:
	  add packaging of a52dec

2005-10-21 11:58:38 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.c: Set correct stream time in newsegment event.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_validate_offset),
	  (gst_rmdemux_perform_seek), (gst_rmdemux_src_query):
	  Set correct stream time in newsegment event.

2005-10-20 22:43:04 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/Makefile.am:
	  fix distcheck
	  Original commit message from CVS:
	  fix distcheck

2005-10-20 22:40:07 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* ext/Makefile.am:
	  fix distcheck
	  Original commit message from CVS:
	  fix distcheck

2005-10-20 09:51:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/a52dec/: Re-enable CPU flags, use liboil to get them.
	  Original commit message from CVS:
	  * ext/a52dec/Makefile.am:
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_base_init),
	  (gst_a52dec_class_init), (gst_a52dec_sink_event),
	  (gst_a52dec_change_state):
	  * ext/a52dec/gsta52dec.h:
	  Re-enable CPU flags, use liboil to get them.

2005-10-20 09:00:30 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Port AC3 decoder to 0.9 (#318849).
	  Original commit message from CVS:
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * configure.ac:
	  * ext/a52dec/Makefile.am:
	  * ext/a52dec/gsta52dec.c:
	  * ext/a52dec/gsta52dec.h:
	  Port AC3 decoder to 0.9 (#318849).

2005-10-20 08:30:33 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/sidplay/gstsiddec.cc: Small fixes and more error messages.
	  Original commit message from CVS:
	  * ext/sidplay/gstsiddec.cc:
	  Small fixes and more error messages.

2005-10-19 16:01:35 +0000  Wim Taymans <wim.taymans@gmail.com>

	  API change fixen.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_query),
	  (gst_amrnbparse_state_change):
	  * ext/mad/gstid3tag.c: (gst_id3_tag_src_query):
	  * ext/mad/gstmad.c: (gst_mad_get_query_types), (gst_mad_src_query):
	  * ext/mpeg2dec/gstmpeg2dec.c:
	  * ext/sidplay/gstsiddec.cc:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_validate_offset),
	  (gst_rmdemux_src_query), (gst_rmdemux_src_query_types):
	  API change fixen.

2005-10-19 12:43:28 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: GST_DOC has been renamed to GST_DOCBOOK_CHECK
	  Original commit message from CVS:
	  * configure.ac:
	  GST_DOC has been renamed to GST_DOCBOOK_CHECK

2005-10-19 09:47:31 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  configure.ac: some docs I had
	  Original commit message from CVS:
	  * configure.ac:
	  some docs I had
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_chain):
	  trivial fixes

2005-10-18 13:23:22 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/realmedia/rmdemux.c: segment-start/done API change.
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_validate_offset),
	  (gst_rmdemux_perform_seek):
	  segment-start/done API change.

2005-10-17 17:50:45 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* common:
	* gst/iec958/ac3iec.c:
	  Set buffer durations on IEC958 buffers.
	  Original commit message from CVS:
	  Set buffer durations on IEC958 buffers.

2005-10-16 17:06:42 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Fix glib check
	  Original commit message from CVS:
	  * configure.ac:
	  Fix glib check

2005-10-13 19:14:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mad/gstid3tag.c: Fix handling of GST_TAG_DATE, which is now of type GST_TYPE_DATE.
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list):
	  Fix handling of GST_TAG_DATE, which is now of type GST_TYPE_DATE.

2005-10-13 15:29:56 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  examples/stats/mp2ogg.c: yes, typo fixes
	  Original commit message from CVS:
	  * examples/stats/mp2ogg.c:
	  yes, typo fixes

2005-10-12 14:30:36 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  renamed GST_FLAGS macros to GST_OBJECT_FLAGS moved bitshift from macro to enum definition
	  Original commit message from CVS:
	  * examples/indexing/indexmpeg.c: (main):
	  * ext/a52dec/gsta52dec.c: (gst_a52dec_init):
	  * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_is_open),
	  (dvdnavsrc_set_property), (dvdnavsrc_open), (dvdnavsrc_close),
	  (dvdnavsrc_event), (dvdnavsrc_convert), (dvdnavsrc_query):
	  * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_set_property),
	  (dvdreadsrc_srcpad_query), (dvdreadsrc_get),
	  (dvdreadsrc_open_file), (dvdreadsrc_close_file):
	  * ext/dvdread/dvdreadsrc.h:
	  * ext/lame/gstlame.h:
	  * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init):
	  * gst/asfdemux/gstasfmux.c: (gst_asfmux_init):
	  * gst/iec958/ac3iec.h:
	  * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_init):
	  * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_init):
	  * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init):
	  * gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_init):
	  * gst/synaesthesia/gstsynaesthesia.c: (gst_synaesthesia_init):
	  renamed GST_FLAGS macros to GST_OBJECT_FLAGS
	  moved bitshift from macro to enum definition

2005-10-11 16:37:16 +0000  Wim Taymans <wim.taymans@gmail.com>

	  newsegment API update.
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c: (gst_id3_tag_sink_event):
	  * ext/mad/gstmad.c: (gst_mad_chain):
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event), (gst_mp3parse_chain):
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_perform_seek),
	  (gst_rmdemux_chain), (gst_rmdemux_add_stream):
	  newsegment API update.

2005-10-06 13:14:38 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/amrnb/amrnbdec.c: Mark invalid frame sizes
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c:
	  Mark invalid frame sizes
	  * ext/mad/gstmad.c: (gst_mad_init), (gst_mad_chain):
	  UNUSABLE is not to be used here, just push out stuff so
	  probes can continue linking or making the pad usable.

2005-10-05 11:25:51 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* gst/realmedia/rmdemux.c:
	  Improve seek error-resilience.
	  Original commit message from CVS:
	  Improve seek error-resilience.
	  Better error handling generally.

2005-10-03 17:59:55 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	  back to head
	  Original commit message from CVS:
	  back to head

=== release 0.9.3 ===

2005-10-03 17:49:44 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* README:
	* configure.ac:
	* ext/sidplay/Makefile.am:
	  release time
	  Original commit message from CVS:
	  release time

2005-09-30 16:43:12 +0000  Michael Smith <msmith@xiph.org>

	* gst/realmedia/rmdemux.h:
	  Forgot to commit this file. I hate Nano.
	  Original commit message from CVS:
	  Forgot to commit this file. I hate Nano.

2005-09-30 16:39:47 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* common:
	* gst/realmedia/rmdemux.c:
	  Sanity checks and memory leak fixes for real demuxer
	  Original commit message from CVS:
	  Sanity checks and memory leak fixes for real demuxer

2005-09-29 13:44:15 +0000  Michael Smith <msmith@xiph.org>

	  gst/realmedia/rmdemux.c: Real demuxer fixes. Make it more bulletproof against bad data, identify a few more stream ty...
	  Original commit message from CVS:
	  * gst/realmedia/rmdemux.c: (gst_rmdemux_src_event),
	  (gst_rmdemux_perform_seek), (gst_rmdemux_loop),
	  (gst_rmdemux_send_event), (gst_rmdemux_add_stream),
	  (gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_packet):
	  Real demuxer fixes. Make it more bulletproof against bad data,
	  identify a few more stream types.
	  Fix seeking so that it works (at least with the seek example
	  program; it still fails with totem).

2005-09-26 14:41:23 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegaudioparse/gstmpegaudioparse.c: Set correct caps on buffers too.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_sink_event), (gst_mp3parse_chain):
	  Set correct caps on buffers too.

2005-09-26 14:31:53 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegaudioparse/gstmpegaudioparse.*: Put timestamps on buffers.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_init),
	  (gst_mp3parse_sink_event), (gst_mp3parse_chain):
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  Put timestamps on buffers.

2005-09-21 22:21:22 +0000  Flavio Oliveira <flavio.oliveira@indt.org.br>

	* ChangeLog:
	* ext/amrnb/amrnbenc.c:
	  Changed amrnbenc description, it is an encoder, not decoder.
	  Original commit message from CVS:
	  Changed amrnbenc description, it is an encoder, not decoder.

2005-09-21 16:21:45 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* gst/iec958/ac3_padder.c:
	* gst/iec958/ac3_padder.h:
	* gst/iec958/ac3iec.c:
	  Various changes to AC3->IEC958 framer. Mostly to make our IEC958 headers and dump the frame (as a probable sync failu...
	  Original commit message from CVS:
	  Various changes to AC3->IEC958 framer. Mostly to make our IEC958 headers
	  more accurate, and to check AC3 checksums (both of them in each frame),
	  and dump the frame (as a probable sync failure) if they don't match.
	  General code cleanup, improved comments. Changed to not construct the
	  header backwards, and not byteswap everything else. If we end up needing
	  to do little-endian output, we should swap in the element doing the
	  output (AC3 is big-endian).

2005-09-20 17:37:54 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-ugly.spec.in:
	  fix spec file for ugly
	  Original commit message from CVS:
	  fix spec file for ugly

2005-09-19 23:25:07 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/inspect/plugin-lame.xml:
	  revert empty commit
	  Original commit message from CVS:
	  revert empty commit

2005-09-19 23:24:12 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/scan.stamp:
	  whoops, wrong files
	  Original commit message from CVS:
	  whoops, wrong files

2005-09-19 23:21:31 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/gst-plugins-ugly-plugins.*: commit missing files
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-ugly-plugins.args:
	  * docs/plugins/gst-plugins-ugly-plugins.hierarchy:
	  * docs/plugins/gst-plugins-ugly-plugins.interfaces:
	  * docs/plugins/gst-plugins-ugly-plugins.prerequisites:
	  commit missing files
	  * docs/plugins/inspect/plugin-lame.xml:
	  update

2005-09-19 16:44:13 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* Makefile.am:
	* common:
	* gst-plugins-ugly.spec.in:
	  add check-valgrind target
	  Original commit message from CVS:
	  add check-valgrind target

2005-09-19 13:46:35 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/scanobj-build.stamp:
	  add stamp
	  Original commit message from CVS:
	  add stamp

2005-09-19 11:07:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/lame/gstlame.c: Set caps on outgoing buffers.
	  Original commit message from CVS:
	  * ext/lame/gstlame.c: (gst_lame_chain):
	  Set caps on outgoing buffers.

2005-09-16 16:04:28 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* ext/lame/gstlame.c:
	* ext/lame/gstlame.h:
	  clean up further so we don't try to set up five times for a simple pipeline
	  Original commit message from CVS:
	  clean up further so we don't try to set up five times for
	  a simple pipeline

2005-09-16 15:43:08 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* common:
	* gst/iec958/ac3iec.c:
	  Set setcaps function on sink pad, not source pad. Produce correct caps on output buffers.
	  Original commit message from CVS:
	  Set setcaps function on sink pad, not source pad. Produce correct caps
	  on output buffers.

2005-09-11 17:53:12 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  update inspect with source
	  Original commit message from CVS:
	  update inspect with source

2005-09-07 13:42:44 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/mad/gstid3tag.c: gsttaginterface.h -> gsttagsetter.h
	  Original commit message from CVS:
	  * ext/mad/gstid3tag.c:
	  gsttaginterface.h -> gsttagsetter.h

2005-09-06 14:06:51 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  back to HEAD
	  Original commit message from CVS:
	  back to HEAD

=== release 0.9.1 ===

2005-09-06 14:05:40 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* README:
	* RELEASE:
	* autogen.sh:
	* configure.ac:
	  releasing 0.9.2
	  Original commit message from CVS:
	  releasing 0.9.2

2005-09-06 12:00:33 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/amrnb/: State change function updates.
	  Original commit message from CVS:
	  * ext/amrnb/amrnbdec.c: (gst_amrnbdec_state_change):
	  * ext/amrnb/amrnbenc.c: (gst_amrnbenc_state_change):
	  * ext/amrnb/amrnbparse.c: (gst_amrnbparse_state_change):
	  State change function updates.

2005-09-05 17:24:20 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mpeg2dec/gstmpeg2dec.c: GST_CAT_SEEK disappeared from the public API at some point
	  Original commit message from CVS:
	  * ext/mpeg2dec/gstmpeg2dec.c:
	  GST_CAT_SEEK disappeared from the public API at some point

2005-09-05 11:42:10 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/iec958/ac3_padder.c:
	* gst/iec958/ac3_padder.h:
	  doc fixes
	  Original commit message from CVS:
	  doc fixes

2005-09-04 19:28:29 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* Makefile.am:
	* autogen.sh:
	* common:
	* configure.ac:
	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
	* docs/plugins/inspect-build.stamp:
	* docs/plugins/inspect.stamp:
	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
	* docs/plugins/inspect/plugin-iec958.xml:
	* docs/plugins/inspect/plugin-lame.xml:
	* docs/plugins/inspect/plugin-mad.xml:
	* docs/plugins/inspect/plugin-mpegaudioparse.xml:
	* docs/plugins/inspect/plugin-rmdemux.xml:
	  docs for ugly plugins
	  Original commit message from CVS:
	  docs for ugly plugins

2005-09-02 18:01:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst-plugins-ugly.spec.in:
	* gst/iec958/Makefile.am:
	  build fixes
	  Original commit message from CVS:
	  build fixes

2005-09-02 17:04:39 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* gst/iec958/ac3iec.c:
	  Accept audio/x-private1-a3c on sink pad
	  Original commit message from CVS:
	  Accept audio/x-private1-a3c on sink pad

2005-09-02 17:01:14 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst-plugins-ugly.spec.in:
	  spec updates
	  Original commit message from CVS:
	  spec updates

2005-09-02 15:43:54 +0000  Andy Wingo <wingo@pobox.com>

	* examples/gstplay/player.c:
	* examples/stats/mp2ogg.c:
	* ext/a52dec/gsta52dec.c:
	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c:
	* ext/amrnb/amrnbparse.c:
	* ext/dvdnav/dvdnavsrc.c:
	* ext/dvdread/dvdreadsrc.c:
	* ext/lame/gstlame.c:
	* ext/mad/gstid3tag.c:
	* ext/mad/gstmad.c:
	* ext/mpeg2dec/gstmpeg2dec.c:
	* gst/ac3parse/gstac3parse.c:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfmux.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/iec958/ac3iec.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegparse.c:
	* gst/mpegstream/gstrfc2250enc.c:
	* gst/realmedia/rmdemux.c:
	* gst/synaesthesia/gstsynaesthesia.c:
	  All plugins updated for element state changes.
	  Original commit message from CVS:
	  2005-09-02  Andy Wingo  <wingo@pobox.com>
	  * All plugins updated for element state changes.

2005-09-02 14:19:17 +0000  Michael Smith <msmith@xiph.org>

	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/iec958/ac3iec.c:
	  Fix return types in setcaps functions
	  Original commit message from CVS:
	  Fix return types in setcaps functions

2005-09-02 13:37:13 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/iec958/ac3iec.c:
	  Changes to correctly use first_access parameter in ac3 and lpcm plugins.
	  Original commit message from CVS:
	  Changes to correctly use first_access parameter in ac3 and lpcm plugins.
	  Some general cleanups in iec958 framer.

2005-09-01 21:07:34 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* m4/Makefile.am:
	* m4/as-arts.m4:
	* m4/esd.m4:
	* m4/gst-alsa.m4:
	* m4/gst-artsc.m4:
	* m4/gst-matroska.m4:
	* m4/ogg.m4:
	* m4/vorbis.m4:
	  fix distcheck; remove some old m4s
	  Original commit message from CVS:
	  fix distcheck; remove some old m4s

2005-09-01 17:31:21 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* configure.ac:
	* gst/iec958/Makefile.am:
	* gst/iec958/ac3_padder.c:
	* gst/iec958/ac3_padder.h:
	* gst/iec958/ac3iec.c:
	* gst/iec958/ac3iec.h:
	  AC3 -> IEC958 (S/PDIF) framer, based on Martin Soto's 0.8 plugin
	  Original commit message from CVS:
	  AC3 -> IEC958 (S/PDIF) framer, based on Martin Soto's 0.8 plugin

2005-09-01 11:52:34 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/dvdlpcmdec/gstdvdlpcmdec.c: Cleanups, fixed header parsing and stripping.
	  Original commit message from CVS:
	  * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_setcaps),
	  (gst_dvdlpcmdec_chain_dvd), (gst_dvdlpcmdec_chain_raw),
	  (gst_dvdlpcmdec_change_state):
	  Cleanups, fixed header parsing and stripping.

2005-09-01 11:34:39 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  Use the right bytes when parsing the LPCM dvd header
	  Original commit message from CVS:
	  Use the right bytes when parsing the LPCM dvd header

2005-09-01 11:16:15 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	  Return the correct values from chain function
	  Original commit message from CVS:
	  Return the correct values from chain function

2005-09-01 10:04:53 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* docs/Makefile.am:
	* docs/plugins/.gitignore:
	* docs/random/ChangeLog-0.8:
	* docs/version.entities.in:
	  adding doc stuff
	  Original commit message from CVS:
	  adding doc stuff

2005-08-31 19:37:08 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  Restructure LPCM decoder to not expect the demuxer to parse the LPCM header; instead do this internally. Also support...
	  Original commit message from CVS:
	  Restructure LPCM decoder to not expect the demuxer to parse the LPCM
	  header; instead do this internally. Also support the old way, using
	  a different mime-type. CVS:

2001-12-17 18:37:01 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  building up speed
	  Original commit message from CVS:
	  building up speed

