=== release 1.2.0 ===

2013-09-24  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  releasing 1.2.0

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: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: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-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 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-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-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-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-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/gsttwolame.c:
	* ext/twolame/gsttwolame.h:
	* 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/gstxingmux.c:
	* gst/mpegaudioparse/gstxingmux.h:
	* gst/mpegaudioparse/mpegaudioparse.vcproj:
	* gst/mpegaudioparse/plugin.c:
	* 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:
	* LICENSE:
	* NEWS:
	* PORTED_09:
	* 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:

