=== release 0.10.17 ===

2009-11-17  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.17, "Anny bobany"

2009-11-17 01:13:36 +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/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/ky.po:
	* po/lt.po:
	* po/lv.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-11-15 21:46:01 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/ladspa/gstladspa.c:
	* ext/lv2/gstlv2.c:
	* gst-libs/gst/signalprocessor/gstsignalprocessor.c:
	* gst-libs/gst/signalprocessor/gstsignalprocessor.h:
	  signalprocessor: don't set channel positions in template-caps, Fixes #601775
	  Revert the changes that added audio positions to template caps. We have an un-
	  fortunate limitation in core that does not allow to do it. Keep a few things
	  commented out, so that the channel position can later on be set in setcaps.

2009-11-13 02:18:31 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* po/ky.po:
	* po/lv.po:
	* po/sv.po:
	* win32/common/config.h:
	  0.10.16.3 pre-release

2009-11-11 10:58:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/celt/gstceltdec.c:
	* ext/celt/gstceltenc.c:
	  celt: Port to 0.7 API
	  Fixes bug #600724.

2009-11-11 10:54:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/celt/gstceltenc.c:
	  celt: Make celt version checks better extensible

2009-11-09 19:20:21 +0000  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/ky.po:
	* po/lt.po:
	* po/lv.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.16.2 pre-release

2009-11-09 19:08:49 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/aiff/Makefile.am:
	* gst/aiff/aiff.c:
	  aiff: Disable aiff muxer for this release.
	  The aiff muxer relies on GstByteWriter API added after 0.10.25. Disable
	  it for this release.
	  Revert this commit after gst-plugins-bad 0.10.17

2009-11-09 14:10:20 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/asfmux/Makefile.am:
	  asfmux: Uncomment --disable-static flag
	  For some reason that libtool flags line that prevents building
	  the static lib was commented out. Reported by Mart Raudsepp on IRC.

2009-11-09 11:49:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Remove useless variables and fix a uninitialized variable compiler warnings
	  Merged from gst-plugins-base, dfd51aa82a9e1c9924375183796eab70e574a231.

2009-11-09 11:48:39 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Make sure that running_time->timestamp calculation never becomes negative
	  Merged from gst-plugins-base, f3653854585864a09d35e037853407332ea6901f.

2009-11-09 11:48:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Use the start time (i.e. timestamp) as the last stop
	  Using the end time makes it impossible to replace buffers, which is
	  a big problem for subtitles that could have very long durations.
	  Merged from gst-plugins-base, 27034be4611231cc55fa3d3e253baa40c6bff41d.

2009-11-09 11:47:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Improve debugging
	  Merged from gst-plugins-base.

2009-11-07 12:29:15 +0100  Edward Hervey <bilboed@bilboed.com>

	* ext/jp2k/gstjasperenc.c:
	  jp2kenc: Fix klass (s/Decoder/Encoder/)

2009-11-06 15:31:26 +0100  Chris Hills <chaz@chaz6.com>

	* sys/dvb/gstdvbsrc.c:
	  dvbsrc: Add support for DVB-T/DVB-C with DVB API 3.3

2009-11-06 11:44:50 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: The text and video duration should only compared as running time too
	  The end times of the text and video buffers could be different than
	  their start running time + duration because of different rates.

2009-11-06 09:16:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/kate/gstkate.c:
	  kate: Lower tiger's rank to NONE again
	  It's not well tested yet and doesn't handle segments and text/video
	  synchronization properly yet. Autoplugging it will cause failures.

2009-11-06 07:12:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: Reset segments on FLUSH_STOP events

2009-11-05 17:41:53 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: Improve debugging

2009-11-06 00:46:12 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/gstqtmux.c:
	  qtmux: Adding some ifs for protection
	  Adding somes ifs to protect against warning conditions
	  that might happen when upstream element is not sane
	  Fixes #600895

2009-11-05 13:40:38 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/scaletempo/gstscaletempo.c:
	  scaletempo: properly update new segments
	  Scaletempo was missing an update of 'stop' in
	  new segment parameters when pushing it downstream,
	  which caused files to end earlier when rate < 1.
	  Fixes #599903
	  Based on patch by: Bastian Hecht <hechtb@gmail.com>

2009-11-05 23:17:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	  timidity: printf format fixes

2009-11-05 22:03:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mythtv/gstmythtvsrc.c:
	  mythtv: printf format fixes

2009-11-05 21:58:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/libmms/gstmms.c:
	  mms: printf format fixes

2009-11-05 21:51:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkateenc.c:
	* ext/kate/gstkatespu.c:
	  kate: printf format fixes

2009-11-05 21:47:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: printf format fixes

2009-11-05 21:45:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* sys/dvb/dvbbasebin.c:
	  dvbbasebin: printf format fixes

2009-11-05 21:44:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/directfb/dfbvideosink.c:
	  directfb: printf format fixes

2009-11-05 21:44:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/alsaspdif/alsaspdifsink.c:
	  alsaspdifsink: printf format fixes

2009-11-05 17:13:36 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: Update last stop for the subtitles

2009-11-05 17:06:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: Synchronize text and video by taking the running time instead of the stream time

2009-11-05 16:44:09 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	* ext/assrender/gstassrender.h:
	  assrender: Keep track of the subtitle segments

2009-11-05 16:41:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: If the video segment is not in TIME format don't accept it

2009-11-04 22:52:19 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  dtmfdetect: Add dtmfdetects to plugins docs

2009-11-04 22:19:58 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/Makefile.am:
	* gst/dtmf/gstdtmf.c:
	* gst/dtmf/gstdtmfdetect.c:
	* gst/dtmf/gstdtmfdetect.h:
	* gst/dtmf/tone_detect.c:
	* gst/dtmf/tone_detect.h:
	  dtmfdetect: Add DTMF tone detector
	  It looks at raw audio data and emits messages when DTMF is detected.
	  The dtmf detector is the same Goertzel implementation used in FreeSwitch
	  and Asterisk. It is in the public domain.

2009-11-05 13:53:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  Revert "inputselector: use get_caps_reffed()"
	  This reverts commit 49ec4f796a0e3f88a851708782c853baf4b05724.
	  We can't use this new function yet.

2009-11-05 13:29:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: use get_caps_reffed()

2009-11-05 13:17:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: Drop too late text buffer immediately
	  Also improve debugging a bit and drop buffers without valid
	  timestamp or duration because we can't handle them.

2009-11-05 12:25:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: Fix race condition that results in a deadlock on shutdown

2009-11-04 22:21:35 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  dtmfsrc: Reject empty caps

2009-11-04 22:21:22 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  dtmfsrc: Use log level for repeated debug messages

2009-11-04 20:05:17 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  dtmfsrc: Allow for any samplerate

2009-11-04 23:32:07 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	  autoconvert: Fix previous commit: ensure we take a ref on the features

2009-11-04 15:21:50 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnbasesrc.c:
	* gst/autoconvert/gstautoconvert.c:
	  resindvd,autoconvert: Avoid depending on 0.10.26 API
	  Wait until after the next release to bump the core requirement.
	  Until then, don't use gst_plugin_feature_list_copy and
	  gst_pad_peer_get_caps_refed.

2009-11-02 17:06:53 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdsrc.c:
	  resindvd: Remove old code and obsolete comments
	  Remove some disabled code paths and obsolete FIXME comments

2009-10-14 15:47:27 -0400  Gabriel Millaire <gabriel.millaire@collabora.co.uk>

	* ext/celt/gstceltdec.c:
	* ext/celt/gstceltenc.c:
	  celtdec : chain_parse_data : check validity of timestamp, create a new one if needed celtenc : default framesize is 480           setcaps : gets framesize and set caps           enc_chain : sets framesize in caps           Added frame-size to static caps of audio/x-celt           Replaced GST_DEBUG_OBJECT by GST_LOG_OBJECT in enc_chain           setcaps: get frame-size from int instead of string           setcaps: use default value for frame-size

2009-11-04 17:13:34 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegdemux: Fix pointer-differences printout
	  There is unfortunately no G_*_FORMAT conversion specifier for differences of
	  pointers in glib, and we can't rely either on all platforms being 64bit.
	  So let's just cast the difference to a gint and be done with it.

2009-11-04 13:55:04 +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-11-04 15:57:40 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/cdaudio/gstcdaudio.c:
	  cdaudio: fix properties
	  Fix properties and allow setting the device property.

2009-11-04 13:11:44 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	* ext/assrender/gstassrender.h:
	  assrender: Return WRONG_STATE from the subtitle chain when flushing

2009-11-04 13:07:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: Unlock and free any pending subtitle buffers on FLUSH_START

2009-11-04 12:50:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	* ext/assrender/gstassrender.h:
	  assrender: Synchronize subtitle buffers with the video
	  Fixes bug #600662.

2009-11-04 00:21:19 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/selector/gstinputselector.c:
	  inputselector: also add inline to the proto to fix the build

2009-11-04 00:19:20 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/zbar/gstzbar.c:
	  zbar: include quality and check count, fixes #600461
	  We report the relative quality in the message and we also use the cache to skip
	  early detects and doubles.

2009-11-03 18:14:12 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/selector/gstinputselector.c:
	  gst: Remove dead assignments and resulting unused variables
	  Merged from gst-plugins-base, 8cd1b5209b68944e1be56ca8bb69e46d4abb7a34.

2009-11-03 18:12:21 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Use the same iterate internal links function as in gst-plugins-base

2009-11-03 18:11:13 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  Remove GST_DEBUG_FUNCPTR where they're pointless
	  There's not much point in using GST_DEBUG_FUNCPTR with GObject
	  virtual functions such as get_property, set_propery, finalize and
	  dispose, since they'll never be used by anyone anyway. Saves a
	  few bytes and possibly a sixteenth of a polar bear.
	  Merged from gst-plugins-base, 6f4c1ac58341ee189225d313ddfe9ae24a65c88c.

2009-11-03 18:09:55 +0100  David Schleef <ds@schleef.org>

	* gst/selector/gstinputselector.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.
	  Merged from gst-plugins-base, 0e9bc5125aca546d773ed1002df573dd8e2dc136.

2009-11-03 18:08:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: set output caps before pushing
	  Set the output caps on the srcpad before pushing the buffer because else core
	  will do a rather expensive check to see if we can actually accept those caps on
	  the srcpad.
	  Merged from gst-plugins-base, bdfb4b46d746ef298fcf44260879c342af4cafa3.

2009-11-03 18:06:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: install an acceptcaps function
	  Install a custom acceptcaps function instead of using the default expensive
	  check. We accept whatever downstream accepts so we pass along the acceptcaps
	  call to the downstream peer.
	  Merged from gst-plugins-base, 5b72f2adf996739036e8d9b5f91005455d1fface.

2009-11-03 15:08:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/kate/gstkatetiger.c:
	  tiger: Make sure that tiger is not autoplugged by decodebin2
	  It's not really a decoder...

2009-11-03 14:50:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/kate/gstkate.c:
	  kate: Change ranks of katedec and tiger to PRIMARY to be autoplugged

2009-11-03 14:49:44 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/kate/gstkatetiger.c:
	  tiger: Change name of the subtitle sink template and classification
	  This will make sure that subtitleoverlay can work with tiger.

2009-11-02 11:33:19 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	  resindvd: Take a copy of the passed plugin features
	  Clarify the ownership of the internal plugin feature list by making
	  a copy of any passed list. Avoids crashes when freeing a passed list,
	  or leaks caused by not freeing any internally built list.

2009-11-02 10:20:40 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnbasesrc.c:
	  resindvd: Fix an oversight from updating the copy of basesrc
	  Plugins need gst-i18n-plugin.h, not gst-i18n-lib.h

2009-11-01 15:56:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/soundtouch/gstpitch.cc:
	  pitch: remove pointless gst_element_no_more_pads()

2009-11-01 23:17:02 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Use gst_base_src_new_seamless_segment()
	  When switching to a new seamless segment, use the new
	  gst_base_src_new_seamless_segment() function, because elements can't
	  send themselves seek events from the streaming thread.

2009-11-01 23:16:18 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnbasesrc.c:
	* ext/resindvd/rsnbasesrc.h:
	  resindvd: Add gst_base_src_new_seamless_segment() to GstBaseSrc copy
	  Add a new function to the internal copy of GstBaseSrc for starting a new
	  seamless segment.

2009-11-01 19:21:38 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/Makefile.am:
	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	* ext/resindvd/rsnbasesrc.c:
	* ext/resindvd/rsnbasesrc.h:
	* ext/resindvd/rsnpushsrc.c:
	* ext/resindvd/rsnpushsrc.h:
	  resindvd: Update the base source copy
	  This breaks seamless segment updates, causing deadlocks,
	  to be fixed in subsequent commits.

2009-11-02 02:48:18 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstspu-pgs.c:
	  dvdspu: Fix PGS window parsing
	  Fix a problem introduced in the last PGS parsing patch by skipping
	  the window count byte after reading it.

2009-11-01 20:42:44 +0200  René Stadler <mail@renestadler.de>

	* gst/aiff/aiffparse.c:
	  aiff: fix aiffparse debug category variable name
	  Fixes missing symbol when compiling with debugging, since this is now in sync
	  with the plugin_init in aiff.c.

2009-11-01 20:41:03 +0200  René Stadler <mail@renestadler.de>

	* gst/aiff/aiff.c:
	  aiff: init plugin debug category
	  Fixes assertion (or unused variable warning with DISABLE_NLS).

2009-10-31 19:42:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-aiff.xml:
	* gst/aiff/aiffmux.h:
	* gst/aiff/aiffparse.h:
	  aiff: add aiff elements to docs

2009-10-31 19:37:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/aiff/aiff.c:
	* gst/aiff/aiffmux.c:
	* gst/aiff/aiffparse.c:
	* gst/aiff/aiffparse.h:
	  aiff: gratuitious clean-ups: canonicalise function names, structs and defines

2009-10-31 17:50:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/aiff/Makefile.am:
	* gst/aiff/aiff.c:
	* gst/aiff/aiffmux.c:
	* gst/aiff/aiffparse.c:
	* gst/aiff/aiffparse.h:
	  aiff: enable new aiff muxer
	  Fixes #598763 even more.

2009-10-17 22:58:03 +0100  Robert Swain <robert.swain@gmail.com>

	* gst/aiff/aiffmux.c:
	* gst/aiff/aiffmux.h:
	  aiff: add basic AIFF muxer
	  Fixes #598763.

2009-10-31 17:25:15 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/aiff/Makefile.am:
	* gst/aiff/aiffparse.c:
	* gst/aiff/aiffparse.h:
	  aiff: remove unused includes and fix flags order in Makefile.am
	  Also remove GST_PLUGINS_BASE_LIBS from LIBADD since we don't
	  need to link against any of the -base libs (we just use a define
	  from the gstaudio headers).

2009-10-31 17:20:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-aiff.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* gst-plugins-bad.spec.in:
	* gst/aiff/Makefile.am:
	* gst/aiff/aiffparse.c:
	* gst/aiff/aiffparse.h:
	* gst/aiffparse/Makefile.am:
	* gst/aiffparse/aiffparse.c:
	* gst/aiffparse/aiffparse.h:
	* po/POTFILES.in:
	  aiff: rename 'aiffparse' plugin to 'aiff'

2009-10-08 19:06:26 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* tests/check/elements/rtpmux.c:
	  tests: Add test for rtpdtmfmux locking

2009-09-28 19:54:53 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	* tests/check/elements/rtpmux.c:
	  tests: Add unit test for rtpmux

2009-09-28 13:36:44 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Don't ignore requested pad name

2009-10-29 16:42:34 -0700  Michael Smith <msmith@songbirdnest.com>

	* tests/check/Makefile.am:
	  tests: Use GST_PLUGINS_BASE_{CFLAGS,LIBS} for camerabin tests.

2009-10-29 16:34:23 -0700  Michael Smith <msmith@songbirdnest.com>

	* sys/osxvideo/Makefile.am:
	* sys/osxvideo/osxvideoplugin.c:
	* sys/osxvideo/osxvideoplugin.m:
	  osxvideosrc: change a .m file containing only C code to a .c file. Makes building this easier.

2009-10-27 22:08:42 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Don't send new-segment with start time == -1
	  When sending new-segment to a stream, ensure that there is either a valid
	  PCR, or else wait until there's a PTS on the stream (dropping packets if
	  needed) in order to avoid generating an invlaid new-segments event.
	  https://bugzilla.gnome.org/show_bug.cgi?id=595161

2009-10-28 16:22:13 +0200  Teemu Katajisto <ext-teemu.katajisto@nokia.com>

	* tests/check/elements/camerabin.c:
	  camerabin: use raw audio/video in unit tests
	  Removes dependency to ogg/vorbis/theora when running camerabin
	  unit tests.

2009-10-28 17:37:44 +0100  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowsrcwrapper: cleanup push buffer callback

2009-10-27 14:31:39 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/id3tag/id3tag.c:
	  id3mux: glib doesn't reliably null-terminate wide-character encodings in g_convert, so write the null-terminator separately and explicitly.

2009-10-18 14:20:07 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/lv2/gstlv2.c:
	  lv2: fix pad direction for ungrouped ports
	  Classic copy'n'paste bug.

2009-10-27 16:37:53 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>

	* gst/asfmux/gstasfmux.c:
	  asfmux: fix tag writing bug
	  g_convert seems to add a single null terminating byte to
	  the end of the string, even when the output is UTF16, we
	  force the second 0 byte when copying to the output buffer.
	  This issue was causing random crashes because it was
	  assumed that the string resulting from g_convert had
	  2 extra bytes, but it has only one.

2009-10-27 11:51:05 -0700  Michael Smith <msmith@songbirdnest.com>

	* sys/directsound/gstdirectsoundsrc.c:
	* tests/icles/output-selector-test.c:
	* win32/vs6/gst_plugins_bad.dsw:
	* win32/vs8/gst-plugins-bad.sln:
	* win32/vs8/libgstdirectdraw.vcproj:
	  Remove executable bits from non-executable files.

2009-10-27 00:22:42 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnstreamselector.c:
	* ext/resindvd/rsnstreamselector.h:
	  resindvd: Remove extra new-segment in rsnstreamselector. Send discont.
	  All the input pads for the resin stream selectors have the same source,
	  and receive/send the same segment info, so there's no need to send a
	  segment when switching and activating a different pad. Removing it makes
	  on-the-fly audio track switching work properly.
	  After switching audio track, mark the next buffer discont.

2009-10-26 20:55:15 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Avoid a deadlock. Improve chapter seek.
	  Avoid a potential deadlock that happens when a call to
	  gst_clock_id_wait_async() immediately calls the callback.
	  Improve previous chapter seeking slightly by avoiding 'segment
	  start != -1' assertions when there is no previous chapter and
	  the seek therefore fails.

2009-10-26 12:19:32 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnstreamselector.c:
	  resindvd: lower a debug message to log level.

2009-10-26 11:00:34 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Add a keypress mapping for switching audio track
	  For debugging purposes, make keys 1-8 switch audio track.

2009-10-24 12:54:19 +0100  Jan Schmidt <thaytan@noraisin.net>

	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	* tests/check/elements/autoconvert.c:
	  autoconvert: Add a simple unit test
	  Set up an autoconvert with 2 factories, and check that it can switch
	  between them when the caps change.

2009-10-24 14:29:33 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsndec.c:
	  resindvd: Set the new initial-identity property on autoconvert
	  https://bugzilla.gnome.org/show_bug.cgi?id=599469

2009-10-24 12:38:14 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	* gst/autoconvert/gstautoconvert.h:
	  autoconvert: Support installing identity as the initial child
	  Add the 'initial-identity' property, which inserts identity for
	  at startup for event passing, and replaces it with a new child
	  when the first buffer (and caps) actually arrives.
	  https://bugzilla.gnome.org/show_bug.cgi?id=599469

2009-10-24 11:18:59 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	* gst/autoconvert/gstautoconvert.h:
	  autoconvert: Cache incoming new segment events and push to children.
	  Cache incoming new-segment info.
	  When installing a child element, inform it of the current segment info.
	  https://bugzilla.gnome.org/show_bug.cgi?id=599469

2009-10-26 00:41:55 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	  autoconvert: Add some debug in factory caps intersection

2009-10-24 11:05:47 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	  autoconvert: Simple fixes.
	  Free the plugin feature list on dispose.
	  Output a debug message when downstream returns a fatal flow result
	  Fix awkward wording in a debug warning.

2009-10-24 10:27:03 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	  autoconvert: Gratuitously move GST_OBJECT_LOCK into a macro
	  Create GST_AUTOCONVERT_LOCK/UNLOCK macros that (for now) just call
	  GST_OBJECT_LOCK.

2009-10-15 13:32:32 +0100  Robert Swain <rob@fluffy.(none)>

	* ext/faac/gstfaac.c:
	  faac: Use definitions for default values
	  Makes changing the defaults easier and more fool-proof in the future.
	  Fixes #598552

2009-10-15 13:17:46 +0100  Robert Swain <rob@fluffy.(none)>

	* ext/faac/gstfaac.c:
	  faac: Change default AAC Profile to Low Complexity (LC) as this is more widely supported

2009-10-15 13:15:40 +0100  Robert Swain <rob@fluffy.(none)>

	* ext/faac/gstfaac.c:
	  faac: Change the param_spec default value for allowed block types to match the gst_faac_init value of 'normal' as this is better

2009-10-20 10:57:28 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/mpegvideoparse/mpegvideoparse.c:
	  mpegvideoparse: check width/height range
	  Checks if the width/height that are to be set on src pad caps
	  are within valid range of [16,4096]

2009-10-16 10:47:32 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/qtmux/ftypcc.h:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmux.h:
	* gst/qtmux/gstqtmuxmap.c:
	* gst/qtmux/gstqtmuxmap.h:
	  gppmux: Add support for 3gr6
	  Keep track of the chunk durations to be able to add 3gr6
	  brand if it is a faststart file and the longest chunk is
	  smaller than a sec. Implemented according to 3gpp
	  TS 26.244 v6.4.0 (2005-09)
	  Fixes #584361

2009-10-15 21:11:16 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/qtmux/gstqtmux.c:
	  qtmux: Only push ftyp later (in faststart mode)
	  In faststart mode, there is no need to send the ftyp
	  right at the beginning of the stream. Waiting and sending it
	  only later (when the moov atom is ready to be sent) provides
	  us with more information about the stream and we can better
	  select the compatible brands.

2009-10-15 17:51:39 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/qtmux/gstqtmux.c:
	  qtmux: Improve error message
	  Improve error message when we can't get or estimate the
	  timestamp/duration of a buffer

2009-10-26 00:42:16 +0000  Jan Schmidt <thaytan@noraisin.net>

	* win32/common/config.h:
	  win32: Commit bumped version number

2009-10-24 16:31:26 -0400  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/camerabin/camerabingeneral.c:
	  camerabin: fix build

2009-10-19 15:54:29 +0300  Teemu Katajisto <ext-teemu.katajisto@nokia.com>

	* tests/check/elements/camerabin.c:
	  camerabin: fix for gstreamer core unit test framework update
	  Set camerabin state to NULL in the each test case end.

2009-10-19 14:54:59 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabinphotography.c:
	* tests/check/elements/camerabin.c:
	* tests/examples/camerabin/gst-camera-perf.c:
	* tests/examples/camerabin/gst-camera.c:
	  camerabin: remove abbreviations from the property names. Fixes #573370 (partialy)
	  Also rename their use in tests and examples.

2009-10-16 11:50:22 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst-libs/gst/interfaces/Makefile.am:
	* gst/camerabin/Makefile.am:
	* gst/selector/Makefile.am:
	  build: use gst-glib-gen.mak to fix the glib build rules.
	  The build rules in glib-gen.mak were using pattern rules in a non save way.

2009-10-16 11:21:05 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/cog/.gitignore:
	* tests/check/elements/.gitignore:
	* tests/examples/camerabin/.gitignore:
	  gitignore: ignore more

2009-10-15 17:45:00 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: set camerabin to READY before accessing the elements

2009-10-14 17:42:43 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/timidity/gstwildmidi.c:
	  wildmidi: use G_DIR_SEPARATOR_S instead of hardcoded slashes

2009-10-15 17:17:41 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: code cleanups
	  Align element initialisation. This should be re-thought, g_object_new zeros things already.
	  Harmonize the element getters for the src/sinks to return what we actualy use.

2009-10-15 16:41:12 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/camerabinpreview.c:
	* gst/camerabin/camerabinpreview.h:
	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabin.h:
	  camerabin: implement video preview creation
	  Completes preview creation mechanism to be able to provide a preview
	  image for video clips too.

2009-10-15 16:15:03 +0300  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* gst/camerabin/camerabingeneral.c:
	* gst/camerabin/camerabingeneral.h:
	* gst/camerabin/camerabinvideo.c:
	* gst/camerabin/gstcamerabin.c:
	  camerabin: set camerabin default sources/sinks like in playbin2. Fixes #574434
	  This uses same approach like in playbin, namely checking for user defined
	  element, auto{audio,video}{sink,src} and finally DEFAULT_{AUDIO,VIDEO}{SRC,SINK}
	  defines from config.h.

2009-10-15 15:59:23 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/ladspa/gstladspa.c:
	  ladspa: don't reference freed pointer when building portnames

2009-10-08 15:18:04 -0700  David Schleef <ds@schleef.org>

	* ext/cog/cog.orc:
	* ext/cog/cogvirtframe.c:
	* ext/cog/cogvirtframe.h:
	* ext/cog/generate_tables.c:
	* ext/cog/gstcogcolorspace.c:
	* ext/cog/gstlogoinsert.c:
	  cog: Add color matrix to RGB->YCbCr conversion

2009-10-08 14:33:28 -0700  David Schleef <ds@schleef.org>

	* ext/cog/Makefile.am:
	* ext/cog/cogframe.h:
	* ext/cog/cogvirtframe.c:
	* ext/cog/cogvirtframe.h:
	* ext/cog/generate_tables.c:
	* ext/cog/gstcogcolorspace.c:
	* ext/cog/gstlogoinsert.c:
	  cog: Add color matrix selection to cogcolorspace
	  Eventually hook it up to caps via gstvideo

2009-10-08 13:24:36 -0700  David Schleef <ds@schleef.org>

	* ext/cog/cog.orc:
	* ext/cog/cogvirtframe.c:
	* ext/cog/cogvirtframe.h:
	* ext/cog/gstcogcolorspace.c:
	  cog: Improve RGB<->YCbCr matrixing
	  YCbCr->RGB now has a 'bits' setting, which controls the number
	  of bits used for the matrix coefficients.  Choices are 6 or 8.
	  6 is low quality, but faster.
	  RGB->YCbCr now works.  Always works in 8 bit, since it's the same
	  speed as 6 bit.

2009-10-08 13:23:53 -0700  David Schleef <ds@schleef.org>

	* ext/cog/cog.orc:
	* ext/cog/cogvirtframe.c:
	  cog: Fix AYUV unpacking

2009-10-07 16:30:26 -0700  David Schleef <ds@schleef.org>

	* ext/cog/cog.orc:
	* ext/cog/cogvirtframe.c:
	  cog: hacking to improve matrix quality

2009-10-24 20:33:27 +0200  Edward Hervey <bilboed@bilboed.com>

	* configure.ac:
	  configure.ac: And back to development we go

=== release 0.10.16 ===

2009-10-23 23:16:45 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-adpcmdec.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-asfmux.xml:
	* docs/plugins/inspect/plugin-assrender.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dirac.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-frei0r.xml:
	* docs/plugins/inspect/plugin-gmedec.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-hdvparse.xml:
	* docs/plugins/inspect/plugin-id3tag.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-kate.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mimic.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegpsmux.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-pnm.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rsvg.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-shapewipe.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videomeasure.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* gst-plugins-bad.doap:
	* win32/common/config.h:
	  Release 0.10.16

2009-10-23 23:15:31 +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/ky.po:
	* po/lt.po:
	* po/lv.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-23 11:00:53 +0300  Kaj-Michael Lang <milang@tal.org>

	* ext/zbar/gstzbar.c:
	  Fix start/stop typo

2009-10-23 10:48:25 +0100  Thomas Green <tom78999@gmail.com>

	* configure.ac:
	  configure: also build neonhttpsrc with libneon-29.x
	  Fixes #599332.

2009-10-23 10:18:12 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/schroedinger/gstschroenc.c:
	  schroenc: Use guint64 instead of uint64_t. Fixes #599355

2009-10-22 14:00:10 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  Revert "dshowsrcwrapper: cleanup push buffer callback"
	  gst-plugins-bad is still frozen for general commits.
	  This reverts commit 2e4131926f2726fe8fee5c39dd9357f14764d0cb.

2009-10-22 14:26:30 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowsrcwrapper: cleanup push buffer callback

2009-10-22 11:43:17 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegpsmux/Makefile.am:
	  mpegpsmux: some minor build fixes
	  CLFAGS -> CFLAGS, and fix order of variables while we're at it.

2009-10-22 00:50:37 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	  autoconvert: Take the object lock fewer times
	  When starting up and creating the list of element factories, only
	  take the object lock twice instead of 3 times.

2009-10-21 23:06:56 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	  autoconvert: Don't hold the object lock when pushing
	  When pushing out cached events, don't hold the object lock. Avoids
	  deadlocks starting up DVD playback.

2009-10-22 11:10:28 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/faac/Makefile.am:
	  faac: Link with libgstbase for GstAdapter
	  Fixes bug #599272.

=== release 0.10.15 ===

2009-10-21 17:14:34 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-adpcmdec.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-asfmux.xml:
	* docs/plugins/inspect/plugin-assrender.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dirac.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-frei0r.xml:
	* docs/plugins/inspect/plugin-gmedec.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-hdvparse.xml:
	* docs/plugins/inspect/plugin-id3tag.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-kate.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mimic.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegpsmux.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-pnm.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rsvg.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-shapewipe.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videomeasure.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* gst-plugins-bad.doap:
	* win32/common/config.h:
	  release 0.10.15

2009-10-21 16:51:09 +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/ky.po:
	* po/lt.po:
	* po/lv.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 14:37:02 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/id3tag/id3tag.c:
	  id3tag: actually write image to APIC tag.

2009-10-16 12:30:59 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* win32/common/config.h:
	  0.10.14.4 pre-release

2009-10-16 11:53:14 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/vdpau/Makefile.am:
	  dist: Include vdpsink.h in the tarball to fix the dist.

2009-10-16 11:08:05 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/dts/gstdtsdec.c:
	  dtsdec: Use gst_buffer_ref/unref, not gst_object_ref/unref
	  properly fixes: #598274

2009-10-16 01:26:10 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/autoconvert/gstautoconvert.c:
	  autoconvert: Use gst_pad_peer_accept_caps instead of gst_pad_set_caps.
	  gst_pad_set_caps on the internal source pad always succeeds, because
	  caps propagate to the peer with buffers, not immediately. Using
	  gst_pad_peer_accept_caps properly checks whether the actual
	  sub-element can accept caps when they change.
	  https://bugzilla.gnome.org/show_bug.cgi?id=575568

2009-10-16 01:09:49 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Re-send audio stream select on re-configuration
	  When the layout of the audio streams changes, re-send the current
	  audio stream selection event, in order to trigger switching to the
	  new stream properly.
	  https://bugzilla.gnome.org/show_bug.cgi?id=575568

2009-10-16 00:50:31 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Fix a small flaw - if any audio stream exists, use it
	  Don't create a dummy audio stream if only non-AC3 tracks exist.

2009-10-16 10:16:33 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From 85d1530 to 0702fe1

2009-10-15 23:48:53 +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/ky.po:
	* po/lt.po:
	* po/lv.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.14.3 pre-release

2009-10-14 11:06:46 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsndec.c:
	  resindvd: Fix decoder pad template to allow LPCM
	  The pad template in the new switching decoder is too restrictive,
	  preventing the LPCM decoder from being selected.
	  https://bugzilla.gnome.org/show_bug.cgi?id=575568

2009-10-14 10:41:38 +0200  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From a3e3ce4 to 85d1530

2009-10-13 13:05:50 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnaudiomunge.c:
	  resindvd: Don't leak a reference to the parent in rsnaudiomunge
	  Don't leak a reference to the pad parent in the sink pad event handler
	  in rsnaudiomunge.
	  https://bugzilla.gnome.org/show_bug.cgi?id=598263

2009-10-13 13:04:47 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/dts/gstdtsdec.c:
	  dtsdec: Fix reference leak on all input buffers in 'dvd mode'
	  https://bugzilla.gnome.org/show_bug.cgi?id=598274

2009-10-13 16:01:26 +0200  Peter Christoffersen <gnome-bugzilla@plyt.dk>

	* ext/faad/gstfaad.c:
	  faad2: Don't leak element reference in the setcaps function
	  Fixes bug #598139.

2009-10-12 14:27:57 +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/ky.po:
	* po/lt.po:
	* po/lv.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.14.2 pre-release

2009-10-12 12:29:44 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/faad/gstfaad.c:
	  faad: fixes warning in macosx snow leopard

2009-10-12 09:06:37 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/jack/gstjackaudiosink.c:
	* ext/jack/gstjackaudiosrc.c:
	  jack: ensure segtotal is at least 2
	  Not only adjust buffer-time and avoid segtotal=0, but instead ensure segtotal is
	  atleast 2. Do same change on jacksrc. We could also check the latency and buffer
	  time configured by the client and adjust buffer-time so that we get to the same
	  number of segments.

2009-10-12 00:51:27 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/jack/gstjackaudiosink.c:
	  jack: don't crash in ringbuffer with SIGFPE on small buffer-times
	  Jack overrides user-specified latency-time with the one it gets from jack
	  itself. It also needs to adjust buffer-time somewhat to avoid segtotal being 0

2009-10-11 22:10:04 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadataexif.c:
	  metadata: init variables
	  metadatamux_exif_get_exif_from_tag() does not neccesarily init the passed
	  variables.

2009-10-03 21:35:02 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst-libs/gst/signalprocessor/gstsignalprocessor.c:
	  signalprocessor: use the type define like everywhere else

2009-10-03 21:31:55 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst-libs/gst/signalprocessor/gstsignalprocessor.c:
	  signalprocessort: register debug category just once
	  Previously we were trying to register it for every subclass.

2009-10-11 14:10:59 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/soundtouch/gstbpmdetect.cc:
	* ext/soundtouch/gstpitch.cc:
	  soundtouch: fixes warnings on macosx snow leopard

2009-10-11 14:02:26 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/schroedinger/gstschrodec.c:
	* ext/schroedinger/gstschroenc.c:
	* ext/schroedinger/gstschroparse.c:
	  schroedinger: fix warnings on macosx snow leopard

2009-10-11 13:56:43 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxpng.c:
	  metadata: fix warnings in macosx snow leopard

2009-10-11 13:51:58 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/libmms/gstmms.c:
	  mms: fixes warning in macosx snow leopard

2009-10-11 13:46:00 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/dirac/gstdiracenc.cc:
	  dirac: fix warning in macosx snow leopard

2009-10-11 13:13:56 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/nuvdemux/gstnuvdemux.c:
	* gst/speed/gstspeed.c:
	  speed: fix warnings in macosx snow leopard

2009-10-11 13:07:19 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegvideoparse/mpegvideoparse.c:
	  mpegvideoparse: fix warning in macosx snow leopard

2009-10-11 12:56:29 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegdemux: fix warnings in macosx snow leopard

2009-10-11 11:35:23 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/dtmf/gstrtpdtmfdepay.c:
	  dtmf: fix warnings in macosx snow leopard

2009-10-11 11:27:08 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/amrparse/gstamrparse.c:
	* gst/amrparse/gstbaseparse.c:
	  amrparse: fix warnings in macosx snow leopard

2009-10-11 11:22:11 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/aacparse/gstaacparse.c:
	* gst/aacparse/gstbaseparse.c:
	  aacparse: fix warnings in macosx snow leopard

2009-10-11 11:14:16 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst-libs/gst/video/gstbasevideodecoder.c:
	* gst-libs/gst/video/gstbasevideoencoder.c:
	* gst-libs/gst/video/gstbasevideoparse.c:
	  basevideo: fix warnings in macosx snow leopard

2009-10-09 13:18:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	* gst/dvdspu/gstdvdspu.c:
	  assrender/dvdspu: Increase ranks to PRIMARY

2009-10-09 09:19:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: Include SubPicture in the classification

2009-10-09 09:18:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  assrender: Make classification a bit more accurate
	  Change from "Filter/Effect/Video" to "Mixer/Video/Overlay/Subtitle"

2009-10-08 19:51:31 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/capssetter.c:
	  capssetter: add unit test

2009-10-08 11:00:49 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 19fa4f3 to a3e3ce4

2009-10-07 16:29:08 -0700  David Schleef <ds@schleef.org>

	* ext/schroedinger/gstschroparse.c:
	  schro: remove unused include of liboil.h

2009-10-07 15:43:22 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadataxmp.c:
	  metadata: don't copy trailing NULL of strings in xmp metadata
	  Also useing g_strdup, fixes the malloc <-> g_free mismatch.

2009-10-07 15:26:12 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/cog/gstcms.c:
	* ext/directfb/dfb-example.c:
	* ext/libmms/gstmms.c:
	* ext/resindvd/resindvdsrc.c:
	* gst/mpegtsmux/mpegtsmux.c:
	* gst/videomeasure/gstvideomeasure_collector.c:
	* sys/dvb/gstdvbsrc.c:
	* tests/examples/camerabin/gst-camera-perf.c:
	  build: fprintf, sprintf, sscanf need stdio.h

2009-09-18 18:45:09 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/pipelines/.gitignore:
	* tests/check/pipelines/mimic.c:
	  tests: Add test for mimic elements

2009-09-18 17:47:58 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Remove invalid todo

2009-10-06 18:36:15 +0200  Sebastian Pölsterl <sebp@k-d-w.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: Ignore emphasis on/off bytes, and do fallback string encoding.
	  For fallback, try ISO 8859-9 encoding if ISO 6637 failed.
	  Add more debug calls.

2009-10-05 17:04:28 -0700  David Schleef <ds@schleef.org>

	* ext/dirac/gstdiracenc.cc:
	  dirac: various fixes
	  - Work around BaseEncoder bug not tracking frame index early.
	  - Fix conversion of UYVY, YUY2, AYUV to internal format.

2009-10-05 16:16:34 -0700  David Schleef <ds@schleef.org>

	* gst-libs/gst/video/gstbasevideoencoder.c:
	  basevideo: Revert "Call GstBaseVideoEncoder::start/stop during pad [de]activation."
	  This reverts commit 4c087bcb072dcc9847b11c00123cf93c5e541dcb.
	  The reverted commit changes the order that set_format() and start()
	  are called, which is incorrect.  The correct order is set_format(),
	  start(), handle_frame()..., stop()

2009-10-05 13:33:22 -0700  David Schleef <ds@schleef.org>

	* gst-libs/gst/video/gstbasevideoencoder.c:
	  basevideo: Free frame using utility function

2009-10-05 21:11:18 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/dirac/gstdiracenc.cc:
	  diracenc: Fix caps unlinked negotiation
	  move caps related code to gst_dirac_enc_set_format, and
	  use the source pad template to get allowed caps when there is
	  no peer pad.

2009-10-05 19:49:06 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/schroedinger/gstschroenc.c:
	  schroenc: When the source pad isn't linked, use the pad template
	  For negotiation, use the source pad pad template when it doesn't
	  have a peer.

2009-10-05 15:47:58 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst-libs/gst/video/gstbasevideoutils.c:
	  basevideo: Fail if caps don't contain a framerate field
	  Return false from the caps parsing function if there is no framerate
	  field in the provided caps

2009-10-05 11:15:03 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/id3tag/id3tag.c:
	  id3mux: Write UTF-16 byte order marker correctly.

2009-10-05 16:39:37 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* ext/schroedinger/gstschroenc.c:
	  schroenc: move caps related code to gst_schro_enc_set_format.

2009-10-05 15:28:47 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* configure.ac:
	  Depend on gtk-x11 explicitly.
	  Fixes the build on OSX if gtk+-quartz is installed.

2009-10-05 15:26:15 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* sys/qtwrapper/audiodecoders.c:
	  Fix compilation warning with gcc-4.2.

2009-10-05 11:47:56 +0100  Jan Schmidt <thaytan@noraisin.net>

	* tests/check/elements/.gitignore:
	  Add faac test binary to the git ignores

2009-10-05 11:47:01 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/dirac/Makefile.am:
	* ext/schroedinger/Makefile.am:
	  Use GST_CXXFLAGS and GST_CFLAGS to pull in local gst-libs includes.
	  Move the GST_CXXFLAGS and GST_CFLAGS to the start of the includes set
	  to pull in the local gst-libs from there first, instead of listing
	  it explicitly.

2009-10-05 11:02:16 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/dirac/Makefile.am:
	* ext/schroedinger/Makefile.am:
	  Fix CFLAGS and LDFLAGS for dirac/schrodinger
	  Include the local headers and libs before ones outside this
	  module.

2009-10-02 16:35:09 -0700  David Schleef <ds@schleef.org>

	* ext/dirac/Makefile.am:
	* ext/dirac/gstdiracenc.cc:
	* gst-libs/gst/video/gstbasevideoencoder.c:
	  dirac: convert to BaseVideoEncoder

2009-09-27 14:25:39 -0700  David Schleef <ds@schleef.org>

	* ext/cog/Makefile.am:
	* ext/cog/cogvirtframe.c:
	* ext/cog/cogvirtframe.h:
	* ext/cog/gstcms.c:
	* ext/cog/gstcms.h:
	* ext/cog/gstcogcolorspace.c:
	* ext/cog/gstcogscale.c:
	* ext/cog/gstcolorconvert.c:
	* ext/cog/gstlogoinsert.c:
	  cog: hacking
	  Add RGB to YCbCr matrixing
	  Add tiny color management system (CMS) for video
	  Add quality level for colorspace

2009-09-25 18:14:28 -0700  David Schleef <ds@schleef.org>

	* ext/cog/cogvirtframe.c:
	  cog: reset cache instead of returning NULL
	  Returning NULL makes things crash.  Resetting the cache
	  makes things run slow.  Still an underlying bug somewhere,
	  but not critical.

2009-09-23 13:17:54 -0700  David Schleef <ds@schleef.org>

	* ext/celt/gstceltdec.c:
	* ext/celt/gstceltdec.h:
	  celtdec: Handle lookahead, discont

2009-10-02 19:08:21 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/faac/gstfaac.c:
	* gst/videomeasure/gstvideomeasure_ssim.c:
	* tests/examples/camerabin/gst-camera-perf.c:
	  build: add missing stdlib include to fix the build

2009-10-02 14:25:50 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* gst-libs/gst/video/gstbasevideodecoder.c:
	* gst-libs/gst/video/gstbasevideodecoder.h:
	  Add GstBaseVideoDecoder::set_sink_caps vfunc.

2009-10-02 12:40:02 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* gst-libs/gst/video/gstbasevideodecoder.c:
	  Call GstBaseVideoDecoder::start/stop during pad [de]activation.

2009-10-01 16:06:02 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* gst-libs/gst/video/gstbasevideoencoder.c:
	  Don't ignore the value returned from GstBaseVideoEncoder::set_format.

2009-10-01 16:12:15 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* ext/schroedinger/gstschroenc.c:
	  Fix schroenc for refcount change in GstBaseVideoEncoder.

2009-10-01 15:50:55 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* gst-libs/gst/video/gstbasevideoencoder.c:
	  Unref frame->sink_buffer in gst_base_video_encoder_finish_frame

2009-10-01 16:11:46 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* ext/schroedinger/gstschroenc.c:
	  Make gst_schro_enc_handle_frame return GstFlowReturn.

2009-10-01 16:26:22 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* gst-libs/gst/video/gstbasevideoencoder.c:
	* gst-libs/gst/video/gstbasevideoencoder.h:
	  Make GstBaseVideoEncoder::handle_frame return GstFlowReturn

2009-10-01 16:24:50 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* gst-libs/gst/video/gstbasevideoencoder.c:
	  Call GstBaseVideoEncoder::start/stop during pad [de]activation.

2009-10-02 12:04:28 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* gst/videosignal/gstvideodetect.c:
	  Fix a compiler warning.

2009-10-02 13:02:31 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/zbar/gstzbar.c:
	* ext/zbar/gstzbar.h:
	  zbar: post a message instead of printing the code to stdout
	  Docment the message format that we sent. Add a property to turn message sending off.

2009-10-02 11:23:49 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-adpcmdec.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-amrwbenc.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-frei0r.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-id3tag.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-lv2.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegpsmux.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rsvg.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-shapewipe.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-timidity.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  docs: update plugin doc scan files

2009-10-02 11:22:48 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/zbar/gstzbar.c:
	  zbar: cleanups
	  Use start/stop to manage the cache. Few code cleanups and comments.

2009-10-02 11:09:11 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-cog.xml:
	* docs/plugins/inspect/plugin-pnm.xml:
	* docs/plugins/inspect/plugin-videomeasure.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-zbar.xml:
	  docs: add zbar plugin

2009-10-02 10:37:43 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/Makefile.am:
	  zbar: add new plugin to the build here too

2009-10-02 10:32:37 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  docs: keep list sorted

2009-10-02 07:46:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure.ac: Fix build system, zbar is no dependency-less plugin

2009-10-01 23:51:04 +0300  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* ext/zbar/Makefile.am:
	* ext/zbar/gstzbar.c:
	* ext/zbar/gstzbar.h:
	  zbar: wrap zbar library as a image analyzer
	  zbar is a bar code scanner library.

2009-10-01 17:19:54 +0100  Christian F.K. Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	* win32/MANIFEST:
	  update spec file with latest changes and remove file from MANIFEST which isn't there any longer

2009-09-02 15:26:15 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* ext/metadata/metadataxmp.c:
	  metadata: change XMP location tags to start with capitals

2009-08-25 10:10:15 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: fix deadlock when error occurs at video recording startup

2009-08-27 14:35:26 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: handle preview-caps only in image mode and only when they change
	  This prevents camerabin to create preview pipeline every time when
	  application re-sets the same caps again.

2009-08-25 09:35:07 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabin.h:
	  camerabin: don't send multiple EOS events to video pipeline

2009-08-22 17:09:39 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabinphotography.c:
	  camerabin: fix scene mode setting
	  Camerabin caches photography settings, but it didn't take into account
	  that scene mode setting may change other settings as well. So, config
	  needs to be read back from device after scene mode is set.

2009-08-21 09:14:31 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: allow mode parameter setting in NULL state

2009-08-20 17:55:26 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabin.h:
	  camerabin: allow capture resolution to be set in NULL state

2009-09-10 15:16:23 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: fix image queue parameter setting
	  Camerabin incorrectly used G_GUINT64_CONSTANT macro for setting
	  "max-size-buffers" and "max-size-bytes" properties in image queue,
	  even when they aren't 64bit integers.

2009-08-12 11:10:55 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: fix warning with g_object_get and join separate g_object_sets into one

2009-07-31 11:57:12 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: reset active-pad in output-selector after READY state
	  Camerabin sets itself to READY state during resolution change. This
	  operation makes output-selector to forget its currently active pad,
	  so it must be set again after state change.

2009-06-29 15:23:25 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: don't reset capsfilters or zoom if error occurs
	  If an error occurs, application should set pipeline to NULL, and updating
	  zoom can actually block message handling if video device driver has failed
	  and video src element supports zooming using photography interface and S_CROP.

2009-10-01 17:17:03 +0300  René Stadler <rene.stadler@nokia.com>

	* gst/videomeasure/Makefile.am:
	  videomeasure: link with libm

2009-10-01 15:09:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdbin.h:
	  resindvdbin: If no suitable audio decoder is found play the DVD without audio

2009-10-01 14:54:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/resindvdbin.c:
	  resindvdbin: Also post missing element messages if any other element is missing

2009-10-01 14:52:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/Makefile.am:
	* ext/resindvd/resindvdbin.c:
	  resindvdbin: Post missing decoder messages if one is missing
	  For video this is an error, for audio only a warning.

2009-10-01 14:40:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/resindvdbin.c:
	  resindvdbin: Use the new video decoder
	  This makes resindvdbin work with other MPEG video decoders than
	  mpeg2dec, for example the FFMPEG or Fluendo MPEG decoders.

2009-10-01 14:37:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/Makefile.am:
	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/rsnaudiodec.c:
	* ext/resindvd/rsnaudiodec.h:
	* ext/resindvd/rsndec.c:
	* ext/resindvd/rsndec.h:
	  resindvdbin: Rename files

2009-10-01 14:36:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/rsnaudiodec.c:
	* ext/resindvd/rsnaudiodec.h:
	  resindvdbin: Refactor audio decoder and add a (MPEG) video decoder

2009-10-01 13:29:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/rsnaudiodec.c:
	  rsnaudiodec: Get desired sink caps from the pad template

2009-10-01 10:54:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/rsvg/gstrsvgdec.c:
	  rsvg: Unpremultiply Cairo's ARGB to match GStreamer's

2009-09-25 12:20:50 +0400  Руслан Ижбулатов <lrn1986@gmail.com>

	* gst/videomeasure/gstvideomeasure_collector.c:
	  Take offset gaps into account.
	  Prevents measurecollector from crashing when frame numbers are not consecutive.
	  Fixes bug #596285.

2009-09-29 15:47:13 +0200  Marc-André Lureau <mlureau@flumotion.com>

	* gst/qtmux/atoms.c:
	  qtmux: fix flags_as_uint to flags[]

2009-09-30 15:47:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/resindvdbin.c:
	  resindvdbin: Create external srcpads from the static pad templates

2009-09-22 12:16:37 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstspu-pgs.c:
	  dvdspu: Improve PGS parsing
	  Improve (slightly) the interpretation of PGS set-window blocks
	  to avoid printing warnings about unused bytes when there are multiple
	  window definitions.

2009-09-22 01:16:47 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstspu-pgs.c:
	  dvdspu: Fix rendering and add guards
	  Fix the rendering when we hit the right hand side of the display
	  area, by resetting to the correct X coordinate, and add some more
	  guards against bad PGS data.

2009-09-08 00:01:28 +0300  René Stadler <mail@renestadler.de>

	* gst/videosignal/gstvideodetect.c:
	* gst/videosignal/gstvideomark.c:
	* gst/videosignal/gstvideomark.h:
	  videosignal: change pattern data type to uint64, add property and message field
	  Keeps the old uint typed value support for compatibility.

2009-09-06 05:36:46 +0300  René Stadler <mail@renestadler.de>

	* gst/videosignal/gstvideodetect.c:
	* gst/videosignal/gstvideomark.c:
	  videosignal: allow pattern-count property to be 0

2009-09-04 22:50:34 +0300  René Stadler <mail@renestadler.de>

	* gst/videosignal/gstvideodetect.c:
	* gst/videosignal/gstvideomark.c:
	  videosignal: add support for packed YUV formats

2009-09-04 22:30:27 +0300  René Stadler <mail@renestadler.de>

	* gst/videosignal/gstvideodetect.c:
	* gst/videosignal/gstvideodetect.h:
	* gst/videosignal/gstvideomark.c:
	* gst/videosignal/gstvideomark.h:
	  videosignal: add support for all planar YUV formats, using gstvideo

2009-09-06 02:44:05 +0300  René Stadler <mail@renestadler.de>

	* gst/videosignal/gstvideodetect.c:
	* gst/videosignal/gstvideomark.c:
	  videosignal: add bound checks

2009-09-04 16:25:05 +0300  René Stadler <mail@renestadler.de>

	* gst/videosignal/gstvideodetect.c:
	* gst/videosignal/gstvideomark.c:
	  videosignal: remove unused macros

2009-09-26 17:23:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/resindvdbin.c:
	  resindvdbin: Use gst_caps_can_intersect() because it's faster

2009-09-26 17:21:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/rsnaudiodec.c:
	* ext/resindvd/rsnaudiodec.h:
	  rsnaudiodec: Use ghost pads and always forward application/x-gst-dvd events immediately
	  Fixes bug #582779.

2009-09-26 17:19:32 +0200  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/rsnaudiodec.c:
	  resindvdbin: Use autoconvert in rsnaudiodec and build a list of possible decoders
	  Partially fixes bug #582779.

2009-09-25 16:54:10 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/amrparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.h:
	* gst/flacparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.h:
	  baseparse: sync baseparse change

2009-09-25 17:02:53 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/aacparse/gstaacparse.c:
	* gst/aacparse/gstbaseparse.c:
	* gst/aacparse/gstbaseparse.h:
	  aacparse: forego (bogus) parsing of already parsed (raw) input

2009-09-25 11:07:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Use new single iterator for the internally linked pads
	  This fixes a deadlock and removes some useless code.

2009-09-25 11:04:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/rsnstreamselector.c:
	  rsnstreamselector: Use new single object iterator for the internally linked pads
	  This prevents an ugly deadlock.

2009-09-25 10:50:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/rsnbasesrc.c:
	  resindvdbin: Don't block the external ghost pads but only their targets

2009-09-24 11:26:29 -0700  David Schleef <ds@schleef.org>

	* ext/cog/Makefile.am:
	  cog: use BUILT_SOURCES instead of temp library

2009-09-23 12:32:54 +0200  Alessandro Decina <alessandro.d@gmail.com>

	* gst/adpcmdec/adpcmdec.c:
	* gst/asfmux/gstasfobjects.c:
	* gst/asfmux/gstasfparse.c:
	* gst/h264parse/gsth264parse.c:
	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mxf/mxfmpeg.c:
	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirenenc.c:
	  Fix warnings with gcc 4.0.1.

2009-09-22 12:25:13 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: fix --disable-external again

2009-09-22 13:44:14 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/lv2/gstlv2.c:
	* ext/lv2/gstlv2.h:
	  Revert "LV2 preset support."
	  This reverts commit c95f59cd2dc129899b37fecaa52c89db3d8a5ef8.

2009-09-22 13:43:57 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/lv2/gstlv2.c:
	  Revert "Fix property index when setting preset."
	  This reverts commit 0a6b22b1917af8a89db1981a0f5df3dcee78b1dd.

2009-09-22 13:23:25 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/cog/Makefile.am:
	  cog: fix the build
	  Add a uninstalled convinience libtool library containing the generated sources.
	  Add that as a dependency to the plugin.

2009-08-17 17:21:41 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Fix property index when setting preset.

2009-08-17 17:06:40 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	* ext/lv2/gstlv2.h:
	  LV2 preset support.

2009-09-22 08:11:36 +0200  Lutz Mueller <lutz@topfrose.de>

	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmdec.h:
	* gst/pnm/gstpnmutils.c:
	  pnm: Handle ASCII encoded PNM data that is split over multiple buffers
	  Also:
	  - unref buffers after gst_buffer_span
	  - fix scanning of header if header data is split over several buffers
	  Fixes bug #595700.

2009-09-21 11:33:50 -0700  David Schleef <ds@schleef.org>

	* ext/cog/cogtables.c:
	* ext/cog/cogvirtframe.c:
	* ext/cog/cogvirtframe.h:
	* ext/cog/generate_tables.c:
	* ext/cog/gstcogscale.c:
	  cog: Add quality setting to cogscale

2009-09-21 09:35:30 -0700  David Schleef <ds@schleef.org>

	* ext/cog/Makefile.am:
	* ext/cog/cog.orc:
	* ext/cog/cogvirtframe.c:
	  cog: (re-)implement 1/2/4-tap scaling

2009-09-21 09:30:44 -0700  David Schleef <ds@schleef.org>

	* ext/cog/cogframe.h:
	* ext/cog/cogvirtframe.c:
	  cog: Fix the virtual frame line cache

2009-09-21 09:49:23 -0700  David Schleef <ds@schleef.org>

	* ext/celt/gstceltenc.c:
	  celtenc: VBR requires celt-0.6.0

2009-09-21 12:06:55 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: Specify that psi table is static const.
	  This avoids re-allocating it every single time we go into it.
	  Roughly 10% performance boost in overall tsparse processing time.

2009-09-20 17:53:24 +0100  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	  Revert "mpegtsparse: use fixed size array rather than dynamically allocating"
	  This reverts commit ae75b6f3666512887ae526f16a1ad41bbf2517ac.

2009-09-20 15:30:59 +0100  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	  mpegtsparse: use fixed size array rather than dynamically allocating

2009-09-20 15:18:46 +0100  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: replace streams hashtable with an array of streams

2009-09-20 14:08:50 +0100  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: unref caps on dispose, reset packet size on _reset

2009-09-20 13:15:14 +0100  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: make sure packetsize is set on caps of buffers

2009-09-20 12:38:00 +0100  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	  mpegtsparse: detect packetsize and don't just assume 188 bytes.

2009-09-19 14:10:28 -0700  David Schleef <ds@schleef.org>

	* ext/celt/gstceltenc.c:
	* ext/celt/gstceltenc.h:
	  celtenc: Add complexity, cbr, and max-bitrate properties

2009-09-19 13:32:19 -0700  David Schleef <ds@schleef.org>

	* configure.ac:
	* ext/cog/Makefile.am:
	* ext/cog/cog.orc:
	* ext/cog/cogframe.c:
	* ext/cog/cogorc.c:
	* ext/cog/cogorc.h:
	* ext/cog/cogvirtframe.c:
	* ext/cog/gstcogcolorspace.c:
	  cog: autogenerate code, colorspace improvements

2009-09-18 20:27:44 -0700  David Schleef <ds@schleef.org>

	* ext/cog/cogframe.c:
	* ext/cog/cogvirtframe.c:
	* ext/cog/gstcog.c:
	* ext/cog/gstcogcolorspace.c:
	* ext/cog/gstcogdownsample.c:
	* ext/cog/gstcogfilter.c:
	* ext/cog/gstcogmse.c:
	* ext/cog/gstcogutils.c:
	* ext/cog/gstcolorconvert.c:
	* ext/cog/gstlogoinsert.c:
	  cog: remove // comments

2009-09-16 20:39:52 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: Don't use GstIterator, do change detection ourselves.
	  Using a GstIterator is slow because we have to create/destroy that
	  iterator every single time.
	  We just do the threadsafe cookie check and list iteration ourselves.

2009-09-15 23:18:43 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: Avoid type-checking casts in tight loops

2009-09-15 23:12:33 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	* gst/mpegdemux/mpegtsparse.c:
	  mpegtspacketizer: Make next_packet() return an enum.
	  This avoids calling an extra gst_adapter_available() in a tight loop.

2009-09-15 23:11:01 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: More branch prediction macros

2009-09-15 20:49:39 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtsparse.c:
	  mpegtspacketizer: Spread branch prediction macros

2009-09-15 19:16:36 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse/mpegtspacketizer: Register and use GQuark for structures.

2009-09-15 18:57:25 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	* gst/mpegdemux/mpegtsparse.c:
	  mpegtspacketizer: Initialize debugging in _get_type
	  There's no need for an extra function since all debuggin will require
	  a MpegTSPacketizer which means that the GType will be created, therefore
	  move the debug category initialization there.

2009-09-15 23:09:21 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtspacketizer: memset structure instead of individually setting fields to 0

2009-09-15 23:08:13 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtspacketizer: Remove g_return_if_fail
	  It's overkill for code only used by one element.

2009-09-15 19:44:46 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtsparse.c:
	  mpegtspacketizer/parse: Don't use gst_structure_to_string() for debugging.
	  There's GST_PTR_FORMAT for that, and too bad for the systems that don't have
	  support for that. It just costs too much cpu.

2009-09-15 19:00:30 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegtsparse/.gitignore:
	* gst/mpegtsparse/Makefile.am:
	* gst/mpegtsparse/gstmpegdesc.c:
	* gst/mpegtsparse/gstmpegdesc.h:
	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtspacketizer.h:
	* gst/mpegtsparse/mpegtsparse.c:
	* gst/mpegtsparse/mpegtsparse.h:
	* gst/mpegtsparse/mpegtsparsemarshal.list:
	  gst: Remove dead mpegtsparse directory.
	  This was seriously confusing. Also, the code is in gst/mpegdemux/

2009-09-18 14:25:49 -0700  David Schleef <ds@schleef.org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/cog/Makefile.am:
	* ext/cog/cog.h:
	* ext/cog/cogframe.c:
	* ext/cog/cogutils.h:
	* ext/cog/cogvirtframe.c:
	* ext/cog/cogvirtframe.h:
	* ext/cog/gstcog.c:
	* ext/cog/gstcogcolorspace.c:
	* ext/cog/gstcogdownsample.c:
	* ext/cog/gstcogfilter.c:
	* ext/cog/gstcogmse.c:
	* ext/cog/gstcogscale.c:
	* ext/cog/gstcogutils.c:
	* ext/cog/gstcogutils.h:
	* ext/cog/gstcolorconvert.c:
	* ext/cog/gstlogoinsert.c:
	  cog: fixes to make cog work inside -bad

2009-09-18 15:06:57 -0700  David Schleef <ds@schleef.org>

	* gst/videomeasure/Makefile.am:
	  videomeasure: fix line endings

2009-09-18 15:06:36 -0700  David Schleef <ds@schleef.org>

	* gst/videomeasure/Makefile.am:
	  videomeasure: fix distcheck

2009-09-17 18:16:35 -0700  David Schleef <ds@schleef.org>

	* ext/schroedinger/gstschroenc.c:
	  schroenc: quiet debugging message in last commit

2009-09-17 18:15:28 -0700  David Schleef <ds@schleef.org>

	* ext/schroedinger/gstschroenc.c:
	  schroenc: Keep track of granule offset

2009-08-31 10:36:46 -0700  David Schleef <ds@schleef.org>

	* configure.ac:
	* ext/cog/Makefile.am:
	* ext/cog/cogframe.c:
	* ext/cog/cogframe.h:
	* ext/cog/cogorc.c:
	* ext/cog/cogorc.h:
	* ext/cog/cogvirtframe.c:
	* ext/cog/cogvirtframe.h:
	* ext/cog/gstcog.c:
	* ext/cog/gstcogcolorspace.c:
	* ext/cog/gstcogdownsample.c:
	* ext/cog/gstcogfilter.c:
	* ext/cog/gstcogmse.c:
	* ext/cog/gstcogscale.c:
	* ext/cog/gstcogutils.c:
	* ext/cog/gstcogutils.h:
	* ext/cog/gstcolorconvert.c:
	* ext/cog/gstlogoinsert.c:
	  Copy cog plugin and video library from cog project

2009-09-17 16:54:57 -0700  David Schleef <ds@schleef.org>

	* ext/schroedinger/gstschrodec.c:
	  schrodec: Fix resync bug due to adapter API change
	  gst_adapter_masked_scan_uint32() changed slightly from when
	  this element was in Schroedinger.  Oops.

2009-09-17 16:57:16 -0700  David Schleef <ds@schleef.org>

	* gst-libs/gst/video/gstbasevideodecoder.c:
	  basevideo: debug at new segment events

2009-09-17 16:54:14 -0700  David Schleef <ds@schleef.org>

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	  mpegtsdemux: Set DISCONT on buffers

2009-09-17 10:50:40 -0700  David Schleef <ds@schleef.org>

	* gst-libs/gst/video/gstbasevideodecoder.c:
	  basevideo: Add a warning

2009-09-17 10:49:13 -0700  David Schleef <ds@schleef.org>

	* ext/celt/gstceltenc.c:
	  celtenc: don't limit bit rate

2009-09-17 09:38:02 +0200  Lutz Mueller <lutz@topfrose.de>

	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmenc.c:
	  pnm: Add ASCII decoding support
	  ...and make the ASCII output of the encoder a bit more pretty.
	  Fixes bug #595409.

2009-09-17 09:35:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  pnm: Remove the experimental status from the pnm plugin

2009-08-14 18:08:56 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  More tolerate port group support, plugin cleanup.
	  Gracefully handle plugins with illegal groups that contain no symbol by
	  treating ports in that group normally (i.e. as if they weren't part of a
	  group).  The port groups spec mandates that groups have a valid unique
	  symbol, but plugins aren't perfect...
	  Make (conceptually) static plugin variables actually (C) static,
	  and clean up SLV2 related things with a GCC shared library destructor,
	  if GCC is in use.

2009-08-12 01:07:57 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Make mono warning visible in public documentation.

2009-08-12 01:03:32 -0400  Dave Robillard <dave@drobilla.net>

	* ext/ladspa/gstladspa.c:
	* ext/lv2/gstlv2.c:
	* ext/lv2/gstlv2.h:
	* gst-libs/gst/signalprocessor/gstsignalprocessor.c:
	* gst-libs/gst/signalprocessor/gstsignalprocessor.h:
	  Multi-channel support with channel positions.
	  This queries port roles from the LV2 data and converts it into GStreamer
	  channel positions.  This should allow any type of multi-channel plugin
	  (including beyond stereo, e.g. surround) to work fine in GStreamer,
	  and with elements that require channel positions to be explicitly stated.

2009-08-10 23:12:24 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Add documentation for LV2 element.

2009-08-10 23:04:47 -0400  Dave Robillard <dave@drobilla.net>

	* ext/ladspa/gstladspa.c:
	  Fix typo in LADSPA element documentation.

2009-07-21 15:45:06 -0400  Dave Robillard <dave@drobilla.net>

	* configure.ac:
	  Bump SLV2 dependency to 0.6.6.

2009-07-10 21:52:30 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/calf-lv2-port-groups.patch:
	* ext/lv2/swh-lv2-port-groups.patch:
	  Add swh and calf LV2 port group patches.

2009-07-03 20:00:11 -0400  Dave Robillard <dave@drobilla.net>

	* ext/ladspa/gstladspa.c:
	* ext/lv2/gstlv2.c:
	* ext/lv2/gstlv2.h:
	* gst-libs/gst/signalprocessor/gstsignalprocessor.c:
	* gst-libs/gst/signalprocessor/gstsignalprocessor.h:
	  Working multi-channel pads for LV2 plugins.

2009-06-27 00:25:38 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Allocate a static predicate for pg:inGroup.

2009-06-25 17:25:52 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Only allocate lv2:inPlaceBroken predicate once.

2009-06-25 15:10:24 -0400  Dave Robillard <dave@drobilla.net>

	* gst-libs/gst/signalprocessor/gstsignalprocessor.c:
	  Eliminate use of static mono pad template.

2009-06-25 15:07:05 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Separate port discovery from pad template creation.
	  This first counts ports (using the builtin slv2 functions to do so
	  rather than manually as before), then creates descriptors for each port
	  and finds all port groups.  Only then are pad templates created (towards
	  using group information for creating multi-channel pads).

2009-06-25 12:34:03 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Use silly glib types :).

2009-06-20 19:52:26 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	* ext/lv2/gstlv2.h:
	  Query and store port group information.
	  Replace port index arrays with a struct for holding more information
	  than just indices (e.g. groups).

2009-05-25 22:15:56 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	* ext/lv2/gstlv2.h:
	  Working basic LV2 signal processing.
	  LV2 plugins, short of any surprises, should work with the same basic
	  functionality as LADSPA plugins.

2009-05-25 20:43:10 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Set class inPlaceBroken property.

2009-09-17 09:43:37 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/ivorbis/vorbisdec.c:
	  docs: fix example and mention difference to vorbisdec

2009-09-02 11:11:20 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/vdpau/gstvdpvideopostprocess.c:
	  vdpau: Fix bogus check before unreffing

2009-09-01 19:48:43 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  vdpau: Fix pkg-config test
	  If the pkg-config check doesn't succeed, test with the old method
	  instead of bailing out of configure with an error.

2009-08-20 00:16:02 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdputils.c:
	* sys/vdpau/gstvdpvideopostprocess.c:
	  vdpauvideopostprocess: handle pixel-aspect-ratio better
	  the implementation is not entirely correct since we assume that the sink
	  element's pixel-aspect-ratio is 1/1

2009-08-19 22:52:34 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdputils.c:
	* sys/vdpau/gstvdpvideopostprocess.c:
	  vdpauvideopostprocess: remove par from caps since we don't handle it yet

2009-08-19 22:40:48 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdputils.c:
	  vdpauvideopostprocess: don't remove interlaced flag in video_to_output_caps()

2009-08-19 22:23:17 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideopostprocess.c:
	* sys/vdpau/gstvdpvideopostprocess.h:
	  vdpauvideopostprocess: add inverse-telecine property

2009-08-19 22:03:11 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideopostprocess.c:
	  vdpauvideopostprocess: fix noise-reduction property getter

2009-08-19 22:02:19 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideopostprocess.c:
	* sys/vdpau/gstvdpvideopostprocess.h:
	  vdpauvideopostprocess: add sharpening property

2009-08-17 23:42:50 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.h:
	  vdpau: remove gst_vdp_device_new from header

2009-08-17 23:42:21 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpsink.c:
	  vdpausink: fix error handling if gst_vdp_get_device returns NULL

2009-08-17 23:39:52 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdp.c:
	  vdpau: add back vdpausink and vdpauvideopostprocess

2009-08-17 23:39:14 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	* sys/vdpau/gstvdpdevice.h:
	  vdpdevice: fix error handling and threadsafety
	  return NULL incase of initalization errors and guard hashtable access with a mutex

2009-07-17 22:50:18 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideopostprocess.c:
	  vdpauvideopostprocess: get correct number of needed frames if we're doing noise reduction

2009-07-17 22:48:23 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: small indent fix

2009-07-15 20:18:33 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: fix gst_byte_reader_masked_scan_uint32 usage

2009-07-04 19:48:42 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideopostprocess.c:
	* sys/vdpau/gstvdpvideopostprocess.h:
	  vdpauvidepostprocess: remove boolean noise-reduction property
	  Use the float one to determine if we should enable noise reduction or not

2009-07-04 15:46:02 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdpvideopostprocess.c:
	* sys/vdpau/gstvdpvideopostprocess.h:
	  vdpauvideopostprocess: add support for noise reduction

2009-07-04 13:59:36 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdputils.c:
	* sys/vdpau/gstvdpvideopostprocess.c:
	* sys/vdpau/gstvdpvideopostprocess.h:
	  vdpauvideopostprocess: add support for deinterlacing
	  The code is roughly modeled after the deinterlace plugin

2009-07-02 17:11:10 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpsink.c:
	* sys/vdpau/gstvdpsink.h:
	  vdpausink: add myself to copyright

2009-07-02 14:01:16 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideopostprocess.c:
	  vdpauvideopostprocess: s/gst_vdp_vpp_set_caps/gst_vdp_vpp_sink_setcaps

2009-07-01 23:12:20 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: use gst_byte_reader_masked_scan_uint32 instead of our own version

2009-07-01 00:20:33 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdputils.c:
	* sys/vdpau/gstvdpvideobuffer.c:
	* sys/vdpau/gstvdpvideobuffer.h:
	  vdpau: use G_N_ELEMENTS instead of hardcoding array sizes

2009-07-01 00:13:14 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	  vdpau: use G_N_ELEMENTS instead of NULL terminating array

2009-06-30 23:55:13 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdp.c:
	* sys/vdpau/gstvdpdevice.c:
	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdpoutputbuffer.c:
	* sys/vdpau/gstvdpoutputbuffer.h:
	* sys/vdpau/gstvdpsink.c:
	* sys/vdpau/gstvdpsink.h:
	* sys/vdpau/gstvdputils.c:
	* sys/vdpau/gstvdputils.h:
	* sys/vdpau/gstvdpvideobuffer.c:
	* sys/vdpau/gstvdpvideobuffer.h:
	* sys/vdpau/gstvdpvideopostprocess.c:
	* sys/vdpau/gstvdpvideopostprocess.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpyuvvideo.c:
	  vdpau: add new vdpausink and vdpauvideopostprocess elements
	  vdpausink is as the name implies a sink which takes vide/x-vdpau-output buffers
	  and outputs it to the screen.
	  vdpauvideopostprocess is an element which takes video/x-vdpau-video buffers and
	  outputs video/x-vdpau-output buffers. The element can also do things like
	  deinterlacing and other postprocessing but this is not implemented yet.

2009-06-29 22:50:42 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* configure.ac:
	  vdpau: check for vdpau with pkg-config first

2009-06-24 17:51:58 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	* sys/vdpau/gstvdpvideoyuv.c:
	  vdpau: split gst_vdp_mpeg_dec_reset into start and stop

2009-06-24 11:36:28 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	* sys/vdpau/gstvdputils.c:
	* sys/vdpau/gstvdputils.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpyuvvideo.c:
	* sys/vdpau/gstvdpyuvvideo.h:
	  vdpau: don't put the GstVdpDevice in the caps

2009-06-23 23:03:52 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	* sys/vdpau/gstvdpmpegdec.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpvideoyuv.h:
	* sys/vdpau/gstvdpyuvvideo.c:
	* sys/vdpau/gstvdpyuvvideo.h:
	  vdpau: make GstVdpVideoYUV implement pad_alloc
	  also change GstVdpMpegDec and GstVdpYUVVideo to make use of this

2009-06-23 17:26:22 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdputils.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpyuvvideo.c:
	  vdpau: add support for YUY2

2009-06-23 17:16:25 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpyuvvideo.c:
	  vdpau: add support for UYVY

2009-06-23 16:57:45 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdputils.c:
	* sys/vdpau/gstvdputils.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpyuvvideo.c:
	* sys/vdpau/gstvdpyuvvideo.h:
	  vdpau: factor out common caps calculation and put it in gstvdputils.[ch]

2009-06-22 23:25:55 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdputils.c:
	* sys/vdpau/gstvdputils.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpyuvvideo.c:
	  vdpau: refactor GstVdpVideoYUV and GstVdpYUVVideo

2009-06-22 22:17:48 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpyuvvideo.c:
	* sys/vdpau/gstvdpyuvvideo.h:
	  vdpau: make GstVdpYUVVideo inherit from GstBaseTransform

2009-06-22 11:00:40 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideoyuv.c:
	  vdpau: fixup some debug prints

2009-06-22 10:57:25 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpvideoyuv.h:
	  vdpau: make GstVdpVideoYUV inherit from GstBaseTransform

2009-09-16 08:22:19 +0200  Lutz Mueller <lutz@topfrose.de>

	* gst/pnm/gstpnm.c:
	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmenc.c:
	* gst/pnm/gstpnmutils.c:
	* gst/pnm/gstpnmutils.h:
	  pnm: Support ASCII format for encoding and handle unsupported formats better in the decoder
	  Fixes bug #595215.

2009-09-15 23:32:06 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: Handle base_time when sending segment updates.
	  Don't send bogus new segment update events when the stream doesn't
	  start at 0. Fixes broken seeking in some files.
	  Fixes: #594812

2009-08-18 13:35:59 +0200  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/gstsectionfilter.c:
	  mpegtsdemux, mpegtsparse: max section length is 4093 not 1021.

2009-08-18 01:08:03 +0200  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: add pad for DVB Subtitling pads

2009-09-13 19:39:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmenc.c:
	  pnm: Use correct rowstride for 8 bit grayscale too

2009-09-13 19:33:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmenc.c:
	  pnm: Correctly convert from/to GStreamer rowstride

2009-09-13 19:17:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmenc.c:
	  pnm: Fix caps
	  8 bit grayscale caps have no endianness field and the caps name
	  of GST_VIDEO_CAPS_RGB is still "video/x-raw-rgb" and not GST_VIDEO_CAPS_RGB.

2009-09-13 19:13:24 +0200  Lutz Mueller <lutz@topfrose.de>

	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmenc.c:
	* gst/pnm/gstpnmenc.h:
	  pnm: Lots of bugfixes
	  (1) Fix examples.
	  (2) Add support for gray images.
	  (3) Remove "use_fixed_caps" which doesn't seem to be useful.
	  (4) Do proper negotiation in the encoder.
	  (5) Fix memleak in the setcaps function in the encoder.
	  (6) Keep a link to the src pad in the encoder now that we need it more often.
	  Partially fixes bug #164870.

2009-09-12 18:57:05 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst/h264parse/gsth264parse.c:
	  Fix factory information for h264parse, add missing Video

2009-09-11 14:38:46 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/aiffparse/aiffparse.c:
	  aiffparse: Fix an off-by-8 bug in parsing the AIFF data size.
	  This led to overreading by 8 bytes, giving an audible glitch at the end of
	  a file (except when the file didn't have a trailing chunk of some sort).

2009-09-08 20:52:09 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Use GST_TIME_FORMAT in debug statement.

2009-09-08 09:20:00 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Reset stream->last_time when flushing.
	  This fixes naive seeking a tiny bit (by basically hinting at _data_cb
	  that it shouldn't expect the incoming buffers to be the ones just after
	  the previous ones).
	  Without this, seeking by more than 10mins forward would just end up in an
	  endless loop.

2009-09-08 09:18:42 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Sprinkle branch prediction macros.

2009-09-10 12:12:26 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/id3tag/id3tag.c:
	  id3tag: When writing id3v2.3, do not use UTF-8.
	  UTF-8 is only permitted in v2.4. So instead use ISO-8859-1 for ascii-only
	  strings, and UTF16 otherwise. Also, do not null terminate strings in text
	  frames, except where required. These two allow windows media player to play
	  (and correctly read tags) files created by id3mux.

2009-07-23 16:13:28 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/adpcmdec/adpcmdec.c:
	  adpcmdec: complete ima adpcm support.

2009-07-23 11:59:39 -0700  Michael Smith <msmith@songbirdnest.com>

	* gst/adpcmdec/adpcmdec.c:
	  adpcmdec: checkpoint for incomplete IMA ADPCM support.

2009-09-10 12:02:21 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/videomeasure/gstvideomeasure.c:
	* gst/videomeasure/gstvideomeasure_collector.c:
	* gst/videomeasure/gstvideomeasure_ssim.c:
	  videomeasure: Fix format strings and include correct i18n header

2009-09-10 11:58:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/videomeasure/gstvideomeasure.c:
	* gst/videomeasure/gstvideomeasure.h:
	* gst/videomeasure/gstvideomeasure_collector.c:
	* gst/videomeasure/gstvideomeasure_collector.h:
	* gst/videomeasure/gstvideomeasure_ssim.c:
	* gst/videomeasure/gstvideomeasure_ssim.h:
	  videomeasure: Fix indention, line endings and use LRN's real name

2009-09-09 19:14:27 +0400  Руслан Ижбулатов <lrn1986@gmail.com>

	* configure.ac:
	* gst/videomeasure/Makefile.am:
	* gst/videomeasure/gstvideomeasure.c:
	* gst/videomeasure/gstvideomeasure.h:
	* gst/videomeasure/gstvideomeasure_collector.c:
	* gst/videomeasure/gstvideomeasure_collector.h:
	* gst/videomeasure/gstvideomeasure_ssim.c:
	* gst/videomeasure/gstvideomeasure_ssim.h:
	  videomeasure: Initial version of videomeasure plugin
	  This plugin contains elements for calculating metrics of video streams, intended for objective video codec comparison.
	  At the moment only SSIM metric is implemented (why would you need anything else anyway?).
	  Also contains a helper videomeasure_collector element that collects measurement events and outputs them into a file (to be used with gst-launch).
	  Other metrics may be implemented in the future along with a base class for all measurers.
	  Fixes bug #594321.

2009-09-10 08:54:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  pnm: Mark PNM plugin as experimental because it doesn't work well yet

2009-09-10 08:53:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/pnm/gstpnmdec.c:
	  pnmdec: Partially fix negotiation issues and refcount leaks

2009-09-10 08:48:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/pnm/Makefile.am:
	* gst/pnm/gstpnmenc.c:
	  pnmenc: Fix negotiation issues and refcount leaks

2009-09-10 08:29:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/pnm/gstpnm.c:
	  pnm: Fix typefinder caps

2009-09-10 08:23:22 +0200  Lutz Mueller <lutz@topfrose.de>

	* configure.ac:
	* gst/pnm/Makefile.am:
	* gst/pnm/gstpnm.c:
	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmdec.h:
	* gst/pnm/gstpnmenc.c:
	* gst/pnm/gstpnmenc.h:
	* gst/pnm/gstpnmutils.c:
	* gst/pnm/gstpnmutils.h:
	  pnm: Add PNM encoder and decoder elements
	  Fixes bug #164870.

2009-09-10 07:56:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/ladspa/Makefile.am:
	* ext/lv2/Makefile.am:
	* gst-libs/gst/signalprocessor/Makefile.am:
	  signalprocessor: Fix various build/dist issues
	  Install the headers, version the library with @GST_MAJORMINOR@,
	  add all required libraries to _LIBADD instead of _LDFLAGS,
	  and add GST_*_LDFLAGS to _LDFLAGS.
	  Fixes bug #594715.

2009-09-09 14:34:03 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowvideosrc: cache device caps

2009-09-09 12:41:17 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* win32/vs9/libgstdshowsrcwrapper.vcproj:
	  dshowvideosrc: use IEnumMediaTypes when IAMStreamConfig is not usable
	  For some device drivers IAMStreamConfig is not supported.
	  But EnumMediatypes does not provide range size and framerate.

2009-09-06 11:50:39 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/faac.c:
	  faac: add unit test

2009-09-08 22:24:12 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/faac/gstfaac.c:
	  faac: add some debug statements for discrepancy cases and plug memleak

2009-09-06 11:49:17 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/faac/gstfaac.c:
	  faac: sprinkle some more G_(UN)LIKELY

2009-09-06 11:44:27 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/faac/gstfaac.c:
	  faac: enforce sync between wrapper view of data and encoder returned data

2009-09-05 21:35:35 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  docs: add faac to documentation

2009-09-05 21:35:19 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/faac/gstfaac.c:
	  faac: add some documentation

2009-08-31 19:31:57 +0200  Havard Graff <havard.graff@tandberg.com>

	* gst/selector/gstoutputselector.c:
	  outputselector: make GST_FORMAT_TIME the default segment format

2009-08-31 19:33:50 +0200  Havard Graff <havard.graff@tandberg.com>

	* sys/dshowvideosink/dshowvideosink.cpp:
	  dshowvideosink: remove unused variable to fix compiler warning
	  Fixes bug #594278.

2009-09-08 15:16:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Fix usage of __always_inline__ attribute
	  This attribute can't be used for function declarations because
	  it needs the function body. Instead of a forward declaration of
	  functions, move the function itself above it's first use.
	  Fixes bug #594489 and compilation with gcc 4.3 and earlier.

2009-09-07 17:33:15 +0200  Marc-André Lureau <mlureau@flumotion.com>

	* ext/assrender/gstassrender.c:
	  assrender: Fix compilation with libass = 0.9.6
	  Fixes bug #594382.

2009-09-07 19:08:08 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpeg4videoparse/mpeg4videoparse.c:
	  mpeg4videoparse: fix aspect-ratio parsing in VO

2009-09-07 16:20:23 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/mpeg4videoparse/mpeg4videoparse.c:
	  mpeg4videoparse: also consider user_data pieces when parsing VO(S)

2009-09-07 16:44:52 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowfakesink.cpp:
	* win32/vs9/gst-plugins-bad.sln:
	* win32/vs9/libgstdshowsrcwrapper.vcproj:
	  dshowsrcwrapper: add support both Unicode and MBCS

2009-09-07 15:44:16 +0200  Julien Isorce <julien.isorce@gmail.com>

	* win32/vs8/gst-plugins-bad.sln:
	* win32/vs8/libdshowsrcwrapper.vcproj:
	* win32/vs9/gst-plugins-bad.sln:
	* win32/vs9/libgstdshowsrcwrapper.vcproj:
	  dshowsrcwrapper: upgrade frozen build to vs9

2009-09-07 15:21:28 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp:
	  dshowsrcwrapper: indent dshowsrcwrapper.cpp

2009-09-07 15:12:55 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp:
	  Revert "dshowsrcwrapper: remove unused extern C"
	  This reverts commit d3c88d637d7e7d60f1437ccd3dfc23b37e2a320e.
	  Reverting this since the entry point isn't found because of
	  C++ build.

2009-09-07 10:59:53 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.h:
	* sys/dshowsrcwrapper/gstdshowfakesink.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  dshowsrcwrapper: indent

2009-09-07 10:51:28 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowsrcwrapper: convert line ended characters to LF

2009-09-07 10:38:39 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp:
	  dshowsrcwrapper: remove unused extern C

2009-09-07 10:31:54 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  dshowsrcwrapper: go back to previous mode

2009-09-05 10:22:52 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 00a859e to 19fa4f3

2009-09-04 19:17:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/timidity/gsttimidity.c:
	* ext/timidity/gstwildmidi.c:
	  wildmidi/timidity: Add audio/riff-midi to the src pad template caps

2009-09-04 17:32:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirenenc.c:
	  siren: fix setting caps on the output pad
	  Also set the caps on the output pad when the input buffers don't have caps.

2009-09-04 17:27:52 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	* ext/timidity/gstwildmidi.h:
	  wildmidi: cleanups and fix seeking
	  Remove time_per_frame, it's too inaccurate.
	  Fix convert for -1 values.
	  Use scaling to convert samples to time.
	  Fix segment handling.
	  Fix seeking.
	  Fix buffer clipping (not yet enabled)
	  Protect the WildMidi library with the object lock to avoid races when changing
	  properties.
	  Fix offsets on output buffers, for raw audio the offset contains the sample
	  position not byte position.
	  Add better DISCONT handling.
	  Fixes #519001

2009-09-04 16:29:53 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowvideosrc: move VIDEO_STREAM_CONFIG_CAPS to GstCapturePinMediaType

2009-09-04 14:11:33 +0100  christian schaller <christian.schaller@collabora.co.uk>

	  Merge branch 'master' of ssh://uraeus@git.freedesktop.org/git/gstreamer/gst-plugins-bad

2009-09-04 14:10:55 +0100  christian schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  Update spec file

2009-09-04 13:13:39 +0200  Josep Torra <n770galaxy@gmail.com>

	* ext/neon/gstneonhttpsrc.c:
	  neonhttpsrc: handle all redirection http status codes

2009-09-04 12:53:36 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegpsdemux: in seeking use a factor for SCR interpolation
	  Fixes seeking on clips where PTS are unalignded with SCR.

2009-09-04 12:40:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirendec.h:
	  sirendec: rewrite sirendec
	  Add setcaps and event functions.
	  Add state change functions to clean variables.
	  Use adapter.
	  Add timestamps and duration on outgoing buffers.
	  Add DISCONT handling.

2009-09-04 12:40:07 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/siren/gstsirenenc.c:
	  sirenenc: cleanups

2009-09-04 12:35:31 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: set specific caps for lpcm in private stream
	  In the clips that I've found those streams, the lpcm header is
	  different than the DVD case.
	  Then the decoder need to know this in order to be able parse it.

2009-09-04 12:30:18 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	  mpegtsdemux: added autodetect of packet size and removed m2ts mode property

2009-09-04 12:08:45 +0200  Julien Isorce <julien.isorce@gmail.com>

	  Merge branch 'master' of ssh://cap@git.freedesktop.org/git/gstreamer/gst-plugins-bad

2009-09-04 12:08:02 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  dshowvideosrc: move default video caps into GstCapturePinMediaType

2009-09-04 12:02:18 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdefs.h:
	* gst/mpegdemux/gstmpegdesc.h:
	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: some more handling of VC1 and EAC3
	  If the PMT have the register descriptor HDMV assume EAC3
	  For VC1 make the code more aligned to RP227.

2009-07-16 10:06:36 +0100  Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

	* gst/dvdspu/gstspu-vobsub-render.c:
	  Try to fit subtitles within the video frame when they're too large

2009-09-01 21:30:35 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/pcapparse/gstpcapparse.c:
	* gst/pcapparse/gstpcapparse.h:
	  pcapparse: Set the GStreamer timestamp according to the pcap timestamps

2009-09-03 19:04:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/siren/gstsirenenc.c:
	* gst/siren/gstsirenenc.h:
	  sirenenc: fix events and caps
	  Add an event function that clears the adapter.
	  Add a setcaps function to configure caps on the srcpad. Remove the instance
	  variable for the caps.

2009-09-03 18:43:26 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/siren/gstsirenenc.c:
	* gst/siren/gstsirenenc.h:
	  sirenenc: fix timestamping
	  Handle DISCONT and reset adapter.
	  code cleanups.
	  Put timestamps and discont flags on output buffers.
	  Fix error handling.
	  Remove bogus object locks, it's all protected by the STREAM_LOCK.

2009-09-03 17:49:41 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowvideosrc: factorize dshow format to gst caps conversion

2009-09-03 17:20:47 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	  dshowsrcwrapper: remove cplusplus condition

2009-09-03 17:12:26 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  dshowvideosrc: factorize dshow video format parsing

2009-09-03 15:45:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: If stream type is AC3 and no EAC3 descriptor is found assume AC3

2009-09-03 15:40:14 +0200  Josep Torra <josep@fluendo.com>

	* gst/mpegdemux/gstmpegdefs.h:
	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Implement EAC3 handling according some ATSC specs.
	  Fixes bug #594030.

2009-09-03 00:28:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* gst-plugins-bad.spec.in:
	* gst/xdgmime/Makefile.am:
	* gst/xdgmime/gstxdgmime.c:
	  xdgmime: move xdg typefinder to the other typefinders in -base
	  Remove the xdgmime plugin which now barely contains any code at all
	  and move the functionality into gst-plugins-base next to the other
	  typefinders.

2009-09-02 13:35:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegpsmux/mpegpsmux.c:
	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegtsmux/mpegtsmux.h:
	  mpegsmux, mpegpsmux: fix unused variable warning with the debugging system in core disabled

2009-09-01 12:41:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Stream type 0x81 is normal AC3, not EAC3
	  Not sure what the stream type for EAC3 is though.
	  Fixes bug #593059.

2009-08-30 23:07:30 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/faac/gstfaac.c:
	  faac: refactor slightly and remove superfluous code

2009-08-30 23:06:24 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/faac/gstfaac.c:
	  faac: freshen up caps negotiation
	  Perform sink and src caps negotiation during caps negotation,
	  and also cater for re-negotiation.

2009-08-30 23:00:35 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/faac/gstfaac.c:
	* ext/faac/gstfaac.h:
	  faac: rewrite data caching and timestamp handling
	  Also fixes #593348.

2009-08-31 18:55:52 +0200  Peter Kjellerstedt <pkj@axis.com>

	* configure.ac:
	  configure: A little clean up.
	  Reorder the list of AM_CONDITIONAL()s used when --disable-external is
	  specified to match the actual order of the plug-ins earlier in the file.

2009-08-31 18:49:16 +0200  Peter Kjellerstedt <pkj@axis.com>

	* configure.ac:
	  configure: Allow --disable-external to be specified again.

2009-08-31 18:47:44 +0200  Peter Kjellerstedt <pkj@axis.com>

	* configure.ac:
	  configure: Allow --disable-kate to actually be specified.

2009-08-31 18:41:59 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	  wildmidi: cleanup error handler

2009-08-31 18:34:03 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	  wildmidi: free the adapter

2009-08-31 18:32:07 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	  wildmidi: cleanups

2009-08-31 18:21:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	  wildmidi: allow for push mode operation
	  Fixes #586929

2009-08-31 18:20:00 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	* ext/timidity/gstwildmidi.h:
	  wildmidi: use state machine
	  Use a state machine to keep track of the current state.
	  Add chain function and event function on the sinkpad.
	  Remove some unused code.

2009-08-31 17:38:28 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	  wildmidi: remove useless function calls

2009-08-31 17:33:32 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	* ext/timidity/gstwildmidi.h:
	  wildmidi: set caps on pad
	  Set the caps on the pad and use those caps instead of keeping a separate caps
	  pointer around.
	  Fix some whitespace.

2009-08-31 17:27:39 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/timidity/gstwildmidi.c:
	  wildmidi: fix whitespace

2009-08-31 16:07:03 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/Makefile.am:
	  kate: fix typo in Makefile.am
	  GST_PLUGIN_BASE_LIBS should be GST_PLUGINS_BASE_LIBS. Fixes #593683.

2009-08-31 13:31:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-adpcmdec.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-amrwbenc.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-asfmux.xml:
	* docs/plugins/inspect/plugin-assrender.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dirac.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-flacparse.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-frei0r.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-hdvparse.xml:
	* docs/plugins/inspect/plugin-id3tag.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-kate.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mimic.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegpsmux.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rsvg.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-schro.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-shapewipe.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-vdpau.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  docs: update plugin docs for git version

2009-08-31 13:14:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/gme/gstgme.c:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/metadata.c:
	* ext/mplex/gstmplex.cc:
	* ext/rsvg/gstrsvgdec.c:
	* gst/aiffparse/aiffparse.c:
	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegvideoparse/mpegpacketiser.c:
	* gst/mxf/mxfmux.c:
	* gst/nuvdemux/gstnuvdemux.c:
	  GstAdapter is not a GstObject and should be freed with g_object_unref()

2009-08-31 13:00:04 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegtsmux/mpegtsmux.h:
	  mpegtsmux: use an old-fashioned array instead of GPtrArray for mux->programs
	  Using GPtrArray for a fixed-sized array is a bit pointless and makes
	  for ugly code.

2009-08-31 10:48:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegpsmux/mpegpsmux_aac.c:
	* gst/mpegpsmux/mpegpsmux_aac.h:
	* gst/mpegpsmux/mpegpsmux_h264.c:
	* gst/mpegpsmux/mpegpsmux_h264.h:
	  mpegpsmux: Add missing files to fix compilation
	  Fixes bug #593625.

2009-08-10 01:14:19 +0800  Lin YANG <oxcsnicho@gmail.com>

	* examples/mpts_test2.c:
	  mpegtsmux: Test program of mpts support is added

2009-07-22 20:27:36 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/mpegtsmux/mpegtsmux.c:
	  mpegtsmux: Minor fixes

2009-07-22 20:25:42 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegtsmux/mpegtsmux.h:
	  mpegtsmux: mux->programs: use GPrtArray instead of GArray

2009-07-11 19:29:53 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegtsmux/mpegtsmux.h:
	  mpegtsmux: mpegtsmux_collected(): calculate PCR for programs

2009-07-11 19:15:12 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/mpegtsmux/mpegtsmux.c:
	  mpegtsmux: mpegtsmux_create_streams(): create multi streams

2009-07-11 19:13:23 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegtsmux/mpegtsmux.h:
	  mpegtsmux: MpetTsPadData: add prog_id and ref to its program

2009-07-11 19:09:17 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegtsmux/mpegtsmux.h:
	  mpegtsmux: Extend mux->program to a GArray programs

2009-07-11 17:44:54 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegtsmux/mpegtsmux.h:
	  mpegtsmux: Add new property prog-map to the muxer

2009-08-18 12:14:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/h264parse/gsth264parse.c:
	  h264parse: Free the PPS buffers too

2009-08-17 18:03:00 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: compute timestamp

2009-08-17 17:58:46 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: recognize more types of NAL
	  Also recognizes NALs carrying VCL (i.e. visible pictures). We
	  typically only compute timestamps for such NALs

2009-08-17 17:56:26 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	* gst/h264parse/gsth264parse.h:
	  h264parse: parser init & finalize

2009-08-17 17:53:43 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: decode slice header

2009-08-17 17:53:11 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: decode SEI

2009-08-17 17:52:47 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: decode SEI: picture timing info

2009-08-17 17:52:12 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: decode SEI: buffering period

2009-08-17 17:51:36 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: decode PPS

2009-08-17 17:51:10 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: decode SPS

2009-08-17 17:50:33 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: SPS: decode vui params

2009-08-17 17:50:02 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	  h264parse: SPS: decode hrd params

2009-08-17 17:44:38 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.h:
	  h264parse: Start slice header parsing work

2009-08-17 17:43:51 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	* gst/h264parse/gsth264parse.h:
	  h264parse: Start SEI parsing work

2009-08-17 17:42:06 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	* gst/h264parse/gsth264parse.h:
	  h264parse: Start PPS parsing work

2009-08-17 17:38:59 +0800  Lin YANG <oxcsnicho@gmail.com>

	* gst/h264parse/gsth264parse.c:
	* gst/h264parse/gsth264parse.h:
	  h264parse: Start SPS parsing work

2009-08-11 12:00:10 +0200  Lin Yang <oxcsnicho@gmail.com>

	* configure.ac:
	* gst/mpegpsmux/Makefile.am:
	* gst/mpegpsmux/bits.h:
	* gst/mpegpsmux/crc.h:
	* gst/mpegpsmux/mpegpsmux.c:
	* gst/mpegpsmux/mpegpsmux.h:
	* gst/mpegpsmux/psmux.c:
	* gst/mpegpsmux/psmux.h:
	* gst/mpegpsmux/psmuxcommon.h:
	* gst/mpegpsmux/psmuxstream.c:
	* gst/mpegpsmux/psmuxstream.h:
	  mpegpsmux: Add MPEG PS muxer

2009-08-13 16:45:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/Makefile.am:
	* ext/rsvg/Makefile.am:
	* ext/rsvg/gstrsvg.c:
	* ext/rsvg/gstrsvgdec.c:
	* ext/rsvg/gstrsvgdec.h:
	  rsvg: Add RSVG SVG decoder plugin
	  This supports
	  - decoding single SVG images and a stream of SVG images with a given framerate
	  - lossless scaling of SVG images
	  - ARGB output

2009-08-31 09:11:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/assrender/gstassrender.c:
	* ext/assrender/gstassrender.h:
	  assrender: Fix compilation with libass >= 0.9.7 and fix aspect ratio setting
	  Fixes bug #575261.

2009-08-30 22:20:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxftypes.c:
	  mxf: Unconditionally use GLib 2.16 API

2009-08-30 22:17:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/xdgmime/Makefile.am:
	* gst/xdgmime/gstxdgmime.c:
	* gst/xdgmime/xdgmime/xdgmime.c:
	* gst/xdgmime/xdgmime/xdgmime.h:
	* gst/xdgmime/xdgmime/xdgmimealias.c:
	* gst/xdgmime/xdgmime/xdgmimealias.h:
	* gst/xdgmime/xdgmime/xdgmimecache.c:
	* gst/xdgmime/xdgmime/xdgmimecache.h:
	* gst/xdgmime/xdgmime/xdgmimeglob.c:
	* gst/xdgmime/xdgmime/xdgmimeglob.h:
	* gst/xdgmime/xdgmime/xdgmimeicon.c:
	* gst/xdgmime/xdgmime/xdgmimeicon.h:
	* gst/xdgmime/xdgmime/xdgmimeint.c:
	* gst/xdgmime/xdgmime/xdgmimeint.h:
	* gst/xdgmime/xdgmime/xdgmimemagic.c:
	* gst/xdgmime/xdgmime/xdgmimemagic.h:
	* gst/xdgmime/xdgmime/xdgmimeparent.c:
	* gst/xdgmime/xdgmime/xdgmimeparent.h:
	  xdgmime: Always use GLib instead of xdgmime
	  Now that we depend on GLib 2.16 we can as well use it's
	  internal copy of the xdgmime instead of our own.

2009-08-30 22:13:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/id3tag/id3tag.c:
	  id3tag: Unconditionally use GLib 2.16 API

2009-08-19 17:18:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/resindvd/rsnstreamselector.c:
	  rsnstreamselector: Use iterate internal links instead of deprecated get internal links

2009-08-19 17:05:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Use iterate internal links instead of deprecated get internal links

2009-08-30 23:38:45 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  Back to hacking -> 0.10.14.1

=== release 0.10.14 ===

2009-08-30 00:24:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	  common: update common to a version that includes a fixed mangle-tmpl.py
	  Which is needed to build the plugin docs for the frei0r plugin (and
	  was included in the 0.10.14 release tarball).

2009-08-29 19:35:31 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-adpcmdec.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-amrwbenc.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-asfmux.xml:
	* docs/plugins/inspect/plugin-assrender.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dirac.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-frei0r.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-hdvparse.xml:
	* docs/plugins/inspect/plugin-id3tag.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-kate.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mimic.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-schro.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-shapewipe.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-vdpau.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* gst-plugins-bad.doap:
	* win32/common/config.h:
	  Release 0.10.14

2009-08-29 19:02:36 +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/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/ky.po:
	* po/lt.po:
	* po/lv.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-08-26 01:21:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* win32/common/config.h:
	  0.10.13.5 pre-release

2009-08-26 01:18:00 +0100  Руслан Ижбулатов <lrn1986@gmail.com>

	* configure.ac:
	* sys/directdraw/Makefile.am:
	* sys/directsound/Makefile.am:
	* sys/directsound/gstdirectsoundsrc.c:
	  directdraw, directsound: unify CFLAGS and fix configure checks for DirectX-based plugins
	  One set of CFLAGS for all DirectX-based plugins. Correct header/library
	  checks for DirectX-based-plugins. Remove unused variable and label in
	  directsoundsrc.
	  Fixes #593068.

2009-08-26 00:26:42 +0100  Arek Korbik <arkadini@gmail.com>

	* ext/schroedinger/gstschroenc.c:
	  schroenc: set right OFFSET and OFFSET_END on header buffers to make oggmux happy
	  Without this oggmux will just keep buffering output pages in some cases.
	  Fixes #593024.

2009-08-25 23:44:50 +0400  Руслан Ижбулатов <lrn1986@gmail.com>

	* ext/resindvd/Makefile.am:
	* gst/rawparse/Makefile.am:
	  resindvd, rawparse: fix LDFLAGS for gst-plugins-base libs
	  Fixes #593063.

2009-08-24 20:06:27 +0100  Tim-Philipp Müller <tim.muller@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/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/ky.po:
	* po/lt.po:
	* po/lv.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.13.4 pre-release

2009-08-24 18:16:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/amrwbenc/gstamrwbenc.c:
	  amrwbenc: use different element GType name to avoid conflict with previous plugin
	  Use a different GType name for the element to avoid 'cannot register existing type'
	  warnings when running 'make check' in the unpacked tarball with the old amrwb plugin
	  also installed as system plugin under the old name (it used to be called 'amrwrb'
	  and now it's 'amrwbenc').

2009-08-24 14:37:28 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowsrcwrapper: use of default debug category and better dshow errors readability

2009-08-21 01:17:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/icles/test-oss4.c:
	  tests: fix test-oss4 to treat an empty device name the same as a NULL name

2009-08-18 15:48:09 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Write FOURCC as 32bit

2009-08-15 17:54:50 -0700  David Schleef <ds@schleef.org>

	* REQUIREMENTS:
	  remove a bunch of junk from REQUIREMENTS

2009-08-14 20:20:41 +0100  Tim-Philipp Müller <tim.muller@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/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/ky.po:
	* po/lt.po:
	* po/lv.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.13.3 pre-release

2009-08-14 14:10:23 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: disable ass plugin for libass >= 0.9.7 because of API changes
	  See #575261.

2009-08-12 18:33:22 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfmux/gstasfmux.c:
	* gst/asfmux/gstasfmux.h:
	  asfmux: Do not mess up GstCollectData list
	  asfmux was messing up with the GstCollectData list of its
	  GstCollectPads when sorting the list inplace. This patch makes
	  it copy the list before sorting it, leaving the GstCollectPads
	  list as is. Fixes #591610

2009-08-12 12:23:30 -0400  Olivier Crête <tester@tester.ca>

	* ext/mimic/gstmimenc.c:
	  mimenc: USE GST_WRITE_*_LE macros

2009-08-12 12:21:33 -0400  Olivier Crête <tester@tester.ca>

	* ext/mimic/gstmimenc.c:
	  mimenc: Refuse to go playing in paused-mode without clock
	  Only try to use the clock in if paused-mode is set and refuse to go playing
	  in paused-mode without it.
	  Fixes bug #591538

2009-08-11 16:42:51 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  dtmfsrc: Empty event queue on finalize

2009-08-11 16:39:42 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  dtmf: Use GSlice for internal event structures

2009-08-11 16:23:20 -0400  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	  rtpdtmfsrc: Cleanup events on finalize
	  Problem found by Laurent Glayal
	  Fixes bug #591440

2009-08-11 16:23:20 -0400  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	  rtpdtmfsrc: Cleanup events on finalize
	  Problem found by Laurent Glayal
	  Fixes bug #591440

2009-08-12 10:28:32 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* sys/vdpau/gstvdp.c:
	* sys/vdpau/gstvdpdevice.c:
	* tests/check/Makefile.am:
	  vdpau: blacklist for generic states test, and demote to GST_RANK_NONE
	  These elements are not fit for autoplugging, so demoting to RANK_NONE.
	  Also blacklisting for generic states test, since fixing these elements
	  up to do some minimal error handling seems to be a bit more work.
	  Partially fixes #591538.

2009-08-11 18:01:37 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* 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/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/ky.po:
	* po/lt.po:
	* po/lv.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.13.2 pre-release.

2009-08-11 15:27:34 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* MAINTAINERS:
	  Add myself to MAINTAINERS file and update Wim's e-mail.

2009-08-11 14:17:32 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  Update spec file with latest changes

2009-08-11 12:42:28 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkateenc.c:
	* tests/check/elements/kate.c:
	  kateenc: error out if category has not been set and check for obviously wrong values

2009-08-11 02:46:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* gst-plugins-bad.spec.in:
	* gst/rtpmanager/.gitignore:
	* gst/rtpmanager/Makefile.am:
	* gst/rtpmanager/gstrtpbin-marshal.list:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	* gst/rtpmanager/gstrtpmanager.c:
	* gst/rtpmanager/gstrtpptdemux.c:
	* gst/rtpmanager/gstrtpptdemux.h:
	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/gstrtpsession.h:
	* gst/rtpmanager/gstrtpssrcdemux.c:
	* gst/rtpmanager/gstrtpssrcdemux.h:
	* gst/rtpmanager/rtpjitterbuffer.c:
	* gst/rtpmanager/rtpjitterbuffer.h:
	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsession.h:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	* gst/rtpmanager/rtpstats.c:
	* gst/rtpmanager/rtpstats.h:
	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	* tests/check/elements/rtpbin.c:
	* tests/check/elements/rtpbin_buffer_list.c:
	  Move rtpmanager from -bad to -good.

2009-08-11 09:05:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/elements/.gitignore:
	  .gitignore: ignore asfmux unit test binary

2009-08-11 09:00:37 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/Makefile.am:
	  checks: disable unit tests that are flaky or don't work with core git
	  camerabin test seems to time out with core git, so disabling because
	  chances are the problem is in the test and the core git stuff will
	  be released before we can fix the code in the test.
	  neonhttpsrc unit test is a bit flaky, it tends to fail the first
	  time when called (the host/url it checks for seems to be down as
	  well/anyway).

2009-08-10 22:16:37 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mixmatrix/Makefile.am:
	* sys/dshowsrcwrapper/Makefile.am:
	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.h:
	* sys/dshowsrcwrapper/gstdshowfakesink.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.h:
	* sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  Remove execute flags from source files

2009-08-09 02:04:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: bump core/base requirements to released version
	  To avoid confusion.

2009-08-10 16:35:36 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowsrcwrapper: can list more than 1 device
	  something like the following code now works:
	  vector<string> getVideoDeviceNames()
	  {
	  vector<string> l_name;
	  string property;
	  GstElement* videodevicesrc = create_element("dshowvideosrc", "videodevicesrc");
	  GstPropertyProbe* probe = GST_PROPERTY_PROBE (videodevicesrc);
	  GValueArray* va = gst_property_probe_get_values_name (probe, "device-name");
	  if (va)
	  {
	  for(size_t i=0; i < va->n_values; ++i)
	  {
	  GValue* v = g_value_array_get_nth(va, i);
	  string name(g_value_get_string(v));
	  l_name.push_back(name);
	  }
	  }
	  if (videodevicesrc)
	  gst_object_unref(GST_OBJECT (videodevicesrc));
	  return l_name;
	  }

2009-08-10 16:17:41 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	  dshowaudiosrc: handles device-name property

2009-08-10 16:03:17 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	  dshowsrcwrapper: add a helper function to check a media type

2009-08-10 14:32:03 +0200  Julien Isorce <julien.isorce@gmail.com>

	  Merge branch 'master' of ssh://cap@git.freedesktop.org/git/gstreamer/gst-plugins-bad

2009-08-10 13:21:09 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/Makefile.am:
	  spc: fix typo in Makefile.am and build the right plugin (spc not gme)

2009-08-10 14:23:14 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  dshowvideosrc: can use other video sizes and framerates than the defaults
	  Even if the device could capture several video sizes at several framerates,
	  without this commit, it was only possible to use one video size and
	  one framerate: the default directshow values.

2009-08-10 11:40:13 +0200  Julien Isorce <julien.isorce@gmail.com>

	* win32/vs8/gst-plugins-bad.sln:
	* win32/vs8/libgstdirectsound.vcproj:
	  directsoundsrc: add vs8 project

2009-08-10 11:36:41 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/directsound/gstdirectsoundsrc.c:
	  directsoundsrc: LF and indent

2009-08-09 15:20:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/autoconvert/gstautoconvert.c:
	* gst/autoconvert/gstautoconvert.h:
	  autoconvert: Cache events and send them downstream once an element was selected

2009-08-09 14:55:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/autoconvert/gstautoconvert.c:
	* gst/autoconvert/gstautoconvert.h:
	  autoconvert: Small cleanups

2009-08-09 12:25:01 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/directdraw/gstdirectdrawsink.c:
	  directdrawsink: Fix crash when exposing in GST_STATE_READY
	  Fixes bug #541962.

2009-08-08 22:14:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Don't answer the SEEKING query if we don't know the answer yet
	  A bitrate!=-1 is required for seeking but the bitrate is only calculated
	  after the second PCR was read.
	  Fixes bug #590446.

2009-08-08 21:20:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/spc/gstspc.c:
	  spc: Lower rank to SECONDARY to make the gme plugin the default

2009-08-08 21:17:37 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/Makefile.am:
	* ext/spc/Makefile.am:
	* ext/spc/gstspc.c:
	* ext/spc/gstspc.h:
	* ext/spc/tag.c:
	* ext/spc/tag.h:
	  spc: Add the OpenSPC spc plugin again
	  The gme plugin obsoletes it but it might still be useful
	  for users that don't have gme yet or prefer openspc for some reason.

2009-08-08 12:20:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkateenc.c:
	* ext/kate/gstkateparse.c:
	  kate: some minor clean-ups
	  Print flow return as string in log message; if we check the return
	  value of gst_buffer_new_and_alloc() we should use the _try() function
	  that might actually return NULL. Post error message when returning
	  GST_FLOW_ERROR. Use portable GLib macros to print 64-bit integers.
	  Don't use 0LL, that's also not portable (and unneeded here).

2009-08-08 10:30:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/rawparse/gstvideoparse.c:
	  videoparse: Only provide very fundamental caps in the pad template
	  We can't easily know which caps will can be used because we rely on
	  libgstvideo's support for video formats.

2009-08-08 10:27:52 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/rawparse/gstrawparse.c:
	* gst/rawparse/gstrawparse.h:
	  rawparse: Small cleanups and implement SEEKING query

2009-08-08 08:27:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/rawparse/gstaudioparse.c:
	  audioparse: Small cleanups

2009-08-08 07:59:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/rawparse/Makefile.am:
	* gst/rawparse/gstrawparse.h:
	* gst/rawparse/gstvideoparse.c:
	* gst/rawparse/gstvideoparse.h:
	  videoparse: Use libgstvideo for everything instead of our own calculations
	  Also make RGB usage easier by providing xRGB, RGBx, etc. formats
	  instead of requiring to set red_mask and friends.

2009-08-07 19:12:26 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: fix a memory leak

2009-08-07 19:00:23 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdefs.h:
	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: added VC1, EAC3 and LPCM related to blueray/hdmv

2009-08-07 18:35:42 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegpsdemux: added caps for AAC and fixed playback of a clip with LPCM

2009-08-07 18:17:28 +0200  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegdemux.h:
	  mpegpsdemux: improved demuxer performance
	  Increased performance doing pull_range in blocks of 32Kb instead of 4Kb.
	  Caching the value of gst_adapter_available instead of calling it 3 times.
	  Added some comments with the header descriptions.
	  Peek enough data to avoid a corner case where could be readed data outside
	  the buffer.
	  Speed up some more inlining some functions and keeping another stream pointer
	  list to be used as iterator.
	  Sprinkle branch prediction macros accross the code.
	  Handling the seeking with flush in pull mode in the proper way.

2009-08-07 14:41:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/gme/Makefile.am:
	* ext/gme/gstgme.c:
	* ext/gme/gstgme.h:
	  gmedec: Use GstAdapter instead of many buffer joins
	  This reduces the number of reallocations and memcpys drastically.
	  Also free the input data as soon as it's complete and passed to GME
	  as it's not needed anymore.

2009-08-07 13:07:17 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.c:
	  baseparse: prevent infinite loop when draining

2009-08-07 13:06:28 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.c:
	  baseparse: fix minor memory leak

2009-08-07 13:04:18 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/flacparse/gstbaseparse.c:
	  flacparse: sync baseparse (some more)

2009-08-07 09:21:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/gme/gstgme.c:
	  gmedec: Add caps for all supported file formats to the srcpad template

2009-08-07 07:23:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/gme/gstgme.c:
	  gme: Don't add empty string tags

2009-08-07 07:01:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/gme/gstgme.c:
	  gme: Fix caps name again

2009-08-07 06:59:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/gme/gstgme.c:
	* ext/gme/gstgme.h:
	  gme: Rename everything from SPC to GME

2009-08-07 06:59:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/spc/Makefile.am:
	* ext/spc/gstspc.c:
	* ext/spc/gstspc.h:
	* ext/spc/tag.c:
	* ext/spc/tag.h:
	  spc: Really remove old SPC code

2009-08-07 06:56:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/gme/Makefile.am:
	* ext/gme/gstgme.c:
	* ext/gme/gstgme.h:
	* ext/gme/tag.c:
	* ext/gme/tag.h:
	  gme: Use gme for tags and duration parsing

2009-08-07 06:41:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/Makefile.am:
	* ext/gme/Makefile.am:
	* ext/gme/gstgme.c:
	* ext/gme/gstgme.h:
	* ext/gme/tag.c:
	* ext/gme/tag.h:
	  spc: Rename SPC plugin to GME
	  as preparation for enabling support for non-SPC gaming console sound files.

2009-08-06 21:42:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/spc/gstspc.c:
	  spcdec: Forward all unknown src events upstream and don't restrict to SPC

2009-08-06 19:26:21 +0200  ric <csxnju at sogou.com>

	* gst/rtpmanager/rtpsource.c:
	  rtpsource: avoid buffer leak on bad seqnum
	  Fixes #590797

2009-08-05 09:36:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpeg[pt]sdemux: Fix SEEKING query
	  Send the BYTES based query downstream, not the orignal one.

2009-08-04 12:58:35 +0200  Jan Urbanski <wulczer@wulczer.org>

	* gst/qtmux/gstqtmux.c:
	  qtmux: Don't require endianness field for 8 bit raw audio
	  Fixes bug #590360.

2009-08-04 10:18:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/spc/gstspc.c:
	  spc: Make the SPC plugin work with the latest libgme release
	  gme_enable_accuracy() was added in SVN trunk and is not yet
	  in any release.

2009-08-04 10:06:54 +0200  Michael Pyne <mpyne@kde.org>

	* configure.ac:
	* ext/spc/gstspc.c:
	* ext/spc/gstspc.h:
	  spc: Use the portable libgme instead of x86-only OpenSPC library
	  This will later allow us to play other gaming console files
	  that are supported by libgme.
	  Fixes bug #576800.

2009-06-12 17:22:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/flacparse/Makefile.am:
	* gst/flacparse/gstbitreader.c:
	* gst/flacparse/gstbitreader.h:
	* gst/flacparse/gstbytereader.c:
	* gst/flacparse/gstbytereader.h:
	* gst/flacparse/gstflacparse.c:
	  flacparse: remove internal bitreader and bytereader now that these are in libgstbase

2009-07-31 11:27:03 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/selector/gstoutputselector.c:
	  outputselector: check for pending srcpad in _get_property()
	  If there is a pending srcpad, return it instead of active srcpad
	  in gst_output_selector_get_property() function.

2009-07-30 14:17:59 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: Set camerasrc to READY state instead of PAUSED when acquiring allowed caps

2009-07-31 07:16:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* sys/directdraw/gstdirectdrawsink.c:
	  directdraw: Fix indention

2009-07-31 02:05:41 +0400  Руслан Ижбулатов <lrn1986@gmail.com>

	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	  directdraw: Implement GstNavigation interface
	  Fixes bug #590208.

2009-07-31 00:19:19 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfmux/gstasfobjects.c:
	* gst/asfmux/gstasfobjects.h:
	* gst/asfmux/gstrtpasfpay.c:
	  rtpasfpay: set padding field to 0 on rtp asf packets
	  The ASF RTP spec demands that packets have their padding removed
	  and the padding size field set to 0 for packets when puting them
	  inside the RTP packets

2009-07-30 00:19:18 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfmux/gstasfmux.c:
	  asfmux: Set video stream seekable property to true
	  Video stream always have indexes, so they are all seekable

2009-07-30 00:12:45 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfmux/gstasfmux.c:
	  asfmux: Removing useless TODOs
	  After testing in windows and linux, this audio correction field
	  made no difference so far. All example files I got only had
	  zeroes in this field

2009-07-30 00:04:43 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfmux/gstasfmux.c:
	  asfmux: Fixes video stream properties object
	  Fixes stream properties object creation for video content

2009-07-29 19:07:27 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfmux/gstasfmux.c:
	* gst/asfmux/gstasfmux.h:
	  asfmux: accept pad requests a little longer
	  asfmux now start rejecting pad requests after it pushes the first
	  buffer, before this, it was rejecting after going to paused

2009-07-29 18:44:11 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfmux/gstasfmux.c:
	  asfmux: adds support to vc-1 streams

2009-07-29 17:23:31 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Remove empty finalize

2009-07-29 16:02:58 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  configure.ac: Fix macro name

2009-07-29 15:35:03 +0200  Joni Valtanen <joni.valtanen@movial.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/directsound/Makefile.am:
	* sys/directsound/gstdirectsoundplugin.c:
	* sys/directsound/gstdirectsoundsrc.c:
	* sys/directsound/gstdirectsoundsrc.h:
	  directsoundsrc: Add DirectSound source plugin
	  Fixes bug #344129.

2009-07-28 22:51:39 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* tests/check/Makefile.am:
	* tests/check/elements/asfmux.c:
	  asfmux: First basic check unit tests
	  Adds simple asfmux unit tests, that test pad creation and pushing a
	  single buffer through them

2009-07-28 21:37:04 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/asfmux/gstasfmux.c:
	  asfmux: Forcing pad names to be video_%02d and audio_%02d like

2009-07-28 18:18:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c:
	  rtpsource: allow for NULL caps on buffers
	  Add the NULL caps check where it matters and also cover another case of
	  potential NULL caps.
	  Fixes #590030

2009-07-28 11:59:56 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c:
	  rtpsource: Incoming buffers do not always have caps

2009-07-27 14:03:59 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/gstcamerabinphotography.c:
	  camerabin: photo iface setter functions return TRUE when used in NULL state
	  We cache the values and apply then when possible.

2009-07-27 08:25:37 +0300  Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>

	* gst/camerabin/camerabinvideo.c:
	* gst/camerabin/camerabinvideo.h:
	* gst/camerabin/gstcamerabin.c:
	  camerabin: do not put video pipeline into READY when start recording camerabin: remember probe IDs and disconnect them when destroying pipelines

2009-07-27 19:59:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/amrwbenc/gstamrwbenc.c:
	  amrwbenc: Fix compilation

2009-07-27 19:55:27 +0200  Iago Toral <itoral@igalia.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-amrwbenc.xml:
	* ext/Makefile.am:
	* ext/amrwb/Makefile.am:
	* ext/amrwb/README:
	* ext/amrwb/gstamrwb.c:
	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbdec.h:
	* ext/amrwb/gstamrwbenc.c:
	* ext/amrwb/gstamrwbenc.h:
	* ext/amrwb/gstamrwbparse.c:
	* ext/amrwb/gstamrwbparse.h:
	* ext/amrwbenc/GstAmrwbEnc.prs:
	* ext/amrwbenc/Makefile.am:
	* ext/amrwbenc/README:
	* ext/amrwbenc/gstamrwb.c:
	* ext/amrwbenc/gstamrwbenc.c:
	* ext/amrwbenc/gstamrwbenc.h:
	  amrwb: Remove AMR-WB parser and decoder and rename encoder plugin from amrwb to amrwbenc
	  Partially fixes bug #584890.

2009-07-27 15:46:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c:
	  rtpsession: avoid doing lip-sync in BYE
	  When we get a BYE packet, don't do lip-sync with the SR inside because some
	  senders have trouble constructing valid SR packets after BYE.

2009-07-27 15:33:04 +0200  Julien Isorce <julien.isorce@gmail.com>

	* win32/MANIFEST:
	* win32/vs6/gst_plugins_bad.dsw:
	* win32/vs7/gst-plugins-bad.sln:
	* win32/vs7/libgstdirectdraw.vcproj:
	* win32/vs8/libgstdirectdraw.vcproj:
	  directdrawsink: update vs8 build
	  also remove directdrawsink from vs6 and vs7 build

2009-07-27 14:52:57 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/Makefile.am:
	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.h:
	* sys/dshowsrcwrapper/gstdshowfakesink.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.h:
	* sys/dshowsrcwrapper/gstdshowinterface.h:
	* sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	* sys/dshowsrcwrapper/libgstdshow.def:
	* win32/vs8/libdshowsrcwrapper.vcproj:
	  dshowsrcwrapper: remove use of IGstDshowInterface

2009-07-27 13:17:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c:
	  rtpbin: don't do lip-sync after a BYE
	  After a BYE packet from a source, stop forwarding the SR packets for lip-sync
	  to rtpbin. Some senders don't update their SR packets correctly after sending a
	  BYE and then we break lip-sync. We prefer to let the jitterbuffers drain with
	  the current lip-sync instead.

2009-07-27 12:43:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c:
	  rtpbin: only reconsider once for BYE
	  When iterating the sources of a BYE packet, don't signal a reconsideration for
	  each of them but signal after we handled all sources.

2009-07-25 12:19:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkatespu.c:
	  kate: break up macros into multiple lines

2009-07-24 21:54:59 +0100  Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

	* ext/kate/gstkatedec.c:
	* ext/kate/gstkateenc.c:
	* ext/kate/gstkateparse.c:
	* ext/kate/gstkatespu.c:
	* ext/kate/gstkatetag.c:
	* ext/kate/gstkatetiger.c:
	* ext/kate/gstkateutil.c:
	  kate: use GST_ELEMENT_ERROR for error reporting
	  See #525743.

2009-07-24 14:52:28 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* configure.ac:
	* gst/asfmux/Makefile.am:
	* gst/asfmux/gstasf.c:
	* gst/asfmux/gstasfmux.c:
	* gst/asfmux/gstasfmux.h:
	* gst/asfmux/gstasfobjects.c:
	* gst/asfmux/gstasfobjects.h:
	* gst/asfmux/gstasfparse.c:
	* gst/asfmux/gstasfparse.h:
	* gst/asfmux/gstrtpasfpay.c:
	* gst/asfmux/gstrtpasfpay.h:
	  asfmux: Adds new plugin asfmux
	  Adds the brand new asfmux plugin, containing 3 elements:
	  asfmux, rtpasfpay and asfparse. This plugin was developed
	  as a GSoC 2009 project, with David Schleef as the mentor and
	  Thiago Santos as the student.

2009-07-24 08:25:03 +0100  Jan Schmidt <thaytan@noraisin.net>

	* win32/MANIFEST:
	  win32: Fix the distcheck after dshowsrcwrapper rearrangements
	  Remove old files from the win32 manifest, and add the new one.

2009-07-24 07:40:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/musepack/gstmusepackdec.c:
	  musepackdec: Implement SEEKING query

2009-07-24 01:00:34 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Revert "docs: fix docs build again"
	  It's not needed any longer after Stefan's updates in the common module.
	  This reverts commit 09c550a172a2c8a76f0b48f2f8ce11070598f66c.

2009-07-24 00:42:53 +0300  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Automatic update of common submodule
	  From fedaaee to 94f95e3

2009-07-23 17:57:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  docs: fix docs build again
	  There is no element called 'ladspa', so there won't be a -details
	  file for it.

2009-07-23 09:58:38 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegdemux: Remove some backward compatibility code
	  Also we always require liboil so use it unconditionally.

2009-07-23 09:52:36 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegdemux: Implement query type function for the src pads

2009-07-20 22:13:11 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  mimdec: Lock element before unlocking

2009-07-20 22:08:52 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  mimdec: Fix leaks
	  Use gst_pad_new_from_static_template() to not leak the pad template
	  Also properly chain up the finalize to the parent

2009-07-20 22:08:24 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Use gst_pad_new_from_static_template
	  Prevents leak found by valgrind

2009-07-20 21:52:59 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Unref clockid

2009-07-20 14:00:17 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  mimdec: Don't overwrite valid timestamps

2009-07-20 13:45:54 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	  Revert "mimdec: Ignore the timestamps inside the buffers"
	  This reverts commit 5e051fa98aeebdce2eca6b321ec1929e6f8fdf61.

2009-07-21 15:33:41 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c:
	  rtpsession: Free conflicting addresses on finalize

2009-07-21 15:31:33 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Free the pad private data on pad release
	  Free the pad private data on pad release instead of using a weak ref,
	  which is not thread safe. Also, lock the content of the pad private using the element's
	  object lock.

2009-07-22 14:19:18 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Ignore errors pushing out new segments
	  The following buffer push will return more valuable information.

2009-07-22 18:01:12 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-adpcmdec.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-frei0r.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-hdvparse.xml:
	* docs/plugins/inspect/plugin-id3tag.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-lv2.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-shapewipe.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-timidity.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* ext/ladspa/gstladspa.c:
	  docs: add docs for ladspa and update plugin docs
	  Add also inspect files for lv2 and frei0r (no docs yet).

2009-07-22 17:05:29 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: more perf-test cleanups
	  Remove some obsolete exmaples. Add video-width/height. Use proper api for
	  setting still image resolution. Fix stopping random tests on bin-state-changes.
	  Remove the memdup in snapshot again, as its not needed (pixbuf goes out of
	  scope with the buffer).

2009-07-22 11:45:21 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* sys/dshowsrcwrapper/Makefile.am:
	  dshowsrcwrapper: update Makefile.am for source file renames as well

2009-07-21 13:37:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/pcapparse/gstpcapparse.h:
	  docs: add pcapparse to docs

2009-07-22 12:34:36 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	  dshowaudiosrc: do not remove a range of length 0

2009-07-22 12:24:46 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowaudiosrc.c:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.cpp:
	* win32/vs8/libdshowsrcwrapper.vcproj:
	  dshowaudiosrc: converts code to C++

2009-07-22 11:01:49 +0200  Julien Isorce <julien.isorce@gmail.com>

	* sys/dshowsrcwrapper/gstdshowvideosrc.c:
	* sys/dshowsrcwrapper/gstdshowvideosrc.cpp:
	* win32/vs8/libdshowsrcwrapper.vcproj:
	  dshowvideosrc: converts code to C++

2009-07-22 00:33:22 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: don't add a base_time==-1 to segment positions
	  Fixes assertion about newsegment with start=-1.

2009-07-21 17:48:33 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: small speedup in software zoom
	  Force crop on even pixel position to avoid slowpath in crop & scale.

2009-07-21 16:48:26 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: we need to copy the data in the example
	  gdk_pixbuf_new_from_data does not copy the data.

2009-07-21 11:28:20 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/lv2/Makefile.am:
	  make: remove whitespace after trailing backslash

2009-07-21 12:42:33 +0100  Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

	* ext/kate/gstkatespu.h:
	  kate: fix time conversion from DVD style timestamps.

2009-07-21 13:51:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Implement SEEKING query

2009-07-21 13:39:21 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegpsdemux: Implement SEEKING query
	  Fixes bug #588944.

2009-07-21 13:33:58 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Implement SEEKING query
	  Partially fixes bug #588944.

2009-07-21 13:17:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: Free the PMT before setting a new one

2009-07-21 13:14:00 +0200  Mikael Magnusson <mikma@users.sourceforge.net>

	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: Remove old PES PIDs when receiving PAT tables
	  Fixes bug #583470.

2009-07-21 11:10:49 +0200  Julien Isorce <julien.isorce@gmail.com>

	* win32/vs8/libdshowsrcwrapper.vcproj:
	  dshowsrcwrapper: fix relative path

2009-07-21 10:49:37 +0200  Julien Isorce <julien.isorce@gmail.com>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/dshow/Makefile.am:
	* gst-libs/gst/dshow/gstdshow.cpp:
	* gst-libs/gst/dshow/gstdshow.h:
	* gst-libs/gst/dshow/gstdshowfakesink.cpp:
	* gst-libs/gst/dshow/gstdshowfakesink.h:
	* gst-libs/gst/dshow/gstdshowfakesrc.cpp:
	* gst-libs/gst/dshow/gstdshowfakesrc.h:
	* gst-libs/gst/dshow/gstdshowinterface.cpp:
	* gst-libs/gst/dshow/gstdshowinterface.h:
	* sys/dshowsrcwrapper/Makefile.am:
	* sys/dshowsrcwrapper/gstdshow.cpp:
	* sys/dshowsrcwrapper/gstdshow.h:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.c:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.h:
	* sys/dshowsrcwrapper/gstdshowfakesink.cpp:
	* sys/dshowsrcwrapper/gstdshowfakesink.h:
	* sys/dshowsrcwrapper/gstdshowinterface.h:
	* sys/dshowsrcwrapper/gstdshowsrcwrapper.c:
	* sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp:
	* sys/dshowsrcwrapper/gstdshowsrcwrapper.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.c:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	* sys/dshowsrcwrapper/libgstdshow.def:
	* win32/common/libgstdshow.def:
	* win32/vs6/gst_plugins_bad.dsw:
	* win32/vs6/libdshowsrcwrapper.dsp:
	* win32/vs8/gst-plugins-bad.sln:
	* win32/vs8/libdshowsrcwrapper.vcproj:
	  start refactoring of dshowsrcwrapper
	  -remove gst-libs/gst/dshow
	  -fakesource is moved from gst-libs/gst/dshow to sys/dshowsrcwrapper
	  -some minor changes (C/C++ check and includes) to make the plugin
	  compile again.

2009-07-21 01:06:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkateutil.c:
	  kate: use new GST_TAG_SUBITLE_CODEC tag instead of GST_TAG_CODEC

2009-07-21 00:54:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkateenc.c:
	* ext/kate/gstkateutil.c:
	* tests/check/elements/kate.c:
	  katedec: only put primary language tag in GST_TAG_LANGUAGE
	  Only put primary language into GST_TAG_LANGUAGE, and convert to lower case,
	  ie. only use "en" of "en_GB". This is per our tag documentation and hence
	  what apps expect. Also add example to kateenc property description so people
	  know a language code is wanted here.

2009-07-21 00:04:28 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkatedec.c:
	  katedec: add comment why we dont' support application/x-kate here for now

2009-07-20 13:54:49 +0100  Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

	* ext/kate/Makefile.am:
	* ext/kate/README:
	* ext/kate/gstkatedec.c:
	* ext/kate/gstkateenc.c:
	* ext/kate/gstkatespu.c:
	* ext/kate/gstkatespu.h:
	  katedec: create SPU format images from suitable background images
	  Make katedec fabricate dvd-style subpictures for subtitle overlay
	  bitmaps, for easier playbin2 integration (#588638).

2009-07-20 16:24:23 +0100  ogg.k.ogg.k <ogg.k.ogg.k@googlemail.com>

	* ext/kate/gstkatetag.c:
	* ext/kate/gstkateutil.c:
	* tests/check/Makefile.am:
	* tests/check/elements/kate.c:
	  kate: fix some minor memory leaks
	  Makes 'make check-valgrind' work for the kate unit test (#525743)

2009-07-20 16:39:42 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: add code in test to store snapshots for manual verification
	  Use gdk_pixbuf to save the image in perf-test. Also remove some obsolute
	  commented out code.

2009-07-20 16:24:05 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabinpreview.c:
	  camerabin: log formats in preview image conversion

2009-07-20 16:21:06 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabinvideo.c:
	  camerabin: remove unused variable assignment
	  Result is not needed here, but variable is used later on. Also remove double new
	  lines in function.

2009-07-20 16:20:15 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplaysink: check query return result before using it

2009-07-20 16:19:40 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadataexif.c:
	  metadata: don't dereference the pointer before the validity check

2009-07-20 10:17:07 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: improve perf test robustness and add comments

2009-07-20 12:25:15 +0100  Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

	* ext/kate/gstkateenc.c:
	  kateenc: also recognise the new recommended 'SUB' category
	  Move the check for 'simple' subtitles category to a separate routine
	  and add in the new recommended SUB category (#525743).

2009-07-20 11:41:40 +0100  Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

	* ext/kate/gstkateenc.c:
	* ext/kate/gstkateenc.h:
	  kateenc: keep bitmap/palette/region around when on the spot encoding is not possible due to an unknown end time
	  Fixes valgrind unitialized value report. See #525743.

2009-07-19 23:45:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/inspect/plugin-kate.xml:
	  docs: add inspect info for kate plugin
	  Should fix the docs build.

2009-07-19 23:35:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkatedec.c:
	* ext/kate/gstkateenc.c:
	* ext/kate/gstkateparse.c:
	* ext/kate/gstkatetag.c:
	* ext/kate/gstkatetiger.c:
	* ext/kate/gstkateutil.c:
	  kate: add some FIXMEs

2009-07-19 23:32:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkate.c:
	  katedec: demote to GST_RANK_NONE for now
	  There are still some autoplugging issues to sort out, and it needs
	  some testing.

2009-07-19 23:29:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	  checks: add kate unit tests to valgrind blacklist for now
	  And add check binary to ignore list.

2009-07-19 23:16:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkateparse.c:
	* ext/kate/gstkateutil.c:
	  kate: make sure to free some more stuff

2009-07-19 22:29:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkate.h:
	* ext/kate/gstkatedec.c:
	* ext/kate/gstkateenc.c:
	* ext/kate/gstkateparse.c:
	* ext/kate/gstkatetiger.c:
	* ext/kate/gstkateutil.c:
	* tests/check/elements/kate.c:
	  kate: fix up for additional subtitle/x-kate media type

2009-07-13 22:38:43 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkate.c:
	  kate: remove local kate typefinder, use the one in -base

2009-07-10 18:45:28 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/kate/gstkate.c:
	* ext/kate/gstkate.h:
	* ext/kate/gstkatedec.c:
	* ext/kate/gstkateenc.c:
	* ext/kate/gstkateparse.c:
	* ext/kate/gstkatetiger.c:
	  kate: change media type to subtitle/x-kate and update define accordingly

2009-02-15 18:35:04 +0000  Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

	* LICENSE_readme:
	* REQUIREMENTS:
	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* ext/Makefile.am:
	* ext/kate/Makefile.am:
	* ext/kate/README:
	* ext/kate/gstkate.c:
	* ext/kate/gstkate.h:
	* ext/kate/gstkatedec.c:
	* ext/kate/gstkatedec.h:
	* ext/kate/gstkateenc.c:
	* ext/kate/gstkateenc.h:
	* ext/kate/gstkateparse.c:
	* ext/kate/gstkateparse.h:
	* ext/kate/gstkatetag.c:
	* ext/kate/gstkatetag.h:
	* ext/kate/gstkatetiger.c:
	* ext/kate/gstkatetiger.h:
	* ext/kate/gstkateutil.c:
	* ext/kate/gstkateutil.h:
	* gst-plugins-bad.spec.in:
	* tests/check/Makefile.am:
	* tests/check/elements/kate.c:
	  add new Kate plugin, for Kate overlay streams
	  katedec: Kate decoder (text only)
	  kateenc: Kate encoder (text and DVD SPU only)
	  katetag: Kate tagger
	  kateparse: Kate parser
	  tiger: Kate renderer using the Tiger rendering library
	  Fixes #525743.

2009-07-19 15:37:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/real/gstrealaudiodec.c:
	* gst/real/gstrealvideodec.c:
	  real: differentiate between 'module does not exist' and genuine module opening errors
	  Don't log a GST_ERROR if one of the codec modules we were looking for
	  doesn't exist. That's not a genuine error, but somewhat expected.

2009-07-18 08:43:37 +0200  Matijs van Zuijlen <Matijs.van.Zuijlen@xs4all.nl>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: Fix integer overflow
	  This breaks playback of files >4 GB as the offset was
	  a guint before. Changing it to a guint64 fixes this.

2009-07-17 15:47:10 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/gstbasemetadata.c:
	  metadata: reset state if there is something to reset
	  The condition was wrong and as such the element was writing the same tags on subsequent
	  images if reused.

2009-07-17 15:45:32 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: use gst_caps_replace instead of separate calls
	  This fixes setting snapshot caps back to NULL also.

2009-07-17 15:38:06 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: implemnet two more tests
	  Add tests for videorecording startup and capture startup delay.

2009-07-17 09:36:15 +0100  Zaheer Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: add component tag to the video component structure in eit

2009-07-16 17:27:09 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Don't pretend to be ML20 if paused

2009-07-16 16:06:26 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	  mimdec: Ignore the timestamps inside the buffers

2009-07-16 15:43:46 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  mimdec: Don't try to parse the header before dropping the paused frames

2009-07-16 15:43:15 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  mimdec: Print the incoming fourcc on errors

2009-06-19 20:13:53 +1000  Austin Lund <austin.lund@gmail.com>

	* sys/dvb/gstdvbsrc.c:
	  Increased the length of time for tuning in gstdvbsrc.c.
	  Some devices take a while to tune and 500ms was too short to detect
	  successful tuning.  As well as waiting for 5 seconds each 100ms the
	  status is checked and the loop is broken out of when tuning has suceeded.

2009-07-16 19:49:26 +0200  Aleksey Yulin <ulin@tut.by>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Don't use PIDs > MPEGTS_MAX_PID
	  The mpegtsdemux streams array only has MPEGTS_MAX_PID entries
	  and accessing one afterwards will result in crashes.
	  Fixes bug #575672.

2009-07-16 18:14:18 +0300  Zeeshan Ali (Khattak) <zeeshanak@gnome.org>

	* ext/metadata/gstmetadatamux.c:
	  Add more debug output to metadatamux

2009-07-16 12:03:32 +0200  Josep Torra <josep@fluendo.com>

	* gst/mpegdemux/gstpesfilter.c:
	  pesfilter: Permit unbounded packets for 0xfd (extended stream id).
	  Added parsing of PES extension related data.
	  Fixes some VC1 related issues.

2009-07-16 13:55:14 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/oss4/oss4-mixer.c:
	  oss4: Attempt to fix a compiler warning
	  Don't store a const gchar * in a non-const gchar * local var.
	  Also, make the translation string function static since it's only
	  used in the one file.

2009-07-15 18:10:04 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/metadata/metadataexif.c:
	  metadata: Fix some compiler warnings
	  Cast some debug string parameters so that they don't cause mismatched
	  type warnings.

2009-07-15 16:17:35 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpau: Fix a compiler warning about uninitialised variable use.

2009-06-10 19:21:21 +0100  Garrett D'Amore <garrett.damore@sun.com>

	* sys/oss4/oss4-audio.c:
	* sys/oss4/oss4-mixer-slider.c:
	* sys/oss4/oss4-mixer-switch.c:
	* sys/oss4/oss4-mixer.c:
	  oss4: Enhancements to the mixer and audio output
	  Code cleanups, general improvements, support for the
	  new mixer flags in latest gst-plugins-base.
	  Fixes: #584252
	  Patch By: Brian Cameron <brian.cameron@sun.com>
	  Patch By: Garrett D'Amore <garrett.damore@sun.com>

2009-07-15 18:27:39 +0100  Zaheer Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: add component tag to structure for component message

2009-07-15 17:44:10 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabinimage.c:
	* gst/camerabin/camerabinvideo.c:
	  camerabin: use nonbuffered io to save memcopies
	  We write large blocks anyway, so no extra buffering please. Also use one
	  g_object_set to set multiple properties on same object.

2009-07-15 12:20:17 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/TODO:
	  camerabin: track todo items

2009-07-15 11:17:36 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: leave image/video bin in ready when changing mode

2009-07-14 14:10:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/amrparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.h:
	  amrparse: Sync baseparse changes

2009-07-14 14:08:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	* gst/aacparse/gstbaseparse.h:
	  aacparse: Add function for the baseparse subclass to push buffers downstream
	  Also handle the case gracefully where the subclass decides to drop
	  the first buffers and has no caps set yet. It's still required to
	  have valid caps set when the first buffer should be passed downstream.

2009-07-14 14:07:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	  baseparse: Fix seek event leaking

2009-07-14 10:44:58 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadatatags.c:
	  metadata: fix copy'n'paste in tag description

2009-07-13 18:04:14 -0700  David Schleef <ds@schleef.org>

	* ext/schroedinger/gstschroenc.c:
	  schro: Add enum types for schroedinger settings

2009-06-30 16:31:12 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Don't send empty language code strings
	  Ignore empty language codes on some poorly coded DVDs, rather than
	  setting empty strings into our outgoing taglist.

2009-07-13 12:24:04 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 5845b63 to fedaaee

2009-07-10 21:42:19 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Only enable paused mode if the property is true

2009-07-10 13:03:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/ivorbis/Makefile.am:
	* ext/ivorbis/vorbisdec.c:
	  ivorbis: extract vorbis comments
	  Fixes #575818.

2009-07-08 17:59:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	  shapewipe: Add BGRA support for video in/output

2009-07-08 15:26:07 +0200  Sebastian Pölsterl <sebp@k-d-w.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsdemux: Fix double free
	  The hash table already makes sure that the stream is correctly
	  free'd when elements are removed.
	  Fixes bug #587819.

2009-07-08 10:16:19 +0100  Miguel Àngel Farré <miquel.farre@gmail.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: parse component tag

2009-07-08 10:11:52 +0100  Miguel Àngel Farré <miquel.farre@gmail.com>

	* gst/mpegdemux/gstmpegdesc.h:
	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: parse carousel identifier descriptor

2009-07-07 15:28:04 +0100  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/gstmpegdesc.h:
	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: add parsing of data broadcast descriptors

2009-07-07 20:28:09 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst-libs/gst/video/Makefile.am:
	  basevideo: Link with libgstvideo for some used functions

2009-07-07 19:18:16 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	  mimenc: Send pause frames when paused

2009-07-07 19:15:42 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  mimdec: Ignore pause frames

2009-07-07 18:27:36 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Put keyframe/paused flags in tcp header

2009-07-07 18:18:06 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  mimenc: Put timestamp on the header buffer

2009-07-07 18:22:54 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	  mimenc: Retimestamp to the running time

2009-07-06 17:17:22 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	  mimenc: Save the segment

2009-07-06 16:24:59 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	  mimenc: Add property for the paused mode

2009-07-03 16:08:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/schroedinger/Makefile.am:
	* gst-libs/gst/video/Makefile.am:
	* gst-libs/gst/video/gstbasevideocodec.h:
	* gst-libs/gst/video/gstbasevideodecoder.h:
	* gst-libs/gst/video/gstbasevideoencoder.h:
	* gst-libs/gst/video/gstbasevideoparse.h:
	* gst-libs/gst/video/gstbasevideoutils.h:
	  basevideo, schroedinger: guard unstable API with GST_USE_UNSTABLE_API
	  Add some guards and fat warnings to the header files with still unstable
	  API, so people who just look at the installed headers know that it
	  actually is unstable API.

2009-07-02 15:58:00 +0100  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: fix sdt parsing.
	  fix parsing of everything for each service from eit schedule flag on and also
	  add a running-status parameter to the bus message structure.

2009-07-02 11:24:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	* gst/shapewipe/gstshapewipe.h:
	  shapewipe: Add support for ARGB video input/output

2009-07-01 10:55:12 -0700  David Schleef <ds@schleef.org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/schroedinger/Makefile.am:
	* ext/schroedinger/gstschro.c:
	* ext/schroedinger/gstschrodec.c:
	* ext/schroedinger/gstschroenc.c:
	* ext/schroedinger/gstschroparse.c:
	* ext/schroedinger/gstschroutils.c:
	* ext/schroedinger/gstschroutils.h:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/video/Makefile.am:
	* gst-libs/gst/video/gstbasevideocodec.c:
	* gst-libs/gst/video/gstbasevideocodec.h:
	* gst-libs/gst/video/gstbasevideodecoder.c:
	* gst-libs/gst/video/gstbasevideodecoder.h:
	* gst-libs/gst/video/gstbasevideoencoder.c:
	* gst-libs/gst/video/gstbasevideoencoder.h:
	* gst-libs/gst/video/gstbasevideoparse.c:
	* gst-libs/gst/video/gstbasevideoparse.h:
	* gst-libs/gst/video/gstbasevideoutils.c:
	* gst-libs/gst/video/gstbasevideoutils.h:
	  basevideo: move from -base
	  Also move schroedinger plugin.  This creates a new library,
	  gstbasevideo-0.10, which will probably be merged back into
	  gstvideo-0.10 when this is moved back to -base.

2009-07-01 12:55:03 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c:
	  rtpbin: use new method for netaddress to string

2009-06-29 17:24:58 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/Makefile.am:
	  dist: Add lv2 plugin to the dist

2009-06-29 16:37:01 +0100  Jan Schmidt <thaytan@noraisin.net>

	* tests/examples/Makefile.am:
	  dist: Add the camerabin examples subdirectory to the dist

2009-06-29 18:48:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	* tests/check/elements/rtpbin.c:
	  rtpbin: do better cleanup of the src ghostpads
	  Connect to the pad-removed signal of the ptdemux elements so that we remove the
	  ghostpads for them. Fixes cleanup when going to NULL as well as when releasing
	  the sinkpads.
	  Fixes #561752

2009-06-29 17:48:13 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  docs: remove old element

2009-05-28 19:08:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c:
	  rtpsession: add a comment

2009-06-29 16:37:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpsession.c:
	  rtpbin: add SDES property
	  Remove all individual SDES properties and use one sdes property that takes a
	  GstStructure instead. This will allow us to add more custom stuff to the SDES
	  messages later.

2009-06-29 16:21:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsession.h:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	  rtpbin: add SDES property that takes GstStructure
	  Remove all individual SDES properties and use one sdes property that takes a
	  GstStructure instead. This will allow us to add more custom stuff to the SDES
	  messages later.

2009-06-02 17:46:08 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/rtpmanager/Makefile.am:
	* gst/rtpmanager/gstrtpclient.c:
	* gst/rtpmanager/gstrtpclient.h:
	* gst/rtpmanager/gstrtpmanager.c:
	  rtpbin: removed old gstrtpclient

2009-06-29 12:23:59 +0200  Andoni Morales <ylatuya at gmail.com>

	* ext/sdl/sdlvideosink.c:
	  sdl: only include sys/time.h when we have it
	  Fixes #586956

2009-06-29 12:02:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rfilter.c:
	* gst/frei0r/gstfrei0rmixer.c:
	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r: Correctly clean up elements to be reusable and not leak memory

2009-06-29 11:59:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rfilter.c:
	* gst/frei0r/gstfrei0rfilter.h:
	  frei0r: In the filter plugins create the frei0r instances in create() before playback starts

2009-06-29 11:56:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rmixer.c:
	  frei0r: In the mixer plugins create the frei0r instances in create() before playback starts

2009-06-29 11:54:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r: In the src plugins create the frei0r instances in create() before playback starts

2009-06-29 11:50:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rfilter.c:
	  frei0r: Use fixed caps on the filter pads
	  This is required because we have to create a new frei0r
	  instance for any caps changes and the instances can have history.
	  Just creating a new instance during playback can result in bad output
	  right after the caps change.

2009-06-27 09:51:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0r.c:
	  frei0r: Set the default property values correctly

2009-06-26 18:35:06 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: code cleanups
	  Downgrade a WARNING to INFO. Use a bit more compact code. Add a fixme comment.

2009-06-26 18:34:36 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: just ref caps, we don't need a writable copy

2009-06-26 18:33:47 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: no need to ref and unref this temporarily

2009-06-26 18:32:40 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: don't leak sink_caps if they would be any-caps

2009-06-26 18:31:51 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: don't leak preview images

2009-06-26 18:30:01 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: don't leak viewfinder-caps

2009-06-26 16:07:43 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: make shot2shot test more reliable
	  We can only trigger next shot (in the test) when current is captured and saved.

2009-06-26 13:10:12 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabinvideo.c:
	  camerabin: insert a few blank lines for readability

2009-06-26 13:09:27 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabinpreview.c:
	  camerabin: don't leak messages and element refs in preview

2009-06-26 15:10:05 +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-06-26 13:42:51 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From f810030 to 5845b63

2009-06-26 09:30:22 +0100  Changwoo Ryu <cwryu@debian.org>

	* gst/freeze/Makefile.am:
	  freeze: don't build plugin static lib
	  Pass --tag=disable-static to libtool like we do for other plugins.
	  Fixes #587023.

2009-06-25 12:31:32 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/gstlv2.c:
	  Use GST_WARNING instead of fprintf.

2009-05-30 11:18:21 -0400  Dave Robillard <dave@drobilla.net>

	* ext/lv2/README:
	  Add LV2 quick start README.

2009-06-25 19:23:16 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabinvideo.c:
	* gst/camerabin/gstcamerabin.c:
	  camerabin: don't leak requestpads
	  Requestpads need to be released and unreffed. Add a comment in one case where
	  we intentionaly don't unref.

2009-06-25 19:21:47 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: sync first test more safely
	  Don't use gst_element_get_state() to wait for PLAYING, Use the bus-handler
	  insteader and asynchronously schedule next test.

2009-06-25 16:41:49 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* gst/debugutils/Makefile.am:
	* gst/debugutils/debugutilsbad.c:
	* gst/debugutils/gstcapssetter.c:
	* gst/debugutils/gstcapssetter.h:
	  capssetter: import element into -bad

2009-06-25 08:38:21 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/qtmux/atoms.c:
	  qtmux: Remove unused variable.

2009-06-25 08:38:10 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/qtmux/gstqtmux.c:
	  qtmux: Fix debug statement.

2009-06-24 18:56:28 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/examples/camerabin/gst-camera-perf.c:
	  camerabin: add target-times option to specify test times
	  Have some reasonable default times. Add a commandline option to override
	  defaults. Interpret target-time=0 as skip-test.

2009-06-23 13:01:52 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: buffer-alloc support fixes to image and video bin handling
	  Keep image bin in PAUSED state in image mode except when processing/saving (PLAYING/READY).
	  Change output-selector to view finder before setting video bin to READY.
	  Fix filename sent with img-done signal.

2009-06-23 13:01:13 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/camerabinvideo.c:
	* gst/camerabin/camerabinvideo.h:
	  camerabin: fix setting mute when video bin elements haven't been created

2009-06-16 18:12:29 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: set image bin to PAUSED when starting capture
	  Set image bin to PAUSED also when starting capture using photography
	  interface.

2009-04-21 10:55:36 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: leave v4l2camsrc "capture-mode" as video mode when pausing

2009-06-24 15:14:33 +0100  Jan Schmidt <jan.schmidt@sun.com>

	* common:
	  Automatic update of common submodule
	  From f3bb51b to f810030

2009-06-22 03:55:27 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	  VDPAU: Move I420/YV12 to the front of the caps. Add debug.
	  Make I420/YV12 caps be preferred when downloading to YUV buffers,
	  when possible, by listing them first in the set of output caps.
	  Add some debug in the caps selection code.

2009-06-23 18:01:18 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/xvid/gstxvidenc.c:
	  xvidenc: also allow video/mpeg on output caps.  Fixes #377784.

2009-06-23 18:23:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	  shapewipe: Correctly handle 0/1 fps

2009-06-22 23:50:49 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/ladspa/Makefile.am:
	* ext/ladspa/gstladspa.h:
	* ext/lv2/Makefile.am:
	* ext/lv2/gstlv2.h:
	  signalprocessor: use $(top_builddir) instead of relative paths

2009-06-22 23:49:03 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/Makefile.am:
	  camerabin: add local include dir to CFLAGS

2009-04-28 23:24:45 -0400  Dave Robillard <dave@drobilla.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/ladspa/Makefile.am:
	* ext/ladspa/gstladspa.h:
	* ext/ladspa/gstsignalprocessor.c:
	* ext/ladspa/gstsignalprocessor.h:
	* ext/lv2/Makefile.am:
	* ext/lv2/gstlv2.c:
	* ext/lv2/gstlv2.h:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/signalprocessor/.gitignore:
	* gst-libs/gst/signalprocessor/Makefile.am:
	* gst-libs/gst/signalprocessor/gstsignalprocessor.c:
	* gst-libs/gst/signalprocessor/gstsignalprocessor.h:
	  Working LV2 plugin discovery.
	  - Separate gstsignalprocessor into a separate library (not sure if this
	  is in the right place, but it works for now anyway)
	  - Create LV2 element based on LADSPA element, port most discovery
	  functionality

2009-03-29 13:31:21 -0400  Dave Robillard <dave@drobilla.net>

	* ext/ladspa/gstladspa.h:
	  Fix inconsistent style (trivial test commit).

2009-03-29 13:23:02 -0400  Dave Robillard <dave@drobilla.net>

	* configure.ac:
	  Add configure check for SLV2.

2009-06-22 22:01:22 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/check/elements/camerabin.c:
	  camerabin: debug log only change

2009-06-22 18:35:21 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	  metadata: map more tags and fix reading of xmp tags
	  Register xmp schemas for photoshop and iptc. Map a few location tags there.
	  Add more dc tags. Fix reading xmp tag by iteration over known schemas. Add
	  some more debug logging.

2009-06-16 17:12:27 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/check/elements/camerabin.c:
	  camerabin: more cleanup in tests
	  Add more debug logging. Remove unused mutex and cond.

2009-06-12 14:26:24 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabingeneral.c:
	* gst/camerabin/camerabingeneral.h:
	* gst/camerabin/camerabinimage.c:
	* gst/camerabin/camerabinvideo.c:
	* gst/camerabin/gstcamerabin.c:
	  camerabin: code cruft removal and debug logs
	  Remove unused code. Add lots of debug loging. Change comments for local
	  functions to not use /** gtk-doc start style.

2009-06-12 10:40:48 +0300  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* tests/examples/Makefile.am:
	* tests/examples/camerabin/.gitignore:
	* tests/examples/camerabin/Makefile.am:
	* tests/examples/camerabin/gst-camera-perf.c:
	* tests/examples/camerabin/gst-camera-perf.glade:
	* tests/examples/camerabin/gst-camera.c:
	* tests/examples/camerabin/gst-camera.glade:
	  camerabin: add camerabin examples
	  gst-camera is a gtk-test app to play with the imagecapture and videorecording.
	  gst-camera-perf is a tool to run various scenarios and take time meassurements
	  (e.g. shot-to-shot). Also sort the output files in configure.ac a bit to be
	  in alphabetical order.

2009-06-10 11:15:01 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadataexif.c:
	  metadata: fix conversion of geo coordinates
	  Coordinate conversion has been verified with exiv2 and some webpages.
	  Minutes wher totally off and seconds were not used at all.

2009-06-22 11:19:07 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/h264parse/gsth264parse.c:
	  h264parse: detect and fix for bad NALU sizes
	  when in AVC mode a nalu size seems invalid, assume the NALU has the size of the
	  available data instead of looping forever.
	  Fixes #586354

2009-06-19 21:20:26 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/vdpau/gstvdpmpegdec.c:
	* sys/vdpau/gstvdpvideoyuv.c:
	  VDPAU: Add some debug statements

2009-06-18 17:06:23 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/vdpau/Makefile.am:
	  VDPAU: Fix build flags to pull in gst-plugins-base libs

2009-06-15 18:33:06 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/vdpau/gstvdpvideoyuv.c:
	  VDPAU: Refactor the error path to a common output, and fix a leak.
	  Don't leak the input buffer on errors. Add some debug statements.

2009-06-15 18:29:56 +0100  Jan Schmidt <thaytan@noraisin.net>

	* sys/vdpau/gstvdpmpegdec.c:
	  VDPAU: Fix up caps in vdpaumpegdec. Remove extra semicolon
	  Fix a typo in the caps for the VDPAU mpeg decoder (chroma_type->chroma-type)
	  and use the GST_VDP_VIDEO_CAPS for the pad template.
	  Remove a stray semicolon.

2009-06-12 16:39:39 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* sys/vdpau/Makefile.am:
	  VDPAU: Enhance the configure tests
	  Check for the VDPAU headers in /usr/include/nvidia as they are on some
	  platforms (Fedora/rpmfusion). Also check that the libvdpau library is
	  available.

2009-06-09 23:14:26 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: use fixed src caps

2009-06-08 14:35:29 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	* sys/vdpau/gstvdpmpegdec.h:
	  vdpaumpegdec: drop all frames before a GOP when we seek

2009-06-08 14:15:03 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: small cleanup

2009-06-07 23:46:38 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdpmpegdec.h:
	* sys/vdpau/gstvdpvideobuffer.c:
	* sys/vdpau/gstvdpvideobuffer.h:
	* sys/vdpau/gstvdpvideoyuv.h:
	* sys/vdpau/gstvdpyuvvideo.h:
	  vdpau: s/IS_VDPAU/IS_VDP

2009-06-07 01:25:01 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: send newsegment event if only the rate has been updated

2009-06-07 01:12:50 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	* sys/vdpau/gstvdpmpegdec.h:
	  vdpaumpegdec: use mutex to protect mpeg_dec->seeking from concurrent access

2009-06-07 00:55:55 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: use gst_pad_get_parent for threadsafety

2009-06-06 21:27:52 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: further work on seeking

2009-06-05 23:11:18 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	* sys/vdpau/mpegutil.c:
	  vdpaumpegdec: small cleanups

2009-06-05 22:28:02 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdec.c:
	  vdpaumpegdec: set GST_BUFFER_FLAG_DELTA_UNIT on non I_FRAME's

2009-06-05 21:48:28 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdp.c:
	* sys/vdpau/gstvdpmpegdec.c:
	* sys/vdpau/gstvdpmpegdec.h:
	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: rename gstvdpmpegdecoder.[ch] to gstvdpmpegdec.[ch]

2009-06-05 21:46:08 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdp.c:
	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: rename GstVdpMpegDecoder to GstVdpMpegDec

2009-06-05 21:42:30 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: pass buffer size directly to gst_vdp_mpeg_decoder_decode

2009-06-05 21:18:47 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: small cleanup

2009-06-05 21:16:48 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: calculate byterate from the size of the incoming data

2009-06-05 19:08:24 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: print frame_nr in debug print

2009-06-05 18:28:17 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: interlaced fixes

2009-06-05 18:18:38 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: only set base duration once

2009-06-05 17:53:16 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: don't send the EVENT_NEWSEGMENT downstream if we're seeking

2009-06-05 17:43:49 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: implement seeking

2009-06-05 11:54:17 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: change a GST_DEBUG to GST_WARNING

2009-06-05 11:52:32 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: remove unused broken_gop field

2009-06-05 11:51:41 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: add new gst_vdp_mpeg_decoder_flush for flushing the decoder

2009-06-05 11:24:34 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: use GSE_DEBUG_FUNCPTR

2009-06-05 11:20:56 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: don't drop discont buffers

2009-06-05 11:17:16 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	* sys/vdpau/mpegutil.c:
	* sys/vdpau/mpegutil.h:
	  vdpaumpegdec: handle GST_QUERY_POSITION and GST_QUERY_DURATION

2009-06-04 21:17:40 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	* sys/vdpau/mpegutil.c:
	* sys/vdpau/mpegutil.h:
	  vdpaumpegdec: calculate correct duration from data in MPEG_PACKET_EXT_PICTURE_CODING

2009-06-04 19:30:02 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: fix so that the first frame in a raw mpegvideo stream get timestamp 0

2009-06-04 19:17:14 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpdecoder.h:
	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vpdaumpegdec: remove useless GstVdpDecoder baseclass

2009-06-04 18:11:06 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/mpegutil.c:
	* sys/vdpau/mpegutil.h:
	  vdpaumpegdec: use GstBitReader to parse bitstream

2009-05-06 23:07:00 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* gst/mpegvideoparse/mpegvideoparse.c:
	* sys/vdpau/gstvdp.c:
	  vdpau: change element rank for testing purposes
	  set mpegvideoparse rank to primary and vdpaumpegdec to primary - 1 to get vdpaumpegdec
	  correctly plugged into playbin

2009-05-05 23:19:56 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpau: add debug on GstVdpDevice destroy

2009-05-05 23:13:25 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: small code cleanup

2009-05-05 23:08:51 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: remove unnused GstVdpBFrame struct

2009-05-05 23:07:06 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	  vdpaumpegdec: fix small typo in debug print

2009-05-05 18:54:31 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpdecoder.h:
	  vdpaumpegdec: fixup timestamping of outgoing buffers

2009-05-05 18:45:07 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: don't add forward_reference if the frame is an I_FRAME

2009-05-05 18:37:50 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: set correct timestamps

2009-05-05 17:30:33 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: remove unneeded locking since we know do StateChange correctly

2009-05-05 17:28:19 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdp.c:
	* sys/vdpau/gstvdpdecoder.h:
	* sys/vdpau/gstvdpdevice.c:
	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	* sys/vdpau/gstvdpvideobuffer.c:
	* sys/vdpau/gstvdpvideobuffer.h:
	  s/GST_TYPE_VDPAU/GST_TYPE_VDP/g

2009-05-05 17:20:16 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdpvideoyuv.h:
	* sys/vdpau/gstvdpyuvvideo.h:
	  vdpau: s/GST_TYPE_VDPAU/GST_TYPE_VDP/g

2009-05-05 17:15:33 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: fixup state change

2009-05-05 16:29:24 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	  vdpau: init "vdpaudevice" debug catoegory in gst_vdp_get_device

2009-05-05 08:11:03 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: hold the lock in change_state

2009-05-03 21:52:49 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	* sys/vdpau/gstvdpvideobuffer.c:
	* sys/vdpau/gstvdpvideobuffer.h:
	  vdpaumpegdec: the B_FRAME decoding was completely wrong, fix it
	  the buffers don't come in output order so fix the decoder to handle this
	  add new gst_vdp_video_buffer_add_reference method to GstVdpVideoBuffer to be able to keep
	  buffers alive. Ie. a B_FRAME need to have both the forward reference and the backward
	  reference alive during it's lifetime.
	  add mutex to protect for threadsafety issues when we reset the decoder in FLUSH_STOP

2009-04-30 21:58:01 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/mpegutil.c:
	  vdpaumpegdec: set full_pel_forward_vector to 0 when pic_type == P_FRAME

2009-04-27 21:30:59 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: drop frames if we haven't got an I_FRAME yet

2009-04-27 20:57:12 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdp.c:
	  vdpau: set vdpauvideoyuv and vdpauyuvvideo to GST_RANK_PRIMARY

2009-04-27 20:50:11 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: destroy the VdpDecoder and reset the decoder on state change

2009-04-27 20:45:11 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	  vdpau: fix error where we forgot to pass a trailing NULL to g_object_new

2009-04-27 20:21:44 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	  vdpau: close display on finalize

2009-04-27 20:18:52 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	  vdpau: small fixes
	  init create GstVdpDevice on GST_STATE_CHANGE_READY_TO_PAUSED instead of on
	  GST_STATE_CHANGE_NULL_TO READY
	  add back incrementing of frame_nr

2009-04-27 20:15:07 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdevice.c:
	  vdpau: use g_once_init_enter instead of g_once

2009-04-27 18:34:53 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: if available use incoming buffer timestamp as output timestamp

2009-04-27 15:12:26 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: clear the adapter when we reset the decoder

2009-04-26 23:25:33 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpdecoder.h:
	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	* sys/vdpau/gstvdpvideobuffer.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpvideoyuv.h:
	* sys/vdpau/gstvdpyuvvideo.c:
	* sys/vdpau/gstvdpyuvvideo.h:
	  vdpau: fixup renaming
	  the rename work done in commit 24cf84d06b2f4b2edec3383b198441a07829618b didn't
	  include typecasts. This commit fixes this.

2009-04-26 23:20:30 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: reset decoder on GST_EVENT_FLUSH_STOP

2009-04-26 22:05:11 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: reset decoder when we get a discont buffer

2009-04-26 20:40:45 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: add "MPEG_PACKET_EXT_PICTURE_CODING" debug statement

2009-04-22 23:35:07 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	* sys/vdpau/mpegutil.c:
	* sys/vdpau/mpegutil.h:
	  vdpaumpegdec: handle broken_gop field

2009-04-22 21:04:58 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/mpegutil.c:
	  vdpaumpegdec: convert all manual parsing to use read_bits instead

2009-04-22 20:28:19 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: remove unneded gst_buffer_ref and the accompanying gst_buffer_unref

2009-04-22 20:25:55 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: fixup error where we set forward_reference instead of backward_reference

2009-04-16 23:43:24 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	* sys/vdpau/mpegutil.c:
	  vdpaumpegdec: handle multiple B_FRAMEs in a row

2009-04-16 22:30:27 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: more B_FRAME work

2009-04-16 22:06:50 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdec: inital support at handling B_FRAMES

2009-04-15 23:49:07 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: fixup GstFlowReturn propagation a bit

2009-04-15 23:38:53 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/mpegutil.c:
	* sys/vdpau/mpegutil.h:
	  vdpaumpegdec: parse PICTURE_CODING_EXTENSION alternate_scan bit

2009-04-15 23:31:33 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/mpegutil.c:
	  vdpaumpegdec: fixup quantmatrix extension parsing

2009-04-15 18:17:54 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdec: correct some default values
	  mpeg1 now give nearly correct output :)

2009-04-15 17:52:27 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdecoder: remove unused slice field

2009-04-14 23:47:40 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpvideobuffer.h:
	  vdpau: rename "video/vdpau-video" caps to "video/x-vdpau-video"

2009-04-14 21:07:32 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpdecoder.h:
	  vdpau: remove "silent" property from GstVdpDecoder

2009-04-14 21:05:44 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpdecoder.c:
	  vdpau: don't set element details in GstVdpDecoder

2009-04-14 21:04:59 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdp.c:
	* sys/vdpau/gstvdpmpegdecoder.c:
	  vdpaumpegdecoder: rename to "vdpaumpegdec"

2009-04-14 19:08:53 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	  vdpaumpegdecoder: remove unnecesary want_slice field

2009-04-13 22:21:03 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdp.c:
	  vdpau: small cosmetical fix

2009-04-13 22:19:20 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdp.c:
	* sys/vdpau/gstvdpau.c:
	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpaudevice.c:
	* sys/vdpau/gstvdpaudevice.h:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	* sys/vdpau/gstvdpauvideobuffer.c:
	* sys/vdpau/gstvdpauvideobuffer.h:
	* sys/vdpau/gstvdpauvideoyuv.c:
	* sys/vdpau/gstvdpauvideoyuv.h:
	* sys/vdpau/gstvdpauyuvvideo.c:
	* sys/vdpau/gstvdpauyuvvideo.h:
	* sys/vdpau/gstvdpdecoder.c:
	* sys/vdpau/gstvdpdecoder.h:
	* sys/vdpau/gstvdpdevice.c:
	* sys/vdpau/gstvdpdevice.h:
	* sys/vdpau/gstvdpmpegdecoder.c:
	* sys/vdpau/gstvdpmpegdecoder.h:
	* sys/vdpau/gstvdpvideobuffer.c:
	* sys/vdpau/gstvdpvideobuffer.h:
	* sys/vdpau/gstvdpvideoyuv.c:
	* sys/vdpau/gstvdpvideoyuv.h:
	* sys/vdpau/gstvdpyuvvideo.c:
	* sys/vdpau/gstvdpyuvvideo.h:
	  vdpau: rename all files and objects from Vdpau to Vdp

2009-04-13 21:23:38 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaumpegdecoder.c:
	  vdpau: decode slices when we get the next picture header. MPEG2 now kindof works.

2009-04-13 21:11:54 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	* sys/vdpau/mpegutil.c:
	  vdpau: small improvement to mpeg decoder

2009-04-13 20:04:21 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudevice.c:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	* sys/vdpau/gstvdpauvideoyuv.c:
	* sys/vdpau/gstvdpauvideoyuv.h:
	* sys/vdpau/gstvdpauyuvvideo.c:
	* sys/vdpau/gstvdpauyuvvideo.h:
	  vdpau: remove unused "silent" properties

2009-04-13 19:36:53 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpauvideoyuv.c:
	* sys/vdpau/gstvdpauyuvvideo.c:
	  vdpau: implement GstVdpauVideoBuffer -> I420 conversion

2009-04-09 16:54:27 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudevice.h:
	* sys/vdpau/gstvdpauvideoyuv.c:
	* sys/vdpau/gstvdpauyuvvideo.c:
	  vdpau: move definition of the VdpChromaType array and the VdpauFormats to gstdevice.h

2009-04-07 21:51:48 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaumpegdecoder.c:
	  vdpau: small fix
	  set vdp_info.forward_reference to VDP_INVALID handle when unreffing the old
	  buffer

2009-04-07 20:46:49 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpau.c:
	* sys/vdpau/gstvdpaudevice.c:
	* sys/vdpau/gstvdpaudevice.h:
	* sys/vdpau/gstvdpauvideoyuv.c:
	* sys/vdpau/gstvdpauyuvvideo.c:
	* sys/vdpau/gstvdpauyuvvideo.h:
	  vdpau: add new GstVdpauYUVVideo element
	  the GstVdpauYUVVideo element takes raw YUV video and outputs
	  GstVdpauVideoBuffers

2009-04-04 22:45:09 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpauvideoyuv.c:
	  vdpau: VideoYUV unref buffer in chain so that we don't leak them MpegDecoder parse sequence headers

2009-04-04 22:05:11 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	  vdpau: remove some unneded includes

2009-04-04 22:03:23 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpau.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpauvideoyuv.c:
	  vdpau: move plugin definition to a new gstvdpau.c file fix up debug categories

2009-04-04 20:53:35 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	* sys/vdpau/gstvdpauvideobuffer.c:
	* sys/vdpau/gstvdpauvideobuffer.h:
	* sys/vdpau/gstvdpauvideoyuv.c:
	* sys/vdpau/gstvdpauvideoyuv.h:
	  vdpau: add new GstVdpauVideoYUV element
	  GstVdpauDecoder now pushes GstVdpauVideoBuffers instead of doing
	  VdpSurface -> YUV conversion. To get YUV data you now put in a GstVdpauVideoYUV
	  element which takes GstVdpauVideoBuffers and outputs YUV data.

2009-04-03 17:59:02 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaumpegdecoder.c:
	  vdpau: small indent fix

2009-04-03 17:58:25 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudevice.c:
	  vdpau: remove obosolete FIXME and some debug prints from gstvdpaudevice.c

2009-04-03 17:53:21 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gst-vdpau-device.h:
	* sys/vdpau/gstvdpaudevice.h:
	  vdpau: commit rename of gst-vdpau-device.h to gstvdpaudevice.h

2009-04-03 17:52:20 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gst-vdpau-device.c:
	  vdpau: remove gst-vdpau-device.c

2009-04-03 17:51:16 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpaudevice.c:
	  vdpau: rename gst-vdpau-device.[ch] to gstvdpaudevice.[ch]

2009-04-01 21:42:56 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	  vdpau: change all references of "gst_vdpaudecoder*" to "gst_vdpau_decoder"

2009-04-01 21:40:14 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	  vdpau: make the decoder clean up after itself

2009-04-01 21:26:45 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	  vdpau: remove extra \ from Makefile.am

2009-04-01 21:19:18 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gst-vdpau-device.c:
	* sys/vdpau/gst-vdpau-device.h:
	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	  vdpau: add gstvdpaudevice for abstracting vdpau initalization

2009-03-31 22:54:14 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaumpegdecoder.h:
	  vdpau: remove comment

2009-03-31 22:53:40 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	* sys/vdpau/mpegutil.c:
	* sys/vdpau/mpegutil.h:
	  vdpau: MPEG1 decoding know gives recognizable output

2009-03-29 15:28:06 +0200  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	* sys/vdpau/mpegutil.c:
	* sys/vdpau/mpegutil.h:
	  vdpau: create VdpDecoder in set_caps add more functions for parsing mpeg

2009-03-27 17:11:04 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/vdpauvariables.h:
	  vdpau: store vdpau function pointers in a local structure

2009-03-27 16:55:19 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	* sys/vdpau/mpegutil.c:
	* sys/vdpau/mpegutil.h:
	  vdpau: extract mpeg2 profile from codec_data

2009-03-26 21:04:48 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	  vdpau: extract mpeg version

2009-03-25 20:41:46 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpauh264decoder.c:
	* sys/vdpau/gstvdpauh264decoder.h:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	  vdpau: add version specification to mpegdecoder caps

2009-03-25 20:38:27 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpaumpegdecoder.c:
	* sys/vdpau/gstvdpaumpegdecoder.h:
	  vdpau: focus on mpeg instead of h264

2009-03-25 19:59:06 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/vdpauvariables.h:
	  vdpau: rough try at implementing pushinf of YV12 buffers

2009-03-24 22:26:56 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	  vdpau: remove obsolete comment

2009-03-23 21:36:55 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/vdpauvariables.h:
	  vdpau: init vdpau in GST_STATE_CHANGE_NULL_TO_READY add gst_vdpaudecoder_push_video_surface to vdpaudecoder.h

2009-03-23 20:47:00 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	  vdpau: add stubs for pushing VdpVideoSurfaces to the src pad

2009-03-21 22:06:12 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpauh264decoder.c:
	  vdpau: update VdpauH264Decoder element description

2009-03-20 21:26:11 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	  vdpau: changle gstvdpaudecoder.c classification

2009-03-20 21:24:40 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	* sys/vdpau/gstvdpauh264decoder.c:
	* sys/vdpau/gstvdpauh264decoder.h:
	* sys/vdpau/vdpauvariables.h:
	  vdpau: implement downstream caps negotiation

2009-03-15 21:23:35 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/gstvdpaudecoder.c:
	  vdpau: small indentation fix

2009-03-15 21:21:49 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* sys/vdpau/Makefile.am:
	* sys/vdpau/gstvdpaudecoder.c:
	* sys/vdpau/gstvdpaudecoder.h:
	  vdpau: add basic base class for vdpau decoders

2009-03-14 10:43:28 +0100  Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/vdpau/Makefile.am:
	  add new vdpau directory

2009-06-19 19:09:19 +0200  Branko Subasic <branko.subasic at axis.com>

	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsession.h:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	* tests/check/Makefile.am:
	* tests/check/elements/rtpbin_buffer_list.c:
	  rtpbin: add support for buffer-list
	  Add support for sending buffer-lists.
	  Add unit test for testing that the buffer-list passed through rtpbin.
	  fixes #585839

2009-06-18 12:13:28 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/aacparse/gstaacparse.c:
	  aacparse: ADIF: do not send bogus timestamps, leave to downstream (decoder)

2009-06-11 15:54:42 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmux.h:
	  qtmux: only use (64-bit) extended (mdat) atom size if needed.  Fixes #585319.

2009-06-10 14:46:14 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/gstqtmux.c:
	  qtmux: set default movie timescale to microsecond units

2009-06-10 13:24:20 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	  qtmux: compress/optimize stsc writing

2009-06-10 12:42:44 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/atoms.h:
	* gst/qtmux/fourcc.h:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmuxmap.c:
	  qtmux: add 3GP style tagging (and refactor appropriately)

2009-06-01 23:00:44 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/atoms.h:
	* gst/qtmux/fourcc.h:
	* gst/qtmux/gstqtmux.c:
	  qtmux (and variants): handle pixel-aspect-ratio.  Fixes #584358.

2009-06-19 17:04:13 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/mythtv/gstmythtvsrc.c:
	* gst/mpegtsmux/mpegtsmux.c:
	  Fix previous commit so that things still work with debug logs enabled

2009-06-19 16:21:28 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/apexsink/gstapexsink.c:
	* ext/directfb/dfbvideosink.c:
	* ext/libmms/gstmms.c:
	* ext/metadata/metadataexif.c:
	* ext/mythtv/gstmythtvsrc.c:
	* ext/resindvd/resindvdsrc.c:
	* ext/sdl/sdlvideosink.c:
	* gst/dvdspu/gstdvdspu.c:
	* gst/liveadder/liveadder.c:
	* gst/mpegtsmux/mpegtsmux.c:
	* gst/mpegvideoparse/mpegvideoparse.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* sys/oss4/oss4-mixer.c:
	  Make build without warnings with debugging disabled

2009-06-16 21:34:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0r.c:
	* gst/frei0r/gstfrei0rfilter.c:
	* gst/frei0r/gstfrei0rmixer.c:
	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r: Make plugin scanning more robust

2009-06-16 21:27:38 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0r.c:
	  frei0r: Make sure to only register plugins that have valid propert types

2009-06-16 19:42:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/frei0r/gstfrei0rfilter.c:
	  frei0r: Remove custom get_unit_size implementation
	  This is already handled by the default one from GstVideoFilter

2009-06-15 17:05:36 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rfilter.c:
	  frei0r: Fix the klass of the filter elements

2009-06-14 19:41:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rfilter.c:
	* gst/frei0r/gstfrei0rmixer.c:
	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r: Free type names

2009-06-14 19:35:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rmixer.c:
	  frei0r: Unref the GstCollectPads instance on finalize

2009-06-14 19:27:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r: Don't allow caps changes in PLAYING/PAUSED
	  Most frei0r source plugins generate output based on
	  previous output and creating a new instance on caps
	  changes will let the output start at 0 again.

2009-06-14 19:21:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/Makefile.am:
	* gst/frei0r/gstfrei0r.c:
	* gst/frei0r/gstfrei0rfilter.c:
	* gst/frei0r/gstfrei0rmixer.c:
	* gst/frei0r/gstfrei0rmixer.h:
	  freir0: Add support for frei0r mixer plugins

2009-06-13 10:06:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r: Destroy the f0r_instance_t in stop()

2009-06-12 22:04:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0rfilter.c:
	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r: Add the frei0r plugin type to the element name
	  This makes it easier to distinguish generators from filters, etc

2009-06-12 22:00:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/Makefile.am:
	* gst/frei0r/gstfrei0r.c:
	* gst/frei0r/gstfrei0rsrc.c:
	* gst/frei0r/gstfrei0rsrc.h:
	  frei0r: Add support for frei0r source/generator plugins

2009-06-12 15:13:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0r.c:
	  frei0r: Allow the complete double range for double properties
	  The spec restricts it to [0,1] but some plugins are using the
	  complete double range.

2009-06-12 15:07:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/frei0r/gstfrei0r.c:
	  frei0r: Use better property nicks

2009-06-12 14:59:28 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/frei0r/Makefile.am:
	* gst/frei0r/frei0r.h:
	* gst/frei0r/gstfrei0r.c:
	* gst/frei0r/gstfrei0r.h:
	* gst/frei0r/gstfrei0rfilter.c:
	* gst/frei0r/gstfrei0rfilter.h:
	  frei0r: First version of a frei0r wrapper plugin
	  Currently this only supports frei0r filters.

2009-06-14 20:00:51 +0200  Maximilian Högner <pbmaxi@hoegners.de>

	* gst/scaletempo/gstscaletempo.c:
	  scaletempo: Explicitely cast to signed integers to fix a segfault
	  Fixes bug #585660.

2009-06-09 19:14:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	* gst/shapewipe/gstshapewipe.h:
	  shapewipe: Implement basic QoS
	  This change is based on Tim's QoS implementation
	  for jpegdec.

2009-06-09 18:45:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	  shapewipe: Proxy queries on the video pads to the correct peers

2009-06-09 18:37:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	  shapewipe: Proxy bufferalloc on the video sinkpad

2009-06-09 18:25:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	  shapewipe: Try to work inplace if possible
	  This saves one new, large allocation per frame for the
	  most cases.

2009-06-16 18:46:49 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: fix stray semicolons that mess up if statement

2009-06-11 13:42:20 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	* docs/plugins/Makefile.am:
	  docs: Bump common to correct upload-doc.mak, fix a comment in the doc Makefile

2009-06-18 20:33:00 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* win32/common/config.h:
	  Back to development -> 0.10.13.1

2009-06-18 08:53:12 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst-plugins-bad.doap:
	  Add 0.10.13 release entry to the doap file

=== release 0.10.13 ===

2009-06-18 08:29:56 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-adpcmdec.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-assrender.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dirac.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-hdvparse.xml:
	* docs/plugins/inspect/plugin-id3tag.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-shapewipe.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* win32/common/config.h:
	  Release 0.10.13

2009-06-17 21:56:56 +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/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/ky.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-16 17:09:26 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabinimage.c:
	  camerabin: reset filename after capture to avoid racy when capturing again
	  If we don't reset the filename we cannot check if we still expect the filename
	  for a subsequent capture pass. The imagebin would good to paused and we set the
	  filename in that state. This trigers an error-message and would capture to the
	  old filename.

2009-06-12 10:29:20 +0300  Stefan Kost <ensonic@users.sf.net>

	* tests/check/Makefile.am:
	* tests/check/elements/camerabin.c:
	  camerabin: cleanups in the tests
	  Sprinkle more logging to make it easier to follow. Specify a low framerate and
	  capture resolution to avoid tests timing out. Make the sinks sync to test closer
	  to reality. Fix Makefile to use uninstalled interface.

2009-06-12 10:26:30 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/camerabinimage.c:
	* gst/camerabin/gstcamerabin.c:
	  camerabin: set imagebin to PAUSED on capture and delayed filename setting
	  We need to set imagebin to PAUSED to not fail the bufferalloc. We also need to
	  keep the filesinks state locked until we have the filename for the run.

2009-06-12 10:14:27 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/selector/gstoutputselector.c:
	  outputselector: do the pad_alloc for the pad that is pending and have a fallback
	  We should do the pad_alloc for the pending pad if any, as we will switch to that
	  pad on next _chain() call. Also do a fallback alloc, if there is no output yet to
	  not fail state transitions in dynamic pipelines.

2009-06-11 16:00:36 +0100  Jan Schmidt <thaytan@noraisin.net>

	* win32/common/config.h:
	  win32: Bump win32 config.h version number too

2009-06-05 22:43:50 +0100  Jan Schmidt <thaytan@noraisin.net>

	* 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/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/ky.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.12.3 pre-release

2009-06-06 21:28:27 +0400  LRN <lrn1986@gmail.com>

	* gst/debugutils/Makefile.am:
	  Added base libs to debug utils makefile
	  Fixes #585015

2009-06-07 10:55:59 +0200  Edward Hervey <bilboed@bilboed.com>

	* tests/check/pipelines/metadata.c:
	  tests/metadata: Don't try tags we can't handle. Fixes #584945

2009-06-06 19:28:07 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/hdvparse/Makefile.am:
	  hdvparse: Link against libm because we use pow().

2009-06-06 13:53:04 +0100  Jan Schmidt <jan.schmidt@sun.com>

	* tests/examples/Makefile.am:
	  examples: Don't build the mxf example if GTK isn't present.

2009-06-06 13:17:49 +0100  Jan Schmidt <jan.schmidt@sun.com>

	* ext/apexsink/gstapexraop.c:
	* ext/apexsink/gstapexsink.c:
	  apexsink: Fix compiler warnings
	  Fix compile warnings on solaris from bzero not being declared (use
	  memset instead), and strict-aliasing warnings (use a temporary
	  variable).

2009-06-06 02:35:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/id3tag/id3tag.c:
	  id3mux: init genre field in ID3v1 tag to an invalid number
	  So that it is not interpreted as 'Blues' if no genre is to be written.

2009-06-06 01:05:49 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/id3tag/gstid3mux.c:
	  id3mux: don't write ID3v1 tag until specifically instructed to do so
	  ID3v1 tags are one of the most broken and ill-designed things that
	  exist on this planet. Let's not write them by default.

2009-06-06 00:58:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/id3tag/id3tag.c:
	  id3mux: don't write empty ID3v1 tag

2009-06-06 00:39:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/inspect/plugin-id3tag.xml:
	* gst/id3tag/Makefile.am:
	* gst/id3tag/gstid3mux.c:
	* gst/id3tag/gstid3mux.h:
	* gst/id3tag/gstid3tag.c:
	* gst/id3tag/gstid3tag.h:
	* gst/id3tag/gsttagmux.c:
	* gst/id3tag/id3tag.c:
	* gst/id3tag/id3tag.h:
	  id3tag: rename new id3tag element to id3mux replacing the one removed from -ugly

2009-06-05 23:52:05 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/nsf/nes6502.c:
	  nsf: Fix compiler warning on Solaris.
	  A SEC() macro already exists on Solaris, causing warnings about
	  redefining it.

2009-06-05 22:20:46 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/hdvparse/gsthdvparse.c:
	  hdvparse: Fix the build on Commander Thaytan's S10SP

2009-06-05 19:53:09 +0100  Jan Schmidt <thaytan@noraisin.net>

	* tests/check/elements/.gitignore:
	  gitignore: Ignore shapewipe unit test binary

2009-06-05 19:32:26 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-x264.xml:
	* ext/Makefile.am:
	* ext/x264/GstX264Enc.prs:
	* ext/x264/Makefile.am:
	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	* gst-plugins-bad.spec.in:
	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	  Moved 'x264enc' from -bad to -ugly

2009-06-05 21:17:55 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/Makefile.am:
	* tests/check/Makefile.am:
	  camerabin: fix link order
	  Move local version up in the link order.

2009-06-05 20:22:17 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/hdvparse/gsthdvparse.c:
	  hdvparse: Emit a GST_MESSAGE_ELEMENT with some goodness in it.

2009-06-05 10:49:41 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegvideoparse/mpegvideoparse.c:
	  mpegvideoparse: Add methods to get names of various values.

2009-06-05 10:48:52 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegdefs.h:
	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Fix HDV private stream definition/caps.

2009-06-05 10:47:41 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/hdvparse/gsthdvparse.c:
	  hdvparse: Rewrite from scratch. Handle both hdv-a and hdv-v
	  This time we analyze a lot more information.
	  Still need to re-add the message emission.

2009-06-05 16:48:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/celt/gstceltenc.c:
	  celtenc: correct framesize range
	  A CELT framesize can be between 64 and 512 samples.
	  Fix a typo in the bitrate property description.

2009-05-27 11:33:01 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/Makefile.am:
	* gst/camerabin/camerabinimage.c:
	* gst/camerabin/camerabinimage.h:
	* gst/camerabin/camerabinpreview.c:
	* gst/camerabin/camerabinpreview.h:
	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabin.h:
	* tests/check/elements/camerabin.c:
	  camerabin: preview image sending optimization
	  * decouple image capturing from image post-processing and encoding
	  * post image-captured message after image is captured
	  * post preview-image message with snapshot of captured image

2009-05-19 16:58:36 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/camerabinimage.c:
	  camerabin: don't lose post processing element in first reset

2009-05-12 12:49:33 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/camerabingeneral.c:
	* gst/camerabin/camerabinimage.c:
	* gst/camerabin/camerabinvideo.c:
	  camerabin: add debug including dot graph writing

2009-05-05 14:19:46 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: unblock if error occurs during capture

2009-05-04 10:33:18 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabinphotography.c:
	  camerabin: ignore night mode handling if already in night mode

2009-05-04 10:32:10 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: stop ongoing capture if changing resolution

2009-04-23 18:15:43 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/camerabinvideo.c:
	  camerabin: limit the size of video bin queue leading to view finder
	  We don't want to show old buffers in view finder.

2009-04-22 12:29:14 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/Makefile.am:
	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabinxoverlay.c:
	* gst/camerabin/gstcamerabinxoverlay.h:
	  camerabin: don't proxy gst xoverlay interface
	  Default view finder sink in camerabin is autovideosink which doesn't
	  support xoverlay iface. If application decides to use another sink
	  that supports xoverlay, then it can use the interface directly.

2009-04-20 17:06:14 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabin.h:
	* gst/camerabin/gstcamerabinphotography.c:
	  camerabin: allow configuring photography settings when in NULL state
	  Cache the photography settings if set in NULL state and apply them later

2009-04-20 17:05:49 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst-libs/gst/interfaces/photography.c:
	* gst-libs/gst/interfaces/photography.h:
	  photography: add functions to set/get all settings with one call

2009-03-09 18:00:45 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: crop still image capture frame if necessary
	  If incoming still image capture frame aspect ratio differs from aspect
	  ratio that application requested, then apply crop to the frame.

2009-06-05 10:25:26 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/inspect/plugin-adpcmdec.xml:
	* docs/plugins/inspect/plugin-hdvparse.xml:
	* docs/plugins/inspect/plugin-id3tag.xml:
	  docs: add inspect files for new plugins

2009-06-05 10:16:23 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dirac.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	  docs: fix build of plugin docs by updating inspect templates
	  The xml inspect data of the debugutilsbad plugin didn't contain the
	  data for the fpsdisplaysink element (someone probably ran 'make udpate'
	  in docs/plugins with the old libgstfpsdisplaysink.so from before the
	  rename still around).

2009-06-05 10:34:30 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/xml/element-fpsdisplaysink-details.xml:
	  Revert "docs: add doc file fro new plugin"
	  This reverts commit 039ef3eb072555b7ca38fc351ca386bb680ccccc.
	  We don't track the stuff in xml/ in git.

2009-06-05 11:18:31 +0300  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/xml/element-fpsdisplaysink-details.xml:
	  docs: add doc file fro new plugin

2009-06-01 16:31:42 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/selector/gstoutputselector.c:
	  output-selector: serialize setting and actual changing of new active pad

2009-05-04 12:29:54 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/selector/gstoutputselector.c:
	  output-selector: unref latest buffer also when resending has been disabled

2009-04-16 17:32:03 +0300  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/selector/gstoutputselector.c:
	  output-selector: keep ref to buffer for resending only if explicitly requested

2009-06-04 19:08:16 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: don't leak pads in iterator

2009-06-04 16:29:31 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegdesc.c:
	  mpegdemux: Add a GST_MEMDUMP line in the descriptor parsing
	  Make it possible to see descriptor contents in the debug output
	  (GST_DEBUG=mpegtsdesc:9), and remove a stray semi-colon.

2009-06-04 16:11:16 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Avoid passing the custom GST_FLOW_NEED_MORE_DATA upstream
	  Don't return GST_FLOW_NEED_MORE_DATA from the chain function at the end
	  of files.

2009-06-04 08:56:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Notify when the tags property of the selector sinkpads changes
	  First part of bug #584686.

2009-06-04 08:56:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/elements/shapewipe.c:
	  shapewipe: Increase timeout of the unit test

2009-06-03 23:35:36 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  Bump core/base requirements to released versions

2009-06-02 11:36:01 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  add two new plugins to spec file

2009-06-02 11:23:37 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst/dvdspu/Makefile.am:
	  dvdspu: add missing header to Makefile.am: gstspu-common.h

2009-06-02 01:09:32 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dirac/Makefile.am:
	  dirac: use GST_CXXFLAGS instead of GST_CFLAGS for c++ compilers
	  Fixes compiler message about passing -Wdeclaration-after-statement
	  to the C++ compiler.

2009-06-01 15:53:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/aacparse/gstaacparse.c:
	  aacparse: fix sample rate extraction from codec data
	  In one case we extracted the sample rate index from the codec data
	  and saved it as sample rate rather than getting the real sample
	  rate from the table. Fix that, and also make sure we don't access
	  non-existant table entries by adding a small helper function that
	  guards against out-of-bounds access in case of invalid input data.

2009-06-01 14:02:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/aacparse/gstaacparse.c:
	* gst/amrparse/gstamrparse.c:
	  aacparse, amrparse: remove bogus gst_pad_fixate_caps() calls

2009-06-01 13:56:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.c:
	  baseparse: propagate return value of GstBaseParse::set_sink_caps()
	  gst_base_parse_sink_setcaps() presumably should fail if the subclass
	  returns FALSE from its ::set_sink_caps() function.

2009-06-01 13:47:01 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.c:
	  baseparse: don't try to GST_LOG an already-freed caps string
	  The proper way to log caps is via GST_PTR_FORMAT anyway.

2009-06-01 13:05:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/aacparse/gstaacparse.c:
	* tests/check/elements/aacparse.c:
	  aacparse: set channels and rate on output caps, and keep codec_data
	  Create output caps from input caps, so we maintain any fields we
	  might get on the input caps, such as codec_data or rate and channels.
	  Set channels and rate on the output caps if we don't have input caps
	  or they don't contain such fields. We do this partly because we can,
	  but also because some muxers need this information. Tagreadbin will
	  also be happy about this.

2009-06-01 22:42:08 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/atoms.h:
	* gst/qtmux/ftypcc.h:
	* gst/qtmux/gstqtmuxmap.c:
	  gppmux: enhance ftyp brand heuristic.  Fixes #584360.

2009-06-01 21:24:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	  shapewipe: Fix some issues that were exposed by the new unit test

2009-06-01 21:24:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/shapewipe.c:
	  shapewipe: Add unit test for shapewipe

2009-05-31 21:33:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-assrender.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-shapewipe.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* gst/shapewipe/gstshapewipe.c:
	  shapewipe: Add documentation and integrate into the build system

2009-05-31 20:24:44 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/sdp/gstsdpdemux.c:
	  sdpdemux: include glib.h before checking if G_OS_WIN32 is defined

2009-05-31 20:23:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* .gitignore:
	  .gitignore: ignore new shapewipe example binary

2009-05-31 18:23:50 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/hdvparse/gsthdvparse.c:
	  hdvparse: Setting rank to NONE so it doesn't get picked up by playbin2.

2009-05-31 18:23:08 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/hdvparse/gsthdvparse.c:
	  hdvparse: Emit application message with the parsed information.

2009-05-31 14:15:11 +0200  Edward Hervey <bilboed@bilboed.com>

	* configure.ac:
	* gst/hdvparse/Makefile.am:
	* gst/hdvparse/gsthdvparse.c:
	* gst/hdvparse/gsthdvparse.h:
	  hdvparse: New element for parsing private/hdv-a1 streams.

2009-05-29 21:07:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	  shapewipe: Adjust border to still have everything transparent at 1.0 and the other way around

2009-05-29 16:55:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	* tests/examples/shapewipe/shapewipe-example.c:
	  shapewipe: Divide the border value by two, otherwise we use a twice a wide border

2009-05-29 16:51:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/shapewipe/gstshapewipe.c:
	* gst/shapewipe/gstshapewipe.h:
	* tests/examples/shapewipe/shapewipe-example.c:
	  shapewipe: Add border property to allow smooth borders
	  ...and use a border of 0.01 in the example application.

2009-05-29 15:44:51 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Fix bogus uninitialised variable access
	  Typo in the previous commit

2009-05-29 15:01:42 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Use the ISO 639 language code descriptor to send tags.
	  If there is an ISO 639 language descriptor for a stream, send a language
	  code tag so that players can show a meaningful language for the audio and
	  subtitle streams.

2009-05-29 16:00:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/examples/shapewipe/Makefile.am:
	  shapewipe: Fix Makefile of the example application

2009-05-29 15:32:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/shapewipe/Makefile.am:
	* gst/shapewipe/gstshapewipe.c:
	* gst/shapewipe/gstshapewipe.h:
	* tests/examples/Makefile.am:
	* tests/examples/shapewipe/Makefile.am:
	* tests/examples/shapewipe/shapewipe-example.c:
	  shapewipe: Add a simple shapewipe transition filter & example application

2009-05-28 17:37:44 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Transform the right session sdes message
	  Fixes #584165

2009-05-28 17:33:10 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c:
	  Add ssrc to application/x-rtp-source-sdes structure

2009-05-28 23:12:13 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/rawparse/gstaudioparse.c:
	  audioparse: add support for A-Law and µ-Law

2009-05-28 23:08:17 +0100  Tristan Matthews <le.businessman@gmail.com>

	* gst/dvdspu/gstspu-pgs.c:
	  gstspu: Fix compiler warnings on OS/X
	  Fix some warnings for format string args and uninitialized vars on OS/X
	  Fixes: #584164
	  Signed-off-by: Jan Schmidt <thaytan@noraisin.net>

2009-05-28 13:56:10 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/fourcc.h:
	* gst/qtmux/gstqtmux.c:
	  qtmux: use different stsd atom type for H263 for ISO and QT variants
	  Fixes #584114.

2009-05-28 13:07:37 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* configure.ac:
	  soundtouch: fix detection of libsoundtouch >= 1.4

2009-05-28 13:09:24 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/amrparse/gstamrparse.c:
	* gst/amrparse/gstamrparse.h:
	  amrparse: consider header size in byte <-> time conversions

2009-05-26 19:43:53 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	  baseparse: fix debug category

2009-05-28 10:38:50 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/selector/gstoutputselector.h:
	  selector: remove not needed instance var (previous commit).

2009-05-11 16:12:54 +0300  Stefan Kost <ensonic@users.sf.net>

	* ext/jack/gstjackaudioclient.c:
	* ext/jack/gstjackaudiosink.c:
	  jack: when stopping playback, do one more cycle to flush the port. Fixes #582167
	  The gst_jack_audio_client_set_active() flags the port as deactivating and uses
	  a GCond to wait until the jack_process_cb() has run once more and cleared the
	  flag. This way the client zero's the buffer. This happens if one manyally go
	  to PAUSED and then to READY, while leting the mainloop run inbetween.

2009-05-28 10:12:58 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/selector/gstoutputselector.c:
	* gst/selector/gstoutputselector.h:
	  outputselector: implement pad_alloc on active pad.

2009-05-27 22:54:51 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	* ext/resindvd/gstmpegdemux.h:
	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/rsnaudiomunge.c:
	  resindvd: Create all the audio streams of all formats
	  Enable creation of the demuxer pads for all audio streams, even types we
	  don't yet support. This means that unsupported types (LPCM, DTS) are output,
	  but not linked to anything yet. If only unsupported streams are available,
	  the user hears silence instead of having the pipeline not pre-roll correctly.
	  This is a prerequisite for hooking up the automatic decoder switching.

2009-05-27 11:03:14 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c:
	  rtpsouce: the network address is in network order
	  Bring the network address in netowkr byte order to the host order.

2009-05-27 00:51:45 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstspu-pgs.c:
	  gstspu: Convert g_warnings to GST_ERROR, and fix format specifiers
	  Use G_GSSIZE_FORMAT for printing pointer differences, which should work on
	  both 32-bit and 64-bit systems.
	  Use GST_ERROR instead of g_warning for printing messages about unknown
	  packet contents.

2009-05-27 00:47:05 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstspu-vobsub-render.c:
	  gstspu: Fix a nasty regression, with DVDs randomly crashing
	  Use the local wrapper function when clearing the compositing buffers to
	  ensure the correct portion is being cleared.

2009-05-26 19:38:54 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: LPCM streams are only from 0xa0 to 0xaf.
	  Fix the same bug as the previous commit, but in resindvd's copy of
	  mpegdemux.

2009-05-26 18:47:32 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: Only treat streams from 0xa0 to 0xaf as LPCM, not 0xa0..0xbf
	  Don't treat some streams (Private Stream 2) as LPCM when they're not. Fixes
	  playback of files that have private streams in them now that the PES filter
	  emits such packets.

2009-05-26 18:43:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/dvdspu/gstspu-pgs.c:
	  dvdspu: fix printf formats to avoid compiler warnings

2009-05-26 17:19:35 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 6ab11d1 to c572721

2009-05-23 23:19:05 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/Makefile.am:
	* gst/dvdspu/gstdvdspu-render.c:
	* gst/dvdspu/gstdvdspu.c:
	* gst/dvdspu/gstdvdspu.h:
	* gst/dvdspu/gstspu-common.h:
	* gst/dvdspu/gstspu-pgs.c:
	* gst/dvdspu/gstspu-pgs.h:
	* gst/dvdspu/gstspu-vobsub-render.c:
	* gst/dvdspu/gstspu-vobsub.c:
	* gst/dvdspu/gstspu-vobsub.h:
	  gstspu: Implement PGS rendering and alpha blending
	  Refactor the DVD subpicture compositing, switching it to 8-bit alpha
	  calculations. Reuse some of the resulting code to implement PGS
	  subpicture blending.
	  Implement parsing and collecting of composition objects properly, but
	  assuming a single active window and colour palette for now. I need more
	  PGS samples.

2009-05-22 11:13:59 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/Makefile.am:
	* gst/dvdspu/gstdvdspu.c:
	* gst/dvdspu/gstspu-vobsub.c:
	* gst/dvdspu/gstspu-vobsub.h:
	  dvdspu: Move a bunch of vobsub specific logic to a separate file.
	  Start separating out the vobsub logic in preparation for creating
	  separate renderer objects for each subpicture format.

2009-05-22 11:12:52 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstspu-pgs.c:
	  dvdspu: Add copyright header and includes to the PGS handler

2009-05-22 10:15:44 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstspu-pgs.c:
	  dvdspu: Make the PGS dumping less verbose

2009-05-21 23:45:43 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: Collect entire PGS packets and queue as events
	  Collect fragmented PGS packets and submit as complete events for
	  processing at the correct moment.

2009-05-20 08:55:40 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/Makefile.am:
	* gst/dvdspu/gstdvdspu.c:
	* gst/dvdspu/gstdvdspu.h:
	* gst/dvdspu/gstspu-pgs.c:
	* gst/dvdspu/gstspu-pgs.h:
	  dvdspu: Add simple PGS handler that dumps the packet info
	  Add setcaps logic on the subpicture sink pad for configuring
	  which subpicture format is arriving.
	  Add the first piece of PGS subpicture handling by dumping the stream
	  contents out to the terminal as the packets arrive.
	  Add some more debug.
	  Don't calculate the running time for our subpicture packets twice,
	  once is enough.

2009-05-21 15:22:58 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: Add a simple default colour table.
	  When we're not provided with a palette in advance, draw with a grey
	  colour or two, instead of YUV green.

2009-05-21 11:13:54 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegdemux.h:
	  mpegdemux: Add sparse stream filling.
	  First stab at sending new-segment events to effect sparse stream
	  updates.

2009-05-21 00:41:47 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegdemux.h:
	  mpegdemux: Add support for outputting sub-picture streams found in files.
	  Output subpicture streams when they are found on the private stream ID.
	  Don't strip off the first byte of such packets when pushing.

2009-05-20 08:50:37 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/mpegdemux/gstmpegdefs.h:
	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	* gst/mpegdemux/gstpesfilter.h:
	  mpegtsdemux: Add mapping for DVD and Bluray subpicture streams.
	  Add output subpicture pads for DVD (video/x-dvd-subpicture) and Bluray PGS
	  (subpicture/x-pgs) streams. Remove an unused variable from
	  the PES filter.

2009-05-25 00:25:07 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: Fix subpicture timing in some cases
	  Make sure we send events to all pads. Unmark the notlinked flag on
	  freshly selected pads to ensure they get data.

2009-05-22 14:02:38 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: Try a different approach to segment filling.
	  Restore the old segment update behaviour, and instead extend the
	  close segment stop time if the SCR (last_stop) overruns the calculated
	  stop position.

2009-05-21 11:10:13 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: Minor change to inline a function in the demuxer

2009-05-20 19:31:24 +0100  Jan Schmidt <thaytan@noraisin.net>

	* tests/check/Makefile.am:
	  states: Ignore the camerabin for the states test
	  It accesses the video device, which isn't generally desirable for the
	  state test.

2009-05-22 13:07:38 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: Don't accidentally lose the colour palette when flushing the SPU
	  Fixes racy startup on DVDs where it sometimes gets entirely the wrong set
	  of colours in the menus and subtitles.

2009-05-26 15:40:52 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c:
	  rtpsource: byteswap the port from GstNetAddress
	  Since the port in GstNetAddress is in network order we might need to byteswap it
	  before adding it to the source statistics.

2009-05-11 19:30:34 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstpesfilter.c:
	  gstpesfilter: Directly use gst_adapter_take_buffer().

2009-05-25 16:27:34 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstpesfilter.c:
	  gstpesfilter: Don't peek the adapter if we don't have enough data.

2009-05-25 16:25:42 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstpesfilter.c:
	  gstpesfilter: Don't skip private streams PES but push them out.
	  The one thing we *DO* need to do for those streams is to skip all
	  the PTS/DTS/Scrambling/DSM/extension/... handling.

2009-05-25 15:21:52 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Ignore NULL packets as early as possible.
	  This avoids:
	  * creating a MpegTSStream structure for nothing
	  * processing packet data for nothing

2009-05-25 15:21:12 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegdefs.h:
	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Add mapping for HDV private streams

2009-05-25 17:24:32 +0200  Mathias Hasselmann <mathias.hasselmann at gmx.de>

	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  neonhttp: add property to support SS cerificates
	  Add a property to support self-signed certificates in neonhttpsrc. This property
	  is FALSE by default.
	  Fixes #511097

2009-05-25 13:46:29 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: remove ptdemux ghostpads

2009-05-25 13:33:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/elements/rtpbin.c:
	  tests: add receive rtpbin unit test

2009-05-25 11:18:57 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: add multipass-cache-file property
	  Fixes #583627

2009-05-23 13:11:28 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  Update spec file

2009-05-22 16:56:52 -0700  Michael Smith <msmith@songbirdnest.com>

	* common:
	* configure.ac:
	* gst/adpcmdec/Makefile.am:
	* gst/adpcmdec/adpcmdec.c:
	  adpcmdec: Add new plugin for ms-adpcm decoding.

2009-05-20 16:46:49 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegvideoparse/mpegpacketiser.c:
	* gst/mpegvideoparse/mpegpacketiser.h:
	* gst/mpegvideoparse/mpegvideoparse.c:
	  mpegvideoparse: Detect interlaced content and set it on outgoing caps.
	  I also added the parsing of all the other bits in the sequence extension
	  header in case we need it later.

2009-05-22 16:41:19 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: add to new signal to remove SSRC pads

2009-05-22 16:35:20 +0200  Ali Sabil <ali.sabil at gmail.com>

	* gst/rtpmanager/gstrtpbin-marshal.list:
	* gst/rtpmanager/gstrtpssrcdemux.c:
	* gst/rtpmanager/gstrtpssrcdemux.h:
	  ssrcdemux: emit signal when pads are removed
	  Add action signal to clear an SSRC in the ssrc demuxer.
	  Add signal to notify of removed ssrc.
	  See #554839

2009-05-22 15:45:19 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: use our ghostpads instead of its target
	  Since we keep a reference to our ghostpads, we can use them to track sessions.
	  This avoid us having to mess with the target of the ghostpad.

2009-05-22 15:37:29 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/elements/rtpbin.c:
	  tests: more rtpbin checks

2009-05-22 15:36:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: don't warn when getting request pads twice
	  Allow getting the request pads multiple times, just return the previously
	  created pads.

2009-05-22 13:47:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c:
	  rtpsource: add RTP and RTCP source address
	  Add the RTP and RTCP sender addresses in the stats structure.

2009-05-22 13:45:15 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c:
	  rtpsession: reuse source code for SDES
	  Reuse the RTPSource object property instead of duplicating code.

2009-05-22 13:44:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/elements/rtpbin.c:
	  tests: add more rtpbin tests

2009-05-22 12:23:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	* tests/check/elements/rtpbin.c:
	  tests: add rtpbin unit test
	  Add the beginnings of an rtpbin unit test
	  Add some more stuff to .gitignore

2009-05-22 12:20:13 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: set target state on new elements
	  Set the state on newly added elements to the state of the parent.
	  Add some debug info and do some cleanups

2009-05-22 11:59:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: unref requests pads after releasing

2009-05-21 16:00:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: fix memleaks and refcounts
	  Use correct constants for PID_type so that we clear the right filter.
	  provide_clock must return a ref to a clock.

2009-05-22 09:55:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* autogen.sh:
	* configure.ac:
	  autotools: move -Wno-portability for automake to configure.ac

2009-05-22 09:54:57 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/id3tag/gstid3tag.c:
	* gst/id3tag/gstid3tag.h:
	* gst/id3tag/id3tag.c:
	  id3tag: canonicalise function names

2009-05-22 09:51:29 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/id3tag/gstid3tag.c:
	* gst/id3tag/gstid3tag.h:
	* gst/id3tag/gsttagmux.c:
	  id3tag: change GType to GstId3Tag so it doesn't conflict with the id3tag plugin in -ugly

2009-05-22 01:29:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* win32/common/config.h:
	  win32: update config.h

2009-05-22 01:27:09 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/id3tag/gsttagmux.c:
	  id3tag: register GType of the base class with a less generic name
	  .. so we can easily move the base class into -base later without
	  causing GType name conflicts.

2009-05-22 01:04:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* common:
	* m4/gst-fionread.m4:
	  m4: fix 'suspicious cache value id' warnings in gst-fionread.m4
	  And update common to pull in a related fix from there.

2009-05-22 01:43:50 +0200  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Implement releasing the streams
	  See #561752

2009-05-22 01:16:11 +0200  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Keep jb signals handler
	  Keep the signal handlers so they can be disconnected at release time
	  See #561752

2009-05-22 01:12:57 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: use the right lock for the sessions
	  Use the right lock when iterating the sessions.

2009-05-22 01:03:55 +0200  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Free session if request pads are released
	  Free the session when all the request pads are released.
	  Don't mess with the session list in free_session as it is called from a foreach
	  on that list.
	  Set the state of the upstream element to NULL first.
	  See #561752

2009-05-22 00:51:53 +0200  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Implement relasing of the rtp recv pad

2009-05-22 00:44:51 +0200  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Implement releasing of rtp send pads

2009-05-22 00:34:36 +0200  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Implement release of the recv rtcp pad
	  See #561752

2009-05-22 00:16:19 +0200  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Implement releasing of rtcp src pad
	  See #561752

2009-05-18 23:38:59 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/dts/gstdtsdec.c:
	* ext/dts/gstdtsdec.h:
	  dtsdec: Reconcile element code with a52dec changes
	  Re-work the dtsdec element code to unify it with changes made it a52dec,
	  including support for reverse playback and dynamic channel negotiation
	  on the source pad.

2009-05-21 21:35:32 +0100  Jan Schmidt <thaytan@noraisin.net>

	* win32/common/config.h:
	  win32: Update the win32 config.h

2009-05-18 23:21:47 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/sdp/gstsdpdemux.c:
	* gst/sdp/gstsdpdemux.h:
	  sdpdemux: rework RTCP sending and RTP receiving
	  When we are dealing with multiast, create the udp src and sink elements pointing
	  to the multicast addresses. When we are doing unicast, receive data on the local
	  ports and don't send RTCP because we don't know where we have to send it.
	  Fixes #583188

2009-05-21 13:15:46 -0700  Michael Smith <msmith@songbirdnest.com>

	* configure.ac:
	* gst/id3tag/Makefile.am:
	* gst/id3tag/gstid3tag.c:
	* gst/id3tag/gstid3tag.h:
	* gst/id3tag/gsttagmux.c:
	* gst/id3tag/gsttagmux.h:
	* gst/id3tag/id3tag.c:
	* gst/id3tag/id3tag.h:
	  id3tag: Add new id3 tagging plugin, supports v1, v2.3, and v2.4.
	  By default, does v1 and v2.3, but there are properties to select.
	  Will hopefully replace id3mux, id3v2mux, in the not-too-distant future.

2009-05-21 21:02:55 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  Back to hacking -> 0.10.12.1

=== release 0.10.12 ===

2009-05-20 22:31:54 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dirac.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* gst-plugins-bad.doap:
	* win32/common/config.h:
	  Release 0.10.12

2009-05-20 20:44:12 +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/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ky.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-05-20 17:10:40 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mxf/mxfmetadata.c:
	  mxf: Fix frame_layout for non-interlaced formats. Fixes #583337

2009-05-16 01:58:33 +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/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ky.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.3 pre-release

2009-05-16 01:53:15 +0100  Jan Schmidt <thaytan@noraisin.net>

	* win32/MANIFEST:
	  win32: Add directdraw project files to the win32 manifest

2009-05-16 01:14:23 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-directdraw.xml:
	* sys/Makefile.am:
	  Moved 'directdraw' from -good to -bad

2007-06-15 09:13:55 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  [MOVED FROM GOOD] win32/vs6/: Mark *.dsp & *.dsw as binary files and convert to DOS line endings, as they don't load into VS6 correctly...
	  Original commit message from CVS:
	  * win32/vs6/autogen.dsp:
	  * win32/vs6/gst_plugins_good.dsw:
	  * win32/vs6/libgstalaw.dsp:
	  * win32/vs6/libgstalpha.dsp:
	  * win32/vs6/libgstalphacolor.dsp:
	  * win32/vs6/libgstapetag.dsp:
	  * win32/vs6/libgstaudiofx.dsp:
	  * win32/vs6/libgstauparse.dsp:
	  * win32/vs6/libgstautodetect.dsp:
	  * win32/vs6/libgstavi.dsp:
	  * win32/vs6/libgstcutter.dsp:
	  * win32/vs6/libgstdirectdraw.dsp:
	  * win32/vs6/libgstdirectsound.dsp:
	  * win32/vs6/libgsteffectv.dsp:
	  * win32/vs6/libgstflx.dsp:
	  * win32/vs6/libgstgoom.dsp:
	  * win32/vs6/libgsticydemux.dsp:
	  * win32/vs6/libgstid3demux.dsp:
	  * win32/vs6/libgstinterleave.dsp:
	  * win32/vs6/libgstjpeg.dsp:
	  * win32/vs6/libgstlevel.dsp:
	  * win32/vs6/libgstmatroska.dsp:
	  * win32/vs6/libgstmedian.dsp:
	  * win32/vs6/libgstmonoscope.dsp:
	  * win32/vs6/libgstmulaw.dsp:
	  * win32/vs6/libgstmultipart.dsp:
	  * win32/vs6/libgstqtdemux.dsp:
	  * win32/vs6/libgstrtp.dsp:
	  * win32/vs6/libgstrtsp.dsp:
	  * win32/vs6/libgstsmpte.dsp:
	  * win32/vs6/libgstspeex.dsp:
	  * win32/vs6/libgstudp.dsp:
	  * win32/vs6/libgstvideobalance.dsp:
	  * win32/vs6/libgstvideobox.dsp:
	  * win32/vs6/libgstvideocrop.dsp:
	  * win32/vs6/libgstvideoflip.dsp:
	  * win32/vs6/libgstvideomixer.dsp:
	  * win32/vs6/libgstwaveform.dsp:
	  * win32/vs6/libgstwavenc.dsp:
	  * win32/vs6/libgstwavparse.dsp:
	  Mark *.dsp & *.dsw as binary files and convert to DOS line
	  endings, as they don't load into VS6 correctly otherwise.

2007-02-11 15:26:49 +0000  Sébastien Moutte <sebastien@moutte.net>

	  [MOVED FROM GOOD] Makefile.am: Add win32 MANIFEST
	  Original commit message from CVS:
	  * Makefile.am:
	  Add win32 MANIFEST
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directdraw/gstdirectdrawsink.h:
	  Clear unused code and add comments.
	  Remove yuv from template caps, it only supports RGB
	  actually.
	  Implement XOverlay interface and remove window and fullscreen
	  properties.
	  Add debug logs.
	  Test for blit capabilities to return only the current colorspace if
	  the hardware can't blit for one colorspace to another.
	  * sys/directsound/gstdirectsoundsink.c:
	  Add some debugs.
	  * win32/MANIFEST:
	  Add VS7 project files and solution.
	  * win32/vs6/gst_plugins_bad.dsw:
	  * win32/vs6/libgstdirectdraw.dsp:
	  * win32/vs6/libgstdirectsound.dsp:
	  * win32/vs6/libgstqtdemux.dsp:
	  Update project files.

2006-11-01 10:19:18 +0000  Sergey Scobich <sergey.scobich@gmail.com>

	  [MOVED FROM GOOD] sys/: Wait until the window is created before using it; guard unistd.h includes with HAVE_UNISTD_H. (#366523)
	  Original commit message from CVS:
	  Patch by: Sergey Scobich  <sergey dot scobich at gmail com>
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdrawsink_window_thread),
	  (gst_directdrawsink_create_default_window):
	  * sys/directdraw/gstdirectdrawsink.h:
	  * sys/directsound/gstdirectsoundsink.c:
	  Wait until the window is created before using it; guard unistd.h
	  includes with HAVE_UNISTD_H. (#366523)
	  * win32/vs8/libgstdirectdraw.vcproj:
	  * win32/vs8/libgstdirectsound.vcproj:
	  Update project files.

2006-07-24 21:43:06 +0000  Sébastien Moutte <sebastien@moutte.net>

	  [MOVED FROM GOOD] sys/directsound/gstdirectsoundsink.*: Add an attenuation property that will directly attenuate the directsound buffer.
	  Original commit message from CVS:
	  * sys/directsound/gstdirectsoundsink.h:
	  * sys/directsound/gstdirectsoundsink.c:
	  Add an attenuation property that will directly attenuate the
	  directsound buffer.
	  Change the size of the directsound secondary buffer to a half second.
	  Add more debug logs.
	  Add a lock to protect dsound buffer write access.
	  Fix a bad implementation of reset.
	  * sys/directsound/gstdirectdrawsink.c:
	  * sys/directsound/gstdirectdrawsink.h:
	  Add a keep_aspect_ratio property.
	  Do not use overlay if not supported.
	  Add more debug logs.
	  Remove overwrite of WM_ERASEBKGND message handling. It was not
	  redrawing border when keep_aspect_ratio was enabled.
	  * win32/common/config.h:
	  update version waiting an auto-generated config.h

2006-03-03 23:45:23 +0000  Sébastien Moutte <sebastien@moutte.net>

	  [MOVED FROM GOOD] sys/: sinks are now using GST_RANK_PRIMARY to be used with autodectection
	  Original commit message from CVS:
	  * sys/directdraw:
	  * sys/directsound:
	  sinks are now using GST_RANK_PRIMARY to be used with autodectection
	  * win32/vs6:
	  project files updated to fix some bugs
	  * win32/vs7:
	  * win32/vs8:
	  vs7 and vs8 project files added

2006-01-05 23:17:44 +0000  Sébastien Moutte <sebastien@moutte.net>

	* win32/vs6/libgstdirectdraw.dsp:
	  [MOVED FROM GOOD] added sys/directdraw added sys/directsound added win32/vs6/gst_plugins_bad.dsw added win32/vs6/libgstdirectsound.dsp ...
	  Original commit message from CVS:
	  2006-01-05  Sebastien Moutte  <sebastien@moutte.net>
	  * added sys/directdraw
	  * added sys/directsound
	  * added win32/vs6/gst_plugins_bad.dsw
	  * added win32/vs6/libgstdirectsound.dsp
	  * added win32/vs6/libgstdirectdraw.dsp
	  * added win32/common/config.h

2009-02-27 20:40:31 +0100  LRN <lrn1986@gmail.com>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] directdrawsink: Fix type mismatches
	  Fixes bug #573343.

2009-01-29 11:07:59 +0200  Stefan Kost <ensonic@users.sf.net>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] Remove version numbers from a few gst-launch examples.
	  The majority of the examples doe not use -0.10 and this will also help us to maintain the docs.

2009-01-29 10:10:08 +0200  Stefan Kost <ensonic@users.sf.net>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] Update and add documentation for platform specific plugins (sys).
	  Link to properties. Correct titles for examples. Fix examples.

2008-11-04 12:28:34 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  [MOVED FROM GOOD] Don't install static libs for plugins. Fixes #550851 for -good.
	  Original commit message from CVS:
	  * ext/aalib/Makefile.am:
	  * ext/annodex/Makefile.am:
	  * ext/cairo/Makefile.am:
	  * ext/dv/Makefile.am:
	  * ext/esd/Makefile.am:
	  * ext/flac/Makefile.am:
	  * ext/gconf/Makefile.am:
	  * ext/gdk_pixbuf/Makefile.am:
	  * ext/hal/Makefile.am:
	  * ext/jpeg/Makefile.am:
	  * ext/ladspa/Makefile.am:
	  * ext/libcaca/Makefile.am:
	  * ext/libmng/Makefile.am:
	  * ext/libpng/Makefile.am:
	  * ext/mikmod/Makefile.am:
	  * ext/pulse/Makefile.am:
	  * ext/raw1394/Makefile.am:
	  * ext/shout2/Makefile.am:
	  * ext/soup/Makefile.am:
	  * ext/speex/Makefile.am:
	  * ext/taglib/Makefile.am:
	  * ext/wavpack/Makefile.am:
	  * gst/alpha/Makefile.am:
	  * gst/apetag/Makefile.am:
	  * gst/audiofx/Makefile.am:
	  * gst/auparse/Makefile.am:
	  * gst/autodetect/Makefile.am:
	  * gst/avi/Makefile.am:
	  * gst/cutter/Makefile.am:
	  * gst/debug/Makefile.am:
	  * gst/effectv/Makefile.am:
	  * gst/equalizer/Makefile.am:
	  * gst/flx/Makefile.am:
	  * gst/goom/Makefile.am:
	  * gst/goom2k1/Makefile.am:
	  * gst/icydemux/Makefile.am:
	  * gst/id3demux/Makefile.am:
	  * gst/interleave/Makefile.am:
	  * gst/law/Makefile.am:
	  * gst/level/Makefile.am:
	  * gst/matroska/Makefile.am:
	  * gst/median/Makefile.am:
	  * gst/monoscope/Makefile.am:
	  * gst/multifile/Makefile.am:
	  * gst/multipart/Makefile.am:
	  * gst/oldcore/Makefile.am:
	  * gst/qtdemux/Makefile.am:
	  * gst/replaygain/Makefile.am:
	  * gst/rtp/Makefile.am:
	  * gst/rtsp/Makefile.am:
	  * gst/smpte/Makefile.am:
	  * gst/spectrum/Makefile.am:
	  * gst/udp/Makefile.am:
	  * gst/videobox/Makefile.am:
	  * gst/videocrop/Makefile.am:
	  * gst/videofilter/Makefile.am:
	  * gst/videomixer/Makefile.am:
	  * gst/wavenc/Makefile.am:
	  * gst/wavparse/Makefile.am:
	  * sys/directdraw/Makefile.am:
	  * sys/directsound/Makefile.am:
	  * sys/oss/Makefile.am:
	  * sys/osxaudio/Makefile.am:
	  * sys/osxvideo/Makefile.am:
	  * sys/sunaudio/Makefile.am:
	  * sys/v4l2/Makefile.am:
	  * sys/waveform/Makefile.am:
	  * sys/ximage/Makefile.am:
	  Don't install static libs for plugins. Fixes #550851 for -good.

2008-08-21 21:56:19 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_buffer_alloc, gst_directdraw_sink_bufferpool_clear):
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_buffer_alloc,
	  gst_directdraw_sink_bufferpool_clear):
	  Fix two more buffer ref leaks.

2008-08-21 15:28:09 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: Fix buffer ref leak.
	  Original commit message from CVS:
	  Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas at tandberg com>
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdraw_sink_show_frame):
	  Fix buffer ref leak.

2008-05-07 15:33:52 +0000  Haakon Sporsheim <haakon.sporsheim@tandberg.com>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_setup_ddraw): Do IDirectDrawClipper_SetHWnd() if the window I...
	  Original commit message from CVS:
	  patch by: Haakon Sporsheim <haakon.sporsheim at tandberg com>
	  * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_setup_ddraw):
	  Do IDirectDrawClipper_SetHWnd() if the window ID has already been
	  set after creating the clipper.

2008-05-07 15:28:06 +0000  Haakon Sporsheim <haakon.sporsheim@tandberg.com>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame): Added checking of surface lost case after an uns...
	  Original commit message from CVS:
	  patch by: Haakon Sporsheim <haakon.sporsheim at tandberg com>
	  * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame):
	  Added checking of surface lost case after an unsuccessful
	  IDirectDrawSurface7_Lock() call.
	  If surface is lost, return GST_FLOW_OK.

2008-05-07 15:19:47 +0000  Haakon Sporsheim <haakon.sporsheim@tandberg.com>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame,
	  Original commit message from CVS:
	  patch by: Haakon Sporsheim <haakon.sporsheim at tandberg com>
	  * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame,
	  WndProc, gst_directdraw_sink_window_thread):
	  Improved Windows message loop and fixed window destruction issue.
	  When the window which DirectDraw is rendering to is destroyed, the
	  render/show_frame function will return GST_FLOW_ERROR.
	  Partially fixes #520885.

2008-05-07 15:09:10 +0000  Haakon Sporsheim <haakon.sporsheim@tandberg.com>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_set_caps): Fixed mid stream resolution change bug, the offscr...
	  Original commit message from CVS:
	  patch by: Haakon Sporsheim <haakon.sporsheim at tandberg com>
	  * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_set_caps):
	  Fixed mid stream resolution change bug, the offscreen surface is now
	  released when set_caps is called.
	  Partially fixes #520885.

2008-05-07 14:56:22 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c
	  (gst_directdraw_sink_buffer_alloc):
	  Make it so that gst_directdraw_sink_buffer_alloc uses the right
	  width/height.
	  Especially when looking through the pool of buffers, make sure that
	  the width/height of caps is used instead of the already negotiated
	  dimensions.
	  For example if a buffer with different caps is requested, i.e.
	  higher resolution, the caller would get a buffer with the old
	  dimensions and thus corrupt the heap.

2008-05-07 14:43:39 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c
	  (gst_directdraw_sink_buffer_alloc):
	  Clear the flags on recycled buffers from buffer_alloc.
	  Partially fixes #520885.
	  The right fix this time.

2008-05-07 14:39:45 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c
	  (gst_directdraw_sink_buffer_alloc):
	  Reverting previous commit, it had it all mixed up, was for a different
	  patch (major automation screw-up). Sorry!

2008-05-07 13:48:28 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c
	  (gst_directdraw_sink_buffer_alloc):
	  Clear the flags on recycled buffers from buffer_alloc.
	  Partially fixes #520885.

2008-02-12 12:22:48 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: Properly chain up finalize functions. Fixes bug #515980.
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_ddrawsurface_class_init), (gst_ddrawsurface_finalize),
	  (gst_directdraw_sink_finalize):
	  Properly chain up finalize functions. Fixes bug #515980.

2008-01-07 16:41:00 +0000  Tim-Philipp Müller <tim@centricular.net>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: FALSE is not a gpointer.
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdraw_sink_window_thread):
	  FALSE is not a gpointer.

2008-01-05 21:20:08 +0000  Julien Moutte <julien@moutte.net>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: Make sure we create our internal window only when we need it. That will give a ch...
	  Original commit message from CVS:
	  2008-01-05  Julien Moutte  <julien@fluendo.com>
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdraw_sink_set_window_id),
	  (gst_directdraw_sink_set_caps),
	  (gst_directdraw_sink_change_state),
	  (gst_directdraw_sink_buffer_alloc),
	  (gst_directdraw_sink_draw_borders),
	  (gst_directdraw_sink_show_frame),
	  (gst_directdraw_sink_setup_ddraw),
	  (gst_directdraw_sink_window_thread),
	  (gst_directdraw_sink_get_ddrawcaps),
	  (gst_directdraw_sink_surface_create): Make sure we create our
	  internal window only when we need it. That will give a chance to
	  the application to get the prepare-xwindow-id bus message. Draw
	  black borders when keeping aspect ratio. Handle the case where
	  our
	  rendering window disappears (closed or errors) like other sinks
	  do. Various 80 columns fixes, improve state change order. That
	  element could need some more love.

2007-09-22 08:12:57 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	  [MOVED FROM GOOD] fix header and comments
	  Original commit message from CVS:
	  fix header and comments

2007-06-14 12:14:24 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  [MOVED FROM GOOD] Make sure to dist everything needed for win32 builds.
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/directdraw/Makefile.am:
	  * sys/directsound/Makefile.am:
	  * sys/waveform/Makefile.am:
	  Make sure to dist everything needed for win32 builds.

2007-06-08 16:31:15 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  [MOVED FROM GOOD] Rename the keep-aspect-ratio property to force-aspect-ratio to make it consistent with xvimagesink and ximagesink.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdraw_sink_class_init):
	  Rename the keep-aspect-ratio property to force-aspect-ratio to make
	  it consistent with xvimagesink and ximagesink.

2007-05-24 08:35:23 +0000  Vincent Torri <vtorri@univ-evry.fr>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.*: Fix more warnings when compiling with MingW (#439914).
	  Original commit message from CVS:
	  Patch by: Vincent Torri  <vtorri at univ-evry fr>
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdraw_sink_buffer_alloc),
	  (gst_directdraw_sink_show_frame),
	  (gst_directdraw_sink_check_primary_surface),
	  (gst_directdraw_sink_check_offscreen_surface),
	  (EnumModesCallback2), (gst_directdraw_sink_get_ddrawcaps),
	  (gst_directdraw_sink_surface_create):
	  * sys/directdraw/gstdirectdrawsink.h:
	  Fix more warnings when compiling with MingW (#439914).

2007-05-20 14:59:46 +0000  Tim-Philipp Müller <tim@centricular.net>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: Bunch of small fixes: remove static function that doesn't exist; declare another ...
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c: (gst_ddrawsurface_finalize),
	  (gst_directdraw_sink_buffer_alloc),
	  (gst_directdraw_sink_get_ddrawcaps),
	  (gst_directdraw_sink_surface_create):
	  Bunch of small fixes: remove static function that doesn't exist;
	  declare another one that does; printf format fix; use right macro
	  when specifying debug category; remove a bunch of unused variables;
	  #if 0 out an unused chunk of code (partially fixes #439914).

2007-05-15 17:22:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  [MOVED FROM GOOD] Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save and restore the various flags in the directdraw/dir...
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/directdraw/Makefile.am:
	  * sys/directsound/Makefile.am:
	  Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save
	  and restore the various flags in the directdraw/directsound
	  detection section. Apparently improves cross-compiling for win32
	  with mingw32 under some circumstances (#437539).

2007-04-29 13:56:18 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* sys/directdraw/gstdirectdrawsink.c:
	  [MOVED FROM GOOD] 80 char police
	  Original commit message from CVS:
	  80 char police

2007-03-11 22:23:04 +0000  Sébastien Moutte <sebastien@moutte.net>

	  [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.*: Handle display mode changes during playback.
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directdraw/gstdirectdrawsink.h:
	  Handle display mode changes during playback.

2007-02-27 12:02:03 +0000  Christian Schaller <uraeus@gnome.org>

	* sys/directdraw/gstdirectdrawplugin.c:
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	  [MOVED FROM GOOD] update copyright statements
	  Original commit message from CVS:
	  update copyright statements

2007-02-18 18:00:51 +0000  Sébastien Moutte <sebastien@moutte.net>

	  [MOVED FROM GOOD] sys/directdraw/: Prepare the plugin to move to good:
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawplugin.c:
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directdraw/gstdirectdrawsink.h:
	  Prepare the plugin to move to good:
	  Remove unused/untested code (rendering to an extern surface,
	  yuv format rendering).Use GST_(DEBUG/*)_OBJECT macros
	  Rename all functions from gst_directdrawsink to gst_directdraw_sink.
	  Add gtk doc section
	  Fix a bug in gst_directdraw_sink_show_frame, memcpy line by line
	  respecting destination surface stride.
	  * sys/directsound/gstdirectsoundplugin.c:
	  * sys/directsound/gstdirectsoundsink.c:
	  * sys/directsound/gstdirectsoundsink.h:
	  Prepare the plugin to move to good:
	  Rename all functions from gst_directsoundsink to gst_directsound_sink.
	  Add gtk doc section
	  * win32/common/config.h.in:
	  * win32/MANIFEST:
	  Add config.h.in

2007-02-11 15:26:49 +0000  Sébastien Moutte <sebastien@moutte.net>

	  [MOVED FROM GOOD] Makefile.am: Add win32 MANIFEST
	  Original commit message from CVS:
	  * Makefile.am:
	  Add win32 MANIFEST
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directdraw/gstdirectdrawsink.h:
	  Clear unused code and add comments.
	  Remove yuv from template caps, it only supports RGB
	  actually.
	  Implement XOverlay interface and remove window and fullscreen
	  properties.
	  Add debug logs.
	  Test for blit capabilities to return only the current colorspace if
	  the hardware can't blit for one colorspace to another.
	  * sys/directsound/gstdirectsoundsink.c:
	  Add some debugs.
	  * win32/MANIFEST:
	  Add VS7 project files and solution.
	  * win32/vs6/gst_plugins_bad.dsw:
	  * win32/vs6/libgstdirectdraw.dsp:
	  * win32/vs6/libgstdirectsound.dsp:
	  * win32/vs6/libgstqtdemux.dsp:
	  Update project files.

2007-01-03 19:54:33 +0000  Vincent Torri <vtorri@univ-evry.fr>

	  [MOVED FROM GOOD] Add directdrawsink to build and dist it, so it gets built when compiling with MingW on win32 and the required headers...
	  Original commit message from CVS:
	  Patch by: Vincent Torri  <vtorri at univ-evry fr>
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/directdraw/Makefile.am:
	  Add directdrawsink to build and dist it, so it gets built when
	  compiling with MingW on win32 and the required headers and libraries
	  are available (fixes: #392313).
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdrawsink_center_rect), (gst_directdrawsink_show_frame),
	  (gst_directdrawsink_setup_ddraw),
	  (gst_directdrawsink_surface_create):
	  Comment out some unused things and fix some printf format issues in
	  order to avoid warnings when buildling with MingW (#392313).

2006-11-01 10:19:18 +0000  Sergey Scobich <sergey.scobich@gmail.com>

	  [MOVED FROM GOOD] sys/: Wait until the window is created before using it; guard unistd.h includes with HAVE_UNISTD_H. (#366523)
	  Original commit message from CVS:
	  Patch by: Sergey Scobich  <sergey dot scobich at gmail com>
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdrawsink_window_thread),
	  (gst_directdrawsink_create_default_window):
	  * sys/directdraw/gstdirectdrawsink.h:
	  * sys/directsound/gstdirectsoundsink.c:
	  Wait until the window is created before using it; guard unistd.h
	  includes with HAVE_UNISTD_H. (#366523)
	  * win32/vs8/libgstdirectdraw.vcproj:
	  * win32/vs8/libgstdirectsound.vcproj:
	  Update project files.

2006-07-24 21:43:06 +0000  Sébastien Moutte <sebastien@moutte.net>

	  [MOVED FROM GOOD] sys/directsound/gstdirectsoundsink.*: Add an attenuation property that will directly attenuate the directsound buffer.
	  Original commit message from CVS:
	  * sys/directsound/gstdirectsoundsink.h:
	  * sys/directsound/gstdirectsoundsink.c:
	  Add an attenuation property that will directly attenuate the
	  directsound buffer.
	  Change the size of the directsound secondary buffer to a half second.
	  Add more debug logs.
	  Add a lock to protect dsound buffer write access.
	  Fix a bad implementation of reset.
	  * sys/directsound/gstdirectdrawsink.c:
	  * sys/directsound/gstdirectdrawsink.h:
	  Add a keep_aspect_ratio property.
	  Do not use overlay if not supported.
	  Add more debug logs.
	  Remove overwrite of WM_ERASEBKGND message handling. It was not
	  redrawing border when keep_aspect_ratio was enabled.
	  * win32/common/config.h:
	  update version waiting an auto-generated config.h

2006-06-12 10:53:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  [MOVED FROM GOOD] ext/libmms/gstmms.c: Set caps on outgoing buffers.
	  Original commit message from CVS:
	  * ext/libmms/gstmms.c: (gst_mms_create):
	  Set caps on outgoing buffers.
	  * sys/directdraw/gstdirectdrawsink.c: (gst_directdrawsink_init):
	  Comment out unused global instance variable.

2006-06-01 22:00:26 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  [MOVED FROM GOOD] 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-04-25 21:56:38 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  [MOVED FROM GOOD] 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-01 10:09:11 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* sys/directdraw/gstdirectdrawplugin.c:
	  [MOVED FROM GOOD] rework build; add translations for v4l2
	  Original commit message from CVS:
	  rework build; add translations for v4l2

2006-03-03 23:45:23 +0000  Sébastien Moutte <sebastien@moutte.net>

	  [MOVED FROM GOOD] sys/: sinks are now using GST_RANK_PRIMARY to be used with autodectection
	  Original commit message from CVS:
	  * sys/directdraw:
	  * sys/directsound:
	  sinks are now using GST_RANK_PRIMARY to be used with autodectection
	  * win32/vs6:
	  project files updated to fix some bugs
	  * win32/vs7:
	  * win32/vs8:
	  vs7 and vs8 project files added

2006-01-05 23:17:44 +0000  Sébastien Moutte <sebastien@moutte.net>

	* sys/directdraw/gstdirectdrawplugin.c:
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	  [MOVED FROM GOOD] added sys/directdraw added sys/directsound added win32/vs6/gst_plugins_bad.dsw added win32/vs6/libgstdirectsound.dsp ...
	  Original commit message from CVS:
	  2006-01-05  Sebastien Moutte  <sebastien@moutte.net>
	  * added sys/directdraw
	  * added sys/directsound
	  * added win32/vs6/gst_plugins_bad.dsw
	  * added win32/vs6/libgstdirectsound.dsp
	  * added win32/vs6/libgstdirectdraw.dsp
	  * added win32/common/config.h

2009-05-15 10:45:45 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplaysink: Fix resetting of the sink in NULL
	  Reset the fpsdisplaysink in NULL by removing the textoverlay if we
	  created it.
	  Fixes: #582633

2009-05-16 00:17:00 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst/y4m/Makefile.am:
	* gst/y4m/gsty4mencode.c:
	* gst/y4m/gsty4mencode.h:
	* gst/y4m/y4menc.vcproj:
	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	* tests/check/elements/y4menc.c:
	  Moved 'y4menc' from -bad to -good

2009-05-15 18:24:41 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* po/Makevars:
	  po: add Makevars magic so we don't get line numbers in *.po files
	  This avoids the number one reason for local modifications in *.po
	  files and and makes things less annoying when working with git (or
	  any other VCS for that matter).

2009-05-15 01:54:44 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/qtmux/atoms.c:
	  [qtmux] Fixes segfault when adding a blob as first tag.
	  Moves tags data initialization to the function that actually appends
	  the tags to the list. Fixes #582702
	  Also fixes some style caught by the pre-commit hook.

2009-05-14 21:20:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Use a RW lock to protect metadata and add all pads at once without a lock held
	  This makes it possible, among other things, to do a query in the
	  pad-added callback.
	  Fixes bug #582656.

2009-05-14 10:34:08 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Fix the argument order in a debug statement
	  Make the debug statement correctly show the 'old' and 'new' button
	  coordinates, instead of the wrong way around.

2009-05-14 09:53:25 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	* ext/resindvd/gstmpegdemux.h:
	  resindvd: Make segment updates less aggressive.
	  When updating a pad, send the update to half a second behind the SCR,
	  which avoids ever updating the start time for a pad to beyond the end of
	  the cell. Also, remember the last actual new-segment start time for each
	  pad, and use it when closing the segment.

2009-05-13 12:47:43 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Rework button highlight calculation slightly
	  When the current button number is higher than the number of available
	  buttons, switch to the highest numbered button rather than the lowest.
	  Also, don't throw errors when we fail to retrieve some button info
	  from libdvdnav, just reset the highlight.

2009-05-12 23:42:00 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: Send commands-changed on button change and handle commands query
	  Send the commands-changed navigation message when the set of available
	  DVD menu button actions changes, and handle the commands navigation
	  query so that (e.g.) Totem can know about the available navigation
	  commands.

2009-05-14 08:42:24 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Fix a leak of the DVD title string

2009-05-14 10:55:38 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: Push update frame, if any, when entering stills.
	  When entering a still frame generates an updated buffer, make sure
	  to push it out, otherwise we may not put a frame onscreen with a
	  rendered button, causing raciness as to whether buttons get drawn
	  or not when jumping back to the menu on some discs.

2009-05-13 10:29:36 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdbin.h:
	  resindvd: Fix raciness in rsndvdbin when initially creating pads
	  Protect pad exposure with a preroll lock to avoid situations
	  where no-more-pads is fired more than once, or fired just before
	  the last pad is actually added.

2009-05-13 17:55:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/y4m/gsty4mencode.c:
	  y4menc: change my email
	  change my email to something more current
	  See #580783

2009-05-13 17:54:47 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/y4m/gsty4mencode.c:
	  y4menc: don't strip timestamps
	  Fixes #582483

2009-05-13 10:47:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-deinterlace2.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* gst/deinterlace/.gitignore:
	* gst/deinterlace/Makefile.am:
	* gst/deinterlace/deinterlace.vcproj:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/deinterlace/gstdeinterlace.h:
	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/gstdeinterlace2.c:
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/greedy.c:
	* gst/deinterlace2/tvtime/greedyh.asm:
	* gst/deinterlace2/tvtime/greedyh.c:
	* gst/deinterlace2/tvtime/greedyhmacros.h:
	* gst/deinterlace2/tvtime/linear.c:
	* gst/deinterlace2/tvtime/linearblend.c:
	* gst/deinterlace2/tvtime/mmx.h:
	* gst/deinterlace2/tvtime/plugins.h:
	* gst/deinterlace2/tvtime/scalerbob.c:
	* gst/deinterlace2/tvtime/sse.h:
	* gst/deinterlace2/tvtime/tomsmocomp.c:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoop0A.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA8.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA2.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA6.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH2.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVA.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVAH.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	* gst/deinterlace2/tvtime/vfir.c:
	* gst/deinterlace2/tvtime/weave.c:
	* gst/deinterlace2/tvtime/weavebff.c:
	* gst/deinterlace2/tvtime/weavetff.c:
	* gst/deinterlace2/tvtime/x86-64_macros.inc:
	  Moved 'deinterlace2' from -bad to -good
	  And remove old deinterlace plugin as deinterlace2 will
	  be called deinterlace in -good.

2009-05-12 21:50:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-flv.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* gst/flv/Makefile.am:
	* gst/flv/gstflvdemux.c:
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvmux.c:
	* gst/flv/gstflvmux.h:
	* gst/flv/gstflvparse.c:
	* gst/flv/gstflvparse.h:
	  Moved 'flv' from -bad to -good

2009-05-12 00:50:01 +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/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ky.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-05-11 17:50:41 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	* ext/resindvd/gstmpegdemux.h:
	  resindvd: Modify the segment update logic
	  Send segment updates to the audio and subpicture pads more frequently,
	  but less often to the video pad, where timestamps appear less often.
	  This helps with gap filling on some DVDs.

2009-05-11 16:09:56 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnaudiomunge.c:
	  resindvd: Increase the amount of filler audio generated
	  When creating a filler audio buffer in rsnaudiomunge, generate
	  a bit more, as audio sinks don't seem to preroll otherwise. This
	  needs a better algorithm in general, to intelligently fill the
	  gap, rather than hard-coding a value.

2009-05-11 14:17:42 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: Manage timed still sequences better
	  Make timed still frames work better by extending the current segment
	  when needed, and restarting the still sequence with the correct
	  remaining duration when the wait it interrupted by activation of a
	  highlight NAV packet.

2009-05-11 11:06:03 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnaudiomunge.c:
	  resindvd: Change the audiomunge debug output.
	  Make sure we always show information about the segment events passing through,
	  even when pre-roll audio buffers aren't going to be needed.

2009-05-11 11:04:25 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: Make the debugging output a bit clearer.
	  Display more info about custom DVD events in the debug messages.

2009-05-08 17:42:12 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: Always push a frame at the start of a still frame, and fix a leak.
	  Make sure to push the frame for a still frame, with discont = true and
	  timestamp=none, so that it gets displayed by the sink. Also, don't leak
	  each rendered video frame during still menus.

2009-05-08 17:40:48 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstdvdspu-render.c:
	  dvdspu: Add a guard when we don't have any subpicture buffer to render

2009-05-08 16:29:20 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnaudiomunge.c:
	  resindvd: Rename the audio munger debug category
	  Rename a debug category: rsn_audiomunge -> rsnaudiomunge.

2009-05-08 16:27:31 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Ensure we send a title tag in the first play section.

2009-05-08 16:06:01 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Simplify some stuff. Remove an unnecessary LOG message.
	  Skip attempting to schedule a nav block unless we're in PLAYING. Take a lock
	  slightly later, when we actually need it. Remove a noisy LOG message.

2009-05-08 14:23:48 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Remove per-menu description from the TITLE tag
	  The part number reported while in a menu doesn't reflect the selected
	  menu, so it's pointless to use it to report which menu we're in (Audio,
	  Angle etc). Just report "DVD Menu" in the title tag instead.

2009-05-08 14:20:32 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: Send title info message when current angle is switched.
	  Make sure we send an update title tag when the current angle or available
	  angles changes.

2009-05-08 10:43:27 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: Implement navigation command change message and query
	  Send messages when the available DVD navigation commands changes, and
	  handle navigation commands and angles queries.

2009-05-11 16:59:20 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	  mpegtsdemux: Protect bitrate estimation against bogus values.
	  If the estimated bitrate is lower than 188 bytes, there's most likely
	  something completely wrong with the two samples. If that happens,
	  force recalculation.
	  Use guint64 for observation PCR, I saw cases where it would overflow.

2009-05-11 16:58:58 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Only take PCR from the active stream for bitrate estimation.

2009-05-11 16:40:46 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: Change debugging levels for very frequent messages.
	  This allows debugging with mpegtsdemux:4 while being able to track what's
	  going on (and avoid taking up as much cpu for debugging as for the actual
	  demuxing process).

2009-05-09 09:57:47 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegtsdemux.h:
	  mpegtsdemux: Revert indentation and comment header file.
	  One shouldn't run gst-indent on .h files, in this case it was un-beautifying
	  the indentation :)

2009-05-10 21:21:36 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/gstqtmuxmap.c:
	  gppmux: Add MPEG-4 part 2 to supported formats.  Fixes #581593.

2009-05-10 17:17:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  faad: Fix configure check for the FAAD version
	  The previous version matched things like 297 for
	  version 2.7, etc which could be added to the file
	  by other headers.
	  Fixes bug #582074.

2009-05-10 11:17:17 +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-10 10:40:36 +0200  Tristan Matthews <le.businessman@gmail.com>

	* gst/mxf/mxfmux.c:
	  mxfmux: Fix uninitialized variable compiler warning
	  This will always be set to something but gcc didn't detect
	  this. Fixes bug #582013.

2009-05-09 23:47:39 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* ext/x264/GstX264Enc.prs:
	  Remove wrong stuff from preset file

2009-05-09 15:48:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	* gst/mxf/mxfmux.h:
	  mxfmux: Write metadata items in reference order
	  This ensures that the metadata items are always written
	  in the same order and that first comes the preface,
	  then the identification linked from the preface, ...
	  Some demuxers can't handle files where the metadata
	  items are in random order.

2009-05-09 15:48:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	  mxfmux: Fix EOS logic again

2009-05-09 15:48:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	  mxfmux: Don't unref NULL buffers if pushing a buffer after the first failed

2009-05-09 12:42:25 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* ext/x264/GstX264Enc.prs:
	  Add a more representative example preset file for x264

2009-05-08 18:24:28 +0100  Zaheer Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	  mpegtsdemux: Add initial naive seeking support and fix duration query.
	  Sync from gst-fluendo-mpegdemux and have seeking/duration query
	  improvements in. No support however for wrapped around pcrs etc. but a
	  start nonetheless.
	  Also fix indentation issues.

2009-05-08 16:38:26 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  Comment out preset not in yet

2009-05-08 15:39:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	* gst/deinterlace2/gstdeinterlace2.h:
	  deinterlace2: Add a disabled mode for passthrough operation
	  Also allow to change the mode in PAUSED and PLAYING by updating
	  the caps if necessary.

2009-05-07 17:53:42 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* ext/faac/gstfaac.c:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/x264/gstx264enc.c:
	* gst/flv/gstflvdemux.c:
	* gst/mxf/mxf.c:
	* gst/qtmux/gstqtmux.c:
	  Add ranks to various muxers and encoders in -bad

2009-05-07 17:34:36 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  Update spec file

2009-05-07 13:12:34 +0200  Rov Juvano <rovjuvano@users.sourceforge.net>

	* tests/examples/scaletempo/demo-player.c:
	  scaletempo: Don't require gconfaudiosink in the demo
	  Fixes bug #537700.

2009-05-06 21:48:30 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Don't open all VTS ifo at the start
	  Load each VTS ifo the first time the disc enters that VTS,
	  rather than scanning them all at the start.

2009-05-06 21:19:13 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: Send a title tag when we change chapter/menu/angle
	  Allow apps like Totem to display a nicer title that reflects the current
	  position on the disc.

2009-05-05 13:18:20 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Don't send highlight-reset messages when not needed
	  Fix a small bug that results in the SPU highlight being reset more often
	  than is necessary - ie, clearing it when it's already cleared.

2009-05-05 13:14:47 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: send angles-changed messages when appropriate
	  When the current angle changes, or the number of available angles changes,
	  send an angles-changed message to let the app know.

2009-05-05 11:34:26 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Make the next/prev angle switching cycle at the ends
	  When the current angle is 1 and prev_angle is requested, loop to the
	  maximum angle and vice versa for next_angle

2009-05-05 16:54:39 +0200  Arnout Vandecappelle <arnout@mind.be>

	* gst/mpeg4videoparse/mpeg4videoparse.c:
	  mpeg4videoparse: don't leak the config data
	  Clear the config data when going to READY or when disposed.
	  Fixes #581427

2009-05-05 16:48:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpssrcdemux.c:
	  rtpssrcdemux: drop unexpected RTCP packets
	  We usually only get SR packets in our chain function but if an invalid packet
	  contains the SR packet after the RR packet, we must not fail but simply ignore
	  the malformed packet.
	  Fixes #581375

2009-05-04 22:09:05 +0100  Zaheer Abbas Merali <zaheer@localhost.localdomain>

	* gst/mpegdemux/mpegtsparse.c:
	* gst/mpegdemux/mpegtsparse.h:
	  mpegtsparse: Remember pids that are meant to be stream pids.
	  Fixes #569781

2009-05-04 12:37:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/celt/gstceltenc.c:
	  celt: Implement preset interface

2009-05-04 12:36:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/dirac/gstdiracenc.cc:
	  dirac: Implement preset interface

2009-05-04 12:34:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/jp2k/gstjasperenc.c:
	  jp2kenc: Implement preset interface

2009-05-04 12:33:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/mpeg2enc/gstmpeg2enc.cc:
	  mpeg2enc: Implement Preset interface

2009-05-04 12:31:58 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/xvid/gstxvidenc.c:
	  xvid: Implement Preset interface

2009-05-04 12:30:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/faac/gstfaac.c:
	  faac: Implement preset interface

2009-05-03 17:42:44 +0100  Vincent Genieux <mutex@runbox.com>

	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: Ignore subtable extension when parsing PAT
	  Fixes #569673.

2009-05-03 17:21:22 +0100  Vincent Genieux <mutex@runbox.com>

	* gst/mpegdemux/mpegtsparse.c:
	* gst/mpegdemux/mpegtsparse.h:
	  mpegtsparse: make safe changing the program-numbers property dynamically
	  Fixes #569437.

2009-05-03 14:28:51 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/libmms/gstmms.c:
	  mms: extend BaseSrc query handling rather than overriding

2009-04-27 22:39:15 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.c:
	  baseparse: fix (regression in) newsegment handling
	  (aacparse, amrparse, flacparse).  Fixes #580133.

2009-05-02 12:23:03 +0100  Zaheer Merali <zaheerabbas@merali.org>

	* sys/dvb/gstdvbsrc.c:
	  dvbsrc: fix pes filter pid resetting

2009-05-01 02:26:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/dts/gstdtsdec.h:
	  dtsdec: cosmetic fix to header structure to make gtk-doc happy

2009-05-01 14:25:40 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/debugutils/fpsdisplaysink.c:
	  docs: make fpsdisplaysink show up in the docs

2009-05-01 02:21:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/debugutils/fpsdisplaysink.c:
	* gst/debugutils/fpsdisplaysink.h:
	  fpsdisplaysink: move private struct into plugin struct and use Gst namespace

2009-05-01 01:59:56 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/inspect/plugin-debugutilsbad.xml:
	* docs/plugins/inspect/plugin-fpsdisplaysink.xml:
	* gst/debugutils/Makefile.am:
	* gst/debugutils/debugutilsbad.c:
	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplaysink: rename plugin (not element) to debugutilsbad
	  Makes it easier to add further utils here without creating yet another plugin.

2009-05-01 14:28:23 +0100  Zaheer Merali <zaheerabbas@merali.org>

	* sys/dvb/gstdvbsrc.c:
	  dvbsrc: unset pid filters correctly

2009-04-30 14:43:36 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/qtmux/gstqtmuxmap.c:
	  qtmux: changes caps of src pads to video/quicktime, variant=something
	  Take a look at bug #580005 for further info.

2009-04-30 17:29:35 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	  Merge branch 'master' of ssh://uraeus@git.freedesktop.org/git/gstreamer/gst-plugins-bad

2009-04-30 17:28:47 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  Update for new presets file

2009-04-30 17:08:52 +0100  Tristan Matthews <le.businessman@gmail.com>

	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplaysink: init variable to NULL to avoid compiler warning
	  Fixes #580901.

2009-04-30 14:20:16 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/dvdspu/gstdvdspu-render.c:
	* gst/dvdspu/gstdvdspu.h:
	  dvdspu: do some basic clipping
	  Add some basic clipping of the subtitle region when the subtitle is bigger than
	  the image we should put it on.

2009-04-30 14:18:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: don't EOS when the subtitle got EOS
	  Don't forward the EOS on the subtitle pad as the video might still be running.

2009-04-30 13:45:30 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplay: code cleanup and plug overlay as needed
	  Pluggin the text-ovelay causes some slowdowns and might need a colorspace
	  converter. We now only check the text-overlay property whne goint to ready and
	  plug or unplug the text-overlay at that time. If the property changes during
	  playing, its not switched immediately.

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:
	  x264enc: add preset support
	  Add preset iface and a (dummy) preset file as a starting point.

2009-04-26 21:26:00 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/rsnaudiodec.c:
	* ext/resindvd/rsnaudiomunge.c:
	  resindvd: Convert some g_print to GST_LOG_OBJECT and friends, remove some others
	  Trim down the g_print verbosity.

2009-04-26 21:29:27 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Add DVDFASTSTART env var to making some testing easier

2009-04-24 14:08:55 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: Remove redundant modulo operation in the demuxer

2009-04-24 14:07:30 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	* ext/resindvd/resindvdsrc.c:
	  resindvd: Map audio and subpicture logical streams to physical.
	  The logical audio and subpicture stream number doesn't always correspond
	  with the physical substream it is coming from. When configuring the demuxer
	  pads, use the mapping table provided in each PGC to get the layout and
	  ensure the demuxer creates the correct pads.

2009-04-29 18:52:20 +0100  Tristan Matthews <le.businessman@gmail.com>

	* gst/flv/gstflvmux.c:
	  flvmux: init variable to NULL to fix compiler warning
	  Fixes #580786.

2009-04-29 16:57:36 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c:
	  x264enc: add some documentation on profile

2009-04-29 13:56:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvmux.c:
	* gst/flv/gstflvparse.c:
	  flv: Set/require the framed/parsed fields of the audio/mpeg caps to TRUE

2009-04-29 13:16:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvmux.c:
	  flv: Always write at least the minimal tags and write the PAR as tags

2009-04-29 13:03:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvmux.c:
	* gst/flv/gstflvmux.h:
	  flv: Add support for muxing some tags

2009-04-29 13:03:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvparse.c:
	  flv: Add support for title tag

2009-04-29 09:40:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvparse.c:
	  flv: Fix parsing of tags and add new mappings
	  We shouldn't register a new GstTag for every unknown tag
	  we find as this might lead to conflicts and also those
	  tags are essentially unknown.
	  Add mappings for some known tags and also convert string
	  dates to GDate, as found in many FLV files.

2009-04-28 16:10:21 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Reject wrong caps

2009-04-28 16:03:19 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Fix leak Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr>

2009-04-28 15:58:41 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Fix leak
	  Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr>

2009-04-27 11:09:08 +0200  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c:
	  rtpsouce: make WARNING into LOG
	  Since neither rtpmanager nor any of the payloaders properly implement
	  pad allocation, there is no way for the rtpmanager to inform downstream elements
	  of the new SSRC if there is an SSRC collision. So the warning is emitted all the
	  time and it is confusing.
	  Fixes #580144

2009-04-27 11:06:01 +0200  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c:
	  rtpsession: notify when SSRC changes
	  Emit a g_object_notify when the SSRc changes because of a collision.
	  Fixes #580144

2009-04-27 10:04:51 +0100  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	* gst/dccp/Makefile.am:
	  Add new plugin to spec file and add missing header to gst/dccp/Makefile.am

2009-04-25 00:44:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* tests/check/elements/.gitignore:
	* tests/check/pipelines/.gitignore:
	  tests: make git ignore new unit tests binaries

2009-04-25 00:42:44 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* win32/MANIFEST:
	  win32: dist libgstdshow.def by adding it to win32/MANIFEST
	  Fixes #578563.

2009-04-24 18:53:36 -0300  Thiago Santos <thiagoss@embedded.ufcg.edu.br>

	* gst/qtmux/gstqtmuxmap.c:
	  mp4mux: Changes src caps to application/x-iso-mp4
	  Fixes #580005

2009-04-24 16:01:44 +0100  Jan Schmidt <thaytan@noraisin.net>

	* win32/common/config.h:
	  win32: Commit the win32 config with bumped version number.
	  Should have committed this when I unfroze the build last time, sorry.

2009-04-24 14:51:00 +0100  Jan Schmidt <thaytan@noraisin.net>

	* tests/check/Makefile.am:
	  check: exclude rsndvdbin from the states test

2009-04-24 15:42:27 +0300  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	  soundtouch: fix configure to use proper shell syntax. fixes #580091

2009-04-23 17:33:25 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  soundtouch: Fix compilation on newer libSoundTouch
	  Newer libsoundtouch requires that we include an extra header that wasn't
	  previously required, so define HAVE_SOUNDTOUCH_1_4 for newer builds so that it
	  gets included.

2009-04-20 11:38:01 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplay: more cleanups
	  Use normal gst-defines in PLUGIN_DEFINE. Shorten _start/stop method names.
	  More ideas. Move debug category-init down to plugin-init.

2009-04-20 09:51:50 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplay: use a nicer font family

2009-04-20 10:24:37 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplay: various cleanups, docs and comments
	  Remove unused base_init. Add basic doc blob. Reuse query object. Rename
	  variables for clarity. Add comments and ToDos.

2009-04-20 09:49:32 +0300  Stefan Kost <ensonic@users.sf.net>

	* gst/debugutils/fpsdisplaysink.c:
	  fpsdisplay: remove iface proxy
	  When we get bus messages for setting the xid, we have the real sink element
	  instance as message_src. No need to proxy the xoverlay iface therefore
	  (autovideosink does not do it either). Also we don't need to rewrite the
	  message src of all messages from that sink.

2009-04-23 11:04:46 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/selector/gstinputselector.c:
	  input-selector: Forward segment events for the active pad immediately.
	  When a segment event is received on the active pad, forward it downstream
	  immediately instead of deferring it until the next data buffer arrives. This
	  fixes problems with segment updates never being sent downstream, like those
	  needed for sparse streams, or for closing previously opened segments.
	  This fixes playback of DVD menus with a still video frame and an audio track,
	  for example.
	  Fixes: #577843

2009-04-22 18:01:07 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Fix warning

2009-04-20 20:00:15 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Set different caps depending on the input

2009-04-22 16:25:07 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Only free pad private when pad is disposed

2009-04-22 19:52:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/flv/gstflvdemux.c:
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvmux.c:
	* gst/flv/gstflvmux.h:
	  flv: Add documentation to flvmux and flvdemux
	  Partially fixes bug #573737.

2009-04-22 19:45:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.h:
	  mxf: Mark most fields of the instance struct as private

2009-04-22 19:43:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/deinterlace2/gstdeinterlace2.c:
	* gst/deinterlace2/gstdeinterlace2.h:
	  deinterlace2: Add documentation and integrate into the build system

2009-04-22 19:24:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-assrender.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-deinterlace2.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-flv.xml:
	* docs/plugins/inspect/plugin-fpsdisplaysink.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst/mxf/mxfmux.c:
	  mxf: Add documentation to mxfmux and update the docs

2009-03-19 15:37:17 -0700  LRN <lrn1986@gmail.com>

	* ext/modplug/gstmodplug.cc:
	  modplug: Use correct header file
	  modplug's sndfile.h conflicts with libsndfile's sndfile.h, so
	  we'll access it directly using modplug/sndfile.h.  Fixes #573849
	  Signed-off-by: David Schleef <ds@schleef.org>

2009-03-19 15:29:04 -0700  LRN <lrn1986@gmail.com>

	* m4/gst-sdl.m4:
	  sdl: Use SDL static-libs for conftest
	  Fixes: #573847.  This fixes building with SDL on Windows.
	  Signed-off-by: David Schleef <ds@schleef.org>

2009-03-19 14:55:26 -0700  LRN <lrn1986@gmail.com>

	* ext/mpeg2enc/gstmpeg2encoptions.cc:
	  mpeg2enc: Get number of processors on win32
	  Fixes #573848.
	  Signed-off-by: David Schleef <ds@schleef.org>

2009-03-19 14:49:13 -0700  David Schleef <ds@schleef.org>

	* configure.ac:
	  soundtouch: Add pkgconfig check for soundtouch-1.4
	  Fixes #573846.

2009-02-26 14:18:54 -0800  David Schleef <ds@schleef.org>

	* gst/rawparse/gstrawparse.c:
	* gst/rawparse/gstrawparse.h:
	* gst/rawparse/gstvideoparse.c:
	* gst/rawparse/gstvideoparse.h:
	  Add interlaced support to videoparse
	  Add a virtual method in rawparse to set buffer flags.  This doesn't
	  use API from unreleased -base, since it defines GST_VIDEO_BUFFER_TFF
	  if it's not defined yet.

2009-04-21 22:13:12 +0100  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From b3941ea to 6ab11d1

2009-04-21 13:27:29 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	  Merge branch 'rtpmux-fixes'

2009-04-21 16:48:39 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/libmms/gstmms.c:
	  mmssrc: If the connection fails, emit a redirection msg to the rtsp equivalent.
	  This should help fix the issue with Windows Media Server using rtsp... but
	  still declaring the stream with mms://

2009-04-21 16:08:55 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: Only error out at EOS push failure if we don't have any streams.
	  This should remove the bogus error messages while still keeping the original
	  intent of this, which is to inform the pipeline/application/user that we
	  could not find any valid streams.
	  There are many reasons why pushing an event can fail, and not all of them are
	  because there's no link downstream (it could be because it was blocked, or
	  flushing).

2009-04-10 19:24:26 +0200  Zaheer Abbas Merali <zaheer@localhost.localdomain>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: add hack specific for itvhd
	  itvhd masks its h264 video stream as a private stream making it harder for
	  other set top boxes to decode. this checks for specific program number, video
	  pid and stream type combination before declaring it as h264.

2009-04-10 19:06:55 +0200  Zaheer Abbas Merali <zaheer@localhost.localdomain>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: detect AC3 streams in PMT table
	  add 'has-ac3' boolean to pmt bus message

2009-04-10 01:16:30 +0200  Zaheer Abbas Merali <zaheer@localhost.localdomain>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  itv hd hack

2009-04-10 01:11:01 +0200  Zaheer Abbas Merali <zaheer@localhost.localdomain>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  hack for itvhd sid to detect mpeg1 as h264

2009-04-20 18:41:39 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Remove useless caps mangling

2009-04-20 18:36:42 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Rename variable for more clarity

2009-04-20 17:43:39 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Use GST_BOILERPLATE

2009-04-20 17:42:40 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpdtmfmux.h:
	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Do the includes locally

2009-04-20 16:34:30 +0200  Andy Wingo <wingo@wingomac.bcn.oblong.net>

	* sys/osxvideo/osxvideosrc.c:
	  patch over logic errors in osxvideosrc
	  apple's compiler carps, with reason, about some constructs in osxvideosrc.c
	  fix them.
	  also it seems that for some reason this required a gst-indent run. whee

2009-04-20 13:09:46 +0200  Andy Wingo <wingo@oblong.net>

	  add osxvideosrc
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/osxvideo/Makefile.am: Autoconfiscation.
	  * sys/osxvideo/osxvideoplugin.m:
	  * sys/osxvideo/osxvideosrc.h:
	  * sys/osxvideo/osxvideosrc.c: Add osxvideosrc. Should fix #153684.
	  Patch-by: Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
	  Patch-by: Ali Sabil <ali.sabil@tandberg.com>
	  Patch-by: Barracuda Networks <justin@affinix.com>

2009-04-19 17:18:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	  deinterlace2: Make it possible to select interlacing autodetection or to enfore deinterlacing
	  For this add a "mode" property that defaults to "interlaced" for now as
	  most decoders/demuxers don't properly set the "interlaced" field on the
	  caps yet.
	  If this property is set to "auto" the element will work in passthrough
	  mode unless the caps contain the "interlaced" field.

2009-04-18 23:42:57 +0100  Zaheer Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: fix leak of GST_TYPE_LIST gvalue

2009-04-18 13:09:23 +0100  Zaheer Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/mpegtsparse.c:
	  mpegtsparse: fix leak in src_pad_query

2009-04-17 16:16:29 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c:
	  rtpsession: join the RTCP thread
	  Avoid a case where a joinable thread would be left unjoined, which leaked the
	  thread structure.
	  Fixes #577318.

2009-04-17 15:39:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	  deinterlace2: Use GST_(DEBUG|WARNING|ERROR)_OBJECT instead of the non-OBJECT ones

2009-04-17 15:39:36 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	  deinterlace2: Reset history if DISCONT is set on the incoming buffer

2009-04-17 15:39:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	  deinterlace2: Fix timestamps for buffers with RFF flag set

2009-04-16 22:14:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxf: Properly handle the new interlaced support from libgstvideo for (de)muxing

2009-04-16 17:41:37 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/greedy.c:
	* gst/deinterlace2/tvtime/greedyh.c:
	* gst/deinterlace2/tvtime/scalerbob.c:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	* gst/deinterlace2/tvtime/weave.c:
	* gst/deinterlace2/tvtime/weavebff.c:
	* gst/deinterlace2/tvtime/weavetff.c:
	  deinterlace2: Rename line_length to row_stride and remove output_stride

2009-04-16 15:52:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	  deinterlace2: Implement support for RFF and ONEFIELD buffer flags

2009-04-16 18:36:13 +0300  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* gst/debugutils/Makefile.am:
	* gst/debugutils/fpsdisplaysink.c:
	* gst/debugutils/fpsdisplaysink.h:
	  fpsdisplaysink: add a initial port of a sink with fps display
	  This now works with a event probe. Needs some extra work.

2009-03-09 18:22:28 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: clean up and fix assertion fail when setting zoom in NULL state

2009-03-09 18:31:07 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: fix format matching when detecting allowed frame rate

2009-03-09 18:25:48 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: don't lose pending state when changing resolution

2009-02-27 17:12:38 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin-marshal.list:
	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabin.h:
	* tests/check/elements/camerabin.c:
	  camerabin: change img-done signal parameter from GString* to const gchar*
	  Don't allow setting filename via img-done signal parameter but force app
	  use filename property. Don't stop capture when setting filename property.
	  Update check unit test based on the change.

2009-04-15 13:23:01 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpmux.c:
	  rtpmux: Add GST_DEBUG_FUNCPTRs

2009-04-15 13:15:55 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  rtpdtmfmux: Release locked pad on release_pad
	  Release the special pad if the pad is removed from the muxer.

2009-04-15 13:09:27 -0400  Laurent Glayal <spglegle@yahoo.fr>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  rtpdtmfmux: Release special on pad dispose
	  Fixes #577690

2009-04-15 18:14:48 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  jitterbuffer: prevent overflow in EOS estimation
	  Use a guint64 instead of a guint to hold a 64bit value to prevent completely
	  bogues EOS estimation values due to overflows.

2009-04-15 17:44:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	  rtpbin: we should not provide a clock
	  There is no need to provide a clock.

2009-04-15 17:28:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  jitterbuffer: more estimated EOS fixes
	  Do more accurate EOS estimate and guard against backward timestamps.

2009-04-15 17:25:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  jitterbuffer: release lock before pushing EOS
	  Make sure we release the jitterbuffer lock before we start pushing out data
	  because else we might deadlock.

2009-04-15 15:46:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/greedy.c:
	* gst/deinterlace2/tvtime/greedyh.c:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	  deinterlace2: Move output buffer from the instance struct to a function parameter

2009-04-15 15:33:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	* gst/deinterlace2/gstdeinterlace2.h:
	  deinterlace2: Add initial support for automatic detection of the field order

2009-04-15 14:47:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	  deinterlace2: Add support for YVYU colorspace
	  This is the same as YUY2 with just Cr and Cb swapped. As
	  we don't make a difference between them when deinterlacing
	  this works.

2009-04-13 13:32:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	  mxfmux: Small cleanup

2009-04-10 18:00:06 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	* sys/dshowdecwrapper/gstdshowvideodec.cpp:
	  dshowdec: fix compilation with the debugging system disabled
	  One GST_DEBUG_CATEGORY_INIT should be enough anyway.
	  Fixes #578562 (spotted by David Hoyt).

2009-04-09 23:53:39 +0200  Janin Kolenc <janin.kolenc at marand.si>

	* ext/x264/gstx264enc.c:
	* ext/x264/gstx264enc.h:
	  x264enc: add force keyframe event handling
	  Use the GstForceKeyUnit event to force a keyframe.
	  Fixes #578112.

2009-04-08 11:52:46 -0700  Michael Smith <msmith@songbirdnest.com>

	* configure.ac:
	* sys/acmenc/Makefile.am:
	* sys/acmmp3dec/Makefile.am:
	  acmenc, acmmp3dec, sdp: link to all requires libraries on win32.
	  Add winsock for windows (for sdp). Link to all the plugins-base
	  libs we indirectly use for acmmenc and acmmp3dec.

2009-04-07 15:50:37 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/pipelines/mxf.c:
	  mxf: Add unit tests for checking if mxfmux ! mxfdemux pipelines are working without errors

2009-04-07 15:49:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Don't use invalid buffer offsets, instead assume offset == 0

2009-04-07 15:45:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxf: Fix comparison

2009-04-07 15:19:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxful.c:
	* gst/mxf/mxful.h:
	  Use UL database for all metadata ULs

2009-04-07 04:53:02 +0300  René Stadler <mail@renestadler.de>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.c:
	  baseparse: Fix slightly broken buffer-in-segment check (aacparse, amrparse, flacparse)

2009-04-05 03:50:19 +0300  René Stadler <mail@renestadler.de>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	  baseparse: Fix push mode seeking (aacparse, amrparse)
	  Sending the flush-start event forward before taking the stream lock actually
	  works, in contrast to deadlocking in downstream preroll_wait (hunk 1).
	  After that we get the chain function being stuck in a busy loop. This is fixed
	  by updating the minimum frame size inside the synchronization loop because the
	  subclass asks for more data in this way (hunk 2).
	  Finally, this leads to a very probable crash because the subclass can find a
	  valid frame with a size greater than the currently available data in the
	  adapter. This makes the subsequent gst_adapter_take_buffer call return NULL,
	  which is not expected (hunk 3).

2009-04-04 21:19:11 +0300  Felipe Contreras <felipe.contreras@gmail.com>

	* common:
	  Automatic update of common submodule
	  From d0ea89e to b3941ea

2009-04-04 17:51:34 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/bz2/Makefile.am:
	* ext/bz2/gstbz2dec.c:
	* ext/bz2/gstbz2enc.c:
	  bz2: fix some refcount mistakes and do some cleaning up
	  No need to unref buffers if pad_push returns something non-FLOW_OK.
	  In fact, this will cause assertions or crashes. However, we do need
	  to unref the input buffer whenever we don't pass it downstream. Also,
	  a non-OK flow return is not an error, so don't post error messages on
	  the bus - the pipeline may just be shutting down. Miscellaneous other
	  clean-ups and crack removal. Plenty of work left for those who feel
	  like it.

2009-04-04 14:54:25 +0200  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Automatic update of common submodule
	  From f8b3d91 to d0ea89e

2009-04-03 23:10:28 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure.ac: fix dvdnav version check
	  Fixes #577864. This time for real.

2009-04-03 17:55:31 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: require libdvdnav >= 4.1.2 for dvdnav_get_current_time()
	  Fixes #577864.

2009-04-03 10:29:53 +0100  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  misc: Bump plugins-base requirement to 0.10.22.1

2009-04-01 17:41:40 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Send both the logical and physical substream ID in the stream change.
	  When sending the stream change message(s) to the demuxer, also include the
	  logical stream id along with the physical ID, so that the demuxer can remap
	  logical->physical MPEG stream ID.

2009-04-01 02:23:20 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/Makefile.am:
	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: Use new GstNavigation functionality.
	  Handle the new DVD commands, so that we can handle commands from a player
	  to change angle, jump to menus etc. Use the new GstNavigation event parsing
	  functions, instead of hand-rolled stuff.
	  Send GstNavigation notification messages when the mouse enters a button
	  or leaves it, so UI can turn the mouse cursor to a hand icon.

2009-03-30 01:07:49 +0100  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdbin.h:
	  resindvd: Switch to using a hard-coded mpeg2dec, and change pad blocking a bit.
	  Change the pad blocking behaviour during startup, and use a hard-coded mpeg2dec (for the moment), in order to make things work with playbin2.

2009-03-25 12:31:10 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Add newline to debug g_print statement

2009-03-25 02:20:12 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Make highlights work when jumping into menus
	  Make the highlights re-appear correctly when jumping back into menus
	  by making sure to set the flushing_seek flag for user-action initiated
	  seeks.
	  Fiddle some debug related to tracking down the issue.

2009-03-25 01:21:28 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Support multiangle titles.
	  Add a workaround for an apparent libdvdnav bug where it loses nav packets
	  during multiangle titles, and add some keypress bindings to switch the angle.

2009-03-18 09:35:12 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdbin.c:
	  resindvd: Add back in support for using hardcoded a52dec

2009-03-16 20:31:58 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: Add some debug when creating the output pads in the demuxer

2009-03-10 10:39:22 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnaudiodec.c:
	  resindvd: More hacking on the audio decoder.

2009-03-05 00:04:24 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Trim back the g_print debug - convert to GST_DEBUG and GST_LOG

2009-03-04 16:16:57 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/rsnaudiodec.c:
	* ext/resindvd/rsnaudiodec.h:
	  resindvd: Extend the Resin audio decoder element, and switch rsndvdbin to use it

2009-02-27 10:18:14 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/Makefile.am:
	* ext/resindvd/rsnaudiodec.c:
	* ext/resindvd/rsnaudiodec.h:
	  resindvd: First part of the re-plugging audio decoder

2009-02-27 09:42:35 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdbin.c:
	  resindvd: remove unused code path from the bin

2009-02-26 00:29:26 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdbin.h:
	  resindvd: Indent some things

2009-02-26 00:27:54 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/rsnaudiomunge.c:
	* ext/resindvd/rsnwrappedbuffer.c:
	  resindvd: Switch GST_BOILERPLATE to G_DEFINE_TYPE for no real reason.

2009-03-24 01:02:28 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	  resindvd: Add faststart, and work around some multi-angle issues
	  Add a 'fast-start' property to the rsndvdsrc element, that attempts to
	  jump directly to the DVD menu when starting. Doesn't work correctly on all
	  titles yet.
	  Add workarounds for issues with multiple angles in libdvdnav: Use a heuristic
	  to avoid detecting discontinuities during multiple-angle titles, it seems
	  caused by libdvdnav losing some NAV packets in multiangle titles. Fix
	  seeking in multi-angle titles by aligning our sector calculation logic
	  with libdvdnav's. Also, use libdvdnav's dvdnav_get_current_time() method
	  to determine the logical position of the current cell when it changes, as the
	  cell_start value in the cell_change event provides a number that doesn't
	  compensate for angle cell blocks.

2009-03-21 19:04:05 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	  resindvd: Small debug output change in the source element

2009-04-01 02:25:42 +0100  Jan Schmidt <thaytan@noraisin.net>

	* gst/dvdspu/gstdvdspu.c:
	  dvdspu: Add some debug
	  Add a little bit of extra debug. Wrap a hardcoded #if 0 into a define instead.

2009-04-02 13:05:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/jp2k/gstjasperenc.c:
	  jp2enc: Unref peer caps after usage to fix a memory leak

2009-04-02 12:46:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/mxfmux.c:
	  mxfmux: Add unit tests

2009-04-01 15:45:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/legacyresample/gstlegacyresample.c:
	  legacyresample: fix negotiation so that upstream can actually fixate to downstream's rate
	  If one side has a preference for a particular sample rate or set of sample rates, we
	  should honour this in the caps we advertise and transform to and from, so that elements
	  actually know about the other side's sample rate preference and can negotiate to it
	  if supported. Also add unit test for this.

2009-03-31 16:07:46 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	  baseparse: Delay newsegment as long as possible.
	  If newsegment is sent (too) early, caps may not yet be fixed/set,
	  and downstream may not have been linked.

2009-03-30 21:57:12 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/mpeg2enc/gstmpeg2encoptions.cc:
	  mpeg2enc: fix bitrate property settings
	  Align bitrate property interpretation with usual mpeg2enc behaviour.
	  Fixes #575736.

2009-03-27 21:39:05 +0000  Alan Falloon <afalloon@lumenera.com>

	* configure.ac:
	  configure.ac: make --disable-external work again

2009-03-27 19:37:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/jp2k/gstjasperdec.c:
	* ext/jp2k/gstjasperdec.h:
	  jp2kdec: implement basic QoS
	  Don't try to decode frames that are going to be late anyway.

2009-03-27 17:44:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	  rtpbin: add on_npt_stop signal
	  Add the on_npt_stop signal to rtpbin and rtpjitterbuffer to notify the
	  application that the NPT stop position has been reached.

2009-03-27 11:20:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/selector/gstoutputselector.c:
	  outputselector: reset state when going to READY
	  Reset the last-buffer, the pending pad and the segment when going to the READY
	  state.
	  Fixes #576712.

2009-03-25 21:24:44 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/gstqtmux.c:
	  qtmux: fix reusing element
	  State change to READY and then back to PAUSED should still provide
	  the proper structures as are otherwise freshly available following
	  a request_new_pad.
	  Pointed out by Thiago Santos.

2009-03-26 20:28:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	* gst/mxf/mxftypes.c:
	  mxf: Fix compilation and compiler errors with GLib < 2.16.0

2009-03-26 14:26:34 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxftypes.c:
	  mxf: Fix "cast to pointer type of different size" compiler warning

2009-03-26 13:24:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxftypes.c:
	  mxf: Rename forgotten function to fix unresolved symbols error

2009-03-26 13:20:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdv-dif.c:
	* gst/mxf/mxfvc3.c:
	  mxf: Use mxf_u{l,uid}_is_equal() and friends instead of memcmp()

2009-03-26 13:11:07 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfdms1.h:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfmux.c:
	* gst/mxf/mxftypes.c:
	* gst/mxf/mxftypes.h:
	  mxf: Differentiate between UL and UUID

2009-03-26 12:46:22 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxf.c:
	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfalaw.c:
	* gst/mxf/mxfalaw.h:
	* gst/mxf/mxfd10.c:
	* gst/mxf/mxfd10.h:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfdv-dif.c:
	* gst/mxf/mxfdv-dif.h:
	* gst/mxf/mxfessence.c:
	* gst/mxf/mxfessence.h:
	* gst/mxf/mxfjpeg2000.c:
	* gst/mxf/mxfjpeg2000.h:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfmpeg.h:
	* gst/mxf/mxfmux.h:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.c:
	* gst/mxf/mxftypes.h:
	* gst/mxf/mxful.c:
	* gst/mxf/mxful.h:
	* gst/mxf/mxfup.c:
	* gst/mxf/mxfup.h:
	* gst/mxf/mxfvc3.c:
	* gst/mxf/mxfvc3.h:
	* gst/mxf/mxfwrite.c:
	* gst/mxf/mxfwrite.h:
	  mxf: Source files and #include cleanup

2009-03-26 12:10:05 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/xdgmime/Makefile.am:
	* gst/xdgmime/gstxdgmime.c:
	  xdgmime: Use GIOs g_content_type_guess() if possible

2009-03-26 11:51:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfwrite.c:
	  mxf: Use the UL database for some more ULs

2009-03-26 11:42:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxf: Remove some GLib < 2.14 compatibility stuff

2009-03-26 11:37:28 +0100  Руслан Ижбулатов <lrn1986@gmail.com>

	* configure.ac:
	* sys/acmenc/Makefile.am:
	* sys/acmenc/acmenc.c:
	* sys/acmmp3dec/Makefile.am:
	* sys/acmmp3dec/acmmp3dec.c:
	  acm: Port to MinGW
	  Fixes bug #573595.

2009-03-26 11:33:50 +0100  Руслан Ижбулатов <lrn1986@gmail.com>

	* configure.ac:
	* gst/xdgmime/Makefile.am:
	  xdgmime: Link with winsock library to fix build with MinGW
	  Partially fixes bug #573595.

2009-03-26 11:32:08 +0100  Руслан Ижбулатов <lrn1986@gmail.com>

	* configure.ac:
	* gst/dccp/Makefile.am:
	* gst/dccp/gstdccp.c:
	* gst/dccp/gstdccp.h:
	* gst/dccp/gstdccp_common.h:
	* gst/dccp/gstdccpclientsink.c:
	* gst/dccp/gstdccpclientsink.h:
	* gst/dccp/gstdccpclientsrc.c:
	* gst/dccp/gstdccpclientsrc.h:
	* gst/dccp/gstdccpserversink.c:
	* gst/dccp/gstdccpserversink.h:
	* gst/dccp/gstdccpserversrc.c:
	* gst/dccp/gstdccpserversrc.h:
	  dccp: Port DCCP plugin to MinGW
	  Partially fixes bug #573595.

2009-03-26 11:23:30 +0100  Руслан Ижбулатов <lrn1986@gmail.com>

	* configure.ac:
	  dccp: Disable the dccp plugin if no pthread support is available
	  Partially fixes bug #573595.

2009-03-26 08:13:10 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	  Merge branch 'mxfmux'

2009-03-26 08:12:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdv-dif.c:
	* gst/mxf/mxfjpeg2000.c:
	* gst/mxf/mxfvc3.c:
	  mxfmux: Cleanup

2009-03-26 08:11:20 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfalaw.c:
	* gst/mxf/mxfmux.c:
	* gst/mxf/mxfmux.h:
	  mxfmux: Fix handling of buffers with more than one edit unit and EOS handling

2009-03-25 23:04:13 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/ladspa/gstsignalprocessor.c:
	* ext/ladspa/gstsignalprocessor.h:
	  ladspa: comment signalprocessor class more and do minor code cleanups

2009-03-25 12:40:35 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  Require core >= 0.10.22.1 for %u pad template support

2009-03-24 15:23:03 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  selector: merge the tags
	  Merge the tags received on the input-selector sinkpads instead of only keeping
	  the last one we saw.

2009-03-23 19:33:31 +0000  Jan Schmidt <thaytan@noraisin.net>

	* NEWS:
	  Fix version number in the NEWS file

2009-03-19 01:17:25 +0200  René Stadler <mail@renestadler.de>

	* gst/aacparse/gstaacparse.c:
	  aacparse: Fix busyloop when seeking. Fixes #575388
	  The problem is that after a discont, set_min_frame_size(1024) is called when
	  detect_stream returns FALSE. However, detect_stream calls check_adts_frame
	  which sets the frame size on its own to something larger than 1024. This is the
	  same situation as in the beginning, so the base class ends up calling
	  check_valid_frame in an endless loop.

2009-03-19 00:32:40 +0200  René Stadler <mail@renestadler.de>

	* gst/aacparse/gstaacparse.c:
	  aacparse: Refactor check_valid_frame to expose broken code
	  Just moving code around and removing an unhelpful/misleading comment.

2009-03-23 11:17:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/qtmux/gstqtmux.c:
	  qtmux: fix includes for lseek
	  --

2009-03-20 14:20:16 +0100  LRN <lrn1986 at gmail dot com>

	* gst/qtmux/gstqtmux.c:
	  win32: fix seeking in large files
	  Use _lseeki64() on Windows to seek in large files.
	  Fixes #576021.

2009-03-16 11:21:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/jack/gstjack.c:
	* ext/jack/gstjack.h:
	* ext/jack/gstjackaudiosink.c:
	* ext/jack/gstjackaudiosrc.c:
	  jack: Add new connection mode
	  Add a new connection mode to jacksrc and jacksink. In this new auto-force
	  connection mode jack will create as many ports as requested/needed in the
	  pipeline and will then connect as many physical ports as possible, possibly
	  leaving some ports unconnected.
	  Also get rid of some leftover g_print.
	  Fixes #575284.

2009-03-23 15:06:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfparse.c:
	  mxf: Move some static const variables into functions

2009-03-13 19:42:18 +0100  Alessandro Decina <alessandro.decina@collabora.co.uk>

	* configure.ac:
	* ext/celt/gstceltenc.c:
	  celtenc: build with celt 0.5.

2009-03-22 20:14:25 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  back to development -> 0.10.11.1

2009-03-20 15:55:19 +0200  Stefan Kost <ensonic@users.sf.net>

	* tests/check/Makefile.am:
	  tests: reenable metadata test

2009-03-20 15:33:31 +0200  Stefan Kost <ensonic@users.sf.net>

	* tests/check/Makefile.am:
	  metadata: reenable test

2009-03-20 15:18:05 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataxmp.h:
	  metdata: more logging and code cleanups
	  Sprinkle more debug log statements into the code. Move some repeaded string
	  constant into header files and use sizeof instead of manually counted bytes. Add
	  comments.

2009-03-20 15:14:07 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadatamuxjpeg.c:
	  metadata: fix muxing jfifless jpeg. Fixes #574401
	  Don't error out when to be muxed jpeg has no jfif, as we can easily
	  add it.

2009-03-20 15:10:22 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadataxmp.h:
	  metadata: fix include guards

2009-03-20 15:04:16 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/metadata.c:
	  metadata: rework doc comment

2009-03-09 23:43:55 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/autoconvert/Makefile.am:
	* gst/camerabin/Makefile.am:
	* gst/dtmf/Makefile.am:
	* gst/liveadder/Makefile.am:
	* gst/mxf/Makefile.am:
	* gst/nuvdemux/Makefile.am:
	* gst/qtmux/Makefile.am:
	* gst/rtpmux/Makefile.am:
	* gst/siren/Makefile.am:
	* gst/valve/Makefile.am:
	  Makefile.am: no static libs for plugins

2009-03-22 15:58:50 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	  mxfmux: Fix error handling

2009-03-22 15:51:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfalaw.c:
	* gst/mxf/mxfdv-dif.c:
	* gst/mxf/mxfjpeg2000.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfup.c:
	* gst/mxf/mxfvc3.c:
	  mxfmux: Fix some memory leaks, improve debugging and handle errors better

2009-03-22 15:35:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	* gst/mxf/mxfmux.h:
	  mxfmux: Add an error state from which we return immediately
	  Also improve debugging a bit.

2009-03-19 20:41:16 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxful.c:
	  mxf: Optimize mxf_ul_is_subclass() a bit

2009-03-19 14:30:34 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	* gst/mxf/mxful.c:
	* gst/mxf/mxful.h:
	  mxf: Start implementing a central UL database and add some helper functions and use them

2009-03-17 14:27:50 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c:
	  mxfmux: Make sure to include a picture in the edit units when muxing MPEG2/MPEG4

2009-03-17 14:23:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c:
	  mxfdemux: Remove accidentially committed g_assert_not_reached()

2009-03-16 17:49:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfup.c:
	  mxf: Add support for muxing/demuxing subsampled YUV formats

2009-03-16 17:22:22 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfup.c:
	  mxfdemux: Use correct width/height for stride conversions

2009-03-16 17:18:17 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfup.c:
	  mxf: Implement stride transformations for raw video content for muxing and demuxing

2009-03-16 15:37:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfup.c:
	  mxfdemux: Simplify caps selection by using a lookup table

2009-03-16 12:48:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfup.c:
	  mxfmux: Add initial support for muxing raw picture essence

2009-03-16 12:15:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	  mxfmux: Only add an essence container UL once to the partition and preface

2009-03-16 12:07:20 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfup.c:
	  mxfdemux: Add support for AYUV and v308 YUV colorspaces

2009-03-16 11:00:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c:
	  mxfmux: Use the correct edit rate instead of estimating it from the first buffer duration

2009-03-15 15:27:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Error out directly if pushing a packet downstream failed

2009-03-15 15:27:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdv-dif.c:
	  mxfmux: Add support for DV/DIF muxing and add framerate, etc to the caps when demuxing DV/DIF content

2009-03-15 15:27:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmux.c:
	  mxfmux: Add some debugging and error out on invalid input data

2009-03-14 19:59:39 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/deinterlace/gstdeinterlace.c:
	  deinterlace: Fix uninitialized variable compiler warnings

2009-03-11 19:38:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c:
	  mxfmux: Add support for muxing MPEG audio and video

2009-03-11 19:38:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c:
	  mxfdemux: Use correct caps type for AC3 audio (audio/x-ac3 instead of audio/ac3)

2009-03-11 19:34:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfjpeg2000.c:
	  mxfmux: Add support for muxing JPEG2000 code streams

2009-03-11 19:33:54 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfvc3.c:
	  mxfmux: Add support for muxing VC-3 (aka DNxHD) video

2009-03-11 19:33:38 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfalaw.c:
	  mxfmux: Add support for muxing A-Law audio

2009-03-11 19:33:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	  mxfmux: Add support for muxing raw audio

2009-03-11 19:32:16 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/mxf/Makefile.am:
	* gst/mxf/mxf.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmux.c:
	* gst/mxf/mxfmux.h:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	* gst/mxf/mxfwrite.c:
	* gst/mxf/mxfwrite.h:
	  mxf: Add MXF muxer
	  This muxer currently only supports OP1a and is
	  probably not yet 100% complying to the standards.

2009-03-11 19:30:22 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/jp2k/gstjasperenc.c:
	  jp2kenc: Add width/height/fourcc to the pad template caps

=== release 0.10.11 ===

2009-03-21 01:09:08 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-deinterlace2.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dirac.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-flv.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst-plugins-bad.doap:
	* win32/common/config.h:
	  Release 0.10.11

2009-03-20 23:37:39 +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/de.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ky.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-20 23:31:19 +0000  Jan Schmidt <thaytan@noraisin.net>

	* sys/dshowdecwrapper/gstdshowvideodec.h:
	  dshowdec: Add par_n and par_d to the object structure to fix compilation

2009-03-18 12:32:08 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* win32/common/config.h:
	  0.10.6.5 pre-release

2009-03-18 10:35:43 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c:
	  mxfdemux: Fix build on GLib < 2.16 some more

2009-03-18 00:02:48 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  0.10.10.4 pre-release

2009-03-16 17:29:16 +0000  Zaheer Merali <zaheerabbas@merali.org>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c:
	  mxf: Replace g_hash_table_get_values with code working with glib 2.6.
	  Fixes #575565

2009-03-13 16:31:56 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* win32/common/config.h:
	  0.10.10.3 pre-release

2009-03-13 16:16:21 +0000  Jan Schmidt <thaytan@noraisin.net>

	* po/fi.po:
	* po/id.po:
	* po/pt_BR.po:
	  po: Update po files from upstream

2009-03-13 16:08:03 +0000  Jan Schmidt <thaytan@noraisin.net>

	* po/LINGUAS:
	* po/tr.po:
	  po: Add Turkish translation

2009-03-12 23:54:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/xdgmime/gstxdgmime.c:
	  xdgmime: make xdg typefinder more conservative
	  The whole raison d'etre of this typefinder is to help avoid false
	  positives when used in combination with our main typefinder in
	  -base. Its task is not really to typefind audio/video files, even
	  less so given that it detects *MIME* types, not GStreamer media
	  types. Therefore, if this typefinder detects an audio or video
	  type, don't even suggest it - our own typefinders are hopefully
	  better at this and detect the right type of type on top of that,
	  and even if they're not we really want to know about it and fix
	  it. Fixes #575157.

2009-03-13 15:59:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c:
	  rtpbin: don't return FALSE on seek events
	  Silently ignore the seek event instead of returning FALSE.

2009-03-13 10:07:18 +0000  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegpsdemux: workaround to fix playback of certain malformed clips
	  Added a workarround to permit play certain malformed clips where first
	  SCR is greater than last SCR. Fixes bug #454228

2009-03-12 20:13:11 +0100  Edward Hervey <bilboed@bilboed.com>

	* tests/check/Makefile.am:
	  check: Disabling metadata unit test until #574401 is fixed.

2009-03-12 17:53:37 +0000  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  add some more plugins the spec file

2009-03-11 13:04:36 +0000  Christian Schaller <christian.schaller@collabora.co.uk>

	* gst-plugins-bad.spec.in:
	  Update spec file with new plugins

2009-03-10 15:12:24 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* ext/directfb/dfbvideosink.c:
	  dfbvideosink: include stdlib.h for abs()

2009-03-10 21:18:20 +0100  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: Fixed a bug in the TS scanner. Fixes #574009

2009-03-10 00:22:55 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ky.po:
	* po/lt.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.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

2009-03-10 00:10:09 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-twolame.xml:
	* ext/Makefile.am:
	* ext/twolame/Makefile.am:
	* ext/twolame/gsttwolame.c:
	* ext/twolame/gsttwolame.h:
	* po/POTFILES.in:
	  Moved twolame from Bad to Ugly

2009-03-09 23:13:00 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 7032163 to f8b3d91

2009-03-08 12:05:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From ffa738d to 7032163

2009-03-08 11:21:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 3f13e4e to ffa738d

2009-03-07 11:46:33 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 3c7456b to 3f13e4e

2009-03-07 10:46:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* common:
	  Automatic update of common submodule
	  From 57c83f2 to 3c7456b

2009-03-06 22:36:19 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/camerabin/gstcamerabin.c:
	* tests/check/elements/camerabin.c:
	  camerabin: Make the tests pass when the camerabin can't initialise.
	  The camerabin tests were throwing glib errors and hanging when
	  gst-plugins-good elements (jpegenc, videocrop) can't found.

2009-03-06 21:14:48 +0000  Jan Schmidt <thaytan@noraisin.net>

	* tests/check/elements/.gitignore:
	  misc: Ignore the camerabin binary in the check/elements subdir

2009-03-06 19:22:58 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/camerabin/Makefile.am:
	  camerabin: Partly fix distcheck
	  Don't dist the generated marshal.h header by putting it in the headers
	  list.

2009-03-07 00:20:28 +0200  Stefan Kost <ensonic@users.sf.net>

	* tests/check/pipelines/metadata.c:
	  metadata: change 'q' back to 'jpegenc' (my keyboard hates me)

2009-03-06 23:34:56 +0200  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* ext/metadata/metadata.c:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadataparsejpeg.c:
	* tests/check/pipelines/metadata.c:
	  metadata: cleanup, fix the test, add comments
	  First do not build the plugin, if we have none of the backend, as it won't work
	  then. Fix the miniobject_unref error in the test. Sprinkle a first handful of
	  debug logs into the element code.

2009-03-06 20:02:21 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/check/elements/legacyresample.c:
	  legacyresample: Fix memory leak in the unit test by unreffing the caps

2009-03-06 17:46:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Store and use the seqnum of the currently running segment everywhere

2009-03-06 17:24:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxf: Don't even try to serialize DM frameworks as it will cause an assertion until this is finished

2009-03-06 12:42:50 +0100  Edward Hervey <bilboed@bilboed.com>

	* ext/faad/gstfaad.c:
	  faad: Use the public headers if faad2 >= 2.7. Fixes #573369
	  Since faad2-2.7, the public function prototypes are in sync with the
	  actual function prototypes used internally in libfaad.

2009-03-06 11:08:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* ext/ladspa/gstladspa.c:
	  ladspa: fix compilation when LRDF is missing
	  --

2009-03-05 22:55:17 +0200  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* ext/ladspa/Makefile.am:
	  ladspa: remove -ldl as we now use glibs gmodule.

2009-03-05 22:37:52 +0200  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* ext/ladspa/Makefile.am:
	* ext/ladspa/gstladspa.c:
	  ladspa: add initial liblrdf support.
	  Get classification from rdf metadata.

2009-03-05 22:04:48 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/mplex/gstmplex.cc:
	  mplex: fix required version
	  With this version it builds on opensuse 11.1.

2009-03-05 14:40:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxf: Don't use NULL GstStructures to prevent warnings
	  Currently serializing of DM Frameworks is not supported
	  yet by DMS1 and will give us NULL.

2009-03-04 21:30:30 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/interfaces/photography.h:
	* gst/camerabin/Makefile.am:
	  photography: declare interface as unstable API by means of a warning
	  Application developers won't know right away which module an interface comes from,
	  and may assume that it is covered by the usual GStreamer API guarantees, so make
	  it as clear as possible that this particular API is still subject to change
	  (should have done that with other libraries in -bad before too really).

2009-03-04 20:37:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure: detect faad's minor version and define FAAD2_MINOR_VERSION in config.h

2009-03-04 16:46:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* docs/plugins/inspect/plugin-valve.xml:
	* gst-plugins-bad.spec.in:
	* gst/valve/Makefile.am:
	  valve: rename plugin file from libfsvalve.* to libgstvalve.*
	  If you're running things uninstalled, you might need to manually
	  remove the registry to get the plugin's features to show up
	  correctly. Also, you probably want to do a make clean to get rid
	  of the old plugin file.

2009-03-04 19:50:10 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/real/gstreal.c:
	  gsreal: bring down the rank of the real decoders to MARGINAL.
	  Basically, at this point, the ffmpeg equivalent decoders perform way
	  better, so we'll make the ffmpeg equivalents PRIMARY and these
	  MARGINAL.

2009-03-04 18:42:15 +0000  Zaheer Merali <zaheerabbas@merali.org>

	* sys/dvb/gstdvbsrc.c:
	  dvbsrc: make some docs up to date

2009-03-04 18:16:31 +0000  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	  mpegtsdemux: reset sync_lut_len to 0 on READY to NULL

2009-03-04 15:30:04 +0000  Christian Schaller <cschalle@crazyhorse.localdomain>

	  Merge branch 'master' of ssh://uraeus@git.freedesktop.org/git/gstreamer/gst-plugins-bad

2009-03-04 15:28:46 +0000  Christian Schaller <cschalle@crazyhorse.localdomain>

	* docs/plugins/Makefile.am:
	* gst-plugins-bad.spec.in:
	* tests/examples/Makefile.am:
	  docs/plugins/Makefile.am: add figures subdirectory tests/examples/Makefile.am: add mxf subdirectory gst-plugins.spec.in: add new plugins

2009-03-04 16:15:57 +0100  Peter Kjellerstedt <pkj@axis.com>

	* tests/check/Makefile.am:
	  check: gst-plugins-bad.supp needs to be distributed.

2009-03-04 15:05:48 +0200  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* ext/ladspa/gstladspa.c:
	  ladspa: add LIBDIR/ladspa to search path and make path more portable
	  Use glib defines for searchpath separators. Filter searchpath to avoid scanning
	  path entries twice. Fix the return in ladspa_plugin_directory_search to return
	  wheter we found a plugin.

2009-03-04 14:34:12 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/ladspa/Makefile.am:
	* ext/ladspa/load.c:
	* ext/ladspa/search.c:
	* ext/ladspa/utils.h:
	  ladspa: rewrite the directory scanning, fixes first part of #573370
	  Move the two function from search.c into gstladspa.c and make them static.
	  Remove non needed arguments from function prototypes. Use glib api for
	  simplicity and portability.

2009-03-04 11:14:18 +0100  LRN <lrn1986@gmail.com>

	* ext/faad/gstfaad.c:
	  faad: use gint8 instead of int8_t
	  Use gint8 instead of int8_t to fix compilation.
	  Fixes #573851.

2009-03-04 11:07:52 +0100  LRN <lrn1986@gmail.com>

	* ext/gsm/gstgsmdec.c:
	  gsmdec: Use G_BYTE_ORDER to fix Windows compile
	  gstgsmdec relies on BYTE_ORDER, which is not available on Windows. Use
	  G_BYTE_ORDER instead.
	  Fixes #573850.

2009-03-03 14:30:53 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-mimic.xml:
	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimenc.c:
	  Add Doc for mimic plugin

2009-03-03 14:03:34 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* configure.ac:
	* ext/Makefile.am:
	* ext/mimic/gstmimic.c:
	  Move mimic to -bad

2009-03-03 14:20:37 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	* ext/mimic/gstmimic.c:
	  Re-indent to GST style

2008-07-25 22:47:26 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	  [MOVED FROM GST-P-FARSIGHT] Only output a newsegment if the incoming newsegment isnt a time segment
	  20080725224726-3e2dc-f82b993c0fbfe8bd487d2f1962fec1d0b6564ebc.gz

2008-07-25 22:26:48 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	  [MOVED FROM GST-P-FARSIGHT] Remove unused member variables
	  20080725222648-3e2dc-24649782a39462c7c3fef9d6270b3db4c4ace1bb.gz

2008-07-25 22:24:48 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Send out the right segment and use stored timestamps directly
	  20080725222448-3e2dc-e119bf09ede1cf187581d59176c8b35bafb731ae.gz

2008-07-25 19:48:33 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Skip non-keyframes before we get a keyframe
	  20080725194833-3e2dc-583df57c8ebce4b149a01768ed7d3737136a208f.gz

2008-07-25 19:33:58 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Ignore upstream newsegment events in mimdec
	  20080725193358-3e2dc-7c0f22386e0208a45eae9c1d7eb62e86f61d14ba.gz

2008-07-25 19:25:30 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] emit the right timestamp in the newsegment event
	  20080725192530-3e2dc-a3cc0ce73fca181caee323d699d8576df916e8d3.gz

2008-07-25 19:08:49 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Use video/x-mimic as the caps type
	  20080725190849-3e2dc-38e4acc9d4ad8231ed22f6cc4d7d8c2a8b5668e9.gz

2008-07-04 22:07:13 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	  [MOVED FROM GST-P-FARSIGHT] Add proper locking to mimenc
	  20080704220713-3e2dc-6a22d1a423716e8b84bc3bda9986a1b4ff0c0d37.gz

2008-07-04 22:03:18 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove useless implementation of getcaps from mimdec
	  20080704220318-3e2dc-d81bc59b2308c5ad0d3144030c5650295e99f3c6.gz

2008-07-04 22:02:43 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	  [MOVED FROM GST-P-FARSIGHT] Add proper locking to mimdec
	  20080704220243-3e2dc-71c157d82999dfb41bd62b4064b1887ab22e84c1.gz

2008-07-04 21:59:36 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove leak
	  20080704215936-3e2dc-22d992f98c9931f062662fc05f1ce65bc97f619a.gz

2008-07-04 21:55:50 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Reset the gst timestamp if the time different is too large
	  20080704215550-3e2dc-76eb3f600f2b977e916f7e1f654529ddaff06ac9.gz

2008-07-04 21:52:08 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Use the timestamp from the first buffer as the base
	  20080704215208-3e2dc-5822771f2694deda4a7cd5cdd3c38ab9eff7fa2d.gz

2008-07-04 21:49:35 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Store the timestamp in the header
	  20080704214935-3e2dc-90ec73df3225b41baa681ab691fb8bd47e17c780.gz

2008-07-04 21:19:43 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Re-indent mimdec
	  20080704211943-3e2dc-def1e0dacc4a45fe2b4afdcb903a1328c95117ac.gz

2008-07-04 21:15:11 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Simplify newsegment code
	  20080704211511-3e2dc-b98d1e5b31c23eb7912197f9364a31560d092c63.gz

2008-07-04 20:50:10 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	  [MOVED FROM GST-P-FARSIGHT] Port mimic plugins to GST_BOILERPLATE
	  20080704205010-3e2dc-da41e5685ab9ceb67555d499125432cd12d5505d.gz

2008-07-04 20:41:12 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	* ext/mimic/gstmimic.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove trailing whitespace in mimic plugin
	  20080704204112-3e2dc-1ab4b913d58faa058742b01e083f7debd6877bb3.gz

2008-07-04 20:29:41 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	  [MOVED FROM GST-P-FARSIGHT] Fix conflicts
	  20080704202941-3e2dc-7f5a38845b797e12d672551466e635d484cb6763.gz

2007-11-10 05:17:17 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix mimic enc chain function, return res for chain(), get the parent element with the proper accessor function, use the _OBJECT debugging macros
	  20071110051717-3e2dc-4726fcd19cc3d1121a4e13276a41f5f86dc1c9b1.gz

2007-11-10 05:14:27 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Make the _set_caps function of mimic enc more robust
	  20071110051427-3e2dc-381a71f2cbfdbf508e941b672e9058c82fabce24.gz

2007-11-10 05:14:01 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove the gst 0.9.1 ifdef
	  20071110051401-3e2dc-1f071d732d64573889977405995692d94b10a0d6.gz

2007-11-10 05:10:35 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Make caps gst 0.10 compliant
	  20071110051035-3e2dc-f7024bd3ecfb6794fe8d09dcb100ba0b4783df5d.gz

2007-11-10 05:09:50 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Use g_type_class_peek_parent instead of reffing the parent class directly
	  20071110050950-3e2dc-6d14ddd6ae3ceeeaa4e641b7b09613e442927f92.gz

2007-11-10 05:08:52 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove framesize properties on the mimic encoder
	  20071110050852-3e2dc-cb8165c073bfa981790dc91693fd1c483ea7b6ea.gz

2007-11-10 05:07:53 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Use the _OBJECT debug macros
	  20071110050753-3e2dc-560d22a86eea1108f1746d0123744d33812e94c9.gz

2007-11-10 05:03:51 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Use gst_pad_get_parent instead of looking into the GstObject directly
	  20071110050351-3e2dc-636f7d7737494f810047a8ee6927cde060bb4b4b.gz

2007-11-10 05:02:32 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Return back result of pad push
	  20071110050232-3e2dc-4a080d97963cd8ab6d528c4012d14353c1cfe97b.gz

2007-11-10 04:11:25 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	  [MOVED FROM GST-P-FARSIGHT] Ole's port to gst 0.10
	  20071110041125-3e2dc-e2994c3bbe1578d98e4f707bd10f24fabf942c2b.gz

2008-12-11 17:54:18 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* ext/mimic/.git-darcs-dir:
	  [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files

2008-02-11 22:24:31 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Limit timestamp diff in case of a jump in the timestamps
	  20080211222431-4f0f6-726fc66403081533371f775954aab4c7b8fdc643.gz

2008-02-06 03:16:54 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Make it back to 30 fps in caps
	  20080206031654-4f0f6-d8197e53888906805041e6552c0dd774c55e9e89.gz

2008-02-06 03:09:47 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix timestamps in gst buffers sent by gstmimic
	  20080206030947-4f0f6-9dc7d9b1a92a717c71b1e490a5591f0e2ffe0dad.gz

2008-02-06 02:03:35 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix framerate type in caps for gstmimic element
	  20080206020335-4f0f6-0d9e136039ad6b7b84982bdac242a059d50fbb66.gz

2006-03-24 20:16:19 +0000  philippe.kalaf@collabora.co.uk <philippe.kalaf@collabora.co.uk>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Fixed couple of compilation issues
	  20060324201619-2425b-bf339926f533aa4efece855fbbe94e59c7bb955f.gz

2006-03-24 19:57:20 +0000  philippe.kalaf@collabora.co.uk <philippe.kalaf@collabora.co.uk>

	* ext/mimic/gstmimenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Calls to gst_pad_get_parent ref the object so it needs to be unreffed < hexa00@gmail.com
	  20060324195720-2425b-17928be34ee67f71efbaf62de76deba9ad13f0f2.gz

2006-02-14 21:00:27 +0000  philippe.kalaf@collabora.co.uk <philippe.kalaf@collabora.co.uk>

	* ext/mimic/Makefile.am:
	  [MOVED FROM GST-P-FARSIGHT] Separated ERROR_CFLAGS from GST_CFLAGS
	  20060214210027-2425b-1f9e6ed591c08e5907d02ef7ea9a8cf62bf29840.gz

2005-10-24 15:37:48 +0000  Philippe Khalaf <burger at speedy dot org>

	* ext/mimic/gstmimdec.c:
	  [MOVED FROM GST-P-FARSIGHT] Should not be done in dispose, moving to finalize
	  20051024153748-05459-9625fec05547c535bf5f3c66aebba84861b549aa.gz

2005-07-16 19:50:21 +0000  Philipe Kalaf <philippe.kalaf@collabora.co.uk>

	* ext/mimic/.git-darcs-dir:
	* ext/mimic/Makefile.am:
	* ext/mimic/gstmimdec.c:
	* ext/mimic/gstmimdec.h:
	* ext/mimic/gstmimenc.c:
	* ext/mimic/gstmimenc.h:
	* ext/mimic/gstmimic.c:
	  [MOVED FROM GST-P-FARSIGHT] Import from CVS to darcs

2009-03-03 14:32:38 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  rtpmux: Ignore rtpmux get_type function for docs

2009-03-03 19:08:28 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	* gst/mpegdemux/mpegtspacketizer.c:
	  mpegtsparse: fix memleak
	  Fix memleak in mpegts_packetizer_clear where MpegTSPacketizerStream is
	  not freed properly when using foreach_stream_clear function.

2009-03-03 18:28:10 +0000  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	  mpegtsdemux: dynamically adjust the sync LUT table
	  Make the sync LUT table adjusted dynamically according to the size
	  of scanned data. Fixes demuxing buffers of any size.

2009-02-25 21:05:42 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-autoconvert.xml:
	* gst/autoconvert/Makefile.am:
	* gst/autoconvert/gstautoconvert.c:
	* gst/autoconvert/gstautoconvert.h:
	  autoconvert: Import fsselector from gst-plugins-farsight as autoconvert
	  fsselector is too close to selector, so import is as autoconvert. Not importing
	  the history because the directory is also called gst/selector and it fails.

2009-03-02 10:57:35 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/qtmux/gstqtmux.c:
	  qtmux: Be a bit more verbose in our debug message when failing to renegotiate

2009-03-02 17:00:41 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	  mxfdemux: Use arrays instead of lists for the metadata registries

2009-03-02 16:29:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/xdgmime/gstxdgmime.c:
	  xdgmime: Reduce probability to POSSIBLE

2009-03-02 16:27:55 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/xdgmime/gstxdgmime.c:
	  xdgmime: Add locking to the xdg_mime_* calls as it's not thread-safe

2009-03-01 20:18:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/xdgmime/xdgmime/xdgmimealias.c:
	* gst/xdgmime/xdgmime/xdgmimecache.c:
	* gst/xdgmime/xdgmime/xdgmimeglob.c:
	* gst/xdgmime/xdgmime/xdgmimeicon.c:
	* gst/xdgmime/xdgmime/xdgmimeparent.c:
	  xdgmime: Use g_pattern_match_simple() instead of fnmatch() for Win32 compatibility

2009-03-01 20:13:31 +0100  LRN <lrn1986@gmail.com>

	* gst/xdgmime/xdgmime/xdgmimemagic.c:
	  xdgmime: Fix unused variable compiler warning

2009-03-01 20:12:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/xdgmime/xdgmime/xdgmimecache.c:
	  xdgmime: Don't warn if we have no MMAP support

2009-03-01 20:11:07 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/xdgmime/xdgmime/xdgmimecache.c:
	  xdgmime: Use g_ntoh[ls] instead of the non-GLib functions for Win32 compatibility

2009-03-01 20:09:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/xdgmime/xdgmime/xdgmimemagic.c:
	  xdgmime: Use G_BYTE_ORDER instead of relying on LITTLE_ENDIAN to be defined

2009-03-01 20:02:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/ladspa/Makefile.am:
	  ladspa: Don't compile unused code from load.c

2009-02-28 23:47:02 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* gst/real/gstreal.c:
	  realdec: use gst_plugin_add_dependency()

2009-02-28 15:23:07 -0800  Michael Smith <msmith@syncword.(none)>

	* sys/acmenc/acmenc.c:
	  acmenc: fix whitespace
	  Convert to unix newlines, and reindent in some broken places.

2009-02-28 20:42:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxf: Fix memory leak
	  gst_structure_id_set() will copy GstStructures instead of taking
	  the ownership.

2009-02-28 20:39:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmpeg.c:
	  mxf: Store the metadata type ID inside the class structure

2009-02-28 19:41:10 +0100  vanista <vanista@gmail.com>

	* gst/mpegdemux/gstsectionfilter.c:
	  mpegtsdemux: Fix memory leaks when PUSI is missed due to packet loss
	  Fixes bug #573288.

2009-02-28 11:43:56 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/nsf/fmopl.c:
	  nsf: Don't write further than the limits of the table (size is 75, as defined in the header)
	  gcc 4.3.3 found this one, I'm impressed.

2009-02-28 10:29:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/examples/mxf/mxfdemux-structure.c:
	  mxf: Don't use GLib 2.16 API unconditionally in the example

2009-02-27 20:43:25 +0100  Andrzej Polatyński <apolatynski@gmail.com>

	* gst/videosignal/gstvideoanalyse.c:
	  videoanalyse: Fix brightness calculation to not only use the first rowstride
	  Fixes bug #573391.

2009-02-27 11:36:58 -0800  Michael Smith <msmith@songbirdnest.com>

	* gst/mpeg4videoparse/mpeg4videoparse.c:
	  mpeg4videoparse: Use correct values for checking VO startcode.
	  Fix compiler warning due to condition always being true - since we're
	  only looking at the final byte of the startcode (not the leading
	  0x000001), only check for < 0x1f, not < 0x11f

2009-02-27 20:21:23 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/xdgmime/gstxdgmime.c:
	  xdgmime: Use empty caps for registering the typefinders with old core versions
	  core before 0.10.22.1 produced assertions when storing typefind factories
	  with NULL caps in the registry.

2009-02-26 15:40:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/mpeg4videoparse/mpeg4videoparse.c:
	* gst/mpeg4videoparse/mpeg4videoparse.h:
	  mpeg4videoparse: handle more formats
	  We only need a Video Object Start code before we can start pushing out data.
	  Search for this code also instead of only looking for VOS and VOP.
	  Fixes #572551.

2009-02-27 12:03:23 +0000  Jan Schmidt <thaytan@noraisin.net>

	  Merge branch 'work'

2009-02-27 11:56:45 +0000  Jan Schmidt <thaytan@noraisin.net>

	* docs/plugins/.gitignore:
	  docs: Ignore some more generated files

2009-02-27 11:55:34 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/celt/gstceltdec.c:
	* ext/celt/gstceltdec.h:
	  celtdec: Move define into the C file so it doesn't show up in the docs

2009-02-27 11:54:42 +0000  Jan Schmidt <thaytan@noraisin.net>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-dirac.xml:
	  docs: Enroll dirac plugin into the docs

2009-02-27 11:39:56 +0000  Jan Schmidt <thaytan@noraisin.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* ext/dts/gstdtsdec.c:
	  dtsdec: Add some basic docs to the plugin

2009-02-27 10:16:57 +0000  Jan Schmidt <thaytan@noraisin.net>

	* ext/apexsink/gstapexraop.c:
	  apexsink: Use a union to avoid type-punning strict aliasing compiler warning.

2009-02-27 12:35:14 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/Makefile.am:
	* gst/camerabin/gstcamerabin-marshal.list:
	* gst/camerabin/gstcamerabin.c:
	* tests/check/elements/camerabin.c:
	  camerabin: rework signaling and tests
	  Revert the GString change. There are no marshallers for it. A better change is
	  now described in http://bugzilla.gnome.org/show_bug.cgi?id=573370.
	  Test should work again.

2009-02-27 11:24:37 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.c:
	  baseparse: revert last change and properly fix
	  Baseparse internaly breaks the semantics of a _chain function by calling it with
	  buffer==NULL. The reson I belived it was okay to remove it was that there is
	  also an unchecked access to buffer later in _chain. Actually that code is wrong,
	  as it most probably wants to set discont on the outgoing buffer.

2009-02-27 11:06:04 +0100  Edward Hervey <bilboed@bilboed.com>

	* sys/qtwrapper/qtutils.c:
	  qtwrapper: Only use _dump_mem() if requested.

2009-02-26 12:48:16 -0800  David Schleef <ds@schleef.org>

	* gst/rawparse/gstvideoparse.c:
	  Add v210 format

2009-02-26 12:47:16 -0800  David Schleef <ds@schleef.org>

	* gst/rawparse/gstvideoparse.c:
	  Fix incorrect "pixel_aspect_ratio" in caps
	  Should be "pixel-aspect-ratio".

2009-02-26 18:46:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* tests/examples/mxf/.gitignore:
	* tests/examples/mxf/Makefile.am:
	* tests/examples/mxf/mxfdemux-structure.c:
	  mxf: Add example application to output the structural metadata tree into a GtkTreeView

2009-02-26 13:10:29 +0100  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c:
	  gstrtpbin: Don't forward revc events to sender
	  Don't send events from the receiver to the sender side.
	  Fixes #572900.

2009-02-26 11:02:06 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	* gst/flacparse/gstbaseparse.c:
	  baseparse: remove checks for buffer==NULL
	  Accordifn to docs for GstPadChainFunction buffer cannot be NULL. If we would
	  leave the check, we would also need more such check below.

2009-02-25 15:06:07 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	* configure.ac:
	  build: Update shave init statement for changes in common. Bump common.

2009-02-25 15:24:13 +0200  Stefan Kost <ensonic@users.sf.net>

	* tests/check/elements/neonhttpsrc.c:
	  tests: add a timeout of 5 slightly above the default

2009-02-25 15:17:14 +0200  Stefan Kost <ensonic@users.sf.net>

	* tests/check/elements/camerabin.c:
	  camerabin: increase timeout and lower video recording length
	  The video was recorded for too long for the test timeouts. Also the verification
	  suite did not had custom timouts at all. Also split the verification for images
	  and video to get better reporting.

2009-02-25 11:32:22 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 9cf8c9b to a6ce5c6

2009-02-25 12:34:33 +0200  Stefan Kost <ensonic@users.sf.net>

	* tests/check/Makefile.am:
	  tests: blacklist dccp plugins.
	  Unless one runs a very recent kernel, they can easily lockup the whole system.

2009-02-25 11:45:05 +0200  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/camerabin/gstcamerabin.c:
	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	* gst/dtmf/gstrtpdtmfdepay.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/rtpmanager/rtpjitterbuffer.c:
	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpmux.c:
	* gst/selector/gstinputselector.c:
	  docs: various doc fixes
	  No short-desc as we have them in the element details.
	  Also keep things (Makefile.am and sections.txt) sorted.
	  Reword ambigous returns. No text after since please.

2009-02-25 11:34:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: don't ignore GstFlowReturn values
	  don't ignore the return value of pull_range because we only get a valid non-NULL
	  buffer when the return value is GST_FLOW_OK. Avoids a crash when the pipeline is
	  shutting down.

2009-02-25 11:41:36 +0200  Stefan Kost <ensonic@users.sf.net>

	* gst/camerabin/gstcamerabin-marshal.list:
	* gst/camerabin/gstcamerabin.c:
	  camerabin: update signal marshaller and docs
	  Use GString instead of GPointer for the marshaller as this is what the callback uses.
	  Slightly reformat docs.

2009-02-25 11:38:58 +0200  Stefan Kost <ensonic@users.sf.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/figures/Makefile.am:
	* docs/plugins/figures/camerabin.dot:
	* docs/plugins/figures/camerabin.png:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-camerabin.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-deinterlace2.xml:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-flv.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-timidity.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-valve.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xdgmime.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	  docs: update docs to add camerabin and its figure

2009-02-25 11:00:55 +0200  Stefan Kost <ensonic@users.sf.net>

	* tests/check/elements/camerabin.c:
	  camerabin: get rid of // comment and explain

2009-02-25 10:46:10 +0200  Stefan Kost <ensonic@users.sf.net>

	* tests/check/elements/camerabin.c:
	  camerabin: update check unit test
	  Use playbin2 for validation. Use tmp_dir for capturing. Wait with g_cond for
	  burst capture finish. Cleanup some g_object_set. Add some logging to ease
	  tracing.

2009-02-25 10:45:19 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: unblock correct pad in reset, support fakesink as view finder

2009-02-24 16:36:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* tests/examples/app/.gitignore:
	* tests/examples/app/Makefile.am:
	* tests/examples/app/appsink-src.c:
	* tests/examples/app/appsrc-ra.c:
	* tests/examples/app/appsrc-seekable.c:
	* tests/examples/app/appsrc-stream.c:
	* tests/examples/app/appsrc-stream2.c:
	* tests/examples/app/appsrc_ex.c:
	  Remove tests/examples/app as it was moved to -base a long time ago

2009-02-24 16:33:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* Makefile.am:
	* configure.ac:
	* examples/Makefile.am:
	* examples/app/.gitignore:
	* examples/app/Makefile.am:
	* examples/app/appsink-src.c:
	* examples/app/appsrc-ra.c:
	* examples/app/appsrc-seekable.c:
	* examples/app/appsrc-stream.c:
	* examples/app/appsrc-stream2.c:
	* examples/app/appsrc_ex.c:
	* examples/capsfilter/Makefile.am:
	* examples/capsfilter/capsfilter1.c:
	* examples/directfb/.gitignore:
	* examples/directfb/Makefile.am:
	* examples/directfb/decker.ttf:
	* examples/directfb/dfblogo.png:
	* examples/directfb/gstdfb.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/scaletempo/.gitignore:
	* examples/scaletempo/Makefile.am:
	* examples/scaletempo/demo-gui.c:
	* examples/scaletempo/demo-gui.h:
	* examples/scaletempo/demo-main.c:
	* examples/scaletempo/demo-player.c:
	* examples/scaletempo/demo-player.h:
	* examples/stats/Makefile.am:
	* examples/stats/mp2ogg.c:
	* examples/switch/.gitignore:
	* examples/switch/Makefile.am:
	* examples/switch/switcher.c:
	* tests/Makefile.am:
	* tests/examples/Makefile.am:
	* tests/examples/app/.gitignore:
	* tests/examples/app/Makefile.am:
	* tests/examples/app/appsink-src.c:
	* tests/examples/app/appsrc-ra.c:
	* tests/examples/app/appsrc-seekable.c:
	* tests/examples/app/appsrc-stream.c:
	* tests/examples/app/appsrc-stream2.c:
	* tests/examples/app/appsrc_ex.c:
	* tests/examples/capsfilter/Makefile.am:
	* tests/examples/capsfilter/capsfilter1.c:
	* tests/examples/directfb/.gitignore:
	* tests/examples/directfb/Makefile.am:
	* tests/examples/directfb/decker.ttf:
	* tests/examples/directfb/dfblogo.png:
	* tests/examples/directfb/gstdfb.c:
	* tests/examples/gob/Makefile.am:
	* tests/examples/gob/gst-identity2.gob:
	* tests/examples/gstplay/.gitignore:
	* tests/examples/gstplay/Makefile.am:
	* tests/examples/gstplay/player.c:
	* tests/examples/indexing/.gitignore:
	* tests/examples/indexing/Makefile.am:
	* tests/examples/indexing/indexmpeg.c:
	* tests/examples/level/Makefile.am:
	* tests/examples/level/README:
	* tests/examples/level/demo.c:
	* tests/examples/level/plot.c:
	* tests/examples/scaletempo/.gitignore:
	* tests/examples/scaletempo/Makefile.am:
	* tests/examples/scaletempo/demo-gui.c:
	* tests/examples/scaletempo/demo-gui.h:
	* tests/examples/scaletempo/demo-main.c:
	* tests/examples/scaletempo/demo-player.c:
	* tests/examples/scaletempo/demo-player.h:
	* tests/examples/stats/Makefile.am:
	* tests/examples/stats/mp2ogg.c:
	* tests/examples/switch/.gitignore:
	* tests/examples/switch/Makefile.am:
	* tests/examples/switch/switcher.c:
	  Move examples directory to tests/examples as in every other GStreamer module

2009-02-24 16:21:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/dts/gstdtsdec.c:
	* ext/dts/gstdtsdec.h:
	  dtsdec: Use new DCA functions/constants as not all distros package the compat dts.h
	  For backward compatibility we define the DCA functions/constants to the
	  old DTS functions/constants if we're building against libdts.

2009-02-24 15:26:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/xdgmime/Makefile.am:
	* gst/xdgmime/gstxdgmime.c:
	* gst/xdgmime/xdgmime/xdgmime.c:
	* gst/xdgmime/xdgmime/xdgmime.h:
	* gst/xdgmime/xdgmime/xdgmimealias.c:
	* gst/xdgmime/xdgmime/xdgmimealias.h:
	* gst/xdgmime/xdgmime/xdgmimecache.c:
	* gst/xdgmime/xdgmime/xdgmimecache.h:
	* gst/xdgmime/xdgmime/xdgmimeglob.c:
	* gst/xdgmime/xdgmime/xdgmimeglob.h:
	* gst/xdgmime/xdgmime/xdgmimeicon.c:
	* gst/xdgmime/xdgmime/xdgmimeicon.h:
	* gst/xdgmime/xdgmime/xdgmimeint.c:
	* gst/xdgmime/xdgmime/xdgmimeint.h:
	* gst/xdgmime/xdgmime/xdgmimemagic.c:
	* gst/xdgmime/xdgmime/xdgmimemagic.h:
	* gst/xdgmime/xdgmime/xdgmimeparent.c:
	* gst/xdgmime/xdgmime/xdgmimeparent.h:
	  xdgmime: Add new typefinder based on xdgmime
	  This typefinder is mostly useful to filter out any false positives
	  by the other typefinders like the usual Word document misdetected as
	  MP3 file.

2009-02-24 13:37:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	  dts: Prefer libdca over libdts as it's the successor

2009-02-23 16:02:08 +0100  Edward Hervey <bilboed@bilboed.com>

	* sys/qtwrapper/audiodecoders.c:
	  qtwrapper: Fix build on macosx

2009-02-23 15:25:03 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/liveadder/liveadder.c:
	  liveadder: Fix build on macosx

2009-02-20 12:08:04 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabin.h:
	  camerabin: Add aspect ratio capsfilter for view finder
	  If dealing with larger frame sizes than view finder sink element
	  accepts then maintain aspect ratio when scaling frames to fit.

2009-02-20 12:07:33 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: Scale incoming frames if their size does not match requested size
	  If capture preparation in videosrc results in frame size different
	  from requested size, then we need to scale them.

2009-02-20 12:03:03 +0200  Lasse Laukkanen <ext-lasse.2.laukkanen@nokia.com>

	* gst-libs/gst/interfaces/photography.c:
	* gst-libs/gst/interfaces/photography.h:
	  photo iface: Add caps object to preparation API for requested and actual capture format
	  Allow requesting of certain format with prepare_for_capture() and return
	  the actual format in GstPhotoCapturePrepared callback.

2009-02-23 11:49:07 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  build: Add soundtouch's -lBPM to _LIBS, not _CFLAGS

2009-02-22 22:00:58 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/dccp/gstdccpserversink.c:
	  dccp: Fix "non-void without return value" compilation issue.

2009-02-22 19:17:30 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* ext/soundtouch/Makefile.am:
	* ext/soundtouch/gstbpmdetect.cc:
	  Detect libsoundtouch 1.4 and higher.
	  In libsoundtouch 1.4, libBPM appears to have been subsumed into
	  libSoundTouch, and into the soundtouch namespace.

2009-02-22 18:12:19 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	  Use shave for the build output

2009-02-22 18:41:08 +0100  Andoni Morales <ylatuya@gmail.com>

	* configure.ac:
	* gst/camerabin/camerabingeneral.h:
	* gst/camerabin/gstcamerabin.c:
	  camerabin: Fix compilation on Windows with Visual Studio
	  Windows doesn't have strcasecmp so we should use
	  g_ascii_strcasecmp here instead.
	  Also Windows doesn't have sys/time.h so we first
	  need to check if it actually exists and if not
	  we should not include it.
	  Fixes bug #572315.

2009-02-22 15:58:06 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Automatic update of common submodule
	  From 5d7c9cc to 9cf8c9b

2009-02-22 14:58:36 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/directfb/dfbvideosink.c:
	  dfbvideosink: Don't use void * pointer arithmetic

2009-02-22 13:17:54 +0100  Edward Hervey <bilboed@bilboed.com>

	* ext/xvid/gstxvid.c:
	  xvid: Fix compilation warning

2009-02-21 11:13:50 -0800  David Schleef <ds@schleef.org>

	* common:
	  Automatic update of common submodule
	  From 80c627d to 5d7c9cc

2009-02-10 17:02:24 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* docs/plugins/inspect/plugin-rtpmux.xml:
	* gst/rtpmux/Makefile.am:
	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpmuxer.c:
	  Moved rtpmux from gst-p-farsight to -bad

2009-02-20 17:45:50 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpdtmfmux.h:
	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	* gst/rtpmux/gstrtpmuxer.c:
	  Re-indent to Gst style

2009-02-10 19:11:15 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Document rtp muxer a bit

2009-02-20 13:30:49 -0500  Laurent Glayal <spglegle@yahoo.fr>

	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpdtmfmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Add signals before stream lock and after unlocking

2009-02-18 20:18:46 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Let ssrc through getcaps

2009-02-18 19:58:58 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Rename have_base to have_ts_base

2009-02-18 18:14:52 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Protect the seqnum with object lock in rtpmux

2009-02-18 18:07:44 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Remove unused sink_ts_base

2009-02-18 15:20:58 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Have getcaps to force the same clockrate on all pads

2009-02-18 17:05:13 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Validate RTP data in RTP Mux

2009-02-18 14:16:00 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Remove unused clock-rate property

2009-02-18 13:56:36 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpdtmfmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Clarify locking in rtpdtmfmux

2009-02-18 13:32:56 -0500  Laurent Glayal <spglegle@yahoo.fr>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Missing format parameter

2008-12-11 17:54:18 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/.git-darcs-dir:
	  [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files

2008-12-01 17:55:22 -0500  Håvard Graff <havard.graff@tandberg.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Update seqnum base in rtp muxer
	  With help from Wim

2008-12-01 17:54:58 -0500  Håvard Graff <havard.graff@tandberg.com>

	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix some more leaks

2008-12-01 17:48:29 -0500  Håvard Graff <havard.graff@tandberg.com>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix leak

2008-09-29 15:03:05 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Don't unref caps we don't know (thanks Wim)

2008-08-12 12:48:02 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Put per-buffer debug at level LOG

2008-08-12 12:47:14 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Make debug print accurate

2008-08-12 12:46:23 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Set our caps on the buffers

2008-08-12 12:46:07 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Take the clock-base stored from the last setcaps

2008-08-12 12:41:59 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Store the clock-base on setcaps

2008-08-12 12:30:52 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Add padprivate to the request pads

2008-08-12 12:23:32 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Remove whitespace in gstrtpmux

2008-08-11 21:20:06 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Make indentation more correct

2008-08-11 21:05:34 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix typo

2008-08-11 21:03:22 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Set seqnum-base and clock-base in caps from rtpmuxer

2007-08-15 13:50:38 +0000  Zeeshan Ali <first.last@nokia.com>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  [MOVED FROM GST-P-FARSIGHT] more debug
	  20070815135038-f3f1e-9c7a5490a525c6e8753cb1b8c03354df99132b5c.gz

2007-08-23 21:22:25 +0000  philippe.kalaf@collabora.co.uk <philippe.kalaf@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Sync jitterbuffer with CVS -bad
	  20070823212225-2425b-0fe69bf72539678dda45d615a09f1cbf502cc71a.gz

2007-08-20 18:50:32 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] missing comment
	  20070820185032-4f0f6-0ab67b6ac40dd4e35a8fe53f3cb6daff65ce43b9.gz

2007-07-12 19:53:36 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Make buffer writable before writing into it
	  20070712195336-3e2dc-91a5fb797cfa4919d4e2f9a728c6d6fbd3b83d93.gz

2007-07-06 20:24:59 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Set pads active when adding them to a potentially running element
	  20070706202459-3e2dc-a3731f885725594def0a7be997fc7b3a739ee967.gz

2007-06-07 12:01:21 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix multiple ref leaks (patches by SP GLE)
	  20070607120121-3e2dc-061e9ef7a47b1b84fa8f8092f4b8bcc0e6db8c8c.gz

2007-05-28 15:25:05 +0000  Zeeshan Ali <first.last@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] send event to all src pads
	  20070528152505-f3f1e-039216c73dc93f64c49962c77a0253cb9cfec4d3.gz

2007-05-28 12:37:49 +0000  Zeeshan Ali <first.last@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] print a warning if receive an error iterating sinkpads
	  20070528123749-f3f1e-4c1eb3f511b5610143610a65a94d117f2c3d2580.gz

2007-05-28 12:28:08 +0000  Zeeshan Ali <first.last@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] deal with all the gst_iterator_next() return values
	  20070528122808-f3f1e-d301644c3be7633ec6dc5e28596e9346d2da6a50.gz

2007-05-25 12:31:16 +0000  Zeeshan Ali <first.last@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Return correct value from the event handler
	  20070525123116-f3f1e-131b37b5f4521618fe2f1320409a47e65b35ad2d.gz

2007-05-25 10:27:09 +0000  Zeeshan Ali <first.last@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Ville's original patch to fix the traversal of dtmf event
	  20070525102709-f3f1e-6c41d1ef934068a4f4e810e7e981b420075b0c98.gz

2007-03-29 13:52:50 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Set the correct ts-offset on the get_prop value
	  20070329135250-65035-a43e222d91d57c0a61cb3287586aaa29abf78674.gz

2007-03-29 13:52:23 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Refactorize state_change
	  20070329135223-65035-23a0107b2e397710f035c6e88cc0e49b65bb4d5d.gz

2007-03-29 13:36:22 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	  [MOVED FROM GST-P-FARSIGHT] set SSRC on the packets
	  20070329133622-65035-1be6e0aa85a71389f7d257b9cd3e13a73d6b745b.gz

2007-03-29 13:19:36 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Code clean-up and more debug output
	  20070329131936-65035-9d499e209e0d7a409c3aa0d1040778babf076179.gz

2007-03-28 11:22:19 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Use own clock-base
	  20070328112219-65035-1ba5fefbc65059e9b0c860528a31062ceb6a7331.gz

2007-03-23 16:31:39 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Only accept RTP streams that have the same clock-rate
	  20070323163139-65035-fc0b17b0b8a7a041f48994c4f26e96568168bf95.gz

2007-03-22 16:15:52 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Some more code-cleanups
	  20070322161552-65035-bda96165e146b4f1d5fea1cc9576a7ab3abebc9e.gz

2007-03-22 15:42:51 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] return newpad instead of NULL and warn if failed to create a pad
	  20070322154251-65035-cdb6651e61c2eb0205cc8c24693b43f98a2da718.gz

2007-03-22 12:41:32 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Refactorize the RTPMux code
	  20070322124132-65035-0a3278147546e33f687097a43b775b3f6aa99f93.gz

2007-03-22 12:14:53 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Some more doc fixing
	  20070322121453-65035-12d602272217b51bd97df4e5790024c399622dd3.gz

2007-03-22 11:32:28 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  [MOVED FROM GST-P-FARSIGHT] More Refactoring
	  20070322113228-65035-bae34a79599e7de5293ed77b022361ccff822bb9.gz

2007-03-22 11:31:54 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  [MOVED FROM GST-P-FARSIGHT] More documentation
	  20070322113154-65035-624850541a5b5fc3df231204be5a83d07239db28.gz

2007-03-21 16:33:11 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpdtmfmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Refactor the event handler function
	  20070321163311-65035-987e7f25d1ab5335b79f44b277abf15e4e37d317.gz

2007-03-21 14:52:44 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/Makefile.am:
	* gst/rtpmux/gstrtpdtmfmux.c:
	* gst/rtpmux/gstrtpdtmfmux.h:
	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	* gst/rtpmux/gstrtpmuxer.c:
	  [MOVED FROM GST-P-FARSIGHT] Add RTPDTMFMux element
	  20070321145244-65035-9a01390b0dee3398e53199a1fa1d9352004f338e.gz

2007-03-21 12:31:49 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/Makefile.am:
	* gst/rtpmux/gstrtpmux.c:
	* gst/rtpmux/gstrtpmux.h:
	  [MOVED FROM GST-P-FARSIGHT] Remove DTMF-specific code from RTP muxer and make it extendable
	  20070321123149-65035-b8a8f55ff78eed8cbb0042e827885edfc5438242.gz

2007-03-20 12:05:24 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Put more helpful description
	  20070320120524-65035-db27a7cf6307b511aeb3d996d26e790e367a7bad.gz

2007-03-16 15:16:41 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] remove the (commented-out) code for blocking the pads
	  20070316151641-65035-0123af387951f88594797c722e882cfe70240aff.gz

2007-03-16 13:14:44 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Drop buffers instead of blocking the sinkpads
	  20070316131444-65035-9c1345ad96108881f455d4b55a7f623cd302d0ed.gz

2007-03-14 17:16:18 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Implement stream locking, needed for DTMF
	  20070314171618-65035-e4d24b1606ce0a3e2e739f01833f61e4d7555eac.gz

2007-03-14 10:20:58 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] use GST_*_OBJECT instead of g_*
	  20070314102058-65035-e2442888f2e3e5a3a7659ad7954a4fba34749ce2.gz

2007-03-14 10:18:54 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] No need to manage pads, parent does that for us
	  20070314101854-65035-ef5f4abde227102a1128835ab325905eae4c3726.gz

2007-03-14 09:03:58 +0000  zeenix@gmail.com <zeenix@gmail.com>

	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix copyright header
	  20070314090358-d014a-3a6d3eeeaaf5cb8ca3bca6a33e99a551f598bd48.gz

2007-03-07 08:53:07 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpmux/.git-darcs-dir:
	* gst/rtpmux/Makefile.am:
	* gst/rtpmux/gstrtpmux.c:
	  [MOVED FROM GST-P-FARSIGHT] The first implementation of RTP muxer
	  20070307085307-65035-833402413f99cb3f8be4883e92bad4c8722510c9.gz

2009-02-20 18:16:02 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfdepay.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  Document rtpdtmfdepay a bit

2009-02-20 17:41:37 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-dtmf.xml:
	* gst/dtmf/gstdtmf.c:
	  Moved dtmf elements from gst-plugins-farsight to -bad

2009-02-20 17:40:57 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	* gst/dtmf/gstrtpdtmfdepay.h:
	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  Fix up documentation blobs SGML

2009-02-20 17:37:43 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmf.c:
	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	* gst/dtmf/gstrtpdtmfcommon.h:
	* gst/dtmf/gstrtpdtmfdepay.c:
	* gst/dtmf/gstrtpdtmfdepay.h:
	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  Re-indent to Gst style

2009-02-18 13:30:44 -0500  Laurent Glayal <spglegle@yahoo.fr>

	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Missing format directive

2008-12-04 21:21:44 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfdepay.c:
	* gst/dtmf/gstrtpdtmfdepay.h:
	  [MOVED FROM GST-P-FARSIGHT] Allow setting a maximum duration to a RTP DTMF event

2008-12-04 21:11:17 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfdepay.c:
	  [MOVED FROM GST-P-FARSIGHT] Improve the minimum quanta to make it impossible for the duration to fall down to 0

2008-12-01 18:31:48 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfdepay.c:
	* gst/dtmf/gstrtpdtmfdepay.h:
	  [MOVED FROM GST-P-FARSIGHT] Allow setting a minimum size of a sound quanta in the dtmf depayloader

2008-12-11 17:54:18 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/.git-darcs-dir:
	  [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files

2008-12-01 17:37:10 -0500  Håvard Graff <havard.graff@tandberg.com>

	* gst/dtmf/gstrtpdtmfdepay.c:
	  [MOVED FROM GST-P-FARSIGHT] Do wierd casting of the volume to make MSVC happy

2008-10-15 16:21:50 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Clarify the documentation of the "event-type" field when specifying dtmf events

2008-07-22 21:39:38 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove g_debugs
	  20080722213938-3e2dc-44a82d017fe66f3112301c410aa0b543de6156ad.gz

2008-06-13 23:57:23 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Take rate from the peers caps if possible
	  20080613235723-3e2dc-15690ee42708c539e1be12e20e076a5613faea96.gz

2008-06-13 23:41:44 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Put the sample rate in dtmfsrc into a variable
	  20080613234144-3e2dc-e60070943bec829b703b8821c7aa4351a02deebe.gz

2008-06-13 23:30:06 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Take the clock-rate from the caps in rtpdtmfsrc
	  20080613233006-3e2dc-a7d4e918643f4f8c1bb2cc2678558c654025920e.gz

2008-04-28 22:22:37 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/Makefile.am:
	  [MOVED FROM GST-P-FARSIGHT] Link modules with libm where required
	  20080428222237-3e2dc-b1e9120c1e9ca1a510bfd7c27e2d45f0d4a12504.gz

2008-04-12 23:44:18 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfdepay.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix byte ordering issues with dtmfsrc and rtpdtmfdepay.. use of G_STRINGIFY to avoid error on MSVC
	  20080412234418-4f0f6-4828d1613dfcd564afd236dfc8fb57a299092f83.gz

2008-03-20 19:14:38 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfdepay.c:
	* gst/dtmf/gstrtpdtmfdepay.h:
	  [MOVED FROM GST-P-FARSIGHT] Fix copyrights again, per smcv's advice..
	  20080320191438-4f0f6-671c9db5d996a4601df017ceab4af6d16469c966.gz

2008-03-19 21:17:31 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Make it clear that dtmfsrc also takes named events as input
	  20080319211731-3e2dc-26c729f6dc8db27e71cf6b22646a81530dbf862f.gz

2008-03-20 18:48:41 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfdepay.c:
	  [MOVED FROM GST-P-FARSIGHT] debug message made into errors because that's what they are...
	  20080320184841-4f0f6-8a2d283297b02713dade0ae4acaa5f6e0f67eace.gz

2008-03-20 18:39:37 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfdepay.c:
	  [MOVED FROM GST-P-FARSIGHT] Clean unused stuff...
	  20080320183937-4f0f6-bcb841cdc07f9e9677512f4b50b4b659a58c6783.gz

2008-03-20 18:39:12 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfdepay.c:
	* gst/dtmf/gstrtpdtmfdepay.h:
	  [MOVED FROM GST-P-FARSIGHT] Fix copyrights
	  20080320183912-4f0f6-689365d5a406632e3d088fac74e4fb6f8a4eb0ea.gz

2008-03-20 01:13:01 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/Makefile.am:
	* gst/dtmf/gstdtmf.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Adding support for rtpdtmfdepay
	  20080320011301-4f0f6-d36a5d24be20336e36c4796d75476c9b5ee1a7e1.gz

2008-03-19 19:32:51 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] encoding name has to be upper-case
	  20080319193251-3e2dc-1581b33be9b486e35ec4948009677ccd5ffdc098.gz

2008-03-20 00:51:47 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfcommon.h:
	* gst/dtmf/gstrtpdtmfdepay.c:
	* gst/dtmf/gstrtpdtmfdepay.h:
	  [MOVED FROM GST-P-FARSIGHT] Adding necessary files for rtpdtmfdepay
	  20080320005147-4f0f6-550fe22f70152f3aab3dcd7a6b02cbf81e89232d.gz

2008-03-20 00:50:41 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix typos
	  20080320005041-4f0f6-9d22fa5d155e35b605ea85b1fd9e7197a882a1f0.gz

2008-02-16 13:41:40 +0000  Sjoerd Simons <sjoerd@luon.net>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] dtmfsrc: Correctly set the endianess in the caps to the machines endianess
	  20080216134140-93b9a-40a3a9d7ac1679c5e0dfd24a6b91e4aba6cc6496.gz

2007-09-17 17:52:33 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Search&Replace oops
	  20070917175233-3e2dc-57f579c4b890993f49fa8e9e6470a3eb79d2b922.gz

2007-09-17 17:51:33 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] events dont yet belong in the caps
	  20070917175133-3e2dc-fd1d83b7826b898110fc571ae7c3440f1887434d.gz

2007-09-17 16:08:20 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Add patch to make it work with maemo dsp sources that payload incorrectly
	  20070917160820-3e2dc-06b1b1d1b0918b30dabea5a0714cb732b3b8d8dd.gz

2007-09-17 04:26:49 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Oops, set to no preroll when playing->paused too
	  20070917042649-3e2dc-94adb6aa0617e815a6e233232dabb4bbc48dc82c.gz

2007-09-17 00:36:54 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Complete port to basesrc
	  20070917003654-3e2dc-db0f84dabd9dd1ac929a0461865b8aaa8ef91a77.gz

2007-09-17 00:24:12 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Add caps negotiation function
	  20070917002412-3e2dc-ca266816e9629746e9083c5bb8b7f73b94a9b2b0.gz

2007-09-17 00:16:59 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Properly free non-start events
	  20070917001659-3e2dc-a571777e3ecfb90989f87412f554aa10a31cc2ca.gz

2007-09-17 00:15:52 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Make interval and packet_redundancy into uint
	  20070917001552-3e2dc-60032e547b3669b87317c981d985c156aab91b40.gz

2007-09-16 19:44:08 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Make the rtp dtmf src use basesrc
	  20070916194408-3e2dc-734000130dce2434a014acf843d641ff0e60aa5a.gz

2007-09-16 19:41:01 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Make dtmf src code nicer
	  20070916194101-3e2dc-a8be8c509c65400d1d3962da02e67d15d2054316.gz

2007-09-16 19:40:52 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/.git-darcs-dir:
	  [MOVED FROM GST-P-FARSIGHT] Remove unused directory
	  20070916194052-3e2dc-44d7f4cb2f220761b65e2b9b6cec4b3c6f8be7c5.gz

2007-09-14 04:20:42 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Implement stopping in a nice thread safe way
	  20070914042042-3e2dc-1fe257ff4b72aca4b0eb5f285a14650b8df268c3.gz

2007-09-14 04:18:34 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove get_times (Wim says its only good for really fake sources)
	  20070914041834-3e2dc-fff4d5da2a145f19e7b610a1027d2c4d4bc5eae0.gz

2007-09-13 21:21:45 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] using the unlock method of basesrc
	  20070913212145-4f0f6-0e438a681bf1651c0cc0d8fa3269aed3f1668b6b.gz

2007-09-13 21:12:26 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] more debug
	  20070913211226-4f0f6-bc32b5828fc8e0323c8a6eee779a38145aacd593.gz

2007-09-13 20:46:14 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] added debugs
	  20070913204614-4f0f6-68c2a69ae7a1efca6e13c116dbad7f9b686f0242.gz

2007-09-13 19:20:53 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Make sure to unlock the thread when going to ready and to flush the queue when moving to paused or playing
	  20070913192053-4f0f6-76c3925380d1a30988286170535a65dea64a5583.gz

2007-09-13 17:55:20 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Changed dtmfsrc into a subclass of GstBaseSrc
	  20070913175520-4f0f6-16ca4bf93690072f3e836d1c8a5b52cf7a421916.gz

2007-09-04 22:57:53 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Add another fix for a possible race condition
	  20070904225753-4f0f6-5ba8c4260c002bb27eb98e9faba3c15799357b57.gz

2007-09-04 21:52:24 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Add comment to explain push back
	  20070904215224-3e2dc-d92ac1f403dcf571546a7c53f18809f840eea51d.gz

2007-09-04 20:55:09 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Properly do the locking to avoid race conditions with clock unscheduling
	  20070904205509-3e2dc-da19900b51af6aedb6547f4f392bef4d1061dec2.gz

2007-09-01 00:03:24 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] oups, I did it again...
	  20070901000324-4f0f6-3d8b46691ee520537b06c511a5e732f5b812b844.gz

2007-08-31 23:54:28 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] oups, sorry.. DTMF, not RTP_DTMF for this file...
	  20070831235428-4f0f6-00b606bfb4892e4f217c440b611cc794ab0de55a.gz

2007-08-31 23:44:13 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Fixes the deadlock when pausing the dtmfsrc and rtpdtmfsrc. Had to push something on the async queue to release the blocking async_queue_pop(). Thanks to Olivier for the solution.
	  20070831234413-4f0f6-793cf35fc43636e7275258cc7063fc068f5efa0a.gz

2007-08-28 22:15:34 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] ClockID when waiting for buffer is now unscheduled when stopping the task. Various fixes to avoid bugs (thanks to -Wall -Werror). Fixes to allow the merge of the branch.
	  20070828221534-4f0f6-b0d6a4fe48c4e2a16b9ff69cb310087c970ce48e.gz

2007-08-28 17:15:46 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Cleaned up the code a bit, no use of GST_* and return value verification from gst_*
	  20070828171546-4f0f6-bdeb4b1b7f99f9464aabe5c43bd4a4d2025262b6.gz

2007-08-27 19:56:10 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix overly long lines and tabs
	  20070827195610-3e2dc-396a3fa01e16f184e4109c71fe2deb6e516bdf0d.gz

2007-08-27 19:26:18 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] untabbified dtmfsrc
	  20070827192618-4f0f6-77d68070464f1b5f9a46cb6eec2d922340143c04.gz

2007-08-27 17:24:24 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix RTP timestamps by sending a new_segment event to the payloader
	  20070827172424-4f0f6-d20907e3d436d50bfe74eb4fc3d2d6d7b6b6dbc5.gz

2007-08-27 17:23:39 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Better handling of packets, we send the same duration for all packets to avoid huge packets when min duration defines are modified.
	  20070827172339-4f0f6-cc93304437ea376fff6458c74c46c19f6920d329.gz

2007-08-27 17:23:22 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Changing minimum values to work better on some gateways
	  20070827172322-4f0f6-5bf2bffa59a8244538dced795fa7d7649452ca91.gz

2007-08-22 20:16:53 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] The DTMF tone generator now respects the volume argument passed in the event
	  20070822201653-4f0f6-8b7ff874006e11f5a74d0fd91e5a9a43cd082ada.gz

2007-08-22 18:01:33 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] don't know why I did that...
	  20070822180133-4f0f6-6a7382f6c7d3630f91da384e1904763c7ea6fa1a.gz

2007-08-22 17:55:33 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Ported the event queue work from dtmfsrc to rtpdtmfsrc
	  Added a queue based system for the rtpdtmfsrc. Now it waits for start/stop messages on the queue, and makes sure that the minimum duty cycle (120ms) is respected between each
	  tone, including inter-digit silence.
	  20070822175533-4f0f6-f27414c406f1f7b00c9a9084a988cf3a7930fe5c.gz

2007-08-22 17:54:44 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] ouch, printing with arguments but without %s.. that made it segfault a few times...
	  20070822175444-4f0f6-445ea6ce7a9668d04cf999af772a504ec74fb67a.gz

2007-08-22 17:51:26 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Moved the timestamp from the event to dtmfsrc structure since we have only one event at a time, so let's keep it stored in the dtmfsrc struct
	  20070822175126-4f0f6-53bcda2bd8ae8c56d29e62e69ac19a30e08ad350.gz

2007-08-20 20:38:26 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Added a queue based system for the dtmfsrc. Now it waits for start/stop messages on the queue, and makes sure that the minimum duty cycle (120ms) is respected between each tone, including inter-digit silence.
	  20070820203826-4f0f6-750a22b612a5e495e767666934465c34fe32074b.gz

2007-08-20 18:48:52 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/Makefile.am:
	* gst/dtmf/gstdtmf.c:
	* gst/dtmf/gstdtmfsrc.c:
	* gst/dtmf/gstdtmfsrc.h:
	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Added dtmfsrc, a DTMF Tone Generator, and made it part of the 'dtmf' plugin.
	  20070820184852-4f0f6-a0d85e67708290aebafa89ab79d3cedd5815b620.gz

2007-08-20 18:48:00 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/dtmf/.git-darcs-dir:
	* gst/dtmf/Makefile.am:
	* gst/dtmf/gstrtpdtmfsrc.c:
	* gst/dtmf/gstrtpdtmfsrc.h:
	* gst/rtpdtmf/Makefile.am:
	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Moved rtpdtmf to dtmf directory
	  20070820184800-4f0f6-fa33ea974510161de8c9951c39087af3613b65a4.gz

2007-07-12 19:57:15 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Send all packet from the streaming thread, including the last one
	  20070712195715-3e2dc-6848c70a7f0137c91fa882a8efb6dbf83891ae13.gz

2007-07-12 19:55:28 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Put non-zero duration in first packet and put a minimum duration of 50ms
	  20070712195528-3e2dc-d46edeaab84fb55e74842bdcf4f8792dfcdb0457.gz

2007-07-12 16:23:28 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix RTP timestamp on dtmf packets
	  20070712162328-3e2dc-98c1303f4a52b891ce59bf88e07d29f4e2dfc974.gz

2007-07-11 15:52:02 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Only set marker on very first packet of an event
	  20070711155202-3e2dc-f7ea3abd2cb0ca2937ea4508e6e301baaa6e2154.gz

2007-07-11 15:51:57 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Send on packet start time
	  20070711155157-3e2dc-ee0e9fc13d35296593005267a2417dd65e790d29.gz

2007-07-11 15:50:56 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] RTP timestamp is the time of the beginning of the dtmf event
	  20070711155056-3e2dc-cb5cda73fbf7df1c545cb0321b0e339914c5897f.gz

2007-04-24 20:02:52 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] 80 column is enough for everyone
	  20070424200252-3e2dc-d1bc17266afff2599129a25d44338062372f7ea3.gz

2007-04-24 19:31:55 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Add redundancy and interval properties to rtpdtmfsrc (patch by SP GLE <spglegle@yahoo.fr>)
	  20070424193155-3e2dc-66688001e7b529c46f108633cd9520347c3c8c3e.gz

2007-05-04 19:52:51 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Only send dtmf if the method is unspecified or is 1
	  20070504195251-3e2dc-b95b4b8e8dad87962cf39ec2ee67b6f1b619e9bd.gz

2007-03-08 22:35:59 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Make documentation consistent with itself
	  20070308223559-3e2dc-cc20fe571370bc51bf963cc3df1b8ab4a3ddc20b.gz

2007-04-12 20:04:35 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Use segment to calculate dtmfsrc rtp timestamp
	  20070412200435-3e2dc-b5cc26b12b6e8b89f131fd27f0e4627746e85697.gz

2007-04-02 12:46:35 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Clean-up and refactorize dtmfsrc code
	  20070402124635-65035-3d13244461c1dd1fcc96b74124ad7a74d2ff0144.gz

2007-03-30 15:43:03 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Ooops, little typo
	  20070330154303-3e2dc-9f6edcde24d30caea8ea876b24a3a680d40b2ea1.gz

2007-03-30 00:17:00 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Make it generate the proper rtp timestamps in sync with the live source
	  20070330001700-3e2dc-bbf954e4edec0615c4eee603fbc6ab8a7d89436f.gz

2007-03-29 11:42:57 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Increment the ts after setting the buffer's ts
	  20070329114257-65035-c8686ab4ce20b1f36f3dac120485ade5cd90aac9.gz

2007-03-29 10:39:46 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Calculate the rtp ts before gst ts get incremented
	  20070329103946-65035-f74e3a0140c57e941444bb837d6053ad1c3cf567.gz

2007-03-29 10:39:04 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Some code-cleanup
	  20070329103904-65035-db08cc7c3098b60a556d3809de912cd0e1a545c1.gz

2007-03-29 10:38:24 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Initialize the GstSegment at the right time
	  20070329103824-65035-9ab3a0a03c5f9329cd4625ae6567c2c1fd4a73d8.gz

2007-03-26 10:57:12 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Call set_caps when we have all the params
	  20070326105712-65035-3e3dfce0b50d61eafda846bee0a6d66c3541c6ed.gz

2007-03-23 16:29:22 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Set caps on the buffer before pushing it
	  20070323162922-65035-9e4be5449c79c0a459965ee07adb4a8143c4c1d5.gz

2007-03-14 17:17:56 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Request for stream lock when generating DTMF packets
	  20070314171756-65035-0b497dfac203ff4f579525485d5804e5f5093b3f.gz

2007-03-07 11:41:09 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Correct caps printout
	  20070307114109-65035-124202884918a9c8a803080d6967234539d24b97.gz

2007-02-16 12:06:06 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Add doc-section comments
	  20070216120606-65035-6e7d28721dc0872f3f55ba7ccd4fed3d66f8175f.gz

2007-02-15 13:48:53 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Add copyrights
	  20070215134853-65035-50fe5f8e999ae86a1e3ba0dbdece4911eb9dcca0.gz

2007-02-15 13:35:36 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] No need to handle downstream events
	  20070215133536-65035-648b791d404bf06900bd2698d925117c89743db9.gz

2007-02-15 12:26:55 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Attempt to correct event handling
	  20070215122655-65035-47070d9a28c08d9353b04d2d9301e29b7ee72b83.gz

2007-02-15 10:26:29 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	  [MOVED FROM GST-P-FARSIGHT] Use pause_task instead of stop_task to avoid any possible deadlocks
	  20070215102629-65035-a48c773661e385a91e022e0ac1da0862c4206f85.gz

2007-02-15 10:10:30 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Put correct seq and timestamps on the packets
	  20070215101030-65035-7146a3c4a8d0feab513d13a207b2cdc5de311f03.gz

2007-02-14 13:55:01 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Fix the copyright notice
	  20070214135501-65035-e90753b1f6525f7b9c0ac2eb7e40cef7ca673e68.gz

2007-02-14 13:13:52 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>

	* gst/rtpdtmf/.git-darcs-dir:
	* gst/rtpdtmf/Makefile.am:
	* gst/rtpdtmf/gstrtpdtmfsrc.c:
	* gst/rtpdtmf/gstrtpdtmfsrc.h:
	  [MOVED FROM GST-P-FARSIGHT] Add RTP DTMF event packet generator element and test app for it
	  20070214131352-65035-3c14a1047c3cd6696f3a716a62b21d3f4b9da62b.gz

2009-01-30 09:03:42 +0100  Edward Hervey <bilboed@bilboed.com>

	* autogen.sh:
	  autogen.sh: actually setting up a symbolic link for the pre-commit hook

2009-02-21 17:45:09 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Add read-only property to get the structural metadata

2009-02-21 17:40:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c:
	  mxfdemux: Add MPEG video bitrate to the tags if available

2009-02-21 17:38:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxf.c:
	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfquark.c:
	* gst/mxf/mxfquark.h:
	* gst/mxf/mxftypes.h:
	  mxfdemux: Post structural metadata tree as tag on the bus
	  This will later be used to keep the structural metadata when
	  remuxing an MXF file and can also be used in Pitivi for example
	  to know the file structure and to select what should be used
	  and played.

2009-02-21 16:09:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	  mxfdemux: Fix calculation of AES3 bitrate tag

2009-02-21 16:05:48 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	  mxfdemux: Add helper function to convert MXFraction to gdouble and use it

2009-02-21 16:00:39 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	  mxfdemux: Only store the main descriptor in source packages
	  For the tracks we still resolve the descriptors but the
	  source package only contains the descriptor it really references
	  instead of all subdescriptors of multiple descriptors.
	  This makes it easier later to serialize the structural metadata
	  again.

2009-02-17 17:37:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Set free'd memory to NULL to prevent a double free later in some cases

2009-02-15 09:51:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfmetadata.c:
	  mxfdemux: Don't use generic metadata parsers for unknown metadata, the results are useless anyway

2009-02-19 11:36:45 +0000  Zaheer Merali <zaheerabbas@merali.org>

	* gst/mpegdemux/flumpegdemux.c:
	* gst/mpegdemux/flutspatinfo.c:
	* gst/mpegdemux/flutspatinfo.h:
	* gst/mpegdemux/flutspmtinfo.c:
	* gst/mpegdemux/flutspmtinfo.h:
	* gst/mpegdemux/flutspmtstreaminfo.c:
	* gst/mpegdemux/flutspmtstreaminfo.h:
	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	  mpegtsdemux: s/fluts/mpegts
	  Change all definitions from fluts to mpegts.

2009-02-10 18:58:40 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Add doc infrastructure to valve

2009-02-10 18:52:54 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	* gst/valve/gstvalve.h:
	  Document the GstValve

2009-02-10 18:03:26 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-valve.xml:
	  Moved valve from gst-plugins-farsight to -bad

2009-02-10 17:57:16 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  Rename fsvalve to valve

2009-02-10 17:55:47 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	* gst/valve/gstvalve.h:
	  Re-indent valve in gst style

2008-12-13 00:31:45 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Ignore errors if dropping is set to true

2008-12-11 17:54:18 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/valve/.git-darcs-dir:
	  [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files

2008-12-10 17:00:33 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Add getcaps proxying to the valve

2008-08-20 14:11:02 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	* gst/valve/gstvalve.h:
	  [MOVED FROM GST-P-FARSIGHT] Rebase valve onto gstelement instead of basetransform

2008-08-19 18:49:51 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Revert "Fix refcounting issues in prepare_output_buffer"
	  This reverts commit 65dd460f0a3a9c4882e638c86208f74ef62c3460.

2008-08-05 11:30:57 +0000  sjoerd@luon.net <sjoerd@luon.net>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix refcounting issues in prepare_output_buffer
	  20080805113057-be0f2-9dc270781f0a0f21c616ed11dbd1f198fd1b326e.gz

2008-04-09 16:32:21 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove unused dispose method in valve
	  20080409163221-3e2dc-92ccb2db874e46e0d92c15520577c1be0e2bc617.gz

2007-12-19 20:32:30 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Dont hold the object lock while calling base alloc function
	  20071219203230-3e2dc-6519175d8d81496515b2d9060ac316650560f691.gz

2007-12-19 20:32:18 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	* gst/valve/gstvalve.h:
	  [MOVED FROM GST-P-FARSIGHT] Set the DISCONT flag after dropping buffers
	  20071219203218-3e2dc-bc5f03d88ff5837040b9214de016cc142776dfc2.gz

2007-12-19 00:57:39 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	* gst/valve/gstvalve.h:
	  [MOVED FROM GST-P-FARSIGHT] Use do the alloc_buffer function in the valve
	  20071219005739-3e2dc-2a0fdfa2f38f03ab4791fe5c4ab85e8790113683.gz

2007-11-21 20:08:58 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Only set passthrough to TRUE on newer versions of gst
	  20071121200858-3e2dc-b16cdeabbc3c0562c6fc7b11b9b9792c910f569e.gz

2007-11-21 18:17:29 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Compare minor, not major
	  20071121181729-3e2dc-a5997c3b7f5c86966370969714facf8ee242659d.gz

2007-10-26 22:37:49 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Make the valve element work with gst < 0.10.13
	  20071026223749-3e2dc-18f685a4e45fbdce677ac777586876fc719d7222.gz

2007-10-24 22:42:46 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/Makefile.am:
	* gst/valve/gstvalve.c:
	  [MOVED FROM GST-P-FARSIGHT] Rename valve to fsvalve
	  20071024224246-3e2dc-c54216af2ef0ef3f1a2206d723e87be2a23ab8ed.gz

2007-10-24 22:41:47 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/valve/.git-darcs-dir:
	* gst/valve/Makefile.am:
	* gst/valve/gstvalve.c:
	* gst/valve/gstvalve.h:
	  [MOVED FROM GST-P-FARSIGHT] Add valve element
	  20071024224147-3e2dc-f28ab0c073e283894b65c22c4f44397c897dec01.gz

2009-02-10 19:20:26 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirenenc.c:
	  Add some documentation to the siren enc/dec plugins

2009-02-10 19:20:19 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/siren/gstsiren.h:
	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirendec.h:
	* gst/siren/gstsirenenc.c:
	* gst/siren/gstsirenenc.h:
	  Re-indent the siren stuff to be gst style

2009-02-10 17:29:05 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-gstsiren.xml:
	  Moved siren from gst-p-farsight to -bad

2009-02-10 17:23:38 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/siren/Makefile.am:
	* gst/siren/gstrtpsirendepay.c:
	* gst/siren/gstrtpsirendepay.h:
	* gst/siren/gstrtpsirenpay.c:
	* gst/siren/gstrtpsirenpay.h:
	* gst/siren/gstsiren.c:
	  Move siren rtp pay/depay  to good

2008-12-11 17:54:18 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/siren/.git-darcs-dir:
	  [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files

2008-10-05 22:03:05 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	  [MOVED FROM GST-P-FARSIGHT] Add underscore to make the encoder like the decoder

2008-10-05 22:01:44 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirenenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Rename offset to out_offset to make its meaning clearer

2008-10-05 22:00:27 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	  [MOVED FROM GST-P-FARSIGHT] Check the size of the input buffer, not the output buffer

2008-09-16 15:40:04 -0400  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	  [MOVED FROM GST-P-FARSIGHT] Preserve timestamp

2008-07-04 22:21:03 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirendec.h:
	  [MOVED FROM GST-P-FARSIGHT] Remove useless checks, document locking
	  20080704222103-3e2dc-47a7f49c414f98a188ffc42b07189daf5147483b.gz

2008-07-04 22:17:43 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirenenc.c:
	* gst/siren/gstsirenenc.h:
	  [MOVED FROM GST-P-FARSIGHT] make sirenenc thread safe
	  20080704221743-3e2dc-f93da86438f753e14be25166aee45f8802f7d100.gz

2008-07-04 20:18:30 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirenenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Replace use GST_DEBUG_OBJECT in sirenenc
	  20080704201830-3e2dc-8f3e401aaa594c8cc5853b73f41ca5cb047ee2d3.gz

2008-07-04 20:17:44 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirendec.h:
	* gst/siren/gstsirenenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Port sirendec to Gstelement
	  20080704201744-3e2dc-99bf7b86e42da363d8c826449d84b43751572d5e.gz

2008-07-04 20:04:54 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirenenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Release ref at the end of chain
	  20080704200454-3e2dc-386f2685882a74d01ce503f91396ea37506dbe83.gz

2008-07-04 20:03:15 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirenenc.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove useless call to peek_parent
	  20080704200315-3e2dc-6b30efd2d32b6ca96609f4bdc0c3e286f4441746.gz

2008-07-04 20:00:29 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirendec.c:
	  [MOVED FROM GST-P-FARSIGHT] Make GstSirenEnc use GST_*_OBJECT appropriately
	  20080704200029-3e2dc-f68fdaaa8929039fd8413ff0bf8ff514f6e4fbe1.gz

2008-07-04 19:51:02 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/gstsirenenc.c:
	* gst/siren/gstsirenenc.h:
	  [MOVED FROM GST-P-FARSIGHT] Port sirenenc to gstelement
	  20080704195102-3e2dc-cd7687512ac560faaf15f53e1e262d1874a36cdf.gz

2008-04-28 22:22:37 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/siren/Makefile.am:
	  [MOVED FROM GST-P-FARSIGHT] Link modules with libm where required
	  20080428222237-3e2dc-b1e9120c1e9ca1a510bfd7c27e2d45f0d4a12504.gz

2008-04-12 23:43:25 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/siren/gstrtpsirendepay.c:
	  [MOVED FROM GST-P-FARSIGHT] Removed debug output
	  20080412234325-4f0f6-36b946a7ca3ab4e5802917b8930f036c50a93a29.gz

2008-04-10 23:43:28 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/siren/common.h:
	  [MOVED FROM GST-P-FARSIGHT] Oups, typo
	  20080410234328-4f0f6-962e375e78da05eab52892a57d3226fdd2ffc86d.gz

2008-04-10 07:01:16 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/siren/.git-darcs-dir:
	* gst/siren/Makefile.am:
	* gst/siren/common.c:
	* gst/siren/common.h:
	* gst/siren/dct4.c:
	* gst/siren/dct4.h:
	* gst/siren/decoder.c:
	* gst/siren/decoder.h:
	* gst/siren/encoder.c:
	* gst/siren/encoder.h:
	* gst/siren/gstrtpsirendepay.c:
	* gst/siren/gstrtpsirendepay.h:
	* gst/siren/gstrtpsirenpay.c:
	* gst/siren/gstrtpsirenpay.h:
	* gst/siren/gstsiren.c:
	* gst/siren/gstsiren.h:
	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirendec.h:
	* gst/siren/gstsirenenc.c:
	* gst/siren/gstsirenenc.h:
	* gst/siren/huffman.c:
	* gst/siren/huffman.h:
	* gst/siren/huffman_consts.h:
	* gst/siren/rmlt.c:
	* gst/siren/rmlt.h:
	* gst/siren/siren7.h:
	  [MOVED FROM GST-P-FARSIGHT] Added Siren encoder/decoder/payloader/depayloader
	  20080410070116-4f0f6-72ffbdbb262f07bfabd1e469973a01b3359bee45.gz

2009-02-10 18:46:03 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/liveadder/liveadder.h:
	  Add liveadder to the docs

2009-02-10 18:38:11 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  Document the liveadder

2009-02-10 16:18:32 +0000  Olivier Crête <olivier.crete@collabora.co.uk>

	* configure.ac:
	* docs/plugins/inspect/plugin-liveadder.xml:
	* gst/liveadder/liveadder.c:
	* gst/liveadder/liveadder.h:
	  Moved liveadder from gst-plugins-farsight to -bad
	  Re-indent liveadder in gst style and add it to configure

2008-12-13 00:09:46 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Use log for message thats on every buffer

2008-12-11 17:54:18 -0500  Olivier Crête <olivier.crete@collabora.co.uk>

	* gst/liveadder/.git-darcs-dir:
	  [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files

2008-08-27 17:16:27 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] liveadder : Handle jitter in incoming buffers
	  Incoming buffers (especially those from an RTP connection) might have slight timestamp jitter. This is normally handled by audiosink (accepting up to 500ms of jitter).
	  Here we accept a maximum jitter of 10ms. If a buffer is within 10ms of the expected time, we correct its timestamp.

2008-07-04 18:57:21 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Add handling of position query to liveadder
	  20080704185721-3e2dc-7a687e346e74b44fa847c5e5b6eb64c3e0949764.gz

2008-05-21 17:20:05 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Replace C99 llabs with C89 code
	  20080521172005-3e2dc-8e637d1daa0e27cc2edae1fdfd0dbf23896fb5bc.gz

2008-05-15 01:22:57 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Reset vars before restarting thread on flush stop
	  20080515012257-3e2dc-e3521752cf3eaf2b8767f4c620eadfc24a8e8e31.gz

2008-05-15 01:22:27 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Implement first version of seeking
	  20080515012227-3e2dc-7f53f78d1c3dfdcdb6e7ad53e6c7f16d5e998a05.gz

2008-05-15 01:21:42 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Add duration query from adder
	  20080515012142-3e2dc-2768199183bfb9d569be1389e382bedc02e3e95e.gz

2008-05-15 00:02:14 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Move flush stop inside where it belongs
	  20080515000214-3e2dc-cda5cddd1ead5c48a554e9e9bc75ae68437bcdfb.gz

2008-05-14 23:49:48 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	* gst/liveadder/liveadder.h:
	  [MOVED FROM GST-P-FARSIGHT] Have the liveadder remember if its playing or not
	  20080514234948-3e2dc-9064a27a54aef598444aa6ad6463345979120828.gz

2008-05-14 23:49:10 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Push out buffer if we're not playing while there is no clock
	  20080514234910-3e2dc-1096eb7dc3fada19afc81dcd536d9edc821d0da9.gz

2008-05-14 23:26:43 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Empty the queue on flush start
	  20080514232643-3e2dc-5a3f52a3fd3771164dea95bd14410d76b4fce2aa.gz

2008-05-14 23:17:52 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Reset pad private on flush stop
	  20080514231752-3e2dc-113fec2faafc2dc11c1eaa818cb488b71e601f9b.gz

2008-05-14 23:16:43 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Pass pad as pad to reset_pad_private
	  20080514231643-3e2dc-006960b9cdc3ce8e1f890dc6d194778cbc7c9736.gz

2008-05-02 19:10:04 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Print debug message if we return non-ok from chain
	  20080502191004-3e2dc-f1f7237c06c1158cf27e29d32a69de06f7112506.gz

2008-05-02 19:09:54 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Don't return EOS if we have no pads
	  20080502190954-3e2dc-41351225e909e6d0837a6a60e187d33ab186ad76.gz

2008-05-01 20:31:54 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Check that the format is NOT time
	  20080501203154-3e2dc-780e46b1f0fe76a66e2d79a2eb85d764ff5f182f.gz

2008-04-28 22:17:37 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Don't use g_queue_clear()
	  20080428221737-3e2dc-bb8e4748751c29e0857313a09f85067ab12c3fe4.gz

2008-05-01 20:09:40 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Pad push event after the lock has been unlocked
	  20080501200940-3e2dc-ae5fec5f79f32777bba649d0d700d49f7bedff40.gz

2008-05-01 18:25:54 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Create generic segment is none received and refuse non-time segments
	  20080501182554-3e2dc-ace5ca000414428d6d94478adc5927c9f91975df.gz

2008-04-29 14:08:02 +0000  Simon McVittie <simon.mcvittie@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Add missing semicolon (did anyone test this?!)
	  20080429140802-53eee-41fdb4391eddb125b7e34019427cfa5dc8afd6c0.gz

2008-04-29 00:36:00 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Robustness check, make sure the queue is not empty before using the head element
	  20080429003600-4f0f6-708c654b65812caeb3612248dbe0b2e62567c250.gz

2008-04-29 00:34:12 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Remove useless condition
	  20080429003412-4f0f6-9e890ad0ac442791a8b22650a75cb754d7f2d723.gz

2008-04-29 00:03:39 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] check against audio_buffer_clip which can return NULL if the buffer is outside the clipping segment
	  20080429000339-4f0f6-7e4e31f066b87e29265ddb3978929e51efbff47d.gz

2008-04-28 23:49:48 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix object locking in setcaps
	  20080428234948-4f0f6-4586434b4308e114f495e926996fc19483c1056f.gz

2008-04-28 23:49:35 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Use g_cond_broadcast instead of g_cond_signal
	  20080428234935-4f0f6-e51fab31772b32f2fb080ad70c6bedefc5c26dc6.gz

2008-04-28 23:28:51 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Max latency should also be increased by our own latency
	  20080428232851-4f0f6-05f9a89403cd54211f2f4a6595704270eab9616f.gz

2008-04-28 22:36:06 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix deadlock on invalid timestamp error
	  20080428223606-3e2dc-963e48b33efaf84c16d4ec4b789a6dfb2d9358ad.gz

2008-04-28 16:19:58 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Added comment for clarity
	  20080428161958-4f0f6-cbaa166fbde99013b555c69ab48d964d75773a7f.gz

2008-04-28 16:12:35 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] added TODO comments
	  20080428161235-4f0f6-fbc78533d29d37b65add6f6046fec17ce5e30cae.gz

2008-04-28 15:59:27 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] check_eos will always return FALSE here..
	  20080428155927-4f0f6-1a93e295d3df68a96367b75060a89a947efa8944.gz

2008-04-28 15:49:56 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] added comment on the no clock error
	  20080428154956-4f0f6-7e24ed31f9c822e4323b681a54bc23f03c1a325e.gz

2008-04-28 15:48:50 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] error if no clock is available
	  20080428154850-4f0f6-38fdc4134835c457d0054301579d8cd4cbd4989a.gz

2008-04-25 21:04:56 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] renaming unused arg
	  20080425210456-4f0f6-ab1cdc944c9bcd779504292b21dc1787d6cb62a1.gz

2008-04-25 20:39:38 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] removed unused user_data and commented line
	  20080425203938-4f0f6-787778475b646461da40f3e0000a10bc96e142bc.gz

2008-04-25 20:37:35 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] remove unused cases and empty switch
	  20080425203735-4f0f6-c0442fcf57e3f08b81bc1be3d69f5cfa0257b52a.gz

2008-04-28 18:34:09 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Explicit the discont flag mangling
	  20080428183409-3e2dc-4db2505eeca033a634253b6c2d2f4f1398e9fcca.gz

2008-04-28 18:07:11 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Unref events when they are dropped
	  20080428180711-3e2dc-eb659787f179562f15402c819f188de398deef2d.gz

2008-04-24 22:46:27 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Use Glib G_{MAX,MIN}{U,}INT{8,16,32} macros
	  20080424224627-3e2dc-1036bc58b6b4db2f9f12831cdbae3bc613facbbf.gz

2008-04-21 03:26:14 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Unlock liveadder empty buffer gcond on flush
	  20080421032614-3e2dc-4ed29e1583ff684338ba5d7611f60b1a7eaff563.gz

2008-04-18 19:29:41 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Unref event instead of leaking it
	  20080418192941-3e2dc-352e25f6ab291612be1dc139790303a1333f65d7.gz

2008-04-03 17:09:56 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] non-perfect stream isnt an error, lets just log it
	  20080403170956-3e2dc-663f6af8ce067f44ca251a89aebf262d4b8a2869.gz

2008-04-03 16:54:31 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] We retimestamp to the running time, starting the segments from 0 should therefore work
	  20080403165431-3e2dc-d981ac2f9ea7fd3c8d2be4d22f1817cf78c614e4.gz

2008-04-03 16:54:15 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Do the min/max of the latencies correctly
	  20080403165415-3e2dc-c1124bd84e67cf8a911a14bb123b8731da9f4fc4.gz

2008-04-03 02:14:25 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Fix indentation
	  20080403021425-3e2dc-efd73a6eed0676e158af70484d4e5c42ea75de74.gz

2008-04-03 02:03:18 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Activate pads before adding them in case we're already playing
	  20080403020318-3e2dc-afd58f992c0b3057221b91034b2fcd91f296e52d.gz

2008-04-03 02:02:53 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] For latencies, use the min of the max and the max of the min (and the min wins if they cross)
	  20080403020253-3e2dc-dda7e471073ee75a6f60e845c3c546af9be19675.gz

2008-04-03 00:57:28 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Rename next_ts into expected_ts, make sure all buffers have a duration
	  20080403005728-3e2dc-8245ce1bfeebebfb8f75073253b3c0e3c4b5f596.gz

2008-04-03 00:40:12 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Don't try to set the discont flag if the duration of the previous incoming buffer was not valid
	  20080403004012-3e2dc-6f95520c928c347508bdf6188c873ed724ad2dd7.gz

2008-04-02 22:46:27 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Reset buffers offsets to none
	  20080402224627-3e2dc-d3ee8c7d0c14131017842d8159f7f684d0ccef6d.gz

2008-04-02 22:46:12 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Import adder src event handling
	  20080402224612-3e2dc-21a682b18fe18782bf7fa48983c13c1ad86dc5a1.gz

2008-03-31 18:44:21 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	* gst/liveadder/liveadder.h:
	  [MOVED FROM GST-P-FARSIGHT] Push out a simple newsegment event
	  20080331184421-3e2dc-69544b5b03ae3bb8c1e3f967974fd250d04056b5.gz

2008-03-31 18:44:04 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Don't return EOS if there is no sink pad
	  20080331184404-3e2dc-482a134b47eadcd9f1f9d144c02ab1145028fa07.gz

2008-03-31 17:11:16 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/liveadder.c:
	  [MOVED FROM GST-P-FARSIGHT] Reduce locking a bit and cleanup code a bit
	  20080331171116-3e2dc-5ddfb0e459004780d3f7a660c64f58243936a844.gz

2008-03-29 00:45:18 +0000  Olivier Crete <olivier.crete@collabora.co.uk>

	* gst/liveadder/.git-darcs-dir:
	* gst/liveadder/Makefile.am:
	* gst/liveadder/liveadder.c:
	* gst/liveadder/liveadder.h:
	  [MOVED FROM GST-P-FARSIGHT] Add liveadder element
	  20080329004518-3e2dc-40e4746fe82bbc5a871f03fe6ff6048f436c9f85.gz

2009-02-16 16:08:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/soundtouch/gstbpmdetect.cc:
	  bpmdetect: Fix accidentally introduced stack overwriting introduced in last commit

2009-02-16 16:06:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/soundtouch/gstbpmdetect.cc:
	  bpmdetect: Save one memory allocation per stereo buffer

2009-02-13 12:18:48 -0800  Michael Smith <msmith@songbirdnest.com>

	* gst/scaletempo/gstscaletempo.c:
	  scaletempo: Do not use void pointer arithmetic.

2009-02-12 17:31:50 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowvideosink/dshowvideosink.cpp:
	  dshowvideosink: Return ASYNC appropriately from change_state.
	  Make sure we don't do the wrong thing when our base class is returning
	  ASYNC in state changes.

2009-02-12 15:01:48 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	  dshowdecwrapper: fix compilation.
	  Accidently merged part of one change; remove it.

2009-02-12 22:40:48 +0100  Julien Moutte <julien@fluendo.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  Make the demuxer reusable in READY->PLAYING->READY->PLAYING cycles by flushing adapters correctly.

2009-02-12 10:53:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Also include the picture/sound/data essence coding in the unknown caps

2009-02-12 09:46:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Update TODO, we should support the drop-frame property of timecode tracks

2009-02-12 08:46:32 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxfdemux: Fix resolval of identifications from the preface

2009-02-11 18:40:55 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	  mxfdemux: Parse MXFTimestamp's milliseconds and add _to_string() function

2009-02-10 14:23:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Update TODO

2009-02-12 10:46:23 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* ext/metadata/gstbasemetadata.c:
	  metadata: also post error message when returning error

2009-02-11 17:23:03 +0000  Christian Schaller <cschalle@crazyhorse.localdomain>

	* ext/Makefile.am:
	* gst-libs/gst/Makefile.am:
	* gst-plugins-bad.spec.in:
	  Update spec file with latest changes, also add some missing disting directories to a couple of Makefiles.am files

2009-02-11 17:21:20 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	  inputselector: Fix compilation, activate_sinkpad() has no notify parameter

2009-02-10 16:22:54 -0800  Michael Smith <msmith@songbirdnest.com>

	* gst/selector/gstinputselector.c:
	  input-selector: Activate and notify pad before processing events.
	  Events should trigger pad selection if we don't already have an
	  explicitly selected pad, so that events prior to first buffer don't get
	  lost.

2009-02-11 01:54:03 +0200  René Stadler <mail@renestadler.de>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: Sanitize constants used for element factory names.

2009-02-11 01:24:51 +0200  René Stadler <mail@renestadler.de>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: Use v4l2src as default source.

2009-02-11 01:07:04 +0200  René Stadler <mail@renestadler.de>

	* gst-libs/gst/interfaces/.gitignore:
	  photography interface: .gitignore generated files.

2009-02-11 01:02:42 +0200  René Stadler <mail@renestadler.de>

	* gst-libs/gst/interfaces/photography-enumtypes.c:
	* gst-libs/gst/interfaces/photography-enumtypes.h:
	* win32/common/photography-enumtypes.c:
	* win32/common/photography-enumtypes.h:
	  photography interface: Move generated files to win32/common.

2009-02-11 00:28:53 +0200  René Stadler <mail@renestadler.de>

	* gst/camerabin/.gitignore:
	  camerabin: Add .gitignore to hide generated signal marshaller files.

2009-02-11 00:19:22 +0200  René Stadler <mail@renestadler.de>

	* gst/camerabin/gstcamerabin.c:
	  camerabin: Fix plugin details to use GST_PACKAGE_* values.

2009-02-11 00:15:43 +0200  René Stadler <mail@renestadler.de>

	* gst/aacparse/gstaacparse.c:
	  aacparse: Fix license specified in plugin details.

2009-02-10 12:28:58 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowvideodec.cpp:
	  dshowdecwrapper: Pass pixel aspect through from demuxers, if supplied.
	  If the incoming caps have a pixel-aspect-ratio, ensure it's set on the
	  output. Corrects PAR for many (but probably not all) files.

2009-02-10 12:26:25 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	  dshowdecwrapper: Make audio decoders have SECONDARY rank.
	  These wrappers are not ideal, and for many of these formats there are
	  better gstreamer elements available. So, make the rank SECONDARY. In
	  particular, the mp3 decoder on winXP doesn't work very well.

2009-02-10 12:12:03 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.c:
	* sys/dshowdecwrapper/gstdshowdecwrapper.c:
	* sys/dshowdecwrapper/gstdshowvideodec.c:
	  dshowdecwrapper: Delete old .c files that are unused
	  These old files are stale; the plugin was rewritten in c++ ages
	  ago. Not sure why these are hanging around.

2009-02-10 10:17:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/soundtouch/gstbpmdetect.cc:
	  bpmdetect: Pass at most 2048 samples to SoundTouch's BPMDetect
	  Internally BPMDetect assumes that at most 2048 samples are passed
	  to it at once and stores those in a stack allocated static sized
	  array. If we pass too many samples this will result in a buffer overflow
	  resulting in heavy stack corruption and a crash. Fixes bug #570996.

2009-02-09 17:58:42 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/acmmp3dec/acmmp3dec.c:
	  acmmp3dec: fix major memory leaks and clean up code.
	  Unref incoming buffers when we're done.
	  Reindent, clean up white space. Fix comments.

2009-02-09 18:14:14 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: After pulling the footer metadata reset essence track positions to 0

2009-02-09 17:55:05 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: When trying to find an essence track position try to find position+1 too
	  By searching for the following position we will add the complete
	  generic container (i.e. all tracks) at the same position to the
	  index which should make finding positions for more than one track
	  a bit faster.

2009-02-09 17:48:38 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: For new essence tracks only set the position to 0 if it starts in the current partition

2009-02-09 17:44:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Check if the length of the src/essence track arrays are 0, not the array itself

2009-02-09 17:25:35 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Make sure that the srcpad and essence track arrays always exist

2009-02-09 16:12:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Change some GST_ERRORs to something less critical

2009-02-09 16:09:22 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Only go into EOS and send segment-done after all tracks are finished

2009-02-09 16:09:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfup.c:
	  mxfdemux: Update TODO

2009-02-09 15:48:20 +0100  Julien Moutte <julien@fluendo.com>

	* gst/camerabin/Makefile.am:
	  Fix build for camerabin.

2009-02-09 12:02:50 +0100  Edward Hervey <bilboed@bilboed.com>

	* common:
	  Bump revision to use for common submodule.

2009-01-30 16:09:30 +0100  Edward Hervey <bilboed@bilboed.com>

	* .gitignore:
	* tests/check/elements/.gitignore:
	* tests/check/pipelines/.gitignore:
	  More files to ignore

2009-02-05 23:06:23 +0200  Nokia Corporation <multimedia@maemo.org>

	* tests/check/Makefile.am:
	* tests/check/elements/camerabin.c:
	  tests: Add camerabin unit tests.

2009-02-05 15:48:32 +0200  Nokia Corporation <multimedia@maemo.org>

	* configure.ac:
	* gst/camerabin/Makefile.am:
	* gst/camerabin/camerabingeneral.c:
	* gst/camerabin/camerabingeneral.h:
	* gst/camerabin/camerabinimage.c:
	* gst/camerabin/camerabinimage.h:
	* gst/camerabin/camerabinvideo.c:
	* gst/camerabin/camerabinvideo.h:
	* gst/camerabin/gstcamerabin-marshal.list:
	* gst/camerabin/gstcamerabin.c:
	* gst/camerabin/gstcamerabin.h:
	* gst/camerabin/gstcamerabincolorbalance.c:
	* gst/camerabin/gstcamerabincolorbalance.h:
	* gst/camerabin/gstcamerabinphotography.c:
	* gst/camerabin/gstcamerabinphotography.h:
	* gst/camerabin/gstcamerabinxoverlay.c:
	* gst/camerabin/gstcamerabinxoverlay.h:
	  Add camerabin element.

2009-02-06 12:06:23 +0200  Nokia Corporation <multimedia@maemo.org>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/interfaces/photography-enumtypes.c:
	* gst-libs/gst/interfaces/photography-enumtypes.h:
	* gst-libs/gst/interfaces/photography.c:
	* gst-libs/gst/interfaces/photography.h:
	  Add photography interface.

2009-02-09 07:33:41 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Fix seeking to the end of file
	  When seeking to a position where no new offset can be
	  found or after the end of a track don't set the EOS flag
	  to TRUE as we don't (and can't) push EOS downstream then.
	  Instead set the current essence track position to then
	  end of the essence track and let the loop or chain function
	  set everything to EOS and push EOS downstream.
	  Also restart the pad's task if resolving metadata failed
	  (playback will continue as before) and return FALSE from
	  the seek if no new offset could be found.

2009-02-08 21:52:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Fix last_stop calculation when seeking

2009-02-08 21:31:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxfdemux: Resolve source package before accessing it's members

2009-02-08 21:23:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Correctly implement timestamping in all cases
	  When the material package track and source package track
	  edit rate are different the source package track edit
	  rate applies to the stored essence and the material track
	  edit rate only applies to the values in the track's sequence
	  and components.

2009-02-08 21:22:17 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Correctly handle DURATION queries with a negative duration

2009-02-08 21:17:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: When changing to the component after the last component update the essence track position

2009-02-08 21:12:21 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Small cleanup and an additional check
	  Update TODO list, reduce size of a stack allocated string
	  and don't allow essence tracks with an invalid edit rate

2009-02-08 07:30:48 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxfdemux: For material packages make sure that tracks resolve to source tracks

2009-02-07 10:38:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxfvc3.c:
	  mxfdemux: Add support for non-standard Avid MXF files containing DNxHD essence
	  Avid uses a custom essence container UL and custom essence element keys
	  that are fortunately compatible with the generic container essence
	  elements. Partially fixes bug #561922.

2009-02-07 10:13:54 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Make essence track creation a bit more robust against broken files
	  Some files contain multiple tracks with the same track number but different
	  track id inside the same source package. This is invalid and we simply ignore
	  the second and following of such traacks now instead of overwriting the
	  information of the first one.

2009-02-07 10:03:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxfdemux: Don't include multiple descriptors in the track's descriptors

2009-02-07 09:27:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdv-dif.c:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	  mxfdemux: Add support for non-standard Avid MXF files containing DV essence
	  Avid usually uses a custom essence container label for the essence
	  descriptors and stores the actual codec that is used inside the
	  picture essence coding field (and for sound probably in the sound
	  essence coding field but I have no sample files with sound).
	  Partially fixes bug #561922.

2009-02-06 11:57:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  mxfdemux: Add data definition for Avid vendor specific picture essence

2009-02-06 11:55:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: For tracks with no known mapping use dummy caps

2009-02-06 11:21:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Don't remove invalid new essence track twice from the GPtrArray

2009-02-06 11:09:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c:
	  mxfdemux: Implement keyframe detection for MPEG4 video streams

2009-02-06 10:46:47 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Handle some more special cases when setting the position when seeking

2009-02-06 10:46:09 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Adjust last_stop to the last keyframe when seeking

2009-02-06 10:06:59 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Fix logic for finding the previous keyframe

2009-02-06 09:53:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfd10.c:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfmpeg.h:
	  mxfdemux: Add keyframe detection for MPEG2 video streams
	  This is useful for seeking as we usually want to seek to the previous
	  keyframe. The keyframe detection is done by parsing the MPEG2
	  elementary stream and if a GOP or I-frame packet is found we
	  assume a keyframe in this edit unit.

2009-02-05 21:29:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Protect the metadata with a lock against concurrent access

2009-02-05 17:42:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	* ext/assrender/gstassrender.h:
	  Random cleanup and smaller bugfixes
	  Use gst_element_klass_set_details_simple(), install properties
	  with static strings, create pads directly from the static pad
	  templates, directly put the segment into the instance struct,
	  use GST_MSECOND instead of numbers.
	  The PAR is a GstFraction and not a double, use gst_structure_get_fraction().
	  Simplify setcaps() functions.

2009-02-05 17:00:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/Makefile.am:
	* ext/assrender/gstassrender.c:
	  Use GST_VIDEO_CAPS_RGB for the template caps

2009-02-05 16:57:55 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* ext/assrender/gstassrender.c:
	  Fix compiler warnings

2009-02-05 16:54:01 +0100  Benjamin Schmitz <vortex@wolpzone.de>

	* configure.ac:
	* ext/Makefile.am:
	* ext/assrender/Makefile.am:
	* ext/assrender/gstassrender.c:
	* ext/assrender/gstassrender.h:
	  Add assrender plugin for rendering ASS/SSA subtitles
	  This element has the advantage over subparse's ASS/SSA
	  support that more features are supported, like fading,
	  by using libass. Fixes bug #481075.

2009-02-05 10:50:27 +0100  Edward Hervey <bilboed@bilboed.com>

	* tests/check/pipelines/metadata.c:
	  metadata test: Fix wrong looping variable. Test is now valid (but fails).
	  The inner looping was using the outer looping variable.

2009-02-04 18:11:03 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/qtwrapper/audiodecoders.c:
	  Fix up things that the indent thingy complained about

2009-02-04 18:09:58 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/qtwrapper/audiodecoders.c:
	  Fix major leaks in qtwrapper audio decoders.
	  Free the decoder component and audiobufferlist when caps change, or when
	  disposing element.

2009-02-04 17:50:51 -0800  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowvideosink/dshowvideofakesrc.cpp:
	* sys/dshowvideosink/dshowvideofakesrc.h:
	* sys/dshowvideosink/dshowvideosink.cpp:
	* sys/dshowvideosink/dshowvideosink.h:
	  Handle many more edge cases in dshowvideosink.
	  Instrument various codepaths with debug messages.
	  Handle (as best as I could see how - it's pretty nasty) moving a video
	  window to another monitor.
	  Add listening for directshow events.

2009-02-04 22:50:30 +0100  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegdemux.h:
	  mpegpsdemux: fixes clossing segment generation.
	  Ensure that the clossing segment is generated correctly and being
	  properly pushed.
	  Added some GST_DEBUG to check it.
	  Ensure that last_stop is updated in stream time.
	  Calculate duration as delta of PTS as it seems more correct than delta
	  of SCR in some clips that I tested.

2009-02-04 22:17:36 +0100  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegpsdemux: several fixes on the seeking function in pul mode.
	  Removed a line wrongly copy pasted in my previous commit.
	  Avoid an unsigned integer overflow.
	  Seek last_stop in stream time.
	  Clamp last_stop in stream time between first and last SCR.
	  Fixed a typo in the GST_DEBUG line and added some more info.

2009-02-04 16:20:40 +0100  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  Moved var declarations to the begin of function

2009-02-04 16:18:27 +0100  Josep Torra <n770galaxy@gmail.com>

	  Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-bad

2009-02-04 16:11:23 +0100  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegdemux.h:
	  Improved seeking in pull mode. Some refactoring and small fixes

2009-02-04 11:11:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Update TODO

2009-02-04 11:09:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxf.c:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxftypes.h:
	  Post an UMID tag with the current package's UMID

2009-02-04 10:59:53 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Reset the current partition after seeking and NEWSEGMENT events

2009-02-04 10:53:52 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  In push mode play all remaining parts of the file on EOS if there are any

2009-02-04 10:37:20 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  Add property to set the maximum allowed time difference between tracks

2009-02-04 10:27:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Always set the current package, not only when it was changed
	  This is necessary as the current package link will be set to NULL
	  when updated metadata is parsed and should be set here again.

2009-02-04 10:19:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Try to resolve all synchronization issues, not only the first

2009-02-03 17:47:10 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Remove some checks that will always be TRUE

2009-02-03 22:27:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>

	* configure.ac:
	  configure.ac: bump core/base requirements to released versions

2009-02-02 23:29:24 +0100  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegvideoparse/mpegvideoparse.c:
	  Also flush parser when a newsegment is received. Fixes loop in reverse mode.

2009-02-02 23:12:07 +0100  Josep Torra <n770galaxy@gmail.com>

	* gst/mpegdemux/gstmpegdefs.h:
	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegdemux.h:
	* gst/mpegdemux/gstpesfilter.c:
	  Add pull mode to mpegpsdemux and report duration reading first and last PTS. Some random cleanups.

2009-02-02 17:44:33 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Cleanup playback package selection and notify about the current package

2009-02-02 16:23:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Update tags properly, especially on component switch

2009-02-02 16:05:14 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Error out if no pads could be created

2009-02-02 15:54:23 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Resolve metadata and update tracks if necessary before seeking

2009-02-02 15:54:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Don't go after the last component of a track

2009-02-02 15:53:32 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Return an error if updating an already existing pad fails

2009-02-02 07:44:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Fix seeking if the source clip duration is unknown

2009-02-01 16:59:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Add initial support for seeking in push mode

2009-02-01 16:58:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Fix deadlocks when seeking in pull mode failed and check new offset before using it

2009-02-01 16:58:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Update offset in push mode and handle events properly

2009-02-01 15:07:09 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  Implement initial seeking support (pull mode only)

2009-01-31 11:29:20 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c:
	  Don't use GLib 2.16 API unconditionally

2009-01-30 19:52:59 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Check for EOS on all pads after adjusting the essence track durations

2009-01-30 19:33:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Fix duration calculation for essence tracks

2009-01-30 15:50:16 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Implement GstElement::query/get_query_types vfuncs

2009-01-30 15:34:10 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Reset all internal state in finalize

2009-01-29 20:27:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Improve EOS detection and fix push mode for the last pushed in buffer

2009-01-29 19:58:50 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  Keep track of essence track position when playing source packages
	  This ensures that the correct essence elements are played and
	  that we seek to the correct essence elements.

2009-01-29 19:42:09 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  Compensate for timestamp/duration rounding errors

2009-01-29 15:56:08 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Improve EOS logic to check all pads when pulling a packet returned EOS
	  This makes sure that we finish all pads that are at EOS now instead of
	  just finishing one and returning to this point over and over again.

2009-01-29 15:55:44 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Only push buffers for pads that are not more than 500ms before other pads

2009-01-29 15:39:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Improve EOS logic to only go into EOS after all tracks are finished

2009-01-28 17:34:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Update TODO list

2009-01-28 16:39:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Try to keep the timestamp difference between tracks lower than 500ms

2009-01-27 15:36:53 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Fix playback of atom files

2009-01-27 15:27:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Keep track of current playback position

2009-01-27 14:38:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	  Set essence track positions to 0 if we're at the start partition

2009-01-27 14:25:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfalaw.c:
	* gst/mxf/mxfd10.c:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfdv-dif.c:
	* gst/mxf/mxfjpeg2000.c:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxfup.c:
	* gst/mxf/mxfvc3.c:
	  Generate an index table for essence streams
	  Generate an index table for essence streams during playback
	  and make sure that only the correct essence elements are
	  used for played tracks.
	  Make it possible to have one essence stream used in multiple
	  playback tracks.
	  Fix some minor bugs.

2009-01-27 14:23:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c:
	  Don't complain if the preface has no primary package set

2009-01-26 16:23:38 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfparse.c:
	  Allow index table segments without primer pack
	  When parsing an index table segment without a valid
	  primer pack in this partition only parse the static
	  local tags and ignore all dynamic ones.
	  This allows us to use index table segments in some
	  broken files.

2009-01-26 16:20:34 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  Add essence track abstraction
	  Add an abstraction to represent essence tracks and
	  use this everywhere. This will later be used to keep
	  track of positions and to generate/handle seek tables.
	  Some random cleanup and renaming.

2009-01-26 14:47:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfparse.c:
	  Fix parsing of index table segments
	  Allocate memory for the pos tables and slice offsets
	  of the index entries separately to a) fix alignment in
	  weird cases and b) to actually have something to free()
	  in the index table segment reset function.

2009-01-26 14:33:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxftypes.h:
	  Improve detection of the end of the header metadata
	  Header metadata is finished after partition.header_byte_count
	  bytes after the first byte of the primer pack are handled.
	  After this there can only be index table segments, filler packets,
	  essence or the start of the next partition.
	  This fixes playback of some files that have non-standard metadata
	  packets in the header metadata.

2009-01-30 18:27:03 -0800  Michael Smith <msmith@songbirdnest.com>

	* gst/selector/gstinputselector.c:
	  Unref event if we don't forward it, unref pads when done with them.

2009-01-30 22:28:11 +0200  Stefan Kost <ensonic@users.sf.net>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  Add releaseinfo with online url.

2009-01-30 18:20:17 +0000  Jan Schmidt <jan.schmidt@sun.com>

	* gst/dccp/gstdccp.c:
	  Fix compilation on Forte.
	  Dereference the pointer to the passed socket to check the actual fd
	  when closing them.
	  Cast an assignment to kill a warning.

2009-01-30 18:18:10 +0000  Jan Schmidt <jan.schmidt@sun.com>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	  Fix the return value of the default parse_frame function.
	  Fix the return value of the default parse_frame function in both
	  copies of GstBaseParse

2009-01-30 17:31:33 +0000  Jan Schmidt <thaytan@noraisin.net>

	* common:
	  Bump common

2009-01-30 08:54:42 +0100  Edward Hervey <bilboed@bilboed.com>

	* autogen.sh:
	* common:
	  Use a symbolic link for the pre-commit client-side hook

2009-01-29 17:59:35 -0200  Thiago Sousa Santos <thiagoss@embedded.ufcg.edu.br>

	* sys/qtwrapper/audiodecoders.c:
	* sys/qtwrapper/codecmapping.h:
	* sys/qtwrapper/qtutils.h:
	* sys/qtwrapper/qtwrapper.h:
	  qtwrapper: Fixes build at case sensitive systems.

2009-01-28 12:41:36 +0000  Josep Torra <josep@fluendo.com>

	* gst/mpegdemux/gstpesfilter.c:
	  mpegdemux: do not skip pes packets that we think are encrypted
	  pes packets that claim to be encrypted may not be so, so treat as normal.
	  Just log the flags.

2009-01-28 13:25:14 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/atoms.h:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmuxmap.c:
	  Additional media type support in qtmux (and friends).
	  Support AMR and H263 for both qtmux and gppmux,
	  and add extensions in sample table description.

2009-01-28 12:27:42 +0000  Zaheer Merali <zaheerabbas@merali.org>

	* common:
	* gst/mpegdemux/gstpesfilter.c:
	  Revert "mpegdemux: do not skip pes packets that we think are encrypted"
	  This reverts commit d3e4e5598f6c3db444d0014597d383ed35a02998.

2009-01-28 12:06:49 +0000  Josep Torra <josep@fluendo.com>

	* common:
	* gst/mpegdemux/gstpesfilter.c:
	  mpegdemux: do not skip pes packets that we think are encrypted
	  pes packets that claim to be encrypted may not be so, so treat as normal.
	  Just log the flags.

2009-01-24 18:13:39 +0100  Hans de Goede <jwrdegoede@fedoraproject.org>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* ext/Makefile.am:
	* ext/modplug/Makefile.am:
	* ext/modplug/gstmodplug.cc:
	* ext/modplug/gstmodplug.h:
	* gst/modplug/Makefile.am:
	* gst/modplug/gstmodplug.cc:
	* gst/modplug/gstmodplug.h:
	* gst/modplug/libmodplug/Makefile.am:
	* gst/modplug/libmodplug/README:
	* gst/modplug/libmodplug/changes.txt:
	* gst/modplug/libmodplug/fastmix.cpp:
	* gst/modplug/libmodplug/it_defs.h:
	* gst/modplug/libmodplug/load_669.cpp:
	* gst/modplug/libmodplug/load_amf.cpp:
	* gst/modplug/libmodplug/load_ams.cpp:
	* gst/modplug/libmodplug/load_dbm.cpp:
	* gst/modplug/libmodplug/load_dmf.cpp:
	* gst/modplug/libmodplug/load_dsm.cpp:
	* gst/modplug/libmodplug/load_far.cpp:
	* gst/modplug/libmodplug/load_it.cpp:
	* gst/modplug/libmodplug/load_j2b.cpp:
	* gst/modplug/libmodplug/load_mdl.cpp:
	* gst/modplug/libmodplug/load_med.cpp:
	* gst/modplug/libmodplug/load_mod.cpp:
	* gst/modplug/libmodplug/load_mt2.cpp:
	* gst/modplug/libmodplug/load_mtm.cpp:
	* gst/modplug/libmodplug/load_okt.cpp:
	* gst/modplug/libmodplug/load_psm.cpp:
	* gst/modplug/libmodplug/load_ptm.cpp:
	* gst/modplug/libmodplug/load_s3m.cpp:
	* gst/modplug/libmodplug/load_stm.cpp:
	* gst/modplug/libmodplug/load_ult.cpp:
	* gst/modplug/libmodplug/load_umx.cpp:
	* gst/modplug/libmodplug/load_wav.cpp:
	* gst/modplug/libmodplug/load_xm.cpp:
	* gst/modplug/libmodplug/mmcmp.cpp:
	* gst/modplug/libmodplug/modplug.cpp:
	* gst/modplug/libmodplug/modplug.h:
	* gst/modplug/libmodplug/snd_dsp.cpp:
	* gst/modplug/libmodplug/snd_flt.cpp:
	* gst/modplug/libmodplug/snd_fx.cpp:
	* gst/modplug/libmodplug/sndfile.cpp:
	* gst/modplug/libmodplug/sndfile.h:
	* gst/modplug/libmodplug/sndmix.cpp:
	* gst/modplug/libmodplug/stdafx.h:
	* gst/modplug/libmodplug/tables.cpp:
	* gst/modplug/libmodplug/tables.d:
	  Build the modplug plugin against the modplug library and remove our copy
	  Always build the modplug plugin against the system modplug library
	  and remove our own copy. Using the system version has advantages
	  if security issues or other critical bugs are found in libmodplug
	  and our own copy wasn't really maintained anyway.
	  Also our copy only contained some patches to use GLib types and functions.
	  Fixes bug #568837.

2009-01-23 23:42:28 +0000  Jan Schmidt <thaytan@noraisin.net>

	* .gitignore:
	* po/.gitignore:
	  Add more to the gitignores

2009-01-23 14:02:26 +0000  Jan Schmidt <thaytan@noraisin.net>

	* gst/rawparse/gstvideoparse.c:
	  Make RGB masks unsigned in rawvideoparse
	  Allow the full range of 32 bit masks for RGBA/RGB data by making sure
	  the mask properties are unsigned.

2009-01-23 16:09:51 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/timidity/README:
	  Add README with midi related links.

2009-01-23 16:00:10 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/faad/gstfaad.c:
	* gst/aacparse/gstaacparse.c:
	  Log aac details found in codec_data.

2009-01-23 14:43:00 +0200  Stefan Kost <ensonic@users.sf.net>

	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	  Configure byte order for EXIF. Fixes #568704
	  Exif blocks can be in differnt byte orders. Add an element property to select wich one should be written.

2009-01-23 12:46:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-aiffparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-apex.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dc1394.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-deinterlace2.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-flv.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegdemux2.xml:
	* docs/plugins/inspect/plugin-mpegtsmux.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-ofa.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-pcapparse.xml:
	* docs/plugins/inspect/plugin-qtmux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-resindvd.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst/audioresample/Makefile.am:
	* gst/audioresample/buffer.c:
	* gst/audioresample/buffer.h:
	* gst/audioresample/debug.c:
	* gst/audioresample/debug.h:
	* gst/audioresample/functable.c:
	* gst/audioresample/functable.h:
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/gstaudioresample.h:
	* gst/audioresample/resample.c:
	* gst/audioresample/resample.h:
	* gst/audioresample/resample_chunk.c:
	* gst/audioresample/resample_functable.c:
	* gst/audioresample/resample_ref.c:
	* gst/legacyresample/Makefile.am:
	* gst/legacyresample/buffer.c:
	* gst/legacyresample/buffer.h:
	* gst/legacyresample/debug.c:
	* gst/legacyresample/debug.h:
	* gst/legacyresample/functable.c:
	* gst/legacyresample/functable.h:
	* gst/legacyresample/gstlegacyresample.c:
	* gst/legacyresample/gstlegacyresample.h:
	* gst/legacyresample/resample.c:
	* gst/legacyresample/resample.h:
	* gst/legacyresample/resample_chunk.c:
	* gst/legacyresample/resample_functable.c:
	* gst/legacyresample/resample_ref.c:
	* tests/check/Makefile.am:
	* tests/check/elements/audioresample.c:
	* tests/check/elements/legacyresample.c:
	  Rename audioresample files and types to legacyresample
	  Finish the move/rename of audioresample to legacyresample
	  to prevent any confusion.

2009-01-23 12:39:21 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>

	* docs/plugins/inspect/plugin-speexresample.xml:
	* gst/speexresample/Makefile.am:
	* gst/speexresample/README:
	* gst/speexresample/arch.h:
	* gst/speexresample/fixed_generic.h:
	* gst/speexresample/gstspeexresample.c:
	* gst/speexresample/gstspeexresample.h:
	* gst/speexresample/resample.c:
	* gst/speexresample/speex_resampler.h:
	* gst/speexresample/speex_resampler_float.c:
	* gst/speexresample/speex_resampler_int.c:
	* gst/speexresample/speex_resampler_wrapper.h:
	  Remove speexresample from -bad, it's in -base

2009-01-23 12:13:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpstats.c:
	  Send BYE packets immediatly for small sessions
	  When the number of participants is less than 50, the RFC allows for sending the
	  BYE packet immediatly instead of using the regular BYE timeout.
	  Fixes #567828.

2009-01-23 11:50:29 +0100  Hans de Goede <jwrdegoede@fedoraproject.org>

	* configure.ac:
	* ext/libmms/gstmms.c:
	* ext/libmms/gstmms.h:
	  Add seeking support to mmssrc. Fixes bug #469930.
	  Add proper seeking support to mmssrc and clean
	  up some code. This requires libmms >= 0.4.

2009-01-23 10:44:20 +0100  Brian Cameron <brian.cameron@sun.com>

	* gst/modplug/Makefile.am:
	  Link modplug plugin with -lm. Fixes bug #568483.

2009-01-23 10:11:52 +0100  Brian Cameron <brian.cameron@sun.com>

	* configure.ac:
	* gst/dccp/gstdccp.c:
	  Fix build on Solaris. Fixes bug #568480.
	  Fix linking on Solaris by checking for the nsl and socket
	  libraries which are needed for socket() and gethostbyname().
	  Don't initialize some fields of struct mh to NULL/0, they're
	  already set to NULL/0 by a memset(). Also this fields don't
	  exist on Solaris.

2009-01-22 14:37:21 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxftypes.h:
	  Store all partitions & primer packs in memory for faster access
	  Store all partitions & primer packs in memory for faster access.
	  This is later needed for fast seeking.
	  Pre-fill the list of partitions with the content of the random
	  index pack.
	  Don't parse metadata of an partition twice.

2009-01-22 18:20:03 +0200  Stefan Kost <ensonic@users.sf.net>

	* common:
	  Update common snapshot.

2009-01-22 14:00:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* win32/common/config.h:
	  Update config.h for development.

2009-01-22 13:46:44 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* common:
	  Fix pre-commit hook

2009-01-22 13:39:34 +0100  Jan Urbanski <j.urbanski@students.mimuw.edu.pl>

	* gst/flv/gstflvparse.c:
	  Add support for ECMA arrays in script tags. Fixes bug #567965.
	  Add support for ECMA arrays in script tags. This fixes
	  seeking on some files that have the seek table stored
	  inside an ECMA array instead of the normal array.

2009-01-22 13:33:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  Unlock the jitterbuffer before pushing out the packet-lost events. Move some code before we do the unlock to make the jitterbuffer state consistent while we are unlocked.

2009-01-22 11:54:45 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/mxf/mxfmpeg.c:
	  Fix UL for DTS and MPEG2 layer 1

2009-01-22 11:54:15 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/mxf/mxfmpeg.c:
	  Add support for AAC audio

2009-01-22 11:47:48 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	  Store MXF metadata in a hash table, keyed by UID
	  Store the MXF metadata in a hash table, keyed by the
	  instance UID. This simplifies resolval of the metadata
	  and makes looping over all metadata sets unnecessary
	  in most cases.
	  Additionally parse metadata always. If we already have
	  a metadata set with the same UID replace it only if
	  the new metadata set is from a later offset. This
	  fixes metadata parsing of files where following partitions
	  don't have a complete copy of the previous metadata.

2009-01-22 11:44:46 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  Build the random index pack while parsing
	  If the file contains no random index pack or just
	  an invalid one build the random index pack while
	  parsing.

2009-01-22 11:43:56 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfalaw.c:
	* gst/mxf/mxfalaw.h:
	* gst/mxf/mxfd10.c:
	* gst/mxf/mxfd10.h:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfdms1.h:
	* gst/mxf/mxfdv-dif.c:
	* gst/mxf/mxfdv-dif.h:
	* gst/mxf/mxfjpeg2000.c:
	* gst/mxf/mxfjpeg2000.h:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfmpeg.h:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	* gst/mxf/mxfup.c:
	* gst/mxf/mxfup.h:
	* gst/mxf/mxfvc3.c:
	* gst/mxf/mxfvc3.h:
	  Update copyrights for 2009

2009-01-22 11:42:24 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfdms1.h:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfparse.c:
	* gst/mxf/mxfparse.h:
	  Simplify parsing of UL/UUID arrays
	  Simplify parsing of UL/UUID arrays by abstracting it
	  into a separate function.

2009-01-22 11:37:22 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* gst/mxf/mxf.c:
	* gst/mxf/mxfalaw.c:
	* gst/mxf/mxfd10.c:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfdms1.h:
	* gst/mxf/mxfjpeg2000.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfup.c:
	* gst/mxf/mxfvc3.c:
	  Implement parsing of DMS1 (SMPTE S380M)

2009-01-22 11:00:59 +0100  Sebastian Dröge <slomo@circular-chaos.org>

	* configure.ac:
	  Disable the filter plugin from the build
	  The filter plugin only contains a limited IIR filter element
	  which is now obsoleted by the audioiirfilter element from
	  gst-plugins-good/audiofx.

2009-01-22 11:56:34 +0000  Jan Schmidt <thaytan@noraisin.net>

	* configure.ac:
	  Back to devel -> 0.10.10.1

2009-01-22 06:12:55 +0100  Edward Hervey <bilboed@bilboed.com>

	* autogen.sh:
	* common:
	  Install and use pre-commit indentation hook from common

2009-01-21 12:22:54 +0100  Andy Wingo <wingo@oblong.net>

	* configure.ac:
	  Revert "add audiobuffer to the build"
	  This reverts commit 1c6ac170b9f218c673c0daaf5c568c6000a37fc3.

2009-01-21 12:18:49 +0100  Andy Wingo <wingo@oblong.net>

	  add audiobuffer to the build
	  * configure.ac: Add audiobuffer to the build.

2009-01-21 04:32:16 +0100  Edward Hervey <bilboed@bilboed.com>

	* autogen.sh:
	  autogen.sh : Use git submodule

=== release 0.10.10 ===

2009-01-19 23:15:36 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-legacyresample.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst-plugins-bad.doap:
	* po/LINGUAS:
	* win32/common/config.h:
	  Release 0.10.10
	  Original commit message from CVS:
	  Release 0.10.10

2009-01-19 22:41:58 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* 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/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ky.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:
	  Update .po files
	  Original commit message from CVS:
	  Update .po files

2009-01-09 23:44:38 +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

2009-01-09 22:09:06 +0000  David Schleef <ds@schleef.org>

	  gst/mpegdemux/gstmpegtsdemux.c: Don't forward duration requests in BYTES, since the returned value doesn't mean anyth...
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  Don't forward duration requests in BYTES, since the returned
	  value doesn't mean anything.  Fixes #566959

2009-01-09 21:59:48 +0000  David Schleef <ds@schleef.org>

	  gst/qtmux/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part to caps so schroenc/schroparse can use it.  Fixes #5...
	  Original commit message from CVS:
	  * gst/qtmux/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part
	  to caps so schroenc/schroparse can use it.  Fixes #566958

2009-01-09 16:49:57 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/resindvdsrc.c: Additional patch for resin fixes time-based seeking in titles that don't start at sector ...
	  Original commit message from CVS:
	  * ext/resindvd/resindvdsrc.c:
	  Additional patch for resin fixes time-based seeking in titles
	  that don't start at sector 0 in the VTS, and fixes interpretation
	  of the cell elapsed time, so that it reports the correct time after
	  the seek completes.
	  Really fixes #566957.

2009-01-08 17:57:19 +0000  Brian Cameron <brian.cameron@sun.com>

	  ext/ladspa/search.c: Avoid searching (null) paths or crashing on platforms where printing a
	  Original commit message from CVS:
	  Based on Patch by: Brian Cameron <brian dot cameron at sun dot com>
	  * ext/ladspa/search.c: (LADSPAPluginSearch):
	  Avoid searching (null) paths or crashing on platforms where printing a
	  NULL string segfaults. Fixes #567004.

2009-01-08 12:42:18 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/: Add support for time based seeking.
	  Original commit message from CVS:
	  * ext/resindvd/resindvdbin.c:
	  * ext/resindvd/resindvdsrc.c:
	  * ext/resindvd/resindvdsrc.h:
	  * ext/resindvd/rsnaudiomunge.c:
	  Add support for time based seeking.
	  Make setting dvd:// reset to the default device.
	  Make the 'audiomunge' element send any new segment start before
	  the 'gap filler' buffer it generates, and any segment closes
	  after.
	  Fixes: #566957

2009-01-08 09:40:22 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/ladspa/gstladspa.c: Add plugin dependency for the LADSPA plugin directories.
	  Original commit message from CVS:
	  * ext/ladspa/gstladspa.c: (plugin_init):
	  Add plugin dependency for the LADSPA plugin directories.
	  Fixes bug #566878.

2009-01-06 22:51:37 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  tests/check/Makefile.am: Dist test headers for amr and aac parsers.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Dist test headers for amr and aac parsers.
	  Remove leftover lines mentioned speexresample tests.

2009-01-06 22:35:50 +0000  Michael Smith <msmith@xiph.org>

	  sys/acmmp3dec/Makefile.am: Fix typo in the opposite way to give the plugin a sensible name.
	  Original commit message from CVS:
	  * sys/acmmp3dec/Makefile.am:
	  Fix typo in the opposite way to give the plugin a sensible name.

2009-01-06 22:16:56 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  sys/acmmp3dec/Makefile.am: Fix typo in the makefile target preventing disting.
	  Original commit message from CVS:
	  * sys/acmmp3dec/Makefile.am:
	  Fix typo in the makefile target preventing disting.

2009-01-05 23:03:31 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove AppSrc/AppSink that are moving to -base. Partially fixes #564421
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-app.xml:
	  * examples/Makefile.am:
	  * examples/app/.cvsignore:
	  * examples/app/Makefile.am:
	  * examples/app/appsink-src.c:
	  * examples/app/appsrc-ra.c:
	  * examples/app/appsrc-seekable.c:
	  * examples/app/appsrc-stream.c:
	  * examples/app/appsrc-stream2.c:
	  * examples/app/appsrc_ex.c:
	  * gst-libs/gst/Makefile.am:
	  * gst-libs/gst/app/.cvsignore:
	  * gst-libs/gst/app/Makefile.am:
	  * gst-libs/gst/app/gstapp-marshal.list:
	  * gst-libs/gst/app/gstappbuffer.c:
	  * gst-libs/gst/app/gstappbuffer.h:
	  * gst-libs/gst/app/gstappsink.c:
	  * gst-libs/gst/app/gstappsink.h:
	  * gst-libs/gst/app/gstappsrc.c:
	  * gst-libs/gst/app/gstappsrc.h:
	  * gst/app/Makefile.am:
	  * gst/app/gstapp.c:
	  Remove AppSrc/AppSink that are moving to -base. Partially fixes
	  #564421

2009-01-05 17:41:51 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/mpegtspacketizer.c: Guard interval is 4 if descriptor part shows binary 11 (3 not 4).
	  Original commit message from CVS:
	  * gst/mpegdemux/mpegtspacketizer.c:
	  Guard interval is 4 if descriptor part shows binary 11 (3 not 4).

2009-01-05 17:30:55 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegdesc.h: Fix up satellite delivery subsystem defs.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdesc.h:
	  Fix up satellite delivery subsystem defs.

2009-01-05 17:26:00 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegdesc.h: Fix up terrestrial delivery system descriptor defs.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdesc.h:
	  Fix up terrestrial delivery system descriptor defs.
	  They should be shifted otherwise wrong values are seen.

2009-01-05 13:41:07 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: "Generation UID" and "This Generation UID" are different so handle them different. Also both are not part o...
	  Original commit message from CVS:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxfdemux.c:
	  * gst/mxf/mxfmetadata.c: (mxf_metadata_handle_tag),
	  (mxf_metadata_preface_handle_tag),
	  (mxf_metadata_identification_handle_tag),
	  (mxf_metadata_content_storage_handle_tag),
	  (mxf_metadata_essence_container_data_handle_tag),
	  (mxf_metadata_generic_package_handle_tag),
	  (mxf_metadata_track_handle_tag),
	  (mxf_metadata_sequence_handle_tag),
	  (mxf_metadata_structural_component_handle_tag),
	  (mxf_metadata_generic_descriptor_handle_tag),
	  (mxf_metadata_locator_handle_tag),
	  (mxf_metadata_locator_class_init):
	  * gst/mxf/mxfmetadata.h:
	  "Generation UID" and "This Generation UID" are different so handle
	  them different. Also both are not part of every metadata type.

2009-01-05 12:34:18 +0000  Sascha Hauer <s.hauer@pengutronix.de>

	  gst/bayer/gstbayer2rgb.c: Fix color offset calculation for 24bpp. Fixes bug #566613.
	  Original commit message from CVS:
	  Patch by: Sascha Hauer <s dot hauer at pengutronix dot de>
	  Luotao Fu <l dot fu at pengutronix dot de>
	  * gst/bayer/gstbayer2rgb.c: (get_pix_offset),
	  (gst_bayer2rgb_set_caps):
	  Fix color offset calculation for 24bpp. Fixes bug #566613.

2009-01-05 11:28:49 +0000  vanista <vanista@gmail.com>

	  gst/mpegtsmux/: Improve muxing of AC3/h264 streams a bit. Fixes bug #550613.
	  Original commit message from CVS:
	  Patch by: vanista <vanista at gmail dot com>
	  * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
	  * gst/mpegtsmux/tsmux/tsmux.c: (tsmux_write_pmt):
	  * gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
	  (tsmux_stream_write_pes_header), (tsmux_stream_get_es_descrs):
	  * gst/mpegtsmux/tsmux/tsmuxstream.h:
	  Improve muxing of AC3/h264 streams a bit. Fixes bug #550613.

2009-01-05 10:34:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Don't allow negative or zero edit rates to prevent division by zero and we support negative edit ...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_pad_next_component):
	  Don't allow negative or zero edit rates to prevent division
	  by zero and we support negative edit rates anyway.

2009-01-05 10:28:58 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  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-05 10:22:29 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Fix compilation with debugging disabled.
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c:
	  (mxf_metadata_wave_audio_essence_descriptor_handle_tag),
	  (mxf_bwf_create_caps):
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_klv_packet):
	  * gst/mxf/mxfmetadata.c: (mxf_metadata_handle_tag),
	  (mxf_metadata_preface_handle_tag),
	  (mxf_metadata_identification_handle_tag),
	  (mxf_metadata_content_storage_handle_tag),
	  (mxf_metadata_essence_container_data_handle_tag),
	  (mxf_metadata_generic_package_handle_tag),
	  (mxf_metadata_source_package_handle_tag),
	  (mxf_metadata_track_handle_tag),
	  (mxf_metadata_sequence_handle_tag),
	  (mxf_metadata_structural_component_handle_tag),
	  (mxf_metadata_source_clip_handle_tag),
	  (mxf_metadata_dm_segment_handle_tag),
	  (mxf_metadata_generic_descriptor_handle_tag),
	  (mxf_metadata_file_descriptor_handle_tag),
	  (mxf_metadata_generic_picture_essence_descriptor_handle_tag),
	  (mxf_metadata_generic_sound_essence_descriptor_handle_tag),
	  (mxf_metadata_generic_data_essence_descriptor_handle_tag),
	  (mxf_metadata_multiple_descriptor_handle_tag):
	  * gst/mxf/mxfparse.c: (mxf_partition_pack_parse),
	  (mxf_index_table_segment_parse), (mxf_primer_pack_parse),
	  (mxf_local_tag_add_to_hash_table):
	  Fix compilation with debugging disabled.

2009-01-05 10:00:21 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  configure.ac: Also mention jp2kenc as a jp2k plugin feature.
	  Original commit message from CVS:
	  * configure.ac:
	  Also mention jp2kenc as a jp2k plugin feature.

2009-01-04 11:11:06 +0000  Sebastian Pölsterl <sebp@k-d-w.org>

	  sys/dvb/dvbbasebin.c: Fix some memory leaks. Fixes bug #566356.
	  Original commit message from CVS:
	  Patch by: Sebastian Pölsterl <sebp at k-d-w dot org>
	  * sys/dvb/dvbbasebin.c: (dvb_base_bin_init),
	  (dvb_base_bin_finalize), (dvb_base_bin_activate_program),
	  (dvb_base_bin_pmt_info_cb), (dvb_base_bin_pad_added_cb),
	  (dvb_base_bin_program_destroy):
	  Fix some memory leaks. Fixes bug #566356.

2009-01-02 17:40:06 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/: When an SSRC is found on the caps of the sender RTP, use this as the internal SSRC. Fixes #565910.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester at tester dot ca>
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_setcaps_send_rtp), (create_send_rtp_sink):
	  * gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
	  When an SSRC is found on the caps of the sender RTP, use this as the
	  internal SSRC. Fixes #565910.

2009-01-02 16:50:53 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Rename a method to better reflect what it really does.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_event_send_rtp_sink),
	  (gst_rtp_session_getcaps_send_rtp):
	  * gst/rtpmanager/rtpsession.c: (check_collision),
	  (rtp_session_schedule_bye_locked), (rtp_session_schedule_bye):
	  * gst/rtpmanager/rtpsession.h:
	  Rename a method to better reflect what it really does.

2009-01-02 11:00:17 +0000  Alessandro Decina <alessandro.d@gmail.com>

	  ext/apexsink/Makefile.am: Move -lgcrypto from _LDFLAGS to _LIBADD.
	  Original commit message from CVS:
	  * ext/apexsink/Makefile.am:
	  Move -lgcrypto from _LDFLAGS to _LIBADD.

2009-01-02 01:44:11 +0000  Alessandro Decina <alessandro.d@gmail.com>

	  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.

2009-01-02 01:12:35 +0000  Alessandro Decina <alessandro.d@gmail.com>

	  gst/mpegdemux/gstmpegdemux.c: Initialize scr_rate_n and scr_rate_d in order to fix compiler warnings.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdemux.c:
	  Initialize scr_rate_n and scr_rate_d in order to fix compiler warnings.

2008-12-31 08:53:02 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Implement support for OP2a/b/c and OP3a/b/c, i.e. tracks with more than a single component. This currently only works...
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c: (mxf_bwf_handle_essence_element),
	  (mxf_aes3_handle_essence_element):
	  * gst/mxf/mxfalaw.c: (mxf_alaw_handle_essence_element):
	  * gst/mxf/mxfd10.c: (mxf_d10_picture_handle_essence_element),
	  (mxf_d10_sound_handle_essence_element):
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_pad_init),
	  (gst_mxf_demux_choose_package),
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_pad_next_component),
	  (gst_mxf_demux_handle_generic_container_essence_element),
	  (gst_mxf_demux_parse_footer_metadata),
	  (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query):
	  * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_handle_essence_element):
	  * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_handle_essence_element):
	  * gst/mxf/mxfmetadata.c: (mxf_metadata_sequence_init),
	  (mxf_metadata_structural_component_init),
	  (mxf_metadata_generic_picture_essence_descriptor_init):
	  * gst/mxf/mxfmpeg.c: (mxf_mpeg_video_handle_essence_element),
	  (mxf_mpeg_audio_handle_essence_element):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxfup.c: (mxf_up_handle_essence_element):
	  * gst/mxf/mxfvc3.c: (mxf_vc3_handle_essence_element):
	  * tests/check/elements/mxfdemux.c: (_sink_chain):
	  Implement support for OP2a/b/c and OP3a/b/c, i.e. tracks with
	  more than a single component. This currently only works for
	  the case where the components are stored in playback order
	  in the file.
	  Set some more default/distinguished values for the structural
	  metadata.
	  Make some types more strict by choosing the correct subclasses.
	  Set DISCONT flag on buffers after a component switch.
	  Take the last partition from the random index pack for the footer
	  partition of the header partition doesn't reference the footer
	  partition. This gives us the final structural metadata for
	  some more files in the beginning.

2008-12-29 18:22:26 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegdemux/gstmpegdemux.c: Use the adjusted SCR for calculating the mux rate.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query),
	  (gst_flups_demux_parse_pack_start):
	  Use the adjusted SCR for calculating the mux rate.
	  Don't update the rate estimation after a discont.

2008-12-29 17:55:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegdemux/gstmpegdemux.*: The position member in the newsegment event corresponds to the stream_time of the segme...
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data):
	  * gst/mpegdemux/gstmpegdemux.h:
	  The position member in the newsegment event corresponds to the
	  stream_time of the segment start position.

2008-12-29 17:30:03 +0000  Robin Stocker <robin@nibor.org>

	  gst/mpegdemux/gstmpegdemux.c: Converting from time to bytes operates on the stream_time, not the SCR timeline.
	  Original commit message from CVS:
	  Patch by: Robin Stocker <robin at nibor dot org>
	  * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query):
	  Converting from time to bytes operates on the stream_time, not the SCR
	  timeline.
	  The position reporting should happen in stream_time, not the segment
	  timestamp range. See #557161.

2008-12-29 16:45:20 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsrc.*: Add properties and methods to configure and retrieve the min and max latencies.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	  (gst_app_src_init), (gst_app_src_set_property),
	  (gst_app_src_get_property), (gst_app_src_query),
	  (gst_app_src_set_latencies), (gst_app_src_set_latency),
	  (gst_app_src_get_latency), (gst_app_src_push_buffer_full):
	  * gst-libs/gst/app/gstappsrc.h:
	  Add properties and methods to configure and retrieve the min and max
	  latencies.

2008-12-29 16:29:08 +0000  Sebastian Pölsterl <sebp@k-d-w.org>

	  gst/mpegdemux/mpegtspacketizer.c: Fix memleak. Fixes #565614.
	  Original commit message from CVS:
	  Patch by: Sebastian Pölsterl <sebp at k-d-w dot org>
	  * gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_eit):
	  Fix memleak. Fixes #565614.

2008-12-29 16:18:47 +0000  Sebastian Pölsterl <sebp@k-d-w.org>

	  gst/mpegdemux/mpegtspacketizer.c: Add a scrambled field to the service structures retrieved from SDT to determine if ...
	  Original commit message from CVS:
	  Patch by: Sebastian Pölsterl <sebp at k-d-w dot org>
	  * gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_sdt):
	  Add a scrambled field to the service structures retrieved from SDT to
	  determine if a channel is scrambled. Fixes #565613.

2008-12-29 15:54:44 +0000  Damien Lespiau <damien.lespiau@gmail.com>

	  gst/pcapparse/: Patch to make gstpcapparse compile with mingw32 gcc. Fixes #565439.
	  Original commit message from CVS:
	  Patch by: Damien Lespiau <damien dot lespiau at gmail dot com>
	  * gst/pcapparse/Makefile.am:
	  * gst/pcapparse/gstpcapparse.c:
	  Patch to make gstpcapparse compile with mingw32 gcc. Fixes #565439.

2008-12-29 15:49:37 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Use method to get the internal SSRC.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_getcaps_send_rtp):
	  Use method to get the internal SSRC.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (rtp_session_set_property), (rtp_session_get_property):
	  Add property to congiure the internal SSRC of the session.
	  Fixes #565910.

2008-12-29 15:21:58 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/rtpsession.c: Only change the SSRC of the session and reset the internal source when the SSRC actually...
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
	  Only change the SSRC of the session and reset the internal source when
	  the SSRC actually changed. See #565910.

2008-12-29 14:21:47 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/rtpsource.*: When no payload was specified on the caps but there was a clock-rate, assume the clock-ra...
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsource.c: (rtp_source_init),
	  (rtp_source_update_caps), (get_clock_rate):
	  * gst/rtpmanager/rtpsource.h:
	  When no payload was specified on the caps but there was a clock-rate,
	  assume the clock-rate corresponds to the first payload type found in the
	  RTP packets. Fixes #565509.

2008-12-23 16:32:05 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: With constant read failures, make sure we exit the read_device method.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  With constant read failures, make sure we exit the read_device
	  method.

2008-12-23 15:26:30 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Post bus message with dvb read failure when unable to read from device.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Post bus message with dvb read failure when unable to read from
	  device.

2008-12-23 12:25:47 +0000  Luotao Fu <l.fu@pengutronix.de>

	  sys/fbdev/gstfbdevsink.c: Fix the Depth calculation.
	  Original commit message from CVS:
	  Patch by: Luotao Fu <l dot fu at pengutronix dot de>
	  * sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps):
	  Fix the Depth calculation.
	  Fixes #564114.

2008-12-23 11:39:59 +0000  Arnout Vandecappelle <arnout@mind.be>

	  gst/rtpmanager/rtpjitterbuffer.*: Keep track of the last outgoing timestamp and of the last sender-side time.  Timest...
	  Original commit message from CVS:
	  Patch by: Arnout Vandecappelle <arnout at mind dot be>
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	  (calculate_skew):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Keep track of the last outgoing timestamp and of the last sender-side
	  time.  Timestamps can only go forward if they do at the sender
	  side, can only go back if they do at the sender side, and remain the
	  same if they remain the same at the sender side. Fixes #565319.

2008-12-22 20:56:10 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfmpeg.c: Add initial support for h.264 video (SMPTE RP2008).
	  Original commit message from CVS:
	  * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps),
	  (mxf_mpeg_create_caps):
	  Add initial support for h.264 video (SMPTE RP2008).

2008-12-22 20:37:24 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfmetadata.*: If resolving a metadata object failed the first time return
	  Original commit message from CVS:
	  * gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve):
	  * gst/mxf/mxfmetadata.h:
	  If resolving a metadata object failed the first time return
	  FALSE for a second mxf_metadata_base_resolve() call instead
	  of TRUE.

2008-12-22 10:14:35 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Cleanup of the includes.
	  Original commit message from CVS:
	  * gst/mxf/mxf.c:
	  * gst/mxf/mxfaes-bwf.h:
	  * gst/mxf/mxfd10.c:
	  * gst/mxf/mxfdms1.c:
	  * gst/mxf/mxfdms1.h:
	  * gst/mxf/mxfmpeg.h:
	  * gst/mxf/mxftypes.h:
	  Cleanup of the includes.

2008-12-19 18:53:47 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/qtmux/gstqtmux.c: Do not tempt or suggest to violate gst_collect_pads API specification.
	  Original commit message from CVS:
	  * gst/qtmux/gstqtmux.c: (gst_qt_mux_change_state):
	  Do not tempt or suggest to violate gst_collect_pads API specification.

2008-12-19 18:33:47 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/qtmux/: Dual license qtmux LGPL/MIT.  Fixes #564232.
	  Original commit message from CVS:
	  * gst/qtmux/atoms.c:
	  * gst/qtmux/atoms.h:
	  * gst/qtmux/descriptors.c:
	  * gst/qtmux/descriptors.h:
	  * gst/qtmux/fourcc.h:
	  * gst/qtmux/ftypcc.h:
	  * gst/qtmux/gstqtmux.c:
	  * gst/qtmux/gstqtmux.h:
	  * gst/qtmux/gstqtmuxmap.c:
	  * gst/qtmux/gstqtmuxmap.h:
	  * gst/qtmux/properties.c:
	  * gst/qtmux/properties.h:
	  Dual license qtmux LGPL/MIT.  Fixes #564232.

2008-12-19 10:06:24 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add mxf_metadata_generic_sound_essence_descriptor_set_caps() to set rate and channels and use this for all ...
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps),
	  (mxf_aes3_create_caps):
	  * gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
	  * gst/mxf/mxfd10.c: (mxf_d10_create_caps):
	  * gst/mxf/mxfdemux.c:
	  * gst/mxf/mxfmetadata.c: (mxf_metadata_source_package_resolve),
	  (mxf_metadata_generic_picture_essence_descriptor_set_caps),
	  (mxf_metadata_generic_sound_essence_descriptor_set_caps):
	  * gst/mxf/mxfmetadata.h:
	  * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps):
	  Add mxf_metadata_generic_sound_essence_descriptor_set_caps() to
	  set rate and channels and use this for all sound essence.
	  Give some debug output when setting picture essence caps with
	  invalid descriptor values.
	  Fix height calculation from the frame layout a bit more and
	  add a TODO to check if it's really correct now or if it needs
	  more fixing (especially, does the framerate need adjustments?).

2008-12-18 17:49:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add support for VC-3 (aka DNxHD essence, see SMPTE 2019-4).
	  Original commit message from CVS:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxf.c: (plugin_init):
	  * gst/mxf/mxfvc3.c: (mxf_is_vc3_essence_track),
	  (mxf_vc3_handle_essence_element), (mxf_vc3_create_caps),
	  (mxf_vc3_init):
	  * gst/mxf/mxfvc3.h:
	  Add support for VC-3 (aka DNxHD essence, see SMPTE 2019-4).
	  This is untested because of lack of sample files but should
	  work fine.

2008-12-17 13:51:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Add appsrc and appsink documentation.
	  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-libs/gst/app/gstappsink.c:
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init):
	  Add appsrc and appsink documentation.

2008-12-17 12:06:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: In push mode skip the run in again if we get buffers with an offset before the run in. This can h...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_chain):
	  In push mode skip the run in again if we get buffers with
	  an offset before the run in. This can happen on seeks for example.

2008-12-16 16:26:52 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Totally remove the internal taglists and fully use tagsetter. Fixes various tag muxing issues.
	  Original commit message from CVS:
	  * ext/celt/gstceltenc.c:
	  * ext/celt/gstceltenc.h:
	  * ext/metadata/gstmetadatamux.c:
	  * gst/qtmux/gstqtmux.c:
	  * gst/qtmux/gstqtmux.h:
	  Totally remove the internal taglists and fully use tagsetter. Fixes
	  various tag muxing issues.

2008-12-16 12:46:37 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/mxfdemux.c: Increase the timeout to 3 minutes to prevent timeouts.
	  Original commit message from CVS:
	  * tests/check/elements/mxfdemux.c: (mxfdemux_suite):
	  Increase the timeout to 3 minutes to prevent timeouts.

2008-12-16 12:37:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/mxfdemux.*: Make sure the main loop is already running when handling the EOS event in pull mode....
	  Original commit message from CVS:
	  * tests/check/elements/mxfdemux.c: (_sink_event):
	  * tests/check/elements/mxfdemux.h:
	  Make sure the main loop is already running when handling the EOS
	  event in pull mode. This works around a race condition that can
	  happen if the element goes into PLAYING, handles everything and
	  sends EOS before the main loop is started.

2008-12-16 12:30:34 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Implement an essence element handling registry and use this instead of an hardcoded, large if-then-else block.
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c: (mxf_is_aes_bwf_essence_track),
	  (mxf_bwf_handle_essence_element),
	  (mxf_aes3_handle_essence_element), (mxf_bwf_create_caps),
	  (mxf_aes3_create_caps), (mxf_aes_bwf_create_caps),
	  (mxf_aes_bwf_init):
	  * gst/mxf/mxfaes-bwf.h:
	  * gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track),
	  (mxf_alaw_handle_essence_element), (mxf_alaw_create_caps),
	  (mxf_alaw_init):
	  * gst/mxf/mxfalaw.h:
	  * gst/mxf/mxfd10.c: (mxf_is_d10_essence_track),
	  (mxf_d10_picture_handle_essence_element),
	  (mxf_d10_sound_handle_essence_element), (mxf_d10_create_caps),
	  (mxf_d10_init):
	  * gst/mxf/mxfd10.h:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_handle_generic_container_essence_element):
	  * gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track),
	  (mxf_dv_dif_handle_essence_element), (mxf_dv_dif_create_caps),
	  (mxf_dv_dif_init):
	  * gst/mxf/mxfdv-dif.h:
	  * gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track),
	  (mxf_jpeg2000_handle_essence_element), (mxf_jpeg2000_create_caps),
	  (mxf_jpeg2000_init):
	  * gst/mxf/mxfjpeg2000.h:
	  * gst/mxf/mxfmpeg.c: (mxf_is_mpeg_essence_track),
	  (mxf_mpeg_video_handle_essence_element),
	  (mxf_mpeg_audio_handle_essence_element), (mxf_mpeg_es_create_caps),
	  (mxf_mpeg_create_caps), (mxf_mpeg_init):
	  * gst/mxf/mxfmpeg.h:
	  * gst/mxf/mxfparse.c: (mxf_essence_element_handler_register),
	  (mxf_essence_element_handler_find):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxfup.c: (mxf_is_up_essence_track),
	  (mxf_up_handle_essence_element), (mxf_up_rgba_create_caps),
	  (mxf_up_create_caps), (mxf_up_init):
	  * gst/mxf/mxfup.h:
	  Implement an essence element handling registry and use this instead
	  of an hardcoded, large if-then-else block.

2008-12-16 10:50:40 +0000  Edward Hervey <bilboed@bilboed.com>

	  tests/check/Makefile.am: Blacklist rfbsrc from the state change test.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Blacklist rfbsrc from the state change test.

2008-12-16 09:59:38 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/: Add push and pull mode unit test for mxfdemux.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/mxfdemux.c: (_pad_added), (_sink_chain),
	  (_sink_event), (_create_sink_pad), (_create_src_pad_push),
	  (_src_getrange), (_src_query), (_create_src_pad_pull),
	  (GST_START_TEST), (mxfdemux_suite):
	  * tests/check/elements/mxfdemux.h:
	  Add push and pull mode unit test for mxfdemux.

2008-12-16 08:35:05 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add initial documentation for the MXF plugin and mxfdemux.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/inspect/plugin-ladspa.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-mxf.xml:
	  * gst/mxf/mxfdemux.c:
	  * gst/mxf/mxfdemux.h:
	  Add initial documentation for the MXF plugin and mxfdemux.

2008-12-16 08:21:29 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Rename MXFMetadataBase methods to reflect that they belong to
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_resolve_references):
	  * gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve_default),
	  (mxf_metadata_base_class_init), (mxf_metadata_base_parse),
	  (mxf_metadata_base_resolve), (mxf_metadata_new),
	  (mxf_metadata_preface_resolve),
	  (mxf_metadata_content_storage_resolve),
	  (mxf_metadata_essence_container_data_resolve),
	  (mxf_metadata_generic_package_resolve),
	  (mxf_metadata_source_package_resolve),
	  (mxf_metadata_track_resolve), (mxf_metadata_sequence_resolve),
	  (mxf_metadata_dm_segment_resolve),
	  (mxf_metadata_generic_descriptor_resolve),
	  (mxf_metadata_multiple_descriptor_resolve):
	  * gst/mxf/mxfmetadata.h:
	  Rename MXFMetadataBase methods to reflect that they belong to
	  MXFMetadataBase and not MXFMetadata.

2008-12-15 18:12:26 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Return FALSE when parsing a metadata tag failed.
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c:
	  (mxf_metadata_wave_audio_essence_descriptor_handle_tag),
	  (mxf_metadata_aes3_audio_essence_descriptor_handle_tag):
	  * gst/mxf/mxfmetadata.c:
	  (mxf_metadata_multiple_descriptor_handle_tag):
	  Return FALSE when parsing a metadata tag failed.
	  Remove some useless return value assignments.

2008-12-15 17:27:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Convert the structural metadata to GstMiniObjects to make a lot of code easier and to make everything bette...
	  Original commit message from CVS:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxf.c: (plugin_init):
	  * gst/mxf/mxfaes-bwf.c:
	  (mxf_metadata_wave_audio_essence_descriptor_handle_tag),
	  (mxf_metadata_wave_audio_essence_descriptor_init),
	  (mxf_metadata_wave_audio_essence_descriptor_class_init),
	  (mxf_metadata_aes3_audio_essence_descriptor_finalize),
	  (mxf_metadata_aes3_audio_essence_descriptor_handle_tag),
	  (mxf_metadata_aes3_audio_essence_descriptor_init),
	  (mxf_metadata_aes3_audio_essence_descriptor_class_init),
	  (mxf_is_aes_bwf_essence_track), (mxf_bwf_create_caps),
	  (mxf_aes3_create_caps), (mxf_aes_bwf_create_caps),
	  (mxf_aes_bwf_init):
	  * gst/mxf/mxfaes-bwf.h:
	  * gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track),
	  (mxf_alaw_create_caps), (mxf_alaw_init):
	  * gst/mxf/mxfalaw.h:
	  * gst/mxf/mxfd10.c: (mxf_is_d10_essence_track),
	  (mxf_d10_create_caps), (mxf_d10_init):
	  * gst/mxf/mxfd10.h:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_find_package), (gst_mxf_demux_choose_package),
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_handle_metadata),
	  (gst_mxf_demux_handle_generic_container_essence_element),
	  (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query):
	  * gst/mxf/mxfdemux.h:
	  * gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track),
	  (mxf_dv_dif_create_caps), (mxf_dv_dif_init):
	  * gst/mxf/mxfdv-dif.h:
	  * gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track),
	  (mxf_jpeg2000_create_caps), (mxf_jpeg2000_init):
	  * gst/mxf/mxfjpeg2000.h:
	  * gst/mxf/mxfmetadata.c: (mxf_metadata_base_finalize),
	  (mxf_metadata_base_handle_tag), (mxf_metadata_base_resolve),
	  (mxf_metadata_base_init), (mxf_metadata_base_class_init),
	  (mxf_metadata_parse), (mxf_metadata_resolve),
	  (mxf_metadata_handle_tag), (mxf_metadata_class_init),
	  (mxf_metadata_init), (mxf_metadata_init_types),
	  (mxf_metadata_register), (mxf_metadata_new),
	  (mxf_metadata_preface_finalize), (mxf_metadata_preface_handle_tag),
	  (mxf_metadata_preface_resolve), (mxf_metadata_preface_init),
	  (mxf_metadata_preface_class_init),
	  (mxf_metadata_identification_finalize),
	  (mxf_metadata_identification_handle_tag),
	  (mxf_metadata_identification_init),
	  (mxf_metadata_identification_class_init),
	  (mxf_metadata_content_storage_finalize),
	  (mxf_metadata_content_storage_handle_tag),
	  (mxf_metadata_content_storage_resolve),
	  (mxf_metadata_content_storage_init),
	  (mxf_metadata_content_storage_class_init),
	  (mxf_metadata_essence_container_data_handle_tag),
	  (mxf_metadata_essence_container_data_resolve),
	  (mxf_metadata_essence_container_data_init),
	  (mxf_metadata_essence_container_data_class_init),
	  (mxf_metadata_generic_package_finalize),
	  (mxf_metadata_generic_package_handle_tag),
	  (mxf_metadata_generic_package_resolve),
	  (mxf_metadata_generic_package_init),
	  (mxf_metadata_generic_package_class_init),
	  (mxf_metadata_material_package_resolve),
	  (mxf_metadata_material_package_init),
	  (mxf_metadata_material_package_class_init),
	  (mxf_metadata_source_package_finalize),
	  (mxf_metadata_source_package_handle_tag),
	  (mxf_metadata_source_package_resolve),
	  (mxf_metadata_source_package_init),
	  (mxf_metadata_source_package_class_init),
	  (mxf_metadata_track_finalize), (mxf_metadata_track_handle_tag),
	  (mxf_metadata_track_resolve), (mxf_metadata_track_init),
	  (mxf_metadata_track_class_init),
	  (mxf_metadata_track_identifier_parse),
	  (mxf_metadata_timeline_track_handle_tag),
	  (mxf_metadata_timeline_track_init),
	  (mxf_metadata_timeline_track_class_init),
	  (mxf_metadata_event_track_handle_tag),
	  (mxf_metadata_event_track_init),
	  (mxf_metadata_event_track_class_init),
	  (mxf_metadata_static_track_init),
	  (mxf_metadata_static_track_class_init),
	  (mxf_metadata_sequence_finalize),
	  (mxf_metadata_sequence_handle_tag),
	  (mxf_metadata_sequence_resolve), (mxf_metadata_sequence_init),
	  (mxf_metadata_sequence_class_init),
	  (mxf_metadata_structural_component_handle_tag),
	  (mxf_metadata_structural_component_init),
	  (mxf_metadata_structural_component_class_init),
	  (mxf_metadata_timecode_component_handle_tag),
	  (mxf_metadata_timecode_component_init),
	  (mxf_metadata_timecode_component_class_init),
	  (mxf_metadata_source_clip_handle_tag),
	  (mxf_metadata_source_clip_resolve),
	  (mxf_metadata_source_clip_init),
	  (mxf_metadata_source_clip_class_init),
	  (mxf_metadata_dm_source_clip_finalize),
	  (mxf_metadata_dm_source_clip_handle_tag),
	  (mxf_metadata_dm_source_clip_init),
	  (mxf_metadata_dm_source_clip_class_init),
	  (mxf_metadata_dm_segment_finalize),
	  (mxf_metadata_dm_segment_handle_tag),
	  (mxf_metadata_dm_segment_resolve), (mxf_metadata_dm_segment_init),
	  (mxf_metadata_dm_segment_class_init),
	  (mxf_metadata_generic_descriptor_finalize),
	  (mxf_metadata_generic_descriptor_handle_tag),
	  (mxf_metadata_generic_descriptor_resolve),
	  (mxf_metadata_generic_descriptor_init),
	  (mxf_metadata_generic_descriptor_class_init),
	  (mxf_metadata_file_descriptor_handle_tag),
	  (mxf_metadata_file_descriptor_init),
	  (mxf_metadata_file_descriptor_class_init),
	  (mxf_metadata_generic_picture_essence_descriptor_handle_tag),
	  (mxf_metadata_generic_picture_essence_descriptor_init),
	  (mxf_metadata_generic_picture_essence_descriptor_class_init),
	  (mxf_metadata_generic_picture_essence_descriptor_set_caps),
	  (mxf_metadata_generic_sound_essence_descriptor_handle_tag),
	  (mxf_metadata_generic_sound_essence_descriptor_init),
	  (mxf_metadata_generic_sound_essence_descriptor_class_init),
	  (mxf_metadata_cdci_picture_essence_descriptor_handle_tag),
	  (mxf_metadata_cdci_picture_essence_descriptor_init),
	  (mxf_metadata_cdci_picture_essence_descriptor_class_init),
	  (mxf_metadata_rgba_picture_essence_descriptor_finalize),
	  (mxf_metadata_rgba_picture_essence_descriptor_handle_tag),
	  (mxf_metadata_rgba_picture_essence_descriptor_init),
	  (mxf_metadata_rgba_picture_essence_descriptor_class_init),
	  (mxf_metadata_generic_data_essence_descriptor_handle_tag),
	  (mxf_metadata_generic_data_essence_descriptor_init),
	  (mxf_metadata_generic_data_essence_descriptor_class_init),
	  (mxf_metadata_multiple_descriptor_finalize),
	  (mxf_metadata_multiple_descriptor_handle_tag),
	  (mxf_metadata_multiple_descriptor_resolve),
	  (mxf_metadata_multiple_descriptor_init),
	  (mxf_metadata_multiple_descriptor_class_init),
	  (mxf_metadata_locator_init), (mxf_metadata_locator_class_init),
	  (mxf_metadata_text_locator_finalize),
	  (mxf_metadata_text_locator_handle_tag),
	  (mxf_metadata_text_locator_init),
	  (mxf_metadata_text_locator_class_init),
	  (mxf_metadata_network_locator_finalize),
	  (mxf_metadata_network_locator_handle_tag),
	  (mxf_metadata_network_locator_init),
	  (mxf_metadata_network_locator_class_init):
	  * gst/mxf/mxfmetadata.h:
	  * gst/mxf/mxfmpeg.c:
	  (mxf_metadata_mpeg_video_descriptor_handle_tag),
	  (mxf_metadata_mpeg_video_descriptor_init),
	  (mxf_metadata_mpeg_video_descriptor_class_init),
	  (mxf_is_mpeg_essence_track), (mxf_mpeg_es_create_caps),
	  (mxf_mpeg_create_caps), (mxf_mpeg_init):
	  * gst/mxf/mxfmpeg.h:
	  * gst/mxf/mxfparse.c: (mxf_index_table_segment_parse),
	  (mxf_local_tag_add_to_hash_table):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxftypes.h:
	  * gst/mxf/mxfup.c: (mxf_is_up_essence_track), (mxf_up_create_caps),
	  (mxf_up_init):
	  * gst/mxf/mxfup.h:
	  Convert the structural metadata to GstMiniObjects to make a lot of
	  code easier and to make everything better extensible.
	  Add a "registry" for metadata handlers to improve extensibility even
	  more and to remove metadata type specifics from mxfdemux.
	  Clean up a lot of parts and add some more NULL checks.

2008-12-15 15:56:18 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/faac/gstfaac.c: Fix default for outputformat property.
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c:
	  Fix default for outputformat property.

2008-12-15 12:02:26 +0000  Wim Taymans <wim.taymans@gmail.com>

	  examples/app/: Fix example to unref after emiting the push-buffer action.
	  Original commit message from CVS:
	  * examples/app/appsrc-ra.c: (feed_data):
	  * examples/app/appsrc-seekable.c: (feed_data):
	  * examples/app/appsrc-stream.c: (read_data):
	  * examples/app/appsrc-stream2.c: (feed_data):
	  Fix example to unref after emiting the push-buffer action.
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	  (gst_app_src_push_buffer_full), (gst_app_src_push_buffer),
	  (gst_app_src_push_buffer_action):
	  Don't take the ref on the buffer in push-buffer action because it's too
	  awkward for bindings. Fixes #564482.

2008-12-13 16:26:39 +0000  Edward Hervey <bilboed@bilboed.com>

	  m4/Makefile.am: More .m4 that aren't shipped with gettext 0.17 anymore.
	  Original commit message from CVS:
	  * m4/Makefile.am:
	  More .m4 that aren't shipped with gettext 0.17 anymore.

2008-12-13 13:00:10 +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-13 08:06:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Add a generic handler for descriptive metadata so we can get some debug output and let users file...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_descriptive_metadata),
	  (gst_mxf_demux_handle_klv_packet):
	  Add a generic handler for descriptive metadata so we can get some
	  debug output and let users file bugs for unsupport descriptive
	  metadata schemes.

2008-12-12 10:29:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Major update of the TODO lists. There's still much to do.
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c:
	  * gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
	  * gst/mxf/mxfdemux.c:
	  * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
	  * gst/mxf/mxfjpeg2000.c:
	  * gst/mxf/mxfmpeg.c:
	  * gst/mxf/mxfup.c:
	  Major update of the TODO lists. There's still much to do.

2008-12-11 14:35:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Implement parsing of Event Tracks, Static Tracks, DM Segments and DM Source Clips as a preparation for desc...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_metadata_track),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_handle_metadata):
	  * gst/mxf/mxfparse.c: (mxf_metadata_track_parse),
	  (mxf_metadata_structural_component_parse),
	  (mxf_metadata_structural_component_reset):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxftypes.h:
	  Implement parsing of Event Tracks, Static Tracks, DM Segments
	  and DM Source Clips as a preparation for descriptive metadata
	  support. Next step is to implement SMPTE S380M, "Descriptive
	  Metadata Scheme-1".

2008-12-09 13:44:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfjpeg2000.c: Implement detection of the colorspace used by the
	  Original commit message from CVS:
	  * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	  Implement detection of the colorspace used by the
	  JPEG2000 codestream. XYZ colorspace isn't supported by
	  our decoders yet unfortunately.

2008-12-08 15:46:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfparse.c: All frame layout values except 0 are for interlaced video, not only 1 and 2.
	  Original commit message from CVS:
	  * gst/mxf/mxfparse.c:
	  (mxf_metadata_generic_picture_essence_descriptor_set_caps):
	  All frame layout values except 0 are for interlaced video,
	  not only 1 and 2.

2008-12-08 15:28:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Remove the concept of "final" metadata, broken files have updated metadata in following partitions even if ...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	  (gst_mxf_demux_handle_primer_pack),
	  (gst_mxf_demux_handle_metadata_preface),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_choose_package),
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_parse_footer_metadata),
	  (gst_mxf_demux_handle_klv_packet):
	  * gst/mxf/mxfdemux.h:
	  * gst/mxf/mxftypes.h:
	  Remove the concept of "final" metadata, broken files have updated
	  metadata in following partitions even if the current partition
	  is closed and complete.
	  If there's a second primer pack inside a partition ignore the second
	  one instead of throwing an error.
	  Store the type of a track (audio, video, timestamp, ...) inside the
	  track struct.
	  Post no-more-pads only once for a stream and not a second time
	  when switching the currently playing package.
	  When updating all streams make sure that we could select and find
	  a package instead of dereferencing NULL.
	  Allow descriptive metadata inside metadata parts of a file when
	  pulling the footer metadata too.
	  Only switch the currently playing package if a new one was chosen
	  and the metadata is in a resolved state. If the latter isn't true
	  postpone the switch until the metadata is resolved.
	  Pull the footer metadata directly after parsing the header partition
	  pack if it's not closed or not complete instead of waiting until
	  the next KLV packet.

2008-12-08 13:48:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfup.c: Don't create a subbuffer, instead just change the buffer metadata of the input buffer.
	  Original commit message from CVS:
	  * gst/mxf/mxfup.c: (mxf_up_handle_essence_element):
	  Don't create a subbuffer, instead just change the buffer metadata
	  of the input buffer.

2008-12-07 20:12:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Rename GstMXFPad to GstMXFDemuxPad to prevent name clashes with the GstMXFMuxPad in the muxer (la...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_pad_finalize),
	  (gst_mxf_demux_pad_class_init), (gst_mxf_demux_pad_init),
	  (gst_mxf_demux_remove_pad), (gst_mxf_demux_reset_metadata),
	  (gst_mxf_demux_combine_flows),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_handle_generic_container_essence_element),
	  (gst_mxf_demux_pull_random_index_pack), (gst_mxf_demux_loop),
	  (gst_mxf_demux_src_query):
	  Rename GstMXFPad to GstMXFDemuxPad to prevent name clashes
	  with the GstMXFMuxPad in the muxer (later).
	  Pull the random index pack only directly after skipping the run
	  in and don't allocate an array for it if parsing it failed.

2008-12-07 18:52:54 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfd10.c: Use the mapping data for storing the channel count and the width instead of parsing caps for every ...
	  Original commit message from CVS:
	  * gst/mxf/mxfd10.c: (mxf_d10_sound_handle_essence_element),
	  (mxf_d10_create_caps):
	  Use the mapping data for storing the channel count and the
	  width instead of parsing caps for every buffer.

2008-12-07 18:39:41 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfup.c: Handle the image start and end offsets, otherwise we output too large image buffers.
	  Original commit message from CVS:
	  * gst/mxf/mxfup.c: (mxf_up_handle_essence_element),
	  (mxf_up_rgba_create_caps):
	  Handle the image start and end offsets, otherwise we output
	  too large image buffers.

2008-12-07 17:57:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfmpeg.c: Set codec name tags for the MPEG audio essence.
	  Original commit message from CVS:
	  * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps):
	  Set codec name tags for the MPEG audio essence.

2008-12-07 17:16:29 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add initial support for uncompressed video essence (SMPTE S384M).
	  Original commit message from CVS:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_update_streams):
	  * gst/mxf/mxftypes.h:
	  * gst/mxf/mxfup.c: (mxf_is_up_essence_track),
	  (mxf_up_handle_essence_element), (mxf_up_rgba_create_caps),
	  (mxf_up_create_caps):
	  * gst/mxf/mxfup.h:
	  Add initial support for uncompressed video essence (SMPTE S384M).
	  * gst/mxf/mxfparse.c:
	  (mxf_metadata_rgba_picture_essence_descriptor_handle_tag),
	  (mxf_metadata_rgba_picture_essence_descriptor_reset):
	  Fix parsing of the RGBA descriptor and add support for parsing
	  the pixel layout.

2008-12-06 20:46:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: The previous partition field of the partition is relative to the current partition and not to the...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_parse_footer_metadata):
	  The previous partition field of the partition is relative
	  to the current partition and not to the offset of the header
	  partition.

2008-12-06 19:46:05 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfd10.c: Document decoding of the AES3 data and also skip the 32 bit header in the beginning of every buffer...
	  Original commit message from CVS:
	  * gst/mxf/mxfd10.c: (mxf_d10_sound_handle_essence_element):
	  Document decoding of the AES3 data and also skip the 32 bit
	  header in the beginning of every buffer, otherwise we get
	  one broken audio channel.

2008-12-05 12:26:02 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Implement parsing of the generic data essence descriptor.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	  (gst_mxf_demux_handle_metadata_generic_data_essence_descriptor),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_handle_metadata):
	  * gst/mxf/mxfdemux.h:
	  * gst/mxf/mxfparse.c:
	  (mxf_metadata_generic_data_essence_descriptor_handle_tag),
	  (mxf_metadata_generic_data_essence_descriptor_reset):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxftypes.h:
	  Implement parsing of the generic data essence descriptor.

2008-12-05 10:32:55 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Generalize some lines of codes that are more or less the same by a macro.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_resolve_references):
	  Generalize some lines of codes that are more or less the same
	  by a macro.

2008-12-04 20:11:17 +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:50:10 +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-04 17:51:37 +0000  Michael Smith <msmith@xiph.org>

	  gst/selector/gstinputselector.c: Ensure we emit notify::active-pad when auto-selecting a pad due to it having activit...
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c:
	  Ensure we emit notify::active-pad when auto-selecting a pad
	  due to it having activity and us not having an existing active
	  pad. Fixes #563147

2008-12-04 13:28:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Coding style fixes.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_resolve_references):
	  * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
	  * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	  Coding style fixes.
	  * gst/mxf/mxfmpeg.c: (mxf_mpeg_audio_handle_essence_element),
	  (mxf_mpeg_es_create_caps), (mxf_mpeg_create_caps):
	  Add support for MPEG, AC3, DTS audio.

2008-12-04 09:26:25 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Ignore zero sized essence elements. They're often inserted to fulfill the streaming requirements.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_generic_container_essence_element):
	  Ignore zero sized essence elements. They're often inserted
	  to fulfill the streaming requirements.

2008-12-04 08:50:48 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfparse.c: Fix setting of the height/width and PAR of video streams.
	  Original commit message from CVS:
	  * gst/mxf/mxfparse.c:
	  (mxf_metadata_generic_picture_essence_descriptor_set_caps):
	  Fix setting of the height/width and PAR of video streams.

2008-12-04 08:37:18 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add support for SMPTE D10 essence (SMPTE 386M).
	  Original commit message from CVS:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxfd10.c: (mxf_is_d10_essence_track),
	  (mxf_d10_picture_handle_essence_element),
	  (mxf_d10_sound_handle_essence_element), (mxf_d10_create_caps):
	  * gst/mxf/mxfd10.h:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_update_streams):
	  Add support for SMPTE D10 essence (SMPTE 386M).
	  * gst/mxf/mxfparse.c:
	  (mxf_metadata_generic_picture_essence_descriptor_set_caps):
	  Don't set width/height and PAR on the caps as those values are
	  wrong for most files (height is sometimes the height of a field
	  and aspect ratio is some random value).
	  * gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps),
	  (mxf_aes3_create_caps):
	  Fix calculation of block align if it isn't set in the descriptor.

2008-12-03 16:08:28 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add support for AES3 audio (SMPTE 382M).
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c:
	  (mxf_metadata_aes3_audio_essence_descriptor_handle_tag),
	  (mxf_metadata_aes3_audio_essence_descriptor_reset),
	  (mxf_aes3_handle_essence_element), (mxf_bwf_create_caps),
	  (mxf_aes3_create_caps), (mxf_aes_bwf_create_caps):
	  * gst/mxf/mxfaes-bwf.h:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	  (gst_mxf_demux_handle_metadata_aes3_audio_essence_descriptor),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_handle_metadata):
	  * gst/mxf/mxfdemux.h:
	  Add support for AES3 audio (SMPTE 382M).
	  * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
	  * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	  Fix coding style.

2008-12-03 13:17:41 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Improve debugging a bit.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_generic_container_essence_element):
	  Improve debugging a bit.

2008-12-03 11:43:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvparse.c: Check if strings are valid UTF8 before using them.
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (FLV_GET_STRING):
	  Check if strings are valid UTF8 before using them.

2008-12-03 10:15:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfparse.c: Remove FIXME, zero-ULs and UMIDs are really invalid and we can use them as "unset" value.
	  Original commit message from CVS:
	  * gst/mxf/mxfparse.c:
	  Remove FIXME, zero-ULs and UMIDs are really invalid and we can
	  use them as "unset" value.

2008-12-03 08:04:38 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Use a single "track_%u" src pad template and use the track ID of the playback package for the pad...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_base_init):
	  Use a single "track_%u" src pad template and use the track ID
	  of the playback package for the pad name instead of the track ID
	  of the source package, as the latter could be the same for
	  more than one track if they're in different packages.

2008-12-02 06:21:21 +0000  David Schleef <ds@schleef.org>

	  ext/jp2k/gstjasperenc.c: Some compilers complain about uninitialized variable; add a g_assert_not_reached()
	  Original commit message from CVS:
	  * ext/jp2k/gstjasperenc.c: Some compilers complain about
	  uninitialized variable; add a g_assert_not_reached()

2008-12-01 19:36:35 +0000  이문형 <iwings@gmail.com>

	  gst-libs/gst/app/gstappsrc.c: Don't forget to release the lock again if we bail out because some pad is flushing or w...
	  Original commit message from CVS:
	  Patch by: 이문형 <iwings at gmail dot com>
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_push_buffer):
	  Don't forget to release the lock again if we bail out because some
	  pad is flushing or we've reached EOS, otherwise things will lock up
	  next time _push_buffer() is called (#562802).

2008-12-01 16:37:45 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/qtmux/atoms.c: Fix mj2 sample description metadata construction.
	  Original commit message from CVS:
	  * gst/qtmux/atoms.c: (build_jp2h_extension):
	  Fix mj2 sample description metadata construction.

2008-12-01 15:50:40 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfjpeg2000.c: Use new image/x-jpc caps for the raw JPEG2000 codestream.
	  Original commit message from CVS:
	  * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	  Use new image/x-jpc caps for the raw JPEG2000 codestream.
	  For now assume sRGB as colorspace, has to be read from the descriptor
	  somehow later.

2008-12-01 15:48:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/jp2k/: Add image/x-jpc caps name for real, raw JPEG2000 codestream data.
	  Original commit message from CVS:
	  * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_sink_setcaps):
	  * ext/jp2k/gstjasperenc.c: (gst_jasper_enc_reset),
	  (gst_jasper_enc_set_src_caps), (gst_jasper_enc_init_encoder),
	  (gst_jasper_enc_sink_setcaps), (gst_jasper_enc_get_data):
	  * ext/jp2k/gstjasperenc.h:
	  Add image/x-jpc caps name for real, raw JPEG2000 codestream data.
	  In 0.11 we should merge image/x-j2c and image/x-jpc and simply drop
	  the non-standard boxing in the jasper elements and handle it in
	  qtmux/qtdemux.
	  image/x-jpc will be used by mxfdemux later.
	  Also add support for JP2 output in jp2kenc.

2008-12-01 15:24:37 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add the codec name, and if possible the avg bitrate, to the pad's taglist.
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps):
	  * gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_generic_container_essence_element):
	  * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
	  * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	  * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps),
	  (mxf_mpeg_create_caps):
	  Add the codec name, and if possible the avg bitrate, to the pad's taglist.

2008-12-01 14:25:19 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: If the preface references a primary package use this as the default playback package unless one w...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_choose_package):
	  If the preface references a primary package use this as the default
	  playback package unless one was specified by the "package" property.
	  If there's no preface primary package still try to use the first
	  material package.

2008-11-30 17:58:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: If there's no descriptor for the track in the track's source package and there's a single descrip...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_resolve_references):
	  If there's no descriptor for the track in the track's source
	  package and there's a single descriptor without a linked track
	  assume that it belongs to this track.

2008-11-30 17:42:30 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Some random cleanup.
	  Original commit message from CVS:
	  * gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track):
	  * gst/mxf/mxfalaw.h:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_update_streams):
	  * gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track):
	  * gst/mxf/mxfjpeg2000.h:
	  * gst/mxf/mxfmpeg.c: (mxf_is_mpeg_essence_track),
	  (mxf_mpeg_es_create_caps), (mxf_mpeg_create_caps):
	  * gst/mxf/mxfmpeg.h:
	  Some random cleanup.

2008-11-30 17:26:55 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add property to select the top-level source package or material package that should be used for playback.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_remove_pads),
	  (gst_mxf_demux_reset), (gst_mxf_demux_find_package),
	  (gst_mxf_demux_choose_package),
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_set_property),
	  (gst_mxf_demux_get_property), (gst_mxf_demux_finalize),
	  (gst_mxf_demux_class_init):
	  * gst/mxf/mxfdemux.h:
	  * gst/mxf/mxfparse.c: (mxf_umid_from_string):
	  * gst/mxf/mxfparse.h:
	  Add property to select the top-level source package or material
	  package that should be used for playback.

2008-11-30 16:21:42 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Make sure that demux->offset has the correct value before calling any gst_mxf_demux_handle_* func...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_random_index_pack):
	  Make sure that demux->offset has the correct value before
	  calling any gst_mxf_demux_handle_* functions.

2008-11-30 14:12:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Set the correct MPEG video version if possible and add support for MPEG4 video, including codec_data.
	  Original commit message from CVS:
	  * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	  * gst/mxf/mxfmpeg.c: (mxf_mpeg_video_create_caps):
	  Set the correct MPEG video version if possible and add support
	  for MPEG4 video, including codec_data.

2008-11-29 20:25:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add initial support for JPEG2000 encoded video essence.
	  Original commit message from CVS:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_update_streams):
	  * gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_video_essence_track),
	  (mxf_jpeg2000_handle_essence_element), (mxf_jpeg2000_create_caps):
	  * gst/mxf/mxfjpeg2000.h:
	  Add initial support for JPEG2000 encoded video essence.
	  * gst/mxf/mxfparse.c:
	  (mxf_metadata_generic_picture_essence_descriptor_set_caps):
	  Set the framerate in the video caps.

2008-11-29 20:07:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/jp2k/gstjasperdec.c: Don't unref the element instance if we don't own a reference.
	  Original commit message from CVS:
	  * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_sink_setcaps):
	  Don't unref the element instance if we don't own a reference.

2008-11-29 13:33:30 +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-28 18:55:01 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Only try to pull the random index pack at the end of file one time and not for every single packe...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_random_index_pack):
	  Only try to pull the random index pack at the end of file one time
	  and not for every single packet if it fails.

2008-11-28 18:13:30 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add support for A-Law encoded audio essence (SMPTE 388M and 382M).
	  Original commit message from CVS:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps):
	  * gst/mxf/mxfalaw.c: (mxf_is_alaw_audio_essence_track),
	  (mxf_alaw_handle_essence_element), (mxf_alaw_create_caps):
	  * gst/mxf/mxfalaw.h:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_update_streams):
	  Add support for A-Law encoded audio essence (SMPTE 388M and 382M).

2008-11-28 14:22:50 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec file with latest changes
	  Original commit message from CVS:
	  update spec file with latest changes

2008-11-28 11:24:24 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Implement parsing of index table segments, which will later be used for seeking.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset),
	  (gst_mxf_demux_handle_index_table_segment):
	  * gst/mxf/mxfdemux.h:
	  * gst/mxf/mxfparse.c: (mxf_index_table_segment_parse),
	  (mxf_index_table_segment_reset):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxftypes.h:
	  Implement parsing of index table segments, which will later be
	  used for seeking.

2008-11-28 09:49:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Update audioresample documentation for the new element name.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-amrwb.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-ladspa.xml:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-mplex.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-x264.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  * gst/audioresample/gstaudioresample.c:
	  Update audioresample documentation for the new element name.

2008-11-28 08:37:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/audioresample/gstaudioresample.c: And now also update the debug category from audioresample to legacyresample.
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c:
	  And now also update the debug category from audioresample
	  to legacyresample.

2008-11-27 19:27:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Remove speexresample from the build system too.
	  Original commit message from CVS:
	  * configure.ac:
	  Remove speexresample from the build system too.

2008-11-27 19:22:42 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Remove old speexresample files.
	  Original commit message from CVS:
	  * gst/speexresample/Makefile.am:
	  * gst/speexresample/README:
	  * gst/speexresample/arch.h:
	  * gst/speexresample/fixed_arm4.h:
	  * gst/speexresample/fixed_arm5e.h:
	  * gst/speexresample/fixed_bfin.h:
	  * gst/speexresample/fixed_debug.h:
	  * gst/speexresample/fixed_generic.h:
	  * gst/speexresample/gstspeexresample.c:
	  * gst/speexresample/gstspeexresample.h:
	  * gst/speexresample/resample.c:
	  * gst/speexresample/resample_sse.h:
	  * gst/speexresample/speex_resampler.h:
	  * gst/speexresample/speex_resampler_double.c:
	  * gst/speexresample/speex_resampler_float.c:
	  * gst/speexresample/speex_resampler_int.c:
	  * gst/speexresample/speex_resampler_wrapper.h:
	  * tests/check/elements/speexresample.c:
	  Remove old speexresample files.

2008-11-27 17:07:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  docs/plugins/inspect/plugin-speexresample.xml: Remove old file.
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-speexresample.xml:
	  Remove old file.

2008-11-27 17:06:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  docs/plugins/inspect/plugin-legacyresample.xml: Add missing file.
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-legacyresample.xml:
	  Add missing file.

2008-11-27 16:58:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Integrate the moved audioresample into the build system and rename it to legacyresample. Fixes bug #558124.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-aacparse.xml:
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-amrparse.xml:
	  * docs/plugins/inspect/plugin-app.xml:
	  * docs/plugins/inspect/plugin-bayer.xml:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdaudio.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-celt.xml:
	  * docs/plugins/inspect/plugin-dccp.xml:
	  * docs/plugins/inspect/plugin-dfbvideosink.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-dvb.xml:
	  * docs/plugins/inspect/plugin-dvdspu.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-fbdevsink.xml:
	  * docs/plugins/inspect/plugin-festival.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstinterlace.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-jack.xml:
	  * docs/plugins/inspect/plugin-ladspa.xml:
	  * docs/plugins/inspect/plugin-metadata.xml:
	  * docs/plugins/inspect/plugin-mms.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	  * docs/plugins/inspect/plugin-mpegvideoparse.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-mve.xml:
	  * docs/plugins/inspect/plugin-mythtv.xml:
	  * docs/plugins/inspect/plugin-nas.xml:
	  * docs/plugins/inspect/plugin-neon.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-nuvdemux.xml:
	  * docs/plugins/inspect/plugin-oss4.xml:
	  * docs/plugins/inspect/plugin-rawparse.xml:
	  * docs/plugins/inspect/plugin-real.xml:
	  * docs/plugins/inspect/plugin-rfbsrc.xml:
	  * docs/plugins/inspect/plugin-scaletempo.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-sdp.xml:
	  * docs/plugins/inspect/plugin-selector.xml:
	  * docs/plugins/inspect/plugin-sndfile.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-speexresample.xml:
	  * docs/plugins/inspect/plugin-stereo.xml:
	  * docs/plugins/inspect/plugin-subenc.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-twolame.xml:
	  * docs/plugins/inspect/plugin-vcdsrc.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-vmnc.xml:
	  * docs/plugins/inspect/plugin-wildmidi.xml:
	  * docs/plugins/inspect/plugin-y4menc.xml:
	  * gst/audioresample/gstaudioresample.c: (plugin_init):
	  * gst/audioresample/Makefile.am:
	  * tests/check/Makefile.am:
	  * tests/check/elements/audioresample.c: (setup_audioresample),
	  (GST_START_TEST):
	  Integrate the moved audioresample into the build system and
	  rename it to legacyresample. Fixes bug #558124.

2008-11-27 16:26:39 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Implement parsing of the random index pack, which provides a seek table (including body sid) to the start o...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset),
	  (gst_mxf_demux_handle_random_index_pack),
	  (gst_mxf_demux_pull_random_index_pack), (gst_mxf_demux_loop):
	  * gst/mxf/mxfdemux.h:
	  * gst/mxf/mxfparse.c: (mxf_random_index_pack_parse):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxftypes.h:
	  Implement parsing of the random index pack, which provides a seek
	  table (including body sid) to the start of partition packs.
	  Later this will be used for reading all index table segments of
	  the complete file efficiently.

2008-11-27 10:09:53 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add fundamental support for DV-DIF essence streams.
	  Original commit message from CVS:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_handle_klv_packet):
	  * gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track),
	  (mxf_dv_dif_handle_essence_element), (mxf_dv_dif_create_caps):
	  * gst/mxf/mxfdv-dif.h:
	  * gst/mxf/mxfparse.c: (mxf_is_descriptive_metadata):
	  * gst/mxf/mxfparse.h:
	  Add fundamental support for DV-DIF essence streams.
	  Handle descriptive metadata packets as metadata packets.

2008-11-27 08:49:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.*: Only try to pull the footer metadata once and not on every KLV packet if it failed before.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset),
	  (gst_mxf_demux_handle_klv_packet):
	  * gst/mxf/mxfdemux.h:
	  Only try to pull the footer metadata once and not on every KLV packet
	  if it failed before.

2008-11-26 12:40:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/rtpsession.c: Make obtain_source return an aditional ref so that we don't lose our ref to it when a se...
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsession.c: (obtain_source),
	  (rtp_session_create_source), (rtp_session_process_rtp),
	  (rtp_session_process_sr), (rtp_session_process_rr),
	  (rtp_session_process_sdes), (rtp_session_process_bye):
	  Make obtain_source return an aditional ref so that we don't lose our ref
	  to it when a session cleanup occurs when we are emiting a signal.
	  Emit the on_new_ssrc signal for the CSRC, not the SSRC.
	  Fixes #562319.

2008-11-26 12:02:21 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Reset the sync parameters when clearing the payload type map too.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_reset_sync),
	  (gst_rtp_bin_clear_pt_map):
	  Reset the sync parameters when clearing the payload type map too.
	  Fixes #562312.

2008-11-26 11:44:37 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.*: Remove a lot of per stream state that is not needed and pass new info in the method call.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (get_client),
	  (gst_rtp_bin_reset_sync), (gst_rtp_bin_associate),
	  (gst_rtp_bin_handle_sync), (create_stream),
	  (gst_rtp_bin_class_init), (new_ssrc_pad_found):
	  * gst/rtpmanager/gstrtpbin.h:
	  Remove a lot of per stream state that is not needed and pass new info in
	  the method call.
	  Add signal to reset sync parameters.
	  Avoid parsing the caps to get a clock_base, we get this from the sync
	  signal now.

2008-11-26 11:30:28 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Properly combine flow returns of the source pads.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_pad_init),
	  (gst_mxf_demux_reset_metadata), (gst_mxf_demux_combine_flows),
	  (gst_mxf_demux_handle_generic_container_essence_element):
	  Properly combine flow returns of the source pads.
	  Improve debugging and reset pad fields together with the
	  metadata to prevent invalid memory references.
	  * gst/mxf/mxfparse.c: (mxf_metadata_preface_parse):
	  Fix typo.

2008-11-26 10:37:34 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: When memset'ing the descriptors to zeroes only touch the part of this descriptor, not it's parent type.
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c:
	  (mxf_metadata_wave_audio_essence_descriptor_reset):
	  * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_reset):
	  * gst/mxf/mxfparse.c: (mxf_metadata_file_descriptor_handle_tag),
	  (mxf_metadata_file_descriptor_reset),
	  (mxf_metadata_generic_sound_essence_descriptor_reset),
	  (mxf_metadata_generic_picture_essence_descriptor_reset),
	  (mxf_metadata_cdci_picture_essence_descriptor_reset),
	  (mxf_metadata_rgba_picture_essence_descriptor_reset),
	  (mxf_metadata_multiple_descriptor_reset):
	  * gst/mxf/mxfparse.h:
	  When memset'ing the descriptors to zeroes only touch the part
	  of this descriptor, not it's parent type.
	  Set correct default values for all metadata fields.

2008-11-26 04:57:22 +0000  David Schleef <ds@schleef.org>

	  gst/mpegdemux/gstmpegtsdemux.*: Enable latency code, since we're definitely after 0.10.12
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  * gst/mpegdemux/gstmpegtsdemux.h:
	  Enable latency code, since we're definitely after 0.10.12

2008-11-25 18:28:18 +0000  Jonathan Matthew <notverysmart@gmail.com>

	  ext/spc/gstspc.c: Post an error and push EOS when we can't start playback for some reason. also avoid a crash when fe...
	  Original commit message from CVS:
	  Patch by: Jonathan Matthew <notverysmart at gmail dot com>
	  * ext/spc/gstspc.c: (gst_spc_dec_sink_event), (spc_setup):
	  Post an error and push EOS when we can't start playback for some reason.
	  also avoid a crash when fed an empty file. Fixes #480543.

2008-11-25 16:37:50 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/speexresample.c: Make unit test again faster to prevent timeouts with valgrind.
	  Original commit message from CVS:
	  * tests/check/elements/speexresample.c: (test_pipeline):
	  Make unit test again faster to prevent timeouts with valgrind.

2008-11-25 15:12:06 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Fix event leak.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_event_send_rtcp_src):
	  Fix event leak.

2008-11-25 14:49:34 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Set video dimensions and pixel aspect ratio on the caps.
	  Original commit message from CVS:
	  * gst/mxf/mxfmpeg.c: (mxf_mpeg_video_create_caps):
	  * gst/mxf/mxfparse.c:
	  (mxf_metadata_generic_picture_essence_descriptor_set_caps):
	  * gst/mxf/mxfparse.h:
	  Set video dimensions and pixel aspect ratio on the caps.

2008-11-25 10:26:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Add initial parsing of RGBA descriptors.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	  (gst_mxf_demux_handle_metadata_generic_descriptor),
	  (gst_mxf_demux_handle_metadata_file_descriptor),
	  (gst_mxf_demux_handle_metadata_multiple_descriptor),
	  (gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_rgba_picture_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_mpeg_video_descriptor),
	  (gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_handle_metadata):
	  * gst/mxf/mxfdemux.h:
	  * gst/mxf/mxfparse.c:
	  (mxf_metadata_rgba_picture_essence_descriptor_handle_tag),
	  (mxf_metadata_rgba_picture_essence_descriptor_reset):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxftypes.h:
	  Add initial parsing of RGBA descriptors.
	  Don't initialize descriptor GArray with zeroes.

2008-11-25 09:38:26 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Rewrite parsing of descriptors to go top-down instead of bottom-up which makes it possible to have the buff...
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c:
	  (mxf_metadata_wave_audio_essence_descriptor_handle_tag):
	  * gst/mxf/mxfaes-bwf.h:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_metadata_generic_descriptor),
	  (gst_mxf_demux_handle_metadata_file_descriptor),
	  (gst_mxf_demux_handle_metadata_multiple_descriptor),
	  (gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_mpeg_video_descriptor),
	  (gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_handle_metadata):
	  * gst/mxf/mxfmpeg.c:
	  (mxf_metadata_mpeg_video_descriptor_handle_tag):
	  * gst/mxf/mxfmpeg.h:
	  * gst/mxf/mxfparse.c: (mxf_partition_pack_parse),
	  (mxf_primer_pack_parse), (mxf_metadata_preface_parse),
	  (mxf_metadata_identification_parse),
	  (mxf_metadata_content_storage_parse),
	  (mxf_metadata_essence_container_data_parse),
	  (mxf_metadata_generic_package_parse), (mxf_metadata_track_parse),
	  (mxf_metadata_sequence_parse),
	  (mxf_metadata_structural_component_parse),
	  (mxf_metadata_descriptor_parse),
	  (mxf_metadata_generic_descriptor_handle_tag),
	  (mxf_metadata_generic_descriptor_reset),
	  (mxf_metadata_file_descriptor_handle_tag),
	  (mxf_metadata_generic_sound_essence_descriptor_handle_tag),
	  (mxf_metadata_generic_picture_essence_descriptor_handle_tag),
	  (mxf_metadata_cdci_picture_essence_descriptor_handle_tag),
	  (mxf_metadata_multiple_descriptor_handle_tag),
	  (mxf_metadata_locator_parse):
	  * gst/mxf/mxfparse.h:
	  Rewrite parsing of descriptors to go top-down instead of bottom-up
	  which makes it possible to have the buffer data non-writable.
	  Improve debugging a bit.

2008-11-25 00:20:22 +0000  Michael Smith <msmith@xiph.org>

	  Add new directory for new acmmp3dec plugin
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  Add new directory for new acmmp3dec plugin
	  * sys/acmenc/Makefile.am:
	  * sys/acmenc/acmmp3dec.c:
	  Add new acmmp3dec plugin, which uses ACM for decoding mp3 on windows.

2008-11-24 11:31:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Make sure to only output generic container essence elements for a track if the body SID of the su...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c:
	  (gst_mxf_demux_handle_generic_container_essence_element):
	  Make sure to only output generic container essence elements
	  for a track if the body SID of the surrounding partition is
	  the same as the body SID of the track's source package.

2008-11-24 11:17:19 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvdemux.c: Fix non key unit seeking by always going to the previous keyframe. Mark the discont flag when ...
	  Original commit message from CVS:
	  2008-11-24  Julien Moutte  <julien@fluendo.com>
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_find_offset),
	  (gst_flv_demux_handle_seek_push),
	  (gst_flv_demux_handle_seek_pull):
	  Fix non key unit seeking by always going to the previous
	  keyframe. Mark
	  the discont flag when we've moved in the file.
	  * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate): MP3
	  streams
	  are parsed already, makes autoplugged pipelines shorter.

2008-11-24 10:46:01 +0000  vanista <vanista@gmail.com>

	  gst/mpegtsmux/: Add initial support for muxing AC3/DTS/LPCM into MPEG TS.
	  Original commit message from CVS:
	  Patch by: vanista <vanista at gmail dot com>
	  * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
	  * gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new):
	  Add initial support for muxing AC3/DTS/LPCM into MPEG TS.
	  Fixes bug #550613.

2008-11-24 10:41:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Allow non-MXF KLV packets and just drop them instead of throwing an error and handle 9 byte product version...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_klv_packet),
	  (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_chain):
	  * gst/mxf/mxfparse.c: (mxf_product_version_parse),
	  (mxf_metadata_identification_parse),
	  (mxf_metadata_content_storage_parse):
	  Allow non-MXF KLV packets and just drop them instead of throwing
	  an error and handle 9 byte product versions as written by Avid.
	  This doesn't add support for the non-standard Avid MXF files
	  but at least makes it possible to parse their header metadata.
	  Fix a copy&paste error in debug output.

2008-11-23 17:50:08 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/jack/: Query port latencies for sink/src delays.
	  Original commit message from CVS:
	  * ext/jack/gstjackaudiosink.c:
	  * ext/jack/gstjackaudiosrc.c:
	  Query port latencies for sink/src delays.
	  * ext/jack/gstjackbin.c:
	  No printf please.

2008-11-23 11:25:30 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/mxfdemux.c: Actually we support a length stored inside 8 bytes but it must be smaller than G_MAXUINT for GstB...
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_klv_packet),
	  (gst_mxf_demux_chain):
	  Actually we support a length stored inside 8 bytes but it must
	  be smaller than G_MAXUINT for GstBuffer.

2008-11-23 11:16:36 +0000  Tal Shalif <tshalif@nargila.org>

	  ext/resindvd/resindvdsrc.c: Fix format string. Fixes bug #561992.
	  Original commit message from CVS:
	  Patch by: Tal Shalif <tshalif at nargila dot org>
	  * ext/resindvd/resindvdsrc.c:
	  (rsn_dvdsrc_prepare_streamsinfo_event):
	  Fix format string. Fixes bug #561992.

2008-11-22 15:31:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/rtpsession.c: Add property to configure the RTCP MTU.
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (rtp_session_init), (rtp_session_set_property),
	  (rtp_session_get_property):
	  Add property to configure the RTCP MTU.

2008-11-22 15:24:47 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/rtpsession.c: Add G_PARAM_STATIC_STRINGS.
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (copy_source), (rtp_session_create_sources),
	  (rtp_session_get_property):
	  Add G_PARAM_STATIC_STRINGS.
	  Add property to return a GValueArray of all known RTPSources in the
	  session.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	  (rtp_source_create_sdes), (rtp_source_set_property),
	  (rtp_source_get_property):
	  Remove properties to set the various SDES items, an application is never
	  supposed to change the RTPSource data.
	  Change the SDES getter properties to one SDES property that returns all
	  SDES items in a GstStructure.

2008-11-22 15:02:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/speexresample.c: Make the unit test a bit faster to prevent timeouts, especially with valgrind.
	  Original commit message from CVS:
	  * tests/check/elements/speexresample.c: (GST_START_TEST):
	  Make the unit test a bit faster to prevent timeouts, especially
	  with valgrind.

2008-11-22 14:51:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Some more format string fixes and usage of guint instead of gint where negative values don't make sense.
	  Original commit message from CVS:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_push_src_event),
	  (gst_mxf_demux_handle_header_metadata_update_streams):
	  * gst/mxf/mxfparse.c: (gst_mxf_ul_hash),
	  (mxf_partition_pack_parse), (mxf_primer_pack_parse),
	  (mxf_metadata_preface_parse), (mxf_metadata_content_storage_parse),
	  (mxf_metadata_generic_package_parse),
	  (mxf_metadata_sequence_parse),
	  (mxf_metadata_generic_descriptor_parse),
	  (mxf_metadata_multiple_descriptor_parse):
	  Some more format string fixes and usage of guint instead of gint
	  where negative values don't make sense.

2008-11-22 14:42:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mxf/: Use guint instead of guint64 or gsize for all buffer sizes and use correct format strings for them. Only lo...
	  Original commit message from CVS:
	  * gst/mxf/mxfaes-bwf.c:
	  (mxf_metadata_wave_audio_essence_descriptor_parse):
	  * gst/mxf/mxfaes-bwf.h:
	  * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_range),
	  (gst_mxf_demux_pull_klv_packet),
	  (gst_mxf_demux_parse_footer_metadata),
	  (gst_mxf_demux_handle_klv_packet),
	  (gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_chain):
	  * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse):
	  * gst/mxf/mxfmpeg.h:
	  * gst/mxf/mxfparse.c: (mxf_timestamp_parse), (mxf_fraction_parse),
	  (mxf_utf16_to_utf8), (mxf_product_version_parse),
	  (mxf_partition_pack_parse), (mxf_primer_pack_parse),
	  (mxf_local_tag_parse), (mxf_metadata_preface_parse),
	  (mxf_metadata_identification_parse),
	  (mxf_metadata_content_storage_parse),
	  (mxf_metadata_essence_container_data_parse),
	  (mxf_metadata_generic_package_parse), (mxf_metadata_track_parse),
	  (mxf_metadata_sequence_parse),
	  (mxf_metadata_structural_component_parse),
	  (mxf_metadata_generic_descriptor_parse),
	  (mxf_metadata_file_descriptor_parse),
	  (mxf_metadata_generic_sound_essence_descriptor_parse),
	  (mxf_metadata_generic_picture_essence_descriptor_parse),
	  (mxf_metadata_cdci_picture_essence_descriptor_parse),
	  (mxf_metadata_multiple_descriptor_parse),
	  (mxf_metadata_locator_parse):
	  * gst/mxf/mxfparse.h:
	  Use guint instead of guint64 or gsize for all buffer sizes and
	  use correct format strings for them. Only local tag set sizes
	  are still guint16 as they can't be larger.
	  Only allow KLV packets of sizes below 1<<32 as GStreamer only uses
	  guint for buffer sizes. The MXF standard allows packet sizes up
	  to 1<<64.

2008-11-22 13:17:24 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Also unref the target pad for unknown pads.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
	  Also unref the target pad for unknown pads.

2008-11-22 08:23:17 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/dccp/gstdccp.c: Use G_GSIZE_FORMAT instead of "%u" for a size_t variable in the format string to prevent a compil...
	  Original commit message from CVS:
	  * gst/dccp/gstdccp.c: (gst_dccp_socket_write):
	  Use G_GSIZE_FORMAT instead of "%u" for a size_t variable in
	  the format string to prevent a compiler warning.

2008-11-21 16:17:22 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/gstrtpbin.c: Release the right pads on rtpbin. Fixes #561752.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester at tester dot ca>
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
	  Release the right pads on rtpbin. Fixes #561752.

2008-11-21 15:45:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: Add a "filter-length" property that maps to the quality values for compatibilty...
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_class_init), (gst_speex_resample_set_property),
	  (gst_speex_resample_get_property):
	  Add a "filter-length" property that maps to the quality values
	  for compatibilty with audioresample.

2008-11-21 10:37:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Remove the "experimental" flag from the deinterlace2 plugin.
	  Original commit message from CVS:
	  * configure.ac:
	  Remove the "experimental" flag from the deinterlace2 plugin.

2008-11-21 10:27:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add first version of an MXF demuxer. Currently it supports
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/mxf/Makefile.am:
	  * gst/mxf/mxf.c: (plugin_init):
	  * gst/mxf/mxfaes-bwf.c:
	  (mxf_metadata_wave_audio_essence_descriptor_parse),
	  (mxf_metadata_wave_audio_essence_descriptor_reset),
	  (mxf_is_aes_bwf_essence_track), (mxf_bwf_handle_essence_element),
	  (mxf_bwf_create_caps), (mxf_aes_bwf_create_caps):
	  * gst/mxf/mxfaes-bwf.h:
	  * gst/mxf/mxfdemux.c: (gst_mxf_pad_finalize),
	  (gst_mxf_pad_class_init), (gst_mxf_pad_init),
	  (gst_mxf_demux_flush), (gst_mxf_demux_remove_pad),
	  (gst_mxf_demux_reset_mxf_state), (gst_mxf_demux_reset_metadata),
	  (gst_mxf_demux_reset), (gst_mxf_demux_pull_range),
	  (gst_mxf_demux_push_src_event),
	  (gst_mxf_demux_handle_partition_pack),
	  (gst_mxf_demux_handle_primer_pack),
	  (gst_mxf_demux_handle_metadata_preface),
	  (gst_mxf_demux_handle_metadata_identification),
	  (gst_mxf_demux_handle_metadata_content_storage),
	  (gst_mxf_demux_handle_metadata_essence_container_data),
	  (gst_mxf_demux_handle_metadata_material_package),
	  (gst_mxf_demux_handle_metadata_source_package),
	  (gst_mxf_demux_handle_metadata_track),
	  (gst_mxf_demux_handle_metadata_sequence),
	  (gst_mxf_demux_handle_metadata_structural_component),
	  (gst_mxf_demux_handle_metadata_generic_descriptor),
	  (gst_mxf_demux_handle_metadata_file_descriptor),
	  (gst_mxf_demux_handle_metadata_multiple_descriptor),
	  (gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_mpeg_video_descriptor),
	  (gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor),
	  (gst_mxf_demux_handle_metadata_locator),
	  (gst_mxf_demux_handle_header_metadata_resolve_references),
	  (gst_mxf_demux_handle_header_metadata_update_streams),
	  (gst_mxf_demux_handle_metadata),
	  (gst_mxf_demux_handle_generic_container_system_item),
	  (gst_mxf_demux_handle_generic_container_essence_element),
	  (gst_mxf_demux_handle_random_index_pack),
	  (gst_mxf_demux_handle_index_table_segment),
	  (gst_mxf_demux_pull_klv_packet),
	  (gst_mxf_demux_parse_footer_metadata),
	  (gst_mxf_demux_handle_klv_packet),
	  (gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_loop),
	  (gst_mxf_demux_chain), (gst_mxf_demux_src_event),
	  (gst_mxf_demux_src_query_type), (gst_mxf_demux_src_query),
	  (gst_mxf_demux_sink_activate), (gst_mxf_demux_sink_activate_push),
	  (gst_mxf_demux_sink_activate_pull), (gst_mxf_demux_sink_event),
	  (gst_mxf_demux_change_state), (gst_mxf_demux_finalize),
	  (gst_mxf_demux_base_init), (gst_mxf_demux_class_init),
	  (gst_mxf_demux_init):
	  * gst/mxf/mxfdemux.h:
	  * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse),
	  (mxf_metadata_mpeg_video_descriptor_reset),
	  (mxf_is_mpeg_video_essence_track),
	  (mxf_mpeg_video_handle_essence_element),
	  (mxf_mpeg_video_create_caps):
	  * gst/mxf/mxfmpeg.h:
	  * gst/mxf/mxfparse.c: (mxf_is_mxf_packet), (mxf_is_partition_pack),
	  (mxf_is_header_partition_pack), (mxf_is_body_partition_pack),
	  (mxf_is_footer_partition_pack), (mxf_is_fill),
	  (mxf_is_primer_pack), (mxf_is_metadata),
	  (mxf_is_random_index_pack), (mxf_is_index_table_segment),
	  (mxf_is_generic_container_system_item),
	  (mxf_is_generic_container_essence_element),
	  (mxf_is_generic_container_essence_container_label),
	  (mxf_ul_is_equal), (mxf_ul_is_zero), (mxf_ul_to_string),
	  (mxf_umid_is_equal), (mxf_umid_is_zero), (mxf_umid_to_string),
	  (gst_mxf_ul_hash), (gst_mxf_ul_equal), (mxf_timestamp_parse),
	  (mxf_timestamp_is_unknown), (mxf_timestamp_compare),
	  (mxf_fraction_parse), (mxf_utf16_to_utf8),
	  (mxf_product_version_parse), (mxf_partition_pack_parse),
	  (mxf_partition_pack_reset), (_mxf_mapping_ul_free),
	  (mxf_primer_pack_parse), (mxf_primer_pack_reset),
	  (mxf_local_tag_parse), (gst_mxf_local_tag_free),
	  (gst_metadata_add_custom_tag), (mxf_metadata_preface_parse),
	  (mxf_metadata_preface_reset), (mxf_metadata_identification_parse),
	  (mxf_metadata_identification_reset),
	  (mxf_metadata_content_storage_parse),
	  (mxf_metadata_content_storage_reset),
	  (mxf_metadata_essence_container_data_parse),
	  (mxf_metadata_essence_container_data_reset),
	  (mxf_metadata_generic_package_parse),
	  (mxf_metadata_generic_package_reset), (mxf_metadata_track_parse),
	  (mxf_metadata_track_reset), (mxf_metadata_track_identifier_parse),
	  (mxf_metadata_sequence_parse), (mxf_metadata_sequence_reset),
	  (mxf_metadata_structural_component_parse),
	  (mxf_metadata_structural_component_reset),
	  (mxf_metadata_generic_descriptor_parse),
	  (mxf_metadata_generic_descriptor_reset),
	  (mxf_metadata_file_descriptor_parse),
	  (mxf_metadata_file_descriptor_reset),
	  (mxf_metadata_generic_sound_essence_descriptor_parse),
	  (mxf_metadata_generic_sound_essence_descriptor_reset),
	  (mxf_metadata_generic_picture_essence_descriptor_parse),
	  (mxf_metadata_generic_picture_essence_descriptor_reset),
	  (mxf_metadata_cdci_picture_essence_descriptor_parse),
	  (mxf_metadata_cdci_picture_essence_descriptor_reset),
	  (mxf_metadata_multiple_descriptor_parse),
	  (mxf_metadata_multiple_descriptor_reset),
	  (mxf_metadata_locator_parse), (mxf_metadata_locator_reset):
	  * gst/mxf/mxfparse.h:
	  * gst/mxf/mxftypes.h:
	  Add first version of an MXF demuxer. Currently it supports
	  MPEG video and raw audio and OP 1a/b/c.

2008-11-21 00:47:37 +0000  Michael Smith <msmith@xiph.org>

	  sys/dshowdecwrapper/gstdshowaudiodec.cpp: Fix flushing/seeking problems returning error code.
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	  Fix flushing/seeking problems returning error code.
	  Fix mp3 decoding with winXP (crashed randomly, occasionally).
	  * sys/dshowdecwrapper/gstdshowvideodec.cpp:
	  Fix problems when framerate is missing from video.

2008-11-20 18:41:34 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Pass the running time to the session when processing RTP packets.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (get_current_times),
	  (rtcp_thread), (gst_rtp_session_chain_recv_rtp):
	  Pass the running time to the session when processing RTP packets.
	  Improve the time function to provide more info.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (rtp_session_init), (update_arrival_stats),
	  (rtp_session_process_rtp), (rtp_session_process_sdes),
	  (rtp_session_process_rtcp), (session_start_rtcp),
	  (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsession.h:
	  Mark the internal source with a flag.
	  Use running_time instead of the more useless timestamp.
	  Validate a source when a valid SDES has been received.
	  Pass the current system time when processing SR packets.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	  (rtp_source_init), (rtp_source_create_stats),
	  (rtp_source_get_property), (rtp_source_send_rtp),
	  (rtp_source_process_rb), (rtp_source_get_new_rb),
	  (rtp_source_get_last_rb):
	  * gst/rtpmanager/rtpsource.h:
	  Add property to get source stats.
	  Mark params as STATIC_STRINGS.
	  Calculate the bitrate at the sender SSRC.
	  Avoid negative values in the round trip time calculations.
	  * gst/rtpmanager/rtpstats.h:
	  Update some docs and change some variable name to more closely reflect
	  what it contains.

2008-11-20 16:01:27 +0000  Leandro Melo de Sales <leandroal@gmail.com>

	  gst/dccp/: CodeStyle improvements and minor fixes to the DCCP plugin.
	  Original commit message from CVS:
	  patch by: Leandro Melo de Sales <leandroal@gmail.com>
	  * gst/dccp/gstdccp.c:
	  * gst/dccp/gstdccp.h:
	  * gst/dccp/gstdccpclientsink.c:
	  * gst/dccp/gstdccpclientsink.h:
	  * gst/dccp/gstdccpclientsrc.c:
	  * gst/dccp/gstdccpserversink.c:
	  * gst/dccp/gstdccpserversrc.c:
	  * gst/dccp/gstdccpserversrc.h:
	  CodeStyle improvements and minor fixes to the DCCP plugin.
	  Fixes #553823.

2008-11-20 08:19:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Initialize return value to fix compiler warning about uninitialized variable.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain_rtcp):
	  Initialize return value to fix compiler warning about uninitialized
	  variable.

2008-11-19 16:48:38 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Mark signal arg as static scope.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init):
	  Mark signal arg as static scope.

2008-11-19 09:06:29 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Remove internal sync pad, use signals instead to get lip-sync notifications.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	  (gst_rtp_bin_handle_sync), (create_stream), (free_stream),
	  (new_ssrc_pad_found):
	  Remove internal sync pad, use signals instead to get lip-sync
	  notifications.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_base_init),
	  (gst_rtp_jitter_buffer_class_init),
	  (gst_rtp_jitter_buffer_internal_links), (create_rtcp_sink),
	  (remove_rtcp_sink), (gst_rtp_jitter_buffer_request_new_pad),
	  (gst_rtp_jitter_buffer_release_pad),
	  (gst_rtp_jitter_buffer_sink_rtcp_event),
	  (gst_rtp_jitter_buffer_chain_rtcp),
	  (gst_rtp_jitter_buffer_get_property):
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  Make it possible to send SR packets to the jitterbuffer.
	  Check if the SR timestamps are valid by comparing them to the RTP
	  timestamps.
	  Signal the SR packet and the timing information to listeners.
	  * gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
	  (gst_rtp_ssrc_demux_rtcp_chain), (gst_rtp_ssrc_demux_src_query):
	  Remove some unused code.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	  (calculate_skew), (rtp_jitter_buffer_get_sync):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Keep track of the last seen RTP timestamp so that we can filter out
	  invalid SR packets.

2008-11-18 16:52:11 +0000  Alessandro Decina <alessandro.d@gmail.com>

	  ext/metadata/gstbasemetadata.c: Avoid deadlock during pad activation.
	  Original commit message from CVS:
	  * ext/metadata/gstbasemetadata.c:
	  Avoid deadlock during pad activation.
	  Fixes #561241.

2008-11-18 01:09:09 +0000  David Schleef <ds@schleef.org>

	  gst/qtmux/gstqtmux.c: Quiet a debugging message that I recently added.
	  Original commit message from CVS:
	  * gst/qtmux/gstqtmux.c: Quiet a debugging message that I recently
	  added.

2008-11-17 19:47:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/rtpmanager/rtpsource.c: Fix GST_DEBUG call to only have as many arguments as required by the format string. Fixes...
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsource.c: (get_clock_rate):
	  Fix GST_DEBUG call to only have as many arguments as required
	  by the format string. Fixes a compiler warning.

2008-11-17 15:17:52 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Do not try to keep track of the clock-rate ourselves but simply get the value from the ji...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	  (gst_rtp_bin_sync_chain), (create_stream), (new_ssrc_pad_found):
	  Do not try to keep track of the clock-rate ourselves but simply get the
	  value from the jitterbuffer.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain),
	  (gst_rtp_jitter_buffer_get_sync):
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  Add some debug info.
	  Pass the clock-rate to the jitterbuffer.
	  Also pass the clock-rate along with the rtp timestamp when getting the
	  sync parameters.
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	  Fix some debug.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	  (calculate_skew), (rtp_jitter_buffer_get_sync):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Keep track of clock-rate changes and return the clock-rate together with
	  the rtp timestamps used for sync.
	  Don't try to construct timestamps when we have no base_time.
	  * gst/rtpmanager/rtpsource.c: (get_clock_rate):
	  Request a new clock-rate when the payload type changes.
	  Reset the jitter calculation when the clock-rate changes.

2008-11-17 09:33:50 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/: Add missing files.
	  Original commit message from CVS:
	  * tests/check/elements/aacparse_data.h:
	  * tests/check/elements/amrparse_data.h:
	  Add missing files.

2008-11-15 02:56:31 +0000  David Schleef <ds@schleef.org>

	  gst/qtmux/gstqtmux.*: Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.
	  Original commit message from CVS:
	  * gst/qtmux/gstqtmux.c:
	  * gst/qtmux/gstqtmux.h:
	  Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.

2008-11-14 23:01:56 +0000  David Schleef <ds@schleef.org>

	  sys/qtwrapper/codecmapping.c: Add some of our favorite codecs.
	  Original commit message from CVS:
	  * sys/qtwrapper/codecmapping.c: Add some of our favorite codecs.

2008-11-14 21:44:32 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/audioresample/gstaudioresample.c: Guard against a NULL dereference I somehow encountered - with a FLUSH_STOP arri...
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c:
	  Guard against a NULL dereference I somehow encountered -
	  with a FLUSH_STOP arriving either before basetransform _start(),
	  or after _stop().
	  * gst/typefind/gsttypefindfunctions.c:
	  Make sure we never jump backwards when typefinding corrupt mov files.

2008-11-14 21:24:51 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/qtmux/: Revert previous commit.
	  Original commit message from CVS:
	  * gst/qtmux/atoms.c:
	  * gst/qtmux/atoms.h:
	  * gst/qtmux/descriptors.c:
	  * gst/qtmux/descriptors.h:
	  * gst/qtmux/fourcc.h:
	  * gst/qtmux/ftypcc.h:
	  * gst/qtmux/gstqtmux.c:
	  * gst/qtmux/gstqtmux.h:
	  * gst/qtmux/gstqtmuxmap.c:
	  * gst/qtmux/gstqtmuxmap.h:
	  * gst/qtmux/properties.c:
	  * gst/qtmux/properties.h:
	  Revert previous commit.

2008-11-14 20:38:18 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/qtmux/: Dual license LGPL/MIT, as apparently supposed to.
	  Original commit message from CVS:
	  * gst/qtmux/atoms.c:
	  * gst/qtmux/atoms.h:
	  * gst/qtmux/descriptors.c:
	  * gst/qtmux/descriptors.h:
	  * gst/qtmux/fourcc.h:
	  * gst/qtmux/ftypcc.h:
	  * gst/qtmux/gstqtmux.c:
	  * gst/qtmux/gstqtmux.h:
	  * gst/qtmux/gstqtmuxmap.c:
	  * gst/qtmux/gstqtmuxmap.h:
	  * gst/qtmux/properties.c:
	  * gst/qtmux/properties.h:
	  Dual license LGPL/MIT, as apparently supposed to.

2008-11-14 20:17:10 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/qtmux/: Cut detour in sample description extension construction.
	  Original commit message from CVS:
	  * gst/qtmux/atoms.c: (build_esds_extension),
	  (build_mov_aac_extension), (build_jp2h_extension),
	  (build_codec_data_extension):
	  * gst/qtmux/atoms.h:
	  * gst/qtmux/fourcc.h:
	  * gst/qtmux/gstqtmux.c: (gst_qt_mux_audio_sink_set_caps),
	  (gst_qt_mux_video_sink_set_caps):
	  * gst/qtmux/gstqtmuxmap.c: (gst_qt_mux_map_format_to_header):
	  Cut detour in sample description extension construction.
	  Also actually implement ISO JPEG2000 mj2 format.

2008-11-14 19:52:24 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  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-14 16:15:43 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* configure.ac:
	* gst-plugins-bad.spec.in:
	  no more egging the pudding
	  Original commit message from CVS:
	  no more egging the pudding

2008-11-14 14:23:02 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst-libs/gst/play/: Remove cruft. This is not entered by make and its not even compilable.
	  Original commit message from CVS:
	  * gst-libs/gst/play/.cvsignore:
	  * gst-libs/gst/play/play.h:
	  * gst-libs/gst/play/play.vcproj:
	  Remove cruft. This is not entered by make and its not even compilable.

2008-11-13 22:30:54 +0000  David Schleef <ds@schleef.org>

	  ext/dirac/gstdiracenc.cc: Set pixel-aspect-ratio correctly in the encoder API, as well as some default gstreamerish c...
	  Original commit message from CVS:
	  * ext/dirac/gstdiracenc.cc:
	  Set pixel-aspect-ratio correctly in the encoder API, as well
	  as some default gstreamerish colorspace properties.  Also,
	  apparently, change a bunch of indentation.

2008-11-13 21:44:15 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  ext/jp2k/: Add jp2kenc to jp2k plugin.
	  Original commit message from CVS:
	  * ext/jp2k/Makefile.am:
	  * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_class_init),
	  (gst_jasper_dec_change_state):
	  * ext/jp2k/gstjasperenc.c: (gst_jasper_enc_base_init),
	  (gst_jasper_enc_class_init), (gst_jasper_enc_init),
	  (gst_jasper_enc_reset), (gst_jasper_enc_set_src_caps),
	  (gst_jasper_enc_init_encoder), (gst_jasper_enc_sink_setcaps),
	  (gst_jasper_enc_get_data), (gst_jasper_enc_chain),
	  (gst_jasper_enc_set_property), (gst_jasper_enc_get_property),
	  (gst_jasper_enc_change_state):
	  * ext/jp2k/gstjasperenc.h:
	  * ext/jp2k/gstjp2k.c: (plugin_init):
	  Add jp2kenc to jp2k plugin.

2008-11-13 21:31:14 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  ext/jp2k/gstjasperdec.*: Make pad template caps reflect the supported formats.
	  Original commit message from CVS:
	  * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_init),
	  (gst_jasper_dec_reset), (gst_jasper_dec_negotiate),
	  (gst_jasper_dec_get_picture):
	  * ext/jp2k/gstjasperdec.h:
	  Make pad template caps reflect the supported formats.
	  Add or modify some debug statements, and slightly simplify image
	  passing to encoding library.

2008-11-13 17:24:58 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/aacparse/gstaacparse.c: Don't autoplug aacparse until it works.
	  Original commit message from CVS:
	  * gst/aacparse/gstaacparse.c: (plugin_init):
	  Don't autoplug aacparse until it works.

2008-11-13 15:48:54 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Small cleanups and some more debug info.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_jitter_buffer_sink_parse_caps),
	  (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain):
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	  (calculate_skew):
	  Small cleanups and some more debug info.

2008-11-13 15:20:15 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/: Add unit tests for new parsers.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/aacparse.c:
	  * tests/check/elements/amrparse.c:
	  Add unit tests for new parsers.

2008-11-13 14:31:45 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Update docs.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/inspect/plugin-aacparse.xml:
	  * docs/plugins/inspect/plugin-amrparse.xml:
	  Update docs.

2008-11-13 14:21:39 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/: Fix baseparse type name.
	  Original commit message from CVS:
	  * gst/aacparse/gstbaseparse.c:
	  * gst/amrparse/gstbaseparse.c:
	  Fix baseparse type name.

2008-11-13 12:59:34 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Add two new baseparse based parsers (aac and amr) from Bug #518857.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/aacparse/Makefile.am:
	  * gst/aacparse/gstaacparse.c:
	  * gst/aacparse/gstaacparse.h:
	  * gst/aacparse/gstbaseparse.c:
	  * gst/aacparse/gstbaseparse.h:
	  * gst/amrparse/Makefile.am:
	  * gst/amrparse/gstamrparse.c:
	  * gst/amrparse/gstamrparse.h:
	  * gst/amrparse/gstbaseparse.c:
	  * gst/amrparse/gstbaseparse.h:
	  Add two new baseparse based parsers (aac and amr) from Bug #518857.

2008-11-12 10:32:24 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/rfbdecoder.c: Fix uninitialized warnings
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c:
	  Fix uninitialized warnings

2008-11-11 19:31:35 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  tests/check/: Add unit test for qtmux.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/qtmux.c: (setup_src_pad),
	  (teardown_src_pad), (setup_qtmux), (cleanup_qtmux),
	  (check_qtmux_pad), (GST_START_TEST), (qtmux_suite), (main):
	  Add unit test for qtmux.

2008-11-11 19:24:12 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  gst/qtmux/gstqtmux.c: Add some more safety/sanity checks in tag manipulation.
	  Original commit message from CVS:
	  * gst/qtmux/gstqtmux.c: (gst_qt_mux_add_metadata_tags):
	  Add some more safety/sanity checks in tag manipulation.

2008-11-10 15:26:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Also configure the next expected output seqnum when we get a seqnum-base on the ...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain):
	  Also configure the next expected output seqnum when we get a seqnum-base
	  on the caps.

2008-11-10 14:53:45 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/: Wim, you're a bad boy. You don't want people to contact you or what?
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c:
	  * gst-libs/gst/app/gstappsrc.c:
	  * gst/h264parse/gsth264parse.c:
	  Wim, you're a bad boy. You don't want people to contact you or what?

2008-11-10 14:01:42 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst/filter/gstiir.c: Fix name tag.
	  Original commit message from CVS:
	  * gst/filter/gstiir.c:
	  Fix name tag.

2008-11-08 02:00:58 +0000  Thiago Sousa Santos <thiagossantos@gmail.com>

	  Copy qtmux from revision 148 of the gst-qtmux repository.
	  Original commit message from CVS:
	  patch by: Thiago Sousa Santos <thiagossantos@gmail.com>
	  * configure.ac:
	  * gst/qtmux/Makefile.am:
	  * gst/qtmux/atoms.c:
	  * gst/qtmux/atoms.h:
	  * gst/qtmux/descriptors.c:
	  * gst/qtmux/descriptors.h:
	  * gst/qtmux/fourcc.h:
	  * gst/qtmux/ftypcc.h:
	  * gst/qtmux/gstqtmux.c:
	  * gst/qtmux/gstqtmux.h:
	  * gst/qtmux/gstqtmuxmap.c:
	  * gst/qtmux/gstqtmuxmap.h:
	  * gst/qtmux/properties.c:
	  * gst/qtmux/properties.h:
	  Copy qtmux from revision 148 of the gst-qtmux repository.
	  Fixes #550280.

2008-11-07 17:35:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsrc.*: Add is-live property.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	  (gst_app_src_init), (gst_app_src_set_property),
	  (gst_app_src_get_property), (gst_app_src_push_buffer):
	  * gst-libs/gst/app/gstappsrc.h:
	  Add is-live property.
	  Add some more docs.

2008-11-06 22:54:39 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  Fix basic navigation events
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/librfb/Makefile.am:
	  * gst/librfb/gstrfbsrc.c:
	  Fix basic navigation events

2008-11-06 14:05:55 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/deinterlace2/gstdeinterlace2.c: Bring properties into this century.
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace2_class_init), (gst_deinterlace2_init),
	  (gst_deinterlace2_set_property), (gst_deinterlace2_get_property):
	  Bring properties into this century.

2008-11-06 13:00:54 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Set filters in PAUSED or PLAYING.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Set filters in PAUSED or PLAYING.

2008-11-06 12:17:08 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegtsdemux.c: Make private section pads have a caps set so they are not tried to be linked in parse...
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  Make private section pads have a caps set so they are not tried
	  to be linked in parse_launch for example.

2008-11-06 11:31:03 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegtsdemux.c: No need to reclaculate flush in this case.
	  Original commit message from CVS:
	  patch by: Josep Torra
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  No need to reclaculate flush in this case.
	  Fixes some bad decode errors introduced.

2008-11-06 10:42:59 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegtsdemux.*: Fix typo.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  * gst/mpegdemux/gstmpegtsdemux.h:
	  Fix typo.

2008-11-05 23:31:41 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/gstrfbsrc.c: Fix RGB mask in caps
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  Fix RGB mask in caps

2008-11-05 22:25:25 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/: Add Hextile encoding
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  Add Hextile encoding

2008-11-05 18:52:38 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegtsdemux.c: Heuristic approach when resyncing.
	  Original commit message from CVS:
	  patch by: Josep Torra
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  Heuristic approach when resyncing.

2008-11-05 18:11:55 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	  gst/mpegdemux/gstmpegdesc.c: Length should be a guint8 not a gint.
	  Original commit message from CVS:
	  patch by: Sebastian Pölsterl
	  * gst/mpegdemux/gstmpegdesc.c:
	  Length should be a guint8 not a gint.
	  * gst/mpegdemux/mpegtspacketizer.c:
	  Convert text to utf8 for each descriptor separately and not
	  concatenate them first and convert after.

2008-11-04 20:26:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/modplug/gstmodplug.cc: Send tag event. Fixes #559286.
	  Original commit message from CVS:
	  * gst/modplug/gstmodplug.cc:
	  Send tag event. Fixes #559286.

2008-11-04 18:03:55 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	  gst/mpegdemux/mpegtsparse.c: Fix another memleak.
	  Original commit message from CVS:
	  patch by: Sebastian Pölsterl
	  * gst/mpegdemux/mpegtsparse.c:
	  Fix another memleak.

2008-11-04 17:25:09 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	  Fix memleaks.
	  Original commit message from CVS:
	  patch by: Sebastian Pölsterl
	  * gst/mpegdemux/mpegtspacketizer.c:
	  * sys/dvb/gstdvbsrc.c:
	  Fix memleaks.

2008-11-04 12:42:30 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  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-11-04 08:24:10 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	  gst/mpegdemux/mpegtsparse.c: Fix memleak.
	  Original commit message from CVS:
	  patch by: Sebastian Pölsterl
	  * gst/mpegdemux/mpegtsparse.c:
	  Fix memleak.

2008-11-03 22:00:09 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  examples/scaletempo/.cvsignore: Add example to cvs ignores.
	  Original commit message from CVS:
	  * examples/scaletempo/.cvsignore:
	  Add example to cvs ignores.

2008-11-03 21:27:31 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  sys/qtwrapper/audiodecoders.c: Fix mismatched signedness compiler warning.
	  Original commit message from CVS:
	  * sys/qtwrapper/audiodecoders.c:
	  (open_decoder):
	  Fix mismatched signedness compiler warning.

2008-11-03 08:55:49 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: Add TODO at the top of the file for enabling SSE/ARM specific optimizations and...
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_convert_buffer):
	  Add TODO at the top of the file for enabling SSE/ARM specific
	  optimizations and choosing the fastest implementation at runtime.
	  Add g_assert_not_reached() at two places that should really never
	  be reached.

2008-11-02 09:19:24 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: Fix format string and arguments.
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_check_discont):
	  Fix format string and arguments.
	  * gst/speexresample/resample_sse.h:
	  Add missing file.

2008-11-01 21:37:06 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/resindvd/Makefile.am: Dist the play scripts.
	  Original commit message from CVS:
	  * ext/resindvd/Makefile.am:
	  Dist the play scripts.

2008-11-01 19:38:36 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/: Add missing headers to Makefile.am.
	  Original commit message from CVS:
	  * gst/speexresample/Makefile.am:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_base_init), (gst_speex_resample_get_funcs),
	  (gst_speex_resample_convert_buffer), (_benchmark_int_float),
	  (_benchmark_int_int), (_benchmark_integer_resampling),
	  (plugin_init):
	  * gst/speexresample/gstspeexresample.h:
	  * gst/speexresample/resample.c:
	  * gst/speexresample/speex_resampler_double.c:
	  * gst/speexresample/speex_resampler_float.c:
	  * gst/speexresample/speex_resampler_int.c:
	  * gst/speexresample/speex_resampler_wrapper.h:
	  Add missing headers to Makefile.am.
	  Update copyright, years and my mail address.
	  Benchmark the integer resampling implementation against the
	  float implementation and use the faster one for 8/16 bit integer
	  input. On most recent systems the floating point version is faster.

2008-10-31 18:39:37 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Use AC_TRY_COMPILE instead of AC_TRY_RUN as the result of the linking is what is interesting, not that ...
	  Original commit message from CVS:
	  * configure.ac:
	  Use AC_TRY_COMPILE instead of AC_TRY_RUN as the result of the linking
	  is what is interesting, not that it actually runs.
	  Fixes cross-compilation and fixes bug #558639.

2008-10-30 19:54:38 +0000  Michael Smith <msmith@xiph.org>

	  sys/qtwrapper/audiodecoders.c: Add ALAC support.
	  Original commit message from CVS:
	  * sys/qtwrapper/audiodecoders.c:
	  Add ALAC support.
	  Fix decode of mono AAC files created by itunes.
	  Set output format correctly (don't ask quicktime to
	  resample for us).
	  Use a larger decode buffer to avoid problems with large
	  ALAC packets.
	  Fix decode to loop until we have all output data.
	  * sys/qtwrapper/qtutils.c:
	  Fix includes so we compile on more OSes.

2008-10-30 15:31:59 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Require at least Gtk 2.8.0 for the demos (that's the oldest I can test with; I'm fairly certain Gtk 2.0...
	  Original commit message from CVS:
	  * configure.ac:
	  Require at least Gtk 2.8.0 for the demos (that's the oldest I can
	  test with; I'm fairly certain Gtk 2.0.0 is not good enough any
	  longer); clean up some unused Gtk-related configure cruft.
	  * examples/scaletempo/demo-gui.c:
	  Define Gtk 2.12 function to noop when compiling against older Gtk.

2008-10-30 14:55:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: The length for the buffer conversion function is the number of audio frames, i....
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_convert_buffer):
	  The length for the buffer conversion function is the number of
	  audio frames, i.e. we need to multiply it by the number of channels
	  to get the number of values. Also spotted by the unit test after
	  running in valgrind.

2008-10-30 14:46:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/speexresample.c: Add pipeline unit tests for testing all supported formats with up/downsampling ...
	  Original commit message from CVS:
	  * tests/check/elements/speexresample.c: (element_message_cb),
	  (eos_message_cb), (test_pipeline), (GST_START_TEST),
	  (speexresample_suite):
	  Add pipeline unit tests for testing all supported formats with
	  up/downsampling and different in/outrates.
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_push_drain), (gst_speex_resample_process):
	  * gst/speexresample/speex_resampler_wrapper.h:
	  Fix bugs identified by the testsuite.

2008-10-30 13:44:41 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/: Add support for int8, int24 and int32 input by converting internally to/from int16 or double.
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c: (gst_speex_resample_stop),
	  (gst_speex_resample_get_funcs),
	  (gst_speex_resample_transform_size),
	  (gst_speex_resample_convert_buffer),
	  (gst_speex_resample_push_drain), (gst_speex_resample_process):
	  * gst/speexresample/gstspeexresample.h:
	  * gst/speexresample/speex_resampler_wrapper.h:
	  Add support for int8, int24 and int32 input by converting internally
	  to/from int16 or double.

2008-10-30 13:38:19 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/resindvdsrc.*: Better fix for #546319 and similar cases by explicitly registering when we're in playing ...
	  Original commit message from CVS:
	  * ext/resindvd/resindvdsrc.c:
	  * ext/resindvd/resindvdsrc.h:
	  Better fix for #546319 and similar cases by explicitly
	  registering when we're in playing state or not.

2008-10-30 13:02:18 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/ladspa/gstladspa.c: Whitespace.
	  Original commit message from CVS:
	  * ext/ladspa/gstladspa.c:
	  Whitespace.
	  * ext/ladspa/gstsignalprocessor.c:
	  Add a FIXME:. not sure if this code does the forwarding correctly.

2008-10-30 12:43:44 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add support for double samples as input and refactor the usage of the different compilation flavors of the speex resa...
	  Original commit message from CVS:
	  * gst/speexresample/Makefile.am:
	  * gst/speexresample/arch.h:
	  * gst/speexresample/gstspeexresample.c: (gst_speex_resample_stop),
	  (gst_speex_resample_get_unit_size), (gst_speex_resample_get_funcs),
	  (gst_speex_resample_init_state), (gst_speex_resample_update_state),
	  (gst_speex_resample_reset_state), (gst_speex_resample_parse_caps),
	  (_gcd), (gst_speex_resample_transform_size),
	  (gst_speex_resample_set_caps), (gst_speex_resample_push_drain),
	  (gst_speex_resample_process), (gst_speex_resample_transform),
	  (gst_speex_resample_query), (gst_speex_resample_set_property):
	  * gst/speexresample/gstspeexresample.h:
	  * gst/speexresample/resample.c:
	  * gst/speexresample/speex_resampler.h:
	  * gst/speexresample/speex_resampler_double.c:
	  * gst/speexresample/speex_resampler_wrapper.h:
	  * tests/check/elements/speexresample.c: (setup_speexresample),
	  (test_perfect_stream_instance), (GST_START_TEST),
	  (test_discont_stream_instance):
	  Add support for double samples as input and refactor the usage
	  of the different compilation flavors of the speex resampler.

2008-10-30 12:13:18 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/scaletempo/gstscaletempo.c: Return the result of parent_class->event().
	  Original commit message from CVS:
	  * gst/scaletempo/gstscaletempo.c:
	  Return the result of parent_class->event().

2008-10-30 11:50:52 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/audiobuffer/: Add first version of an audioringbuffer element that can be inserted in the pipeline to convert pus...
	  Original commit message from CVS:
	  * gst/audiobuffer/Makefile.am:
	  * gst/audiobuffer/gstaudioringbuffer.c:
	  (gst_int_ring_buffer_acquire), (gst_int_ring_buffer_release),
	  (gst_int_ring_buffer_start), (gst_int_ring_buffer_base_init),
	  (gst_int_ring_buffer_class_init), (gst_int_ring_buffer_init),
	  (gst_int_ring_buffer_new), (gst_audio_ringbuffer_get_type),
	  (gst_audio_ringbuffer_class_init), (gst_audio_ringbuffer_init),
	  (gst_audio_ringbuffer_finalize), (gst_audio_ringbuffer_getcaps),
	  (gst_audio_ringbuffer_setcaps), (gst_audio_ringbuffer_bufferalloc),
	  (gst_audio_ringbuffer_handle_sink_event),
	  (gst_audio_ringbuffer_render), (gst_audio_ringbuffer_chain),
	  (gst_audio_ringbuffer_handle_src_event),
	  (gst_audio_ringbuffer_handle_src_query),
	  (gst_audio_ringbuffer_get_range),
	  (gst_audio_ringbuffer_src_checkgetrange_function),
	  (gst_audio_ringbuffer_sink_activate_push),
	  (gst_audio_ringbuffer_src_activate_push),
	  (gst_audio_ringbuffer_src_activate_pull),
	  (gst_audio_ringbuffer_change_state),
	  (gst_audio_ringbuffer_set_property),
	  (gst_audio_ringbuffer_get_property), (plugin_init):
	  Add first version of an audioringbuffer element that can be inserted in
	  the pipeline to convert push-based upstream into a pull-based
	  downstream.

2008-10-30 11:43:12 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/audioresample/gstaudioresample.c: Return the result of parent_class->event().
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c:
	  Return the result of parent_class->event().

2008-10-30 00:17:12 +0000  Michael Smith <msmith@xiph.org>

	  gst/aiffparse/aiffparse.c: AIFF is always signed, even for 8 bit.
	  Original commit message from CVS:
	  * gst/aiffparse/aiffparse.c:
	  AIFF is always signed, even for 8 bit.

2008-10-29 17:02:55 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsink.c: Fix the docs.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init):
	  Fix the docs.

2008-10-29 16:53:54 +0000  Robin Stocker <robin@nibor.org>

	  gst/real/gstrealvideodec.c: A RealVideo video inside a container (for example MKV) should use the
	  Original commit message from CVS:
	  Patch by: Robin Stocker <robin at nibor dot org>
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_setcaps):
	  A RealVideo video inside a container (for example MKV) should use the
	  PAR which is specified on the sinkpad caps. Fixes #558416.

2008-10-29 12:11:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.*: Rewrite timestamp tracking to make it more robust and guarantee a continous str...
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c: (gst_speex_resample_start),
	  (gst_speex_resample_get_unit_size),
	  (gst_speex_resample_push_drain), (gst_speex_resample_event),
	  (gst_speex_resample_check_discont), (gst_speex_resample_process),
	  (gst_speex_resample_transform):
	  * gst/speexresample/gstspeexresample.h:
	  Rewrite timestamp tracking to make it more robust and guarantee
	  a continous stream.
	  * tests/check/Makefile.am:
	  * tests/check/elements/speexresample.c: (setup_speexresample),
	  (cleanup_speexresample), (fail_unless_perfect_stream),
	  (test_perfect_stream_instance), (GST_START_TEST),
	  (test_discont_stream_instance), (live_switch_alloc_only_48000),
	  (live_switch_get_sink_caps), (live_switch_push),
	  (speexresample_suite):
	  Add unit tests for speexresample based on the audioresample unit tests.

2008-10-29 01:00:22 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/resindvdsrc.c: Make sure to start the NAV packet processing when changing state to PLAYING  by passing a...
	  Original commit message from CVS:
	  * ext/resindvd/resindvdsrc.c:
	  Make sure to start the NAV packet processing when changing
	  state to PLAYING  by passing a flag that indicates the state
	  change is in progress.
	  Fixes: #546319

2008-10-28 20:06:27 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/resindvd/resin-play: Remove $@ to fix parse_launch warning
	  Original commit message from CVS:
	  * ext/resindvd/resin-play:
	  Remove $@ to fix parse_launch warning
	  * ext/resindvd/resin-play2:
	  Add a version that uses deinterlace and xvimagesink.

2008-10-28 19:30:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.*: Some random cleanup, add G_LIKELY and friends, use GST_DEBUG_OBJECT instead of ...
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_get_unit_size),
	  (gst_speex_resample_fixate_caps), (gst_speex_resample_init_state),
	  (gst_speex_resample_update_state), (gst_speex_resample_parse_caps),
	  (gst_speex_resample_transform_size), (gst_speex_resample_set_caps),
	  (gst_speex_resample_push_drain), (gst_speex_resample_event),
	  (gst_speex_resample_check_discont), (gst_speex_fix_output_buffer),
	  (gst_speex_resample_process), (gst_speex_resample_transform),
	  (gst_speex_resample_query), (gst_speex_resample_set_property):
	  * gst/speexresample/gstspeexresample.h:
	  Some random cleanup, add G_LIKELY and friends, use GST_DEBUG_OBJECT
	  instead of GST_DEBUG, ...

2008-10-28 18:44:44 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Implement position query in time format.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_query):
	  Implement position query in time format.

2008-10-28 18:41:19 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/: Put the GstSegment directly into the instance struct instead of allocating and free'ing it again.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	  (gst_flv_demux_loop), (gst_flv_demux_handle_seek_push),
	  (gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event),
	  (gst_flv_demux_dispose), (gst_flv_demux_init):
	  * gst/flv/gstflvdemux.h:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp):
	  Put the GstSegment directly into the instance struct instead of
	  allocating and free'ing it again.
	  Push tags already if only one pad was added, no need to wait for
	  the second one.
	  When generating our index set has_video and has_audio if we find
	  video or audio in case the FLV header has incorrect data.

2008-10-28 16:28:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: Fixate to the nearest supported rate instead of the first one.
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_class_init), (gst_speex_resample_fixate_caps),
	  (gst_speex_resample_process):
	  Fixate to the nearest supported rate instead of the first one.

2008-10-28 16:25:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/audioresample/gstaudioresample.c: Fixate the rate to the nearest supported rate instead of the first one. Fixes b...
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c:
	  (gst_audioresample_class_init), (audioresample_fixate_caps):
	  Fixate the rate to the nearest supported rate instead of
	  the first one. Fixes bug #549510.

2008-10-28 11:46:28 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/: Update Speex resampler with latest version from Speex GIT.
	  Original commit message from CVS:
	  * gst/speexresample/README:
	  * gst/speexresample/arch.h:
	  * gst/speexresample/fixed_arm4.h:
	  * gst/speexresample/fixed_arm5e.h:
	  * gst/speexresample/fixed_bfin.h:
	  * gst/speexresample/fixed_debug.h:
	  * gst/speexresample/fixed_generic.h:
	  * gst/speexresample/resample.c: (compute_func), (main), (sinc),
	  (cubic_coef), (resampler_basic_direct_single),
	  (resampler_basic_direct_double),
	  (resampler_basic_interpolate_single),
	  (resampler_basic_interpolate_double), (update_filter),
	  (speex_resampler_init_frac), (speex_resampler_process_native),
	  (speex_resampler_magic), (speex_resampler_process_float),
	  (speex_resampler_process_int),
	  (speex_resampler_process_interleaved_float),
	  (speex_resampler_process_interleaved_int),
	  (speex_resampler_set_rate_frac), (speex_resampler_skip_zeros),
	  (speex_resampler_reset_mem):
	  * gst/speexresample/speex_resampler.h:
	  Update Speex resampler with latest version from Speex GIT.

2008-10-28 01:53:49 +0000  Michael Smith <msmith@xiph.org>

	  gst/aiffparse/aiffparse.*: Calculate width from depth correctly.
	  Original commit message from CVS:
	  * gst/aiffparse/aiffparse.c:
	  * gst/aiffparse/aiffparse.h:
	  Calculate width from depth correctly.
	  Read SSND header properly (fixes 24 bit AIFF reading).

2008-10-27 17:01:22 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  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-10-27 16:32:49 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  ext/faac/gstfaac.c: Prevent endless loop if buffer alloc error.
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_sink_event):
	  Prevent endless loop if buffer alloc error.

2008-10-27 09:45:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/: Don't memcpy() all data we want to push downstream, instead just create subbuffers and push them downstream.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_chain),
	  (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header),
	  (gst_flv_demux_create_index):
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_script),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	  (gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type),
	  (gst_flv_parse_header):
	  * gst/flv/gstflvparse.h:
	  Don't memcpy() all data we want to push downstream, instead just
	  create subbuffers and push them downstream.
	  Fix some minor memory leaks.

2008-10-27 09:42:55 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Require CVS of core for the last change.
	  Original commit message from CVS:
	  * configure.ac:
	  Require CVS of core for the last change.

2008-10-27 09:41:18 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/Makefile.am: Fix (non-critical) syntax error and add all required CFLAGS and LIBS.
	  Original commit message from CVS:
	  * gst/flv/Makefile.am:
	  Fix (non-critical) syntax error and add all required CFLAGS and LIBS.
	  * gst/flv/gstflvparse.c: (FLV_GET_STRING),
	  (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	  (gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type):
	  Rewrite the script tag parsing to make sure we don't try to read
	  more data than we have. Also use GST_READ_UINT24_BE directly and
	  fix some minor memory leaks.
	  This should make all crashes on fuzzed FLV files disappear.

2008-10-27 09:37:21 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvparse.c: Properly check everywhere that we have enough data to parse and don't read outside the allocat...
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (FLV_GET_STRING),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	  (gst_flv_parse_tag_type), (gst_flv_parse_header):
	  Properly check everywhere that we have enough data to parse and
	  don't read outside the allocated memory region.

2008-10-27 09:35:34 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvparse.c: If the caps change during playback and negotiation fails error out instead of trying to continue.
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video):
	  If the caps change during playback and negotiation fails error out
	  instead of trying to continue.

2008-10-27 09:33:40 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/: Add support for Speex audio and allow buffers without valid timestamp in the muxer.
	  Original commit message from CVS:
	  * gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps),
	  (gst_flv_mux_request_new_pad), (gst_flv_mux_write_buffer),
	  (gst_flv_mux_collected):
	  * gst/flv/gstflvmux.h:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate):
	  Add support for Speex audio and allow buffers without valid
	  timestamp in the muxer.

2008-10-27 09:32:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Don't post an error message on the bus if sending EOS downstream didn't work. Fixes bug #550454.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_loop),
	  (gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push),
	  (gst_flv_demux_handle_seek_pull):
	  Don't post an error message on the bus if sending EOS downstream
	  didn't work. Fixes bug #550454.
	  Fix seek event handling to look at the flags of the seek event
	  instead of assuming some random flags, don't send segment-start
	  messages when operating in push mode and push seek events upstream
	  if we couldn't handle them.

2008-10-27 09:27:18 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Error out early if pulling a tag failed.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag):
	  Error out early if pulling a tag failed.

2008-10-27 09:25:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/: In pull mode we create our own index before doing anything else and don't use the index provided by some fi...
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_create_index),
	  (gst_flv_demux_loop):
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_script),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	  (gst_flv_parse_tag_timestamp):
	  * gst/flv/gstflvparse.h:
	  In pull mode we create our own index before doing anything else
	  and don't use the index provided by some files (which are more than
	  often incorrect and cause failed seeks).
	  For push mode we still use the index provided by the file and extend it
	  while doing the playback.

2008-10-27 09:20:01 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Instead of using gst_pad_event_default() use a small gst_pad_push_event() wrapper that only do...
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_push_src_event),
	  (gst_flv_demux_loop), (gst_flv_demux_handle_seek_pull),
	  (gst_flv_demux_sink_event):
	  Instead of using gst_pad_event_default() use a small
	  gst_pad_push_event() wrapper that only does what we want and is much
	  more simple.

2008-10-27 09:14:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.*: If our index was created by the element and not provided from the outside we should destroy it...
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_change_state),
	  (gst_flv_demux_set_index), (gst_flv_demux_init):
	  * gst/flv/gstflvdemux.h:
	  If our index was created by the element and not provided from the
	  outside we should destroy it when starting a new stream to get
	  all old entries removed.

2008-10-27 09:12:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Improve debugging a bit when pulling a buffer from upstream fails.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range):
	  Improve debugging a bit when pulling a buffer from upstream fails.

2008-10-27 09:10:54 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/: Close the currently playing segment from the streaming thread instead of the thread where the seek event is...
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	  (gst_flv_demux_handle_seek_pull), (gst_flv_demux_dispose):
	  * gst/flv/gstflvdemux.h:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video):
	  Close the currently playing segment from the streaming thread
	  instead of the thread where the seek event is handled.

2008-10-27 08:57:27 +0000  David Härdeman <david@hardeman.nu>

	  gst/mpegdemux/mpegtspacketizer.c: Add support for the frequency list descriptor, which provides additional frequencie...
	  Original commit message from CVS:
	  Patch by: David Härdeman <david at hardeman dot nu>
	  * gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_nit):
	  Add support for the frequency list descriptor, which provides
	  additional frequencies that should be scanned by a DVB application.
	  Fixes bug #557814.

2008-10-27 08:52:50 +0000  vanista <vanista@gmail.com>

	  gst/mpegtsmux/mpegtsmux.c: Fix EOS logic by correctly popping the collect pad buffers only when we've chosen to use t...
	  Original commit message from CVS:
	  Patch by: vanista <vanista at gmail dot com>
	  * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_choose_best_stream):
	  Fix EOS logic by correctly popping the collect pad buffers only
	  when we've chosen to use them instead of popping them always and
	  storing them in a private queue.
	  Before the pipeline would deadlock if all pads go EOS at the same
	  time. Fixes bug #557763.

2008-10-26 20:07:51 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to development -> 0.10.9.1
	  Original commit message from CVS:
	  * configure.ac:
	  Back to development -> 0.10.9.1

=== release 0.10.9 ===

2008-10-24 22:45:11 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst-plugins-bad.doap:
	* win32/common/config.h:
	  Release 0.10.9
	  Original commit message from CVS:
	  Release 0.10.9

2008-10-24 21:43:17 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* 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/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ky.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-10-24 16:41:33 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Commit 0.10.8.4 pre-release
	  Original commit message from CVS:
	  * configure.ac:
	  Commit 0.10.8.4 pre-release

2008-10-20 14:19:17 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegdemux/gstmpegdemux.c: Fix reverse playback regression.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data):
	  Fix reverse playback regression.
	  Fixes #557080

2008-10-19 12:39:30 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/apexsink/gstapexplugin.c: Set apexsink's rank to NONE so it doesn't get used by autoaudiosink (there's no point r...
	  Original commit message from CVS:
	  * ext/apexsink/gstapexplugin.c: (plugin_init):
	  Set apexsink's rank to NONE so it doesn't get used by
	  autoaudiosink (there's no point really). (#556588)

2008-10-16 17:12:04 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: 0.10.8.3 pre-release
	  Original commit message from CVS:
	  * configure.ac:
	  0.10.8.3 pre-release

2008-10-16 16:37:33 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegtsdemux.*: Properly handle some resync cases in the optimised buffering strategy.
	  Original commit message from CVS:
	  Patch by: Josep Torra
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  * gst/mpegdemux/gstmpegtsdemux.h:
	  Properly handle some resync cases in the optimised
	  buffering strategy.

2008-10-16 16:18:31 +0000  Michael Smith <msmith@xiph.org>

	  sys/acmenc/Makefile.am: Remove incorrect use of DIRECTSOUND_LDFLAGS
	  Original commit message from CVS:
	  2008-10-16  Michael Smith <msmith@songbirdnest.com>
	  * sys/acmenc/Makefile.am:
	  Remove incorrect use of DIRECTSOUND_LDFLAGS

2008-10-16 15:21:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvmux.c: Don't set video_codec to the value that actually should go into audio codec, otherwise we create...
	  Original commit message from CVS:
	  * gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps),
	  (gst_flv_mux_write_buffer):
	  Don't set video_codec to the value that actually should go
	  into audio codec, otherwise we create invalid files.
	  Fixes bug #556564.

2008-10-16 15:06:55 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Don't install static libs for plugins. Fixes #550851 for base.
	  Original commit message from CVS:
	  * ext/alsa/Makefile.am:
	  * ext/cdparanoia/Makefile.am:
	  * ext/gio/Makefile.am:
	  * ext/gnomevfs/Makefile.am:
	  * ext/libvisual/Makefile.am:
	  * ext/ogg/Makefile.am:
	  * ext/pango/Makefile.am:
	  * ext/theora/Makefile.am:
	  * ext/vorbis/Makefile.am:
	  * gst/adder/Makefile.am:
	  * gst/audioconvert/Makefile.am:
	  * gst/audiorate/Makefile.am:
	  * gst/audioresample/Makefile.am:
	  * gst/audiotestsrc/Makefile.am:
	  * gst/ffmpegcolorspace/Makefile.am:
	  * gst/gdp/Makefile.am:
	  * gst/playback/Makefile.am:
	  * gst/subparse/Makefile.am:
	  * gst/tcp/Makefile.am:
	  * gst/typefind/Makefile.am:
	  * gst/videorate/Makefile.am:
	  * gst/videoscale/Makefile.am:
	  * gst/videotestsrc/Makefile.am:
	  * gst/volume/Makefile.am:
	  * sys/v4l/Makefile.am:
	  * sys/ximage/Makefile.am:
	  * sys/xvimage/Makefile.am:
	  Don't install static libs for plugins. Fixes #550851 for base.

2008-10-16 14:54:36 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  tests/check/Makefile.am: Leave apexsink out of the states test.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Leave apexsink out of the states test.

2008-10-16 13:05:37 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Fix problem with using the output seqnum counter to check for input seqnum disco...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_jitter_buffer_sink_parse_caps),
	  (gst_rtp_jitter_buffer_flush_start),
	  (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain),
	  (gst_rtp_jitter_buffer_loop):
	  Fix problem with using the output seqnum counter to check for input
	  seqnum discontinuities.
	  Improve gap detection and recovery, reset and flush the jitterbuffer on
	  seqnum restart. Fixes #556520.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert):
	  Fix wrong G_LIKELY.

2008-10-16 11:55:19 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Commit 0.10.8.2 pre-release bump, that actually went out in a tarball on 2008-10-11
	  Original commit message from CVS:
	  * configure.ac:
	  Commit 0.10.8.2 pre-release bump, that actually went out in a
	  tarball on 2008-10-11

2008-10-16 09:51:28 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Install event handler on the rtcp_src pad, make LATENCY event return
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_event_send_rtcp_src), (create_send_rtcp_src):
	  Install event handler on the rtcp_src pad, make LATENCY event return
	  TRUE.

2008-10-16 09:18:31 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegdemux/gstmpegdemux.c: Make sure the mpegpsdemux element creates valid newsegment events.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data):
	  Make sure the mpegpsdemux element creates valid newsegment events.
	  Fixes #556428

2008-10-16 08:17:59 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	  gst/mpegdemux/mpegtspacketizer.c: Fixes segfault in get_encoding_and_convert.
	  Original commit message from CVS:
	  patch by: Sebastian Pölsterl
	  * gst/mpegdemux/mpegtspacketizer.c:
	  Fixes segfault in get_encoding_and_convert.
	  Fixes #556482

2008-10-16 08:13:49 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegtsdemux.c: Fixes a segfault in the adaptation buffer size strategy.
	  Original commit message from CVS:
	  patch by: Josep Torra
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  Fixes a segfault in the adaptation buffer size strategy.
	  Fixes #556440

2008-10-15 17:45:37 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/selector/gstinputselector.c: Gracefully handle the cases when we dont' have otherpad.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_input_selector_event),
	  (gst_input_selector_query):
	  Gracefully handle the cases when we dont' have otherpad.
	  Fixes #556430

2008-10-14 15:13:05 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/aiffparse/aiffparse.c: Fix debugging category initialization.
	  Original commit message from CVS:
	  * gst/aiffparse/aiffparse.c: (plugin_init):
	  Fix debugging category initialization.
	  Fixes #556274

2008-10-14 14:53:41 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/apexsink/gstapexsink.c: Fix some more format string compiler warnings (from OS/X)
	  Original commit message from CVS:
	  * ext/apexsink/gstapexsink.c:
	  Fix some more format string compiler warnings (from OS/X)

2008-10-13 12:27:06 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec for latest plugins changes
	  Original commit message from CVS:
	  update spec for latest plugins changes

2008-10-13 07:35:25 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/apexsink/gstapexraop.c: Fix format string compiler warnings.
	  Original commit message from CVS:
	  * ext/apexsink/gstapexraop.c: (gst_apexraop_connect),
	  (gst_apexraop_set_volume):
	  Fix format string compiler warnings.

2008-10-12 21:52:27 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  sys/oss4/: Add some spaces in translateable strings.
	  Original commit message from CVS:
	  * sys/oss4/oss4-mixer.c:
	  * sys/oss4/oss4-sink.c:
	  * sys/oss4/oss4-source.c:
	  Add some spaces in translateable strings.
	  Fixes: #555969 #555968 #555965

2008-10-12 17:08:10 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Fix regression of handling flow returns in pull mode.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag),
	  (gst_flv_demux_pull_header):
	  Fix regression of handling flow returns in pull mode.
	  Fixes bug #556003.

2008-10-12 17:04:17 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/Makefile.am: Add apexsink to SUBDIRS. Fixes bug #555912.
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Add apexsink to SUBDIRS. Fixes bug #555912.

2008-10-11 11:02:14 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  tests/check/pipelines/metadata.c: Make the metadata test not fail when jpegenc isn't available.... as it isn't here, ...
	  Original commit message from CVS:
	  * tests/check/pipelines/metadata.c:
	  Make the metadata test not fail when jpegenc isn't available....
	  as it isn't here, because it's not in this module, and
	  therefore not in the plugin path when the check runs.

2008-10-10 16:33:36 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvparse.c: Use gst_pad_alloc_buffer_and_set_caps() to make sure we get a buffer with caps that we can wor...
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video):
	  Use gst_pad_alloc_buffer_and_set_caps() to make sure we get
	  a buffer with caps that we can work with (i.e. the pad's caps).
	  Add non-keyframe video frames to the index too but without the
	  keyframe flag.
	  Add audio frames to the index only if we have no video stream.

2008-10-10 16:15:09 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvparse.c: Create pads from the pad templates, use fixed caps on them and only activate them after the ca...
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video):
	  Create pads from the pad templates, use fixed caps on them
	  and only activate them after the caps are set.

2008-10-10 15:51:42 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Disable flacparse for this release as it's too buggy.
	  Original commit message from CVS:
	  * configure.ac:
	  Disable flacparse for this release as it's too buggy.

2008-10-10 11:17:09 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* gst/flacparse/gstbaseparse.c:
	  Fix compiler warning on OS/X about parameters not matching the debug format string.
	  Original commit message from CVS:
	  2008-10-10  Jan Schmidt  <jan.schmidt@sun.com>
	  * gst/flacparse/gstbaseparse.c (gst_base_parse_push_buffer),
	  (gst_base_parse_update_upstream_durations):
	  Fix compiler warning on OS/X about parameters not matching
	  the debug format string.

2008-10-10 11:01:36 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	  Fix compiler warning on OS/X about parameters not matching the debug format string.
	  Original commit message from CVS:
	  * gst/flacparse/gstbaseparse.c (gst_base_parse_push_buffer),
	  (gst_base_parse_update_upstream_durations):
	  Fix compiler warning on OS/X about parameters not matching
	  the debug format string.

2008-10-09 19:38:52 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/tomsmocomp.c: Fix unused variable compiler warning when not building
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/tomsmocomp.c:
	  (gst_deinterlace_method_tomsmocomp_class_init):
	  Fix unused variable compiler warning when not building
	  X86 assembly.

2008-10-09 16:51:35 +0000  Christian Schaller <uraeus@gnome.org>

	* configure.ac:
	* gst-plugins-bad.spec.in:
	* tests/check/Makefile.am:
	  fix various build files to allow for disting and update spec file with latest changes.
	  Original commit message from CVS:
	  fix various build files to allow for disting and update spec file with latest changes.

2008-10-09 16:20:26 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/: Get an approximate duration of the file by looking at the timestamp of the last tag in pull mode. If we get...
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_loop):
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_timestamp):
	  * gst/flv/gstflvparse.h:
	  Get an approximate duration of the file by looking at the timestamp
	  of the last tag in pull mode. If we get (maybe better) duration from
	  metadata later we'll use that instead.

2008-10-09 15:43:02 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Refactor _pull_range() logic with checks into a seperate function to make things a bit more re...
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range),
	  (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header):
	  Refactor _pull_range() logic with checks into a seperate function
	  to make things a bit more readable.

2008-10-09 15:26:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Use gst_element_class_set_details_simple().
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_chain),
	  (gst_flv_demux_base_init):
	  Use gst_element_class_set_details_simple().
	  If we get GST_FLOW_NOT_LINKED in the parse loop but at least
	  one of the pads is linked continue the loop.

2008-10-09 10:01:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/amrwb/gstamrwbenc.*: Pass the discont flag from the input buffer on to the output buffer in the AMR encoder.
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbenc.c:
	  * ext/amrwb/gstamrwbenc.h:
	  Pass the discont flag from the input buffer on to the output buffer in
	  the AMR encoder.

2008-10-09 10:00:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvparse.c: Correct caps for video codec id 5: It's On2 VP6 with alpha channel which needs a different dec...
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate):
	  Correct caps for video codec id 5: It's On2 VP6 with alpha channel
	  which needs a different decoder and has different caps.
	  Add support for audio codec id 14, which is MP3 with 8kHz sampling
	  rate.
	  Fix endianness and signedness for raw audio codec ids.
	  Add support for alaw and mulaw audio.

2008-10-09 09:48:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/gstflvdemux.c: Go out of the parse loop as soon as we get an error instead of parsing until the GstAdapter is...
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_chain):
	  Go out of the parse loop as soon as we get an error instead
	  of parsing until the GstAdapter is empty.
	  Add some explanations about the header and tag size.
	  Don't print synchronizing message if everything is fine.

2008-10-09 09:26:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flv/: Add first version of a FLV muxer. The only missing feature is writing of stream metadata.
	  Original commit message from CVS:
	  * gst/flv/Makefile.am:
	  * gst/flv/gstflvdemux.c: (plugin_init):
	  * gst/flv/gstflvmux.c: (gst_flv_mux_base_init),
	  (gst_flv_mux_class_init), (gst_flv_mux_init),
	  (gst_flv_mux_finalize), (gst_flv_mux_reset),
	  (gst_flv_mux_handle_src_event), (gst_flv_mux_handle_sink_event),
	  (gst_flv_mux_video_pad_setcaps), (gst_flv_mux_audio_pad_setcaps),
	  (gst_flv_mux_request_new_pad), (gst_flv_mux_release_pad),
	  (gst_flv_mux_write_header), (gst_flv_mux_write_buffer),
	  (gst_flv_mux_collected), (gst_flv_mux_change_state):
	  * gst/flv/gstflvmux.h:
	  Add first version of a FLV muxer. The only missing feature is writing
	  of stream metadata.

2008-10-09 09:21:44 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/amrwb/gstamrwbparse.*: Add flush seek handler. Taken from recent armnbparse changes.
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbparse.c:
	  * ext/amrwb/gstamrwbparse.h:
	  Add flush seek handler. Taken from recent armnbparse changes.
	  Sync the code more and use #defines for HEADER.

2008-10-09 08:43:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/amrwb/gstamrwbparse.*: Fix the duration query. Also set caps on the pads and buffers more correctly. Taken from r...
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbparse.c:
	  * ext/amrwb/gstamrwbparse.h:
	  Fix the duration query. Also set caps on the pads and buffers more
	  correctly. Taken from recent armnbparse changes.

2008-10-08 16:20:26 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/: Add Fluendo to the Long Name.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdemux.c:
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  Add Fluendo to the Long Name.

2008-10-08 15:25:24 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Move of mpegtsparse to mpegdemux.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst-plugins-bad.spec.in:
	  * gst/mpegdemux/Makefile.am:
	  * gst/mpegdemux/flumpegdemux.c:
	  * gst/mpegdemux/gstmpegdesc.c:
	  * gst/mpegdemux/gstmpegdesc.h:
	  * gst/mpegdemux/mpegtspacketizer.c:
	  * gst/mpegdemux/mpegtspacketizer.h:
	  * gst/mpegdemux/mpegtsparse.c:
	  * gst/mpegdemux/mpegtsparse.h:
	  Move of mpegtsparse to mpegdemux.
	  Fixes #555193.

2008-10-08 15:22:12 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* gst/mpegtsparse/mpegtsparse.c:
	  Move of mpegtsparse to mpegdemux
	  Original commit message from CVS:
	  Move of mpegtsparse to mpegdemux

2008-10-08 10:21:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegdemux/gstmpegdemux.c: Prevent a division by zero if last mux rate was zero.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data),
	  (gst_flups_demux_parse_pack_start):
	  Prevent a division by zero if last mux rate was zero.
	  If we're going to send a NEWSEGMENT event but the segment start
	  and the current buffer timestamp differ by more than a second we
	  will start the NEWSEGMENT at the buffer timestamp.
	  This fixes playback of the tv2-1_25.mpg file, which has 0 as first SCR
	  but the first PTS are around 1 hour and 40 minutes.
	  Fixes bug #553755.

2008-10-07 21:29:26 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/resindvdsrc.c: Fix next/prev chapter seeking at the beginning or end.
	  Original commit message from CVS:
	  * ext/resindvd/resindvdsrc.c:
	  Fix next/prev chapter seeking at the beginning or end.
	  Use 64-bit scaling utility functions for converting MPEG
	  timestamps.

2008-10-07 18:54:41 +0000  Håvard Graff <havard.graff@tandberg.com>

	  gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal.
	  Original commit message from CVS:
	  Patch by: Håvard Graff <havard dot graff at tandberg dot com>
	  * gst/rtpmanager/gstrtpbin-marshal.list:
	  Add marshaller for new action signal.
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_internal_session),
	  (gst_rtp_bin_class_init):
	  * gst/rtpmanager/gstrtpbin.h:
	  Add action signal to retrieve the internal RTPSession object.
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (gst_rtp_session_get_property), (gst_rtp_session_release_pad):
	  Add property to access the internal RTPSession object.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (check_collision):
	  * gst/rtpmanager/rtpsession.h:
	  Add action signal to retrieve an RTPSource object by SSRC.
	  See #555396.

2008-10-07 13:14:40 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/selector/gstoutputselector.c: Choose right pad for sending events. Fixes #555244
	  Original commit message from CVS:
	  * gst/selector/gstoutputselector.c:
	  Choose right pad for sending events. Fixes #555244

2008-10-07 11:33:10 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Release pads of the session manager.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (find_session_by_pad),
	  (free_session), (gst_rtp_bin_dispose), (remove_recv_rtp),
	  (remove_recv_rtcp), (remove_send_rtp), (remove_rtcp),
	  (gst_rtp_bin_release_pad):
	  Release pads of the session manager.
	  Start implementing releasing pads of gstrtpbin.
	  * gst/rtpmanager/gstrtpsession.c: (remove_recv_rtp_sink),
	  (remove_recv_rtcp_sink), (remove_send_rtp_sink),
	  (remove_send_rtcp_src), (gst_rtp_session_release_pad):
	  Implement releasing pads in gstrtpsession.

2008-10-07 10:02:20 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Only update the seqnum-base when it was not already configured for the streams.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_jitter_buffer_sink_parse_caps):
	  Only update the seqnum-base when it was not already configured for the
	  streams.

2008-10-06 16:01:49 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac
	  Original commit message from CVS:
	  * configure.ac
	  * ext/metadata/README:
	  * ext/metadata/metadataexif.c:
	  * ext/metadata/metadatatags.c:
	  * ext/metadata/metadatatags.h:
	  Start using core geo tags (bump req). Fix handling of location
	  references.
	  * tests/check/Makefile.am:
	  Sort blacklisted elements and remove moved ones. Add new test.
	  * tests/check/pipelines/metadata.c:
	  Add first tests for metadata element.
	  * tests/icles/metadata_editor.c:
	  Move free to correct place.

2008-10-06 15:53:01 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/generic/states.c: Stop test on state-change error. Should be applied on other modules if we agree that it...
	  Original commit message from CVS:
	  * tests/check/generic/states.c:
	  Stop test on state-change error. Should be applied on other modules if
	  we agree that it makes sense.

2008-10-06 12:01:14 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtsparse.c: Actually copy the structure passed in when assigning it because it gets freed straight...
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Actually copy the structure passed in when assigning it because
	  it gets freed straight after the function call.
	  Re: pat_info and pmt_info GstStructures.

2008-10-06 08:32:41 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegdemux/gstmpegtsdemux.c: Fix wrong firing of critical introduced by previous optimisation.
	  Original commit message from CVS:
	  Patch by: Josep Torra
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  Fix wrong firing of critical introduced by previous optimisation.

2008-10-03 17:11:12 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faac/gstfaac.c: Warn and clamp to max bitrate for samplerate.
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_configure_source_pad):
	  Warn and clamp to max bitrate for samplerate.
	  Fixes #550486.

2008-10-03 09:11:16 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtsparse.c: Fix possible crash where pat is pointing to a freed structure.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Fix possible crash where pat is pointing to a freed structure.

2008-10-03 05:57:58 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/metadata/: Add mapping of format and mime type to xmp.
	  Original commit message from CVS:
	  * ext/metadata/metadata_mapping.htm:
	  * ext/metadata/metadataxmp.c:
	  * ext/metadata/Makefile.am:
	  Add mapping of format and mime type to xmp.

2008-10-02 14:42:25 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/metadata/: Reverting. Will need to wait for core 0.10.21 release.
	  Original commit message from CVS:
	  * ext/metadata/README:
	  * ext/metadata/metadataexif.c:
	  * ext/metadata/metadatatags.c:
	  * ext/metadata/metadatatags.h:
	  Reverting. Will need to wait for core 0.10.21 release.

2008-10-02 13:52:50 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/metadata/: Use core gsp tags.
	  Original commit message from CVS:
	  * ext/metadata/README:
	  * ext/metadata/metadataexif.c:
	  * ext/metadata/metadatatags.c:
	  * ext/metadata/metadatatags.h:
	  Use core gsp tags.

2008-09-30 17:03:14 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flacparse/gstbaseparse.c: Add support for GstIndex.
	  Original commit message from CVS:
	  * gst/flacparse/gstbaseparse.c: (gst_base_parse_finalize),
	  (gst_base_parse_class_init), (gst_base_parse_push_buffer),
	  (gst_base_parse_change_state), (gst_base_parse_set_index),
	  (gst_base_parse_get_index):
	  Add support for GstIndex.

2008-09-30 16:41:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flacparse/gstbaseparse.*: Provide a vfunc for the subclass to decide whether a frame is inside the segment or not...
	  Original commit message from CVS:
	  * gst/flacparse/gstbaseparse.c: (gst_base_parse_class_init),
	  (gst_base_parse_push_buffer),
	  (gst_base_parse_update_upstream_durations),
	  (gst_base_parse_convert), (gst_base_parse_frame_in_segment):
	  * gst/flacparse/gstbaseparse.h:
	  Provide a vfunc for the subclass to decide whether a frame is inside
	  the segment or not and add a default implementation.
	  Fix approximate bitrate calculations.

2008-09-30 16:22:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/flacparse/gstbaseparse.c: Approximate the average bitrate, duration and size if possible and add a default conver...
	  Original commit message from CVS:
	  * gst/flacparse/gstbaseparse.c: (gst_base_parse_class_init),
	  (gst_base_parse_init), (gst_base_parse_push_buffer),
	  (gst_base_parse_update_upstream_durations), (gst_base_parse_chain),
	  (gst_base_parse_loop), (gst_base_parse_activate),
	  (gst_base_parse_convert), (gst_base_parse_query):
	  Approximate the average bitrate, duration and size if possible
	  and add a default conversion function which uses this for
	  time<->byte conversions.
	  * gst/flacparse/gstflacparse.c: (gst_flac_parse_get_frame_size):
	  Fix parsing if upstream gives -1 as duration.

2008-09-30 15:08:52 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/rtpsession.c: Ref the rtpsource object before we release the session lock when we emit the signals.
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision),
	  (on_ssrc_validated), (on_ssrc_active), (on_ssrc_sdes),
	  (on_bye_ssrc), (on_bye_timeout), (on_timeout), (on_sender_timeout):
	  Ref the rtpsource object before we release the session lock when we emit
	  the signals.

2008-09-30 11:19:10 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  sys/: New plugin for audio capture and playback using Windows Audio Session
	  Original commit message from CVS:
	  * sys/Makefile.am:
	  * sys/wasapi/Makefile.am:
	  * sys/wasapi/gstwasapi.c:
	  * sys/wasapi/gstwasapisink.c:
	  * sys/wasapi/gstwasapisink.h:
	  * sys/wasapi/gstwasapisrc.c:
	  * sys/wasapi/gstwasapisrc.h:
	  * sys/wasapi/gstwasapiutil.c:
	  * sys/wasapi/gstwasapiutil.h:
	  New plugin for audio capture and playback using Windows Audio Session
	  API (WASAPI) available with Vista and newer (#520901).
	  Comes with hardcoded caps and obviously needs lots of love. Haven't
	  had time to work on this code since it was written, was initially just
	  a quick experiment to play around with this new API.

2008-09-30 10:43:54 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	* ChangeLog:
	* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	  sys/dshowdecwrapper/gstdshowaudiodec.cpp
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/gstdshowaudiodec.cpp
	  (AudioFakeSink.DoRenderSample):
	  Fix a couple of signed/unsigned comparison warnings.

2008-09-30 10:22:10 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  sys/dshowdecwrapper/: Use the _T() macro to support both Unicode and MBCS.
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/gstdshowaudiodec.h (AudioFakeSink.AudioFakeSink):
	  * sys/dshowdecwrapper/gstdshowvideodec.h (VideoFakeSink.VideoFakeSink):
	  Use the _T() macro to support both Unicode and MBCS.

2008-09-30 10:17:41 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  ext/libmms/gstmms.c (plugin_init): Fix return type of the GstURIHandler::get_type() implementation.
	  Original commit message from CVS:
	  * ext/libmms/gstmms.c (plugin_init):
	  Fix return type of the GstURIHandler::get_type() implementation.

2008-09-29 08:26:54 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add FLAC parser, based on GstBaseParse. Also add the bit and byte reader that will be added to libgstbase later.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/flacparse/Makefile.am:
	  * gst/flacparse/gstbaseparse.c: (gst_base_parse_get_type),
	  (gst_base_parse_base_init), (gst_base_parse_base_finalize),
	  (gst_base_parse_finalize), (gst_base_parse_class_init),
	  (gst_base_parse_init), (gst_base_parse_check_frame),
	  (gst_base_parse_parse_frame), (gst_base_parse_bytepos_to_time),
	  (gst_base_parse_sink_event), (gst_base_parse_sink_eventfunc),
	  (gst_base_parse_src_event), (gst_base_parse_src_eventfunc),
	  (gst_base_parse_is_seekable), (gst_base_parse_push_buffer),
	  (gst_base_parse_handle_and_push_buffer), (gst_base_parse_drain),
	  (gst_base_parse_chain), (gst_base_parse_pull_range),
	  (gst_base_parse_loop), (gst_base_parse_sink_activate),
	  (gst_base_parse_activate), (gst_base_parse_sink_activate_push),
	  (gst_base_parse_sink_activate_pull), (gst_base_parse_set_duration),
	  (gst_base_parse_set_min_frame_size),
	  (gst_base_parse_get_querytypes), (gst_base_parse_query),
	  (gst_base_parse_handle_seek), (gst_base_parse_sink_setcaps):
	  * gst/flacparse/gstbaseparse.h:
	  * gst/flacparse/gstbitreader.c: (gst_bit_reader_new),
	  (gst_bit_reader_new_from_buffer), (gst_bit_reader_free),
	  (gst_bit_reader_init), (gst_bit_reader_init_from_buffer),
	  (gst_bit_reader_set_pos), (gst_bit_reader_get_pos),
	  (gst_bit_reader_get_remaining), (gst_bit_reader_skip),
	  (gst_bit_reader_skip_to_byte):
	  * gst/flacparse/gstbitreader.h:
	  * gst/flacparse/gstbytereader.c: (GDOUBLE_SWAP_LE_BE),
	  (GFLOAT_SWAP_LE_BE), (gst_byte_reader_new),
	  (gst_byte_reader_new_from_buffer), (gst_byte_reader_free),
	  (gst_byte_reader_init), (gst_byte_reader_init_from_buffer),
	  (gst_byte_reader_set_pos), (gst_byte_reader_get_pos),
	  (gst_byte_reader_get_remaining), (gst_byte_reader_skip),
	  (gst_byte_reader_get_uint8), (gst_byte_reader_get_int8),
	  (gst_byte_reader_peek_uint8), (gst_byte_reader_peek_int8),
	  (gst_byte_reader_get_uint24_le), (gst_byte_reader_get_uint24_be),
	  (gst_byte_reader_get_int24_le), (gst_byte_reader_get_int24_be),
	  (gst_byte_reader_peek_uint24_le), (gst_byte_reader_peek_uint24_be),
	  (gst_byte_reader_peek_int24_le), (gst_byte_reader_peek_int24_be):
	  * gst/flacparse/gstbytereader.h:
	  * gst/flacparse/gstflac.c: (plugin_init):
	  * gst/flacparse/gstflacparse.c: (gst_flac_parse_base_init),
	  (gst_flac_parse_class_init), (gst_flac_parse_init),
	  (gst_flac_parse_finalize), (gst_flac_parse_start),
	  (gst_flac_parse_stop), (gst_flac_parse_get_frame_size),
	  (gst_flac_parse_check_valid_frame),
	  (gst_flac_parse_handle_streaminfo),
	  (gst_flac_parse_handle_vorbiscomment),
	  (gst_flac_parse_handle_picture), (_value_array_append_buffer),
	  (gst_flac_parse_handle_headers), (gst_flac_parse_generate_headers),
	  (gst_flac_parse_parse_frame):
	  * gst/flacparse/gstflacparse.h:
	  Add FLAC parser, based on GstBaseParse. Also add the bit and byte reader
	  that will be added to libgstbase later.
	  The FLAC parser is currently not 100% bug free and fails to get the
	  correct frame size for some frames in some streams.

2008-09-27 01:12:30 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/: Add in Title/Chapter seeking, and simple but buggy audio and subtitle stream selection.
	  Original commit message from CVS:
	  * ext/resindvd/gstmpegdemux.c:
	  * ext/resindvd/gstmpegdemux.h:
	  * ext/resindvd/resindvdbin.c:
	  * ext/resindvd/resindvdsrc.c:
	  * ext/resindvd/rsnstreamselector.c:
	  Add in Title/Chapter seeking, and simple but buggy audio
	  and subtitle stream selection.

2008-09-24 17:21:41 +0000  Michael Smith <msmith@xiph.org>

	  sys/dshowdecwrapper/: Prefer known-good filters, create directly by GUID if possible, fall back to creating highest-m...
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	  * sys/dshowdecwrapper/gstdshowaudiodec.h:
	  * sys/dshowdecwrapper/gstdshowfakesrc.cpp:
	  * sys/dshowdecwrapper/gstdshowutil.cpp:
	  * sys/dshowdecwrapper/gstdshowutil.h:
	  * sys/dshowdecwrapper/gstdshowvideodec.cpp:
	  * sys/dshowdecwrapper/gstdshowvideodec.h:
	  Prefer known-good filters, create directly by GUID if possible,
	  fall back to creating highest-merit filter otherwise.
	  Fixes playback with random dshow filters installed in some
	  cases.

2008-09-23 18:13:31 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Fix some docs.
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert),
	  (rtp_jitter_buffer_get_sync):
	  * gst/rtpmanager/rtpsession.c: (on_sender_timeout),
	  (session_cleanup):
	  * gst/rtpmanager/rtpsource.c:
	  Fix some docs.

2008-09-23 17:34:44 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Patch from: Josep Torra
	  Original commit message from CVS:
	  Patch from: Josep Torra
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  * gst/mpegdemux/gstmpegtsdemux.h:
	  Use a preallocated buffer per stream for PES packets sent on src pads.
	  Adaptively adjust buffer size appropriately.

2008-09-17 14:47:12 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/neon/gstneonhttpsrc.c: Clean up the debug logging code and #ifdef mess a bit: whether or not gstreamer debug mess...
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start),
	  (gst_neonhttp_src_send_request_and_redirect):
	  Clean up the debug logging code and #ifdef mess a bit: whether or not
	  gstreamer debug messages should be output should not depend on an
	  element property; also, GST_ELEMENT_ERROR will leave a line in the log
	  already, so merge the more useful debug log messages with the less useful
	  error debug strings.

2008-09-17 14:22:38 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/neon/gstneonhttpsrc.c: Don't post LIBRARY_INIT errors where we should be posting
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start):
	  Don't post LIBRARY_INIT errors where we should be posting
	  RESOURCE OPEN_READ errors. Fixes #552506.

2008-09-17 13:59:21 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Fix compiler warnings on OS/X
	  Original commit message from CVS:
	  * ext/jack/gstjackaudiosink.c: (jack_process_cb):
	  * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
	  Fix compiler warnings on OS/X

2008-09-17 09:06:57 +0000  Michael Krufky <mkrufky@linuxtv.org>

	  sys/dvb/gstdvbsrc.c: Add adapter_name for bus message in ATSC case. Fixes #552536.
	  Original commit message from CVS:
	  patch by: Michael Krufky
	  * sys/dvb/gstdvbsrc.c:
	  Add adapter_name for bus message in ATSC case. Fixes #552536.

2008-09-15 09:39:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/celt/gstceltenc.h: Help gtk-doc to parse this correctly.
	  Original commit message from CVS:
	  * ext/celt/gstceltenc.h:
	  Help gtk-doc to parse this correctly.
	  * gst/pcapparse/gstpcapparse.c:
	  Add missing include.

2008-09-15 09:34:14 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  examples/Makefile.am: Only built scaletempo example if we have gtk.
	  Original commit message from CVS:
	  * examples/Makefile.am:
	  Only built scaletempo example if we have gtk.

2008-09-13 01:37:50 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Do not try to adjust the offset of streams for which we have not yet seen an SR packet. A...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_session),
	  (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain):
	  Do not try to adjust the offset of streams for which we have not yet
	  seen an SR packet. Avoids large ts-offsets in some cases.

2008-09-10 23:15:11 +0000  Michael Smith <msmith@xiph.org>

	  sys/dshowdecwrapper/: Major rewrite of dshowdecwrapper. Converts code to
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/Makefile.am:
	  * sys/dshowdecwrapper/gstdshowaudiodec.c:
	  * sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	  * sys/dshowdecwrapper/gstdshowaudiodec.h:
	  * sys/dshowdecwrapper/gstdshowdecwrapper.c:
	  * sys/dshowdecwrapper/gstdshowdecwrapper.cpp:
	  * sys/dshowdecwrapper/gstdshowdecwrapper.h:
	  * sys/dshowdecwrapper/gstdshowfakesrc.cpp:
	  * sys/dshowdecwrapper/gstdshowfakesrc.h:
	  * sys/dshowdecwrapper/gstdshowutil.cpp:
	  * sys/dshowdecwrapper/gstdshowutil.h:
	  * sys/dshowdecwrapper/gstdshowvideodec.c:
	  * sys/dshowdecwrapper/gstdshowvideodec.cpp:
	  * sys/dshowdecwrapper/gstdshowvideodec.h:
	  Major rewrite of dshowdecwrapper. Converts code to
	  C++, moves to direct use of DirectShow base classes,
	  make a lot of code clearer, simplify, etc.
	  Fix decode of MP3 on Vista by working around an apparent
	  bug in the decoder.

2008-09-10 12:05:39 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func, gst_ks_clock_start):
	  Original commit message from CVS:
	  * sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func,
	  gst_ks_clock_start):
	  Synchronize KS clock as a single-shot operation for now, there's not
	  much point in doing it periodically until we're actually using the
	  KS timestamps for anything else than just discarding old frames.
	  * sys/winks/gstksvideosrc.c (gst_ks_video_src_open_device):
	  Provide the GstClock when opening the device if we already have one.

2008-09-09 23:58:02 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp, gst_ks_video_device_prepare_buffers, gst_ks_video...
	  Original commit message from CVS:
	  * sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp,
	  gst_ks_video_device_prepare_buffers, gst_ks_video_device_create_pin,
	  gst_ks_video_device_set_state, gst_ks_video_device_request_frame,
	  gst_ks_video_device_read_frame):
	  Guard against capturing old frames by keeping track of the last
	  timestamp and also zero-fill the buffers before each capture.
	  Only assign a master clock if the pin hasn't already got one.
	  Actually free buffers on the way down to avoid a huge memory leak,
	  as this was previously done when changing state to ACQUIRE downwards
	  and we now skip that state on the way down.
	  Add some debug.
	  * sys/winks/gstksvideosrc.c (DEFAULT_DEVICE_PATH, DEFAULT_DEVICE_NAME,
	  DEFAULT_DEVICE_INDEX, KS_WORKER_LOCK, KS_WORKER_UNLOCK,
	  KS_WORKER_WAIT, KS_WORKER_NOTIFY, KS_WORKER_WAIT_FOR_RESULT,
	  KS_WORKER_NOTIFY_RESULT, KS_WORKER_STATE_STARTING,
	  KS_WORKER_STATE_READY, KS_WORKER_STATE_STOPPING,
	  KS_WORKER_STATE_ERROR, KsWorkerState, device_path, device_name,
	  device_index, running, worker_thread, worker_lock,
	  worker_notify_cond, worker_result_cond, worker_state,
	  worker_pending_caps, worker_setcaps_result, worker_pending_run,
	  worker_run_result, gst_ks_video_src_reset,
	  gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_open_device,
	  gst_ks_video_src_close_device, gst_ks_video_src_worker_func,
	  gst_ks_video_src_start_worker, gst_ks_video_src_stop_worker,
	  gst_ks_video_src_change_state, gst_ks_video_src_set_clock,
	  gst_ks_video_src_set_caps, gst_ks_video_src_timestamp_buffer,
	  gst_ks_video_src_create):
	  Remove ENABLE_CLOCK_DEBUG define, it's GST_LEVEL_DEBUG after all.
	  Get rid of PROP_ENSLAVE_KSCLOCK and always slave the ks clock to the
	  GStreamer clock, it doesn't seem to hurt and matches DirectShow's
	  behavior. As an added bonus we usually get PresentationTime set for
	  each frame, so we can expand on this later for smarter latency
	  reporting (by looking at the diff between the timestamp from the
	  driver and the time according to the GStreamer clock).
	  Use an internal worker thread for opening the device, setting caps,
	  changing its state and closing it. This way we're a lot more
	  compatible with drivers that rely on hacks to do video-effects
	  between the low-level NT API and the application. Ick.
	  Start the ks clock and set the pin to KSSTATE_RUN on the first
	  create() so that we'll hopefully get hold of the GStreamer clock
	  from the very beginning. This way there's no chance that the
	  timestamps will make a sudden jump in the beginning of the stream
	  when we're running with a clock.
	  * sys/winks/kshelpers.c (CHECK_OPTIONS_FLAG,
	  ks_options_flags_to_string):
	  Reorder the flags to match the headerfile order, and make the string
	  a bit more compact.
	  * sys/winks/ksvideohelpers.c (ks_video_probe_filter_for_caps):
	  Avoid leaking KSPROPERTY_PIN_DATARANGES.

2008-09-09 17:56:10 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  Add jp2k plugin.  Fixes #550657.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/jp2k/Makefile.am:
	  * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_base_init),
	  (gst_jasper_dec_class_init), (gst_jasper_dec_init),
	  (gst_jasper_dec_reset), (gst_jasper_dec_sink_setcaps),
	  (gst_jasper_dec_negotiate), (gst_jasper_dec_get_picture),
	  (gst_jasper_dec_chain), (gst_jasper_dec_set_property),
	  (gst_jasper_dec_get_property), (gst_jasper_dec_change_state),
	  (plugin_init):
	  * ext/jp2k/gstjasperdec.h:
	  Add jp2k plugin.  Fixes #550657.

2008-09-09 11:47:42 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegdemux/: Fix conflicting public names in new mpeg demuxers.
	  Original commit message from CVS:
	  * gst/mpegdemux/flumpegdemux.c: (plugin_init):
	  * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_sync_get_type),
	  (gst_flups_demux_get_type), (gst_flups_demux_plugin_init):
	  * gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_get_type),
	  (gst_fluts_demux_plugin_init):
	  Fix conflicting public names in new mpeg demuxers.
	  Fixes #550468

2008-09-09 01:14:10 +0000  Michael Smith <msmith@xiph.org>

	  gst/aiffparse/aiffparse.c: Support chunks in AIFF in any order in pull mode, and any order so long as we get COMM bef...
	  Original commit message from CVS:
	  * gst/aiffparse/aiffparse.c:
	  Support chunks in AIFF in any order in pull mode, and any order so
	  long as we get COMM before the actual data (SSND) in push mode.
	  Fixes playback of AIFC files.

2008-09-08 20:27:23 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Reset the selector state when going to READY.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_selector_pad_reset),
	  (gst_input_selector_reset), (gst_input_selector_change_state):
	  Reset the selector state when going to READY.

2008-09-05 13:52:34 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender becomes a receiver.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (on_sender_timeout),
	  (create_session), (gst_rtp_bin_associate),
	  (gst_rtp_bin_sync_chain), (gst_rtp_bin_class_init),
	  (gst_rtp_bin_request_new_pad):
	  * gst/rtpmanager/gstrtpbin.h:
	  Add signal to notify listeners when a sender becomes a receiver.
	  Tweak lip-sync code, don't store our own copy of the ts-offset of the
	  jitterbuffer, don't adjust sync if the change is less than 4msec.
	  Get the RTP timestamp <-> GStreamer timestamp relation directly from
	  the jitterbuffer instead of our inaccurate version from the source.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
	  (gst_rtp_jitter_buffer_get_sync):
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  Add G_LIKELY macros, use global defines for max packet reorder and
	  dropouts.
	  Reset the jitterbuffer clock skew detection when packets seqnums are
	  changed unexpectedly.
	  * gst/rtpmanager/gstrtpsession.c: (on_sender_timeout),
	  (gst_rtp_session_class_init), (gst_rtp_session_init):
	  * gst/rtpmanager/gstrtpsession.h:
	  Add sender timeout signal.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	  (calculate_skew), (rtp_jitter_buffer_insert),
	  (rtp_jitter_buffer_get_sync):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Add some G_LIKELY macros.
	  Keep track of the extended RTP timestamp so that we can report the RTP
	  timestamp <-> GStreamer timestamp relation for lip-sync.
	  Remove server timestamp gap detection code, the server can sometimes
	  make a huge gap in timestamps (talk spurts,...) see #549774.
	  Detect timetamp weirdness instead by observing the sender/receiver
	  timestamp relation and resync if it changes more than 1 second.
	  Add method to report about the current rtp <-> gst timestamp relation
	  which is needed for lip-sync.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (on_sender_timeout), (check_collision), (rtp_session_process_sr),
	  (session_cleanup):
	  * gst/rtpmanager/rtpsession.h:
	  Add sender timeout signal.
	  Remove inaccurate rtp <-> gst timestamp relation code, the
	  jitterbuffer can now do an accurate reporting about this.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_init),
	  (rtp_source_update_caps), (calculate_jitter),
	  (rtp_source_process_rtp):
	  * gst/rtpmanager/rtpsource.h:
	  Remove inaccurate rtp <-> gst timestamp relation code.
	  * gst/rtpmanager/rtpstats.h:
	  Define global max-reorder and max-dropout constants for use in various
	  subsystems.

2008-09-05 11:07:32 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	  sys/dvb/gstdvbsrc.c: Add DVB Adapter name to structure sent over bus.
	  Original commit message from CVS:
	  patch by: Sebastian Pölsterl
	  * sys/dvb/gstdvbsrc.c:
	  Add DVB Adapter name to structure sent over bus.

2008-09-03 14:02:29 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add mpeg demuxer
	  Original commit message from CVS:
	  add mpeg demuxer

2008-09-02 17:43:42 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegdemux/: Fix build on macosx.
	  Original commit message from CVS:
	  * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_parse_pack_start):
	  * gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_data_cb):
	  Fix build on macosx.

2008-09-02 12:04:32 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Add Fluendo MPEG PS and TS demuxers to gst-plugins-bad. This is now dual licensed MPL and LGPL.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/mpegdemux/Makefile.am:
	  * gst/mpegdemux/flumpegdemux.c:
	  * gst/mpegdemux/flutspatinfo.c:
	  * gst/mpegdemux/flutspatinfo.h:
	  * gst/mpegdemux/flutspmtinfo.c:
	  * gst/mpegdemux/flutspmtinfo.h:
	  * gst/mpegdemux/flutspmtstreaminfo.c:
	  * gst/mpegdemux/flutspmtstreaminfo.h:
	  * gst/mpegdemux/gstmpegdefs.h:
	  * gst/mpegdemux/gstmpegdemux.c:
	  * gst/mpegdemux/gstmpegdemux.h:
	  * gst/mpegdemux/gstmpegdesc.c:
	  * gst/mpegdemux/gstmpegdesc.h:
	  * gst/mpegdemux/gstmpegtsdemux.c:
	  * gst/mpegdemux/gstmpegtsdemux.h:
	  * gst/mpegdemux/gstpesfilter.c:
	  * gst/mpegdemux/gstpesfilter.h:
	  * gst/mpegdemux/gstsectionfilter.c:
	  * gst/mpegdemux/gstsectionfilter.h:
	  Add Fluendo MPEG PS and TS demuxers to gst-plugins-bad. This
	  is now dual licensed MPL and LGPL.

2008-09-02 11:23:02 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegtsmux/mpegtsmux.c: Set caps on outgoing buffers.
	  Original commit message from CVS:
	  * gst/mpegtsmux/mpegtsmux.c: (new_packet_cb):
	  Set caps on outgoing buffers.

2008-09-02 09:56:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  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-09-02 09:46:04 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegtsmux/tsmux/tsmux.c: Fix build on macosx.
	  Original commit message from CVS:
	  * gst/mpegtsmux/tsmux/tsmux.c: (tsmux_write_ts_header):
	  Fix build on macosx.

2008-09-01 17:54:00 +0000  Christian Schaller <uraeus@gnome.org>

	* examples/Makefile.am:
	* gst-plugins-bad.spec.in:
	  update spec file and add missing subdirs in Makefile.am
	  Original commit message from CVS:
	  update spec file and add missing subdirs in Makefile.am

2008-09-01 17:49:59 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegtsmux/mpegtsmux_aac.c: Allocate a fixed size buffer on the stack instead of using malloc().
	  Original commit message from CVS:
	  * gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac):
	  Allocate a fixed size buffer on the stack instead of using malloc().
	  * gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_free),
	  (tsmux_program_new), (tsmux_program_free):
	  * gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
	  (tsmux_stream_free), (tsmux_stream_consume),
	  (tsmux_stream_add_data):
	  Use GSlice.

2008-09-01 17:47:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/mpegtsmux/mpegtsmux.c: Add support for muxing MPEG4 video.
	  Original commit message from CVS:
	  * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
	  Add support for muxing MPEG4 video.

2008-09-01 17:41:39 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/mpegtsmux/tsmux/: Fix build of mpegtsmux.
	  Original commit message from CVS:
	  * gst/mpegtsmux/tsmux/tsmux.h:
	  * gst/mpegtsmux/tsmux/tsmuxstream.h:
	  Fix build of mpegtsmux.

2008-09-01 16:38:40 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This is renamed to mpegtsmux to prevent conflicts. Also al...
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/mpegtsmux/Makefile.am:
	  * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_base_init),
	  (mpegtsmux_class_init), (mpegtsmux_init), (mpegtsmux_dispose),
	  (gst_mpegtsmux_set_property), (gst_mpegtsmux_get_property),
	  (release_buffer_cb), (mpegtsmux_create_stream),
	  (mpegtsmux_create_streams), (mpegtsmux_choose_best_stream),
	  (mpegtsmux_collected), (mpegtsmux_request_new_pad),
	  (mpegtsmux_release_pad), (new_packet_cb),
	  (mpegtsdemux_prepare_srcpad), (mpegtsmux_change_state),
	  (plugin_init):
	  * gst/mpegtsmux/mpegtsmux.h:
	  * gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac):
	  * gst/mpegtsmux/mpegtsmux_aac.h:
	  * gst/mpegtsmux/mpegtsmux_h264.c: (mpegtsmux_prepare_h264):
	  * gst/mpegtsmux/mpegtsmux_h264.h:
	  * gst/mpegtsmux/tsmux/Makefile.am:
	  * gst/mpegtsmux/tsmux/crc.h:
	  * gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_set_write_func),
	  (tsmux_set_pat_frequency), (tsmux_get_pat_frequency), (tsmux_free),
	  (tsmux_program_new), (tsmux_set_pmt_frequency),
	  (tsmux_get_pmt_frequency), (tsmux_program_add_stream),
	  (tsmux_program_set_pcr_stream), (tsmux_get_new_pid),
	  (tsmux_create_stream), (tsmux_find_stream), (tsmux_packet_out),
	  (tsmux_write_adaptation_field), (tsmux_write_ts_header),
	  (tsmux_write_stream_packet), (tsmux_program_free),
	  (tsmux_write_section), (tsmux_write_section_hdr),
	  (tsmux_write_pat), (tsmux_write_pmt):
	  * gst/mpegtsmux/tsmux/tsmux.h:
	  * gst/mpegtsmux/tsmux/tsmuxcommon.h:
	  * gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
	  (tsmux_stream_get_pid), (tsmux_stream_free),
	  (tsmux_stream_set_buffer_release_func), (tsmux_stream_consume),
	  (tsmux_stream_at_pes_start), (tsmux_stream_bytes_avail),
	  (tsmux_stream_bytes_in_buffer), (tsmux_stream_get_data),
	  (tsmux_stream_pes_header_length),
	  (tsmux_stream_find_pts_dts_within),
	  (tsmux_stream_write_pes_header), (tsmux_stream_add_data),
	  (tsmux_stream_get_es_descrs), (tsmux_stream_pcr_ref),
	  (tsmux_stream_pcr_unref), (tsmux_stream_is_pcr),
	  (tsmux_stream_get_pts):
	  * gst/mpegtsmux/tsmux/tsmuxstream.h:
	  Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This
	  is renamed to mpegtsmux to prevent conflicts. Also all relevant
	  informations about copyright and license are added to the top of
	  every file but apart from that no changes compared to the latest
	  SVN versions happened.

2008-09-01 16:05:45 +0000  Edward Hervey <bilboed@bilboed.com>

	  tests/check/elements/audioresample.c: Now that GstBaseTransform is 'fixed' ... remove cruft from tests.
	  Original commit message from CVS:
	  * tests/check/elements/audioresample.c: (setup_audioresample),
	  (fail_unless_perfect_stream), (test_perfect_stream_instance),
	  (test_discont_stream_instance):
	  Now that GstBaseTransform is 'fixed' ... remove cruft from tests.
	  Add debugging for coherence.

2008-09-01 13:23:03 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Reuse the get_linked_pads for both source and sinkpads because they are the same.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_input_selector_init),
	  (gst_input_selector_event), (gst_input_selector_query):
	  Reuse the get_linked_pads for both source and sinkpads because they are
	  the same.
	  Implement a custum event handler and get the internally linked pad
	  directly instead of relying on the default (slower) implementation.

2008-08-31 15:01:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/celt/gstceltdec.c: Correctly take the granulepos from upstream if possible and correctly handle the granulepos in...
	  Original commit message from CVS:
	  * ext/celt/gstceltdec.c: (celt_dec_chain_parse_data):
	  Correctly take the granulepos from upstream if possible and
	  correctly handle the granulepos in various calculations: the
	  granulepos is the sample number of the _last_ sample in a frame, not
	  the first.
	  * ext/celt/gstceltenc.c: (gst_celt_enc_sinkevent),
	  (gst_celt_enc_encode), (gst_celt_enc_chain),
	  (gst_celt_enc_change_state):
	  * ext/celt/gstceltenc.h:
	  Handle non-zero start timestamps in the encoder and detect/handle
	  stream discontinuities. Fixes bug #547075.

2008-08-31 12:20:33 +0000  Rov Juvano <rovjuvano@users.sourceforge.net>

	  Add scaletempo plugin, which allows to scale the speed of audio without changing the pitch by handling seeks with a r...
	  Original commit message from CVS:
	  Patch by: Rov Juvano <rovjuvano at users dot sourceforge dot net>
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-scaletempo.xml:
	  * examples/scaletempo/Makefile.am:
	  * examples/scaletempo/demo-gui.c: (pop_status_bar),
	  (status_bar_printf), (demo_gui_seek_bar_format), (update_position),
	  (demo_gui_seek_bar_change), (demo_gui_do_change_rate),
	  (demo_gui_do_set_rate), (demo_gui_do_rate_entered),
	  (demo_gui_do_toggle_advanced), (demo_gui_do_toggle_disabled),
	  (demo_gui_do_seek), (demo_gui_do_play), (demo_gui_do_pause),
	  (demo_gui_do_play_pause), (demo_gui_do_open_file),
	  (demo_gui_do_playlist_prev), (demo_gui_do_playlist_next),
	  (demo_gui_do_about_dialog), (demo_gui_do_quit),
	  (demo_gui_request_set_stride), (demo_gui_request_set_overlap),
	  (demo_gui_request_set_search), (demo_gui_rate_changed),
	  (demo_gui_playing_started), (demo_gui_playing_paused),
	  (demo_gui_playing_ended), (demo_gui_player_errored),
	  (demo_gui_stride_changed), (demo_gui_overlap_changed),
	  (demo_gui_search_changed), (demo_gui_set_player_func),
	  (demo_gui_set_playlist_func), (build_gvalue_array),
	  (create_action), (demo_gui_show_func), (demo_gui_set_player),
	  (demo_gui_set_playlist), (demo_gui_show), (demo_gui_get_property),
	  (demo_gui_set_property), (demo_gui_init), (demo_gui_class_init),
	  (demo_gui_get_type):
	  * examples/scaletempo/demo-gui.h:
	  * examples/scaletempo/demo-main.c: (handle_error_message),
	  (handle_quit), (main):
	  * examples/scaletempo/demo-player.c: (no_pipeline),
	  (demo_player_event_listener), (demo_player_state_changed_cb),
	  (demo_player_eos_cb), (demo_player_build_pipeline), (_set_rate),
	  (demo_player_scale_rate_func), (demo_player_set_rate_func),
	  (_set_state_and_wait), (demo_player_load_uri_func),
	  (demo_player_play_func), (demo_player_pause_func), (_seek_to),
	  (demo_player_seek_by_func), (demo_player_seek_to_func),
	  (demo_player_get_position_func), (demo_player_get_duration_func),
	  (demo_player_scale_rate), (demo_player_set_rate),
	  (demo_player_load_uri), (demo_player_play), (demo_player_pause),
	  (demo_player_seek_by), (demo_player_seek_to),
	  (demo_player_get_position), (demo_player_get_duration),
	  (demo_player_get_property), (demo_player_set_property),
	  (demo_player_init), (demo_player_class_init),
	  (demo_player_get_type):
	  * examples/scaletempo/demo-player.h:
	  * gst/scaletempo/Makefile.am:
	  * gst/scaletempo/gstscaletempo.c: (best_overlap_offset_float),
	  (best_overlap_offset_s16), (output_overlap_float),
	  (output_overlap_s16), (fill_queue), (reinit_buffers),
	  (gst_scaletempo_transform), (gst_scaletempo_transform_size),
	  (gst_scaletempo_sink_event), (gst_scaletempo_set_caps),
	  (gst_scaletempo_get_property), (gst_scaletempo_set_property),
	  (gst_scaletempo_base_init), (gst_scaletempo_class_init),
	  (gst_scaletempo_init):
	  * gst/scaletempo/gstscaletempo.h:
	  * gst/scaletempo/gstscaletempoplugin.c: (plugin_init):
	  Add scaletempo plugin, which allows to scale the speed of audio without
	  changing the pitch by handling seeks with a rate!=1.0.
	  Integrate it into the docs and add the example application for it.
	  Fixes bug #537700.

2008-08-30 20:22:01 +0000  David Schleef <ds@schleef.org>

	  ext/dirac/gstdiracenc.cc: Fix some memleaks.
	  Original commit message from CVS:
	  * ext/dirac/gstdiracenc.cc: Fix some memleaks.

2008-08-30 06:30:42 +0000  David Schleef <ds@schleef.org>

	  ext/dirac/gstdiracenc.cc: Fix EOS handling.  Clean up at object disposal.  Handle 4:2:2 and 4:4:4 video.
	  Original commit message from CVS:
	  * ext/dirac/gstdiracenc.cc: Fix EOS handling.  Clean up at
	  object disposal.  Handle 4:2:2 and 4:4:4 video.

2008-08-29 14:05:25 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/resindvdbin.c: Fix compiler warning on Forte.
	  Original commit message from CVS:
	  * ext/resindvd/resindvdbin.c:
	  Fix compiler warning on Forte.

2008-08-29 13:57:39 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Commit FIONREAD	check, needed for the dccp src.
	  Original commit message from CVS:
	  * configure.ac:
	  Commit FIONREAD	check, needed for the dccp src.

2008-08-29 12:16:27 +0000  Christian Schaller <uraeus@gnome.org>

	* ext/Makefile.am:
	* gst-plugins-bad.spec.in:
	  update spec file to include latest plugins, add apexsrc diretory to disted files
	  Original commit message from CVS:
	  update spec file to include latest plugins, add apexsrc diretory to disted files

2008-08-29 11:36:41 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/faac/gstfaac.*: Add code for calculating proper timestamp/duration for the trailing encoded buffers that faac wil...
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_init), (gst_faac_sink_event),
	  (gst_faac_chain), (gst_faac_change_state):
	  * ext/faac/gstfaac.h:
	  Add code for calculating proper timestamp/duration for the trailing
	  encoded buffers that faac will output when receiving EOS.

2008-08-29 08:57:14 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Fix CFLAGS and LIBS for the apexsink.
	  Original commit message from CVS:
	  * configure.ac:
	  Fix CFLAGS and LIBS for the apexsink.

2008-08-28 22:02:28 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  sys/winks/ksvideohelpers.c (ks_video_media_type_free): Avoid leaking the KSDATARANGE member of each KsVideoMediaType.
	  Original commit message from CVS:
	  * sys/winks/ksvideohelpers.c (ks_video_media_type_free):
	  Avoid leaking the KSDATARANGE member of each KsVideoMediaType.

2008-08-28 17:16:51 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/dccp/: Fix compilation on Solaris by including filio.h as needed.
	  Original commit message from CVS:
	  * gst/dccp/gstdccp.c:
	  * gst/dccp/gstdccpclientsrc.c:
	  Fix compilation on Solaris by including filio.h as needed.
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	  Fix compilation with Forte - apparently it hates concatenating a
	  macro argument that starts with an underscore??

2008-08-28 17:01:30 +0000  Jérémie Bernard <gremimail@gmail.com>

	  Add apexsink for audio output to Apple AirPort Express Wireless devices. Fixes bug #542510.
	  Original commit message from CVS:
	  Patch by: Jérémie Bernard <gremimail at gmail dot com>
	  * configure.ac:
	  * ext/apexsink/LGPL-3.0.txt:
	  * ext/apexsink/Makefile.am:
	  * ext/apexsink/gstapexplugin.c: (plugin_init):
	  * ext/apexsink/gstapexraop.c: (g_strdel), (gst_apexraop_send),
	  (gst_apexraop_recv), (gst_apexraop_new), (gst_apexraop_free),
	  (gst_apexraop_set_host), (gst_apexraop_get_host),
	  (gst_apexraop_set_port), (gst_apexraop_get_port),
	  (gst_apexraop_set_useragent), (gst_apexraop_get_useragent),
	  (gst_apexraop_connect), (gst_apexraop_get_jacktype),
	  (gst_apexraop_get_jackstatus), (gst_apexraop_close),
	  (gst_apexraop_set_volume), (gst_apexraop_write_bits),
	  (gst_apexraop_write), (gst_apexraop_flush):
	  * ext/apexsink/gstapexraop.h:
	  * ext/apexsink/gstapexsink.c: (gst_apexsink_jackstatus_get_type),
	  (gst_apexsink_jacktype_get_type), (gst_apexsink_interfaces_init),
	  (gst_apexsink_implements_interface_init),
	  (gst_apexsink_mixer_interface_init),
	  (gst_apexsink_interface_supported),
	  (gst_apexsink_mixer_list_tracks), (gst_apexsink_mixer_set_volume),
	  (gst_apexsink_mixer_get_volume), (gst_apexsink_base_init),
	  (gst_apexsink_class_init), (gst_apexsink_init),
	  (gst_apexsink_set_property), (gst_apexsink_get_property),
	  (gst_apexsink_finalise), (gst_apexsink_open),
	  (gst_apexsink_prepare), (gst_apexsink_write),
	  (gst_apexsink_unprepare), (gst_apexsink_delay),
	  (gst_apexsink_reset), (gst_apexsink_close):
	  * ext/apexsink/gstapexsink.h:
	  Add apexsink for audio output to Apple AirPort Express Wireless
	  devices. Fixes bug #542510.

2008-08-28 15:21:45 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Send EOS when the session object instructs us to.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_send_rtcp),
	  (gst_rtp_session_event_send_rtp_sink):
	  Send EOS when the session object instructs us to.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsession.h:
	  Make it possible for the session manager to instruct us to send EOS. We
	  currently will EOS when the session is a sender and when the sender part
	  goes EOS. This is not entirely correct behaviour because the session
	  could still participate as a receiver.
	  Fixes #549409.

2008-08-28 01:03:24 +0000  Michael Smith <msmith@xiph.org>

	  gst/aiffparse/aiffparse.c: Read size of chunks preceeding the audio data with the correct endianness. Fixes playback ...
	  Original commit message from CVS:
	  * gst/aiffparse/aiffparse.c:
	  Read size of chunks preceeding the audio data with the
	  correct endianness. Fixes playback of some files.
	  Fixes #538500

2008-08-28 00:25:28 +0000  Michael Smith <msmith@xiph.org>

	  Add an AIFF parsing element, heavily based on wavparse.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/aiffparse/Makefile.am:
	  * gst/aiffparse/aiffparse.c:
	  * gst/aiffparse/aiffparse.h:
	  Add an AIFF parsing element, heavily based on wavparse.

2008-08-27 21:33:07 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	* ChangeLog:
	* sys/winks/gstksvideodevice.c:
	* sys/winks/gstksvideosrc.c:
	  sys/winks/gstksvideodevice.c (gst_ks_video_device_class_init, gst_ks_video_device_set_state):
	  Original commit message from CVS:
	  * sys/winks/gstksvideodevice.c (gst_ks_video_device_class_init,
	  gst_ks_video_device_set_state):
	  Don't set the pin state to KSSTATE_RUN from the streaming thread.
	  Skip KSSTATE_ACQUIRE when changing pin state downwards.
	  Be nice and specify G_PARAM_STATIC_STRINGS.
	  Remove unused finalize method.
	  * sys/winks/gstksvideosrc.c (DEFAULT_ENABLE_QUIRKS, PROP_ENABLE_QUIRKS,
	  enable_quirks, gst_ks_video_src_class_init, gst_ks_video_src_init,
	  gst_ks_video_src_finalize, gst_ks_video_src_get_property,
	  gst_ks_video_src_set_property, gst_ks_video_src_reset,
	  gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_change_state,
	  gst_ks_video_src_set_caps):
	  First driver quirk: work around Logitech's hostile driver software to
	  improve stability and performance. See comments for details.
	  Provide a property to disable driver quirks (enabled by default).
	  Be nice and specify G_PARAM_STATIC_STRINGS.
	  Remove unused dispose method.
	  Tweak include order.

2008-08-27 15:45:16 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Implement the LATENCY query in a better way by taking the latency of all sinkpads an...
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_input_selector_init),
	  (gst_input_selector_query):
	  Implement the LATENCY query in a better way by taking the latency of all
	  sinkpads and taking the min/max instead of just taking a random pad.

2008-08-26 12:33:16 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/tomsmocomp/: Unroll the loop to handle two bytes at once. This should give a small speedup an...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
	  Unroll the loop to handle two bytes at once. This should give
	  a small speedup and makes it possible to handle chroma and luma
	  different which is needed later.

2008-08-26 11:18:38 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/dccp/gstdccpserversink.*: Don't put globals only used by one '.c' file in a header !
	  Original commit message from CVS:
	  * gst/dccp/gstdccpserversink.c:
	  * gst/dccp/gstdccpserversink.h:
	  Don't put globals only used by one '.c' file in a header !
	  Declare it as static, fixes build on macosx.

2008-08-26 11:13:24 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/dccp/gstdccp.c: Whoops, that was one fix too much :)
	  Original commit message from CVS:
	  * gst/dccp/gstdccp.c: (gst_dccp_send_buffer):
	  Whoops, that was one fix too much :)

2008-08-26 11:08:34 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/dccp/gstdccp.c: size_t's size varies by platform/architecture. Use glib convenience macro instead. Fixes build on...
	  Original commit message from CVS:
	  * gst/dccp/gstdccp.c: (gst_dccp_read_buffer),
	  (gst_dccp_send_buffer), (gst_dccp_set_sock_windowsize):
	  size_t's size varies by platform/architecture. Use glib convenience
	  macro instead. Fixes build on macosx.
	  Remove ending '\n' in debug statements.

2008-08-26 11:01:43 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/pcapparse/gstpcapparse.c: Remove unused code and fix includes.
	  Original commit message from CVS:
	  * gst/pcapparse/gstpcapparse.c: (gst_pcap_parse_class_init):
	  Remove unused code and fix includes.

2008-08-25 14:37:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/: First part of the C implementation of the tomsmocomp deinterlacing algorithm. This only supports s...
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace_method_class_init):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  * gst/deinterlace2/tvtime/tomsmocomp.c:
	  (gst_deinterlace_method_tomsmocomp_class_init):
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	  First part of the C implementation of the tomsmocomp deinterlacing
	  algorithm. This only supports search-effort=0 currently, is painfully
	  slow and needs some cleanup later when all search-effort settings
	  are implemented in C.

2008-08-24 22:05:48 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  New plugin for low-latency video capture on Windows (#519935).
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/winks/Makefile.am:
	  * sys/winks/gstksclock.c:
	  * sys/winks/gstksclock.h:
	  * sys/winks/gstksvideodevice.c:
	  * sys/winks/gstksvideodevice.h:
	  * sys/winks/gstksvideosrc.c:
	  * sys/winks/gstksvideosrc.h:
	  * sys/winks/kshelpers.c:
	  * sys/winks/kshelpers.h:
	  * sys/winks/ksvideohelpers.c:
	  * sys/winks/ksvideohelpers.h:
	  New plugin for low-latency video capture on Windows (#519935).
	  Uses Kernel Streaming, the lowest level API for doing video capture
	  on Windows (more or less just raw ioctls).

2008-08-24 16:55:48 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  Added documentation blobs. Thanks to Stefan for noticing!
	  Original commit message from CVS:
	  * gst/pcapparse/gstpcapparse.c:
	  * sys/winscreencap/gstdx9screencapsrc.c:
	  * sys/winscreencap/gstgdiscreencapsrc.c:
	  Added documentation blobs. Thanks to Stefan for noticing!

2008-08-24 13:53:29 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  New plugin: pcapparse (#520899).
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/pcapparse/Makefile.am:
	  * gst/pcapparse/gstpcapparse.c:
	  * gst/pcapparse/gstpcapparse.h:
	  New plugin: pcapparse (#520899).

2008-08-24 13:23:44 +0000  Haakon Sporsheim <hakon.sporsheim@tandberg.com>

	  New plugin: winscreencap (#463941).
	  Original commit message from CVS:
	  patch by: Haakon Sporsheim <hakon.sporsheim@tandberg.com>
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/winscreencap/Makefile.am:
	  * sys/winscreencap/gstdx9screencapsrc.c:
	  * sys/winscreencap/gstdx9screencapsrc.h:
	  * sys/winscreencap/gstgdiscreencapsrc.c:
	  * sys/winscreencap/gstgdiscreencapsrc.h:
	  * sys/winscreencap/gstwinscreencap.c:
	  * sys/winscreencap/gstwinscreencap.h:
	  New plugin: winscreencap (#463941).

2008-08-23 00:01:39 +0000  Michael Smith <msmith@xiph.org>

	  sys/dshowdecwrapper/gstdshowaudiodec.c: Flip mpeg1/mpeg2 arrays for mpeg audio. Detect which type the audio is correc...
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/gstdshowaudiodec.c:
	  Flip mpeg1/mpeg2 arrays for mpeg audio. Detect which type the audio
	  is correctly, instead of backwards. No functional changes, since this
	  mistake was completely self-consistent.

2008-08-22 06:27:57 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/gst-plugins-bad-plugins-docs.sgml: Add, but commented out xml/element-dc1394.xml. Its documented, but
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  Add, but commented out xml/element-dc1394.xml. Its documented, but
	  I can't get it to be build.
	  * ext/celt/gstceltdec.c:
	  * ext/celt/gstceltenc.c:
	  Fix doc warnings and reformat the doc block.

2008-08-21 13:22:38 +0000  Leandro Melo de Sales <leandroal@gmail.com>

	  Add dccp plugin. Fixes #542390.
	  Original commit message from CVS:
	  patch by: Leandro Melo de Sales <leandroal@gmail.com>
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-dccp.xml:
	  * gst/dccp/Makefile.am:
	  * gst/dccp/gstdccp.c:
	  * gst/dccp/gstdccp.h:
	  * gst/dccp/gstdccpclientsink.c:
	  * gst/dccp/gstdccpclientsink.h:
	  * gst/dccp/gstdccpclientsrc.c:
	  * gst/dccp/gstdccpclientsrc.h:
	  * gst/dccp/gstdccpplugin.c:
	  * gst/dccp/gstdccpserversink.c:
	  * gst/dccp/gstdccpserversink.h:
	  * gst/dccp/gstdccpserversrc.c:
	  * gst/dccp/gstdccpserversrc.h:
	  * tests/icles/dccp/README:
	  * tests/icles/dccp/call/README:
	  * tests/icles/dccp/call/DCCPClient.c:
	  * tests/icles/dccp/call/DCCPServer.c:
	  * tests/icles/dccp/file/DCCPClientSaveFile.c:
	  * tests/icles/dccp/file/DCCPServerSendFile.c:
	  * tests/icles/dccp/mic/DCCPClientPlayMic.c:
	  * tests/icles/dccp/mic/DCCPServerMic.c:
	  * tests/icles/dccp/mp3/DCCPClientPlayMP3.c:
	  * tests/icles/dccp/mp3/DCCPServerSendMP3.c:
	  * tests/icles/dccp/mp3Speex/DCCPClientPlaySpeexMP3.c:
	  * tests/icles/dccp/mp3Speex/DCCPServerSendSpeexMP3.c:
	  * tests/icles/dccp/mp3Stream/DCCPClientPlayMP3Stream.c:
	  * tests/icles/dccp/mp3Stream/DCCPServerSendMP3Stream.c:
	  Add dccp plugin. Fixes #542390.

2008-08-20 22:24:28 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Remove bits that presumably weren't supposed to be committed.
	  Original commit message from CVS:
	  * configure.ac:
	  Remove bits that presumably weren't supposed to be committed.

2008-08-20 21:44:22 +0000  Michael Smith <msmith@xiph.org>

	  Add new windows ACM encoder wrapper.
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/acmenc/Makefile.am:
	  * sys/acmenc/acmenc.c:
	  Add new windows ACM encoder wrapper.

2008-08-18 11:13:07 +0000  Michael Krufky <mkrufky@linuxtv.org>

	  sys/dvb/: Add ATSC tunning and channels.conf parsing support.
	  Original commit message from CVS:
	  patch by: Michael Krufky
	  * sys/dvb/gstdvbsrc.c:
	  * sys/dvb/parsechannels.c:
	  Add ATSC tunning and channels.conf parsing support.
	  Fixes #537455

2008-08-13 21:58:08 +0000  Michael Smith <msmith@xiph.org>

	  sys/: Initialise COM with default flags.
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/gstdshowaudiodec.c:
	  * sys/dshowdecwrapper/gstdshowaudiodec.h:
	  * sys/dshowdecwrapper/gstdshowvideodec.c:
	  * sys/dshowdecwrapper/gstdshowvideodec.h:
	  * sys/dshowvideosink/dshowvideosink.cpp:
	  * sys/dshowvideosink/dshowvideosink.h:
	  Initialise COM with default flags.
	  Only deinitialise if the initialisation was successful.

2008-08-13 14:31:02 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Reset rtp timestamp interpollation when we detect a gap when the clock_base changed.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	  (gst_rtp_bin_sync_chain), (new_ssrc_pad_found):
	  Reset rtp timestamp interpollation when we detect a gap when the
	  clock_base changed.
	  Don't try to adjust the ts-offset when it's too big (> 3seconds)
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_set_ssrc):
	  * gst/rtpmanager/gstrtpsession.h:
	  Add method to set session SSRC.
	  * gst/rtpmanager/rtpsession.c: (check_collision),
	  (rtp_session_set_internal_ssrc), (rtp_session_get_internal_ssrc),
	  (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsession.h:
	  Added debugging for the collision checks.
	  Add method to change the internal SSRC of the session.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp):
	  Reset the clock base when we detect large jumps in the seqnums.

2008-08-12 16:13:15 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  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>

	  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 14:31:57 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  Update and add documentation for mplex.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/inspect/plugin-mplex.xml:
	  * ext/mplex/gstmplex.cc:
	  Update and add documentation for mplex.
	  * ext/mpeg2enc/gstmpeg2enc.cc:
	  Documentation update.

2008-08-12 13:08:39 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  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>

	  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>

	  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-11 07:20:15 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/rtpmanager/gstrtpbin.c: Print the pad-name in debug log.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c:
	  Print the pad-name in debug log.
	  * sys/dshowsrcwrapper/gstdshowaudiosrc.c:
	  * sys/dshowsrcwrapper/gstdshowvideosrc.c:
	  Use "-" instead of "_" in property names. Can we call them just
	  "device" like everywhere else?

2008-08-08 15:07:12 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  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>

	  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>

	  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>

	  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-08-07 16:20:30 +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/sndfile/gstsf.c: (plugin_init):
	  * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_plugin_init):
	  * sys/oss4/oss4-audio.c: (plugin_init):
	  Make sure gettext returns translations in UTF-8 encoding rather
	  than in the current locale encoding (#546822).

2008-08-07 14:34:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  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-07 13:15:21 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/jack/gstjackaudiosrc.c: Try committing this once again. Now properly renamed.
	  Original commit message from CVS:
	  * ext/jack/gstjackaudiosrc.c:
	  Try committing this once again. Now properly renamed.

2008-08-07 09:09:44 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: docs/plugins/inspect/plugin-jack.xml
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/inspect/plugin-jack.xml
	  Add new element to docs.
	  * ext/jack/gstjack.h
	  Add missing file.
	  * ext/jack/gstjackaudiosrc.c:
	  * ext/jack/gstjackaudiosrc.h:
	  Rename jackaudiosrc to jack_audio_src.

2008-08-07 08:47:40 +0000  Tristan Matthews <tristan@sat.qc.ca>

	  ext/jack/: Add a jackaudiosrc. Refactor sink slightly for better code reuse.
	  Original commit message from CVS:
	  patch by: Tristan Matthews <tristan@sat.qc.ca>
	  * ext/jack/Makefile.am:
	  * ext/jack/gstjack.c:
	  * ext/jack/gstjackaudioclient.c:
	  * ext/jack/gstjackaudiosink.c:
	  * ext/jack/gstjackaudiosink.h:
	  * ext/jack/gstjackaudiosrc.c:
	  * ext/jack/gstjackaudiosrc.h:
	  * ext/jack/gstjackringbuffer.h:
	  Add a jackaudiosrc. Refactor sink slightly for better code reuse.
	  Fixes #545197.

2008-08-06 15:49:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  docs/plugins/: Add twolame and celt plugins to the docs.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/inspect/plugin-celt.xml:
	  * docs/plugins/inspect/plugin-twolame.xml:
	  Add twolame and celt plugins to the docs.

2008-08-05 09:42:53 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Make the buffer metadata writable before inserting it in the jitterbuffer becaus...
	  Original commit message from CVS:
	  Based on patch by: Olivier Crete <tester at tester dot ca>
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	  Make the buffer metadata writable before inserting it in the
	  jitterbuffer because the jitterbuffer will modify the timestamps.
	  * gst/rtpmanager/rtpjitterbuffer.c:
	  Update method comment about requiring writable metadata on buffers.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_process_sr),
	  (rtp_session_process_rtcp):
	  Make the RTCP buffer metadata writable because we want to modify the
	  metadata.
	  Fixes #546312.

2008-08-05 09:05:35 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Move the select-all logic into the activation of the currently selected pad. We want...
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_selector_pad_bufferalloc),
	  (gst_selector_pad_chain), (gst_input_selector_getcaps),
	  (gst_input_selector_activate_sinkpad):
	  Move the select-all logic into the activation of the currently selected
	  pad. We want to remember the last pad with activity in select-all mode.
	  Fix the getcaps function, we can produce the union of the upstream caps
	  in select-all mode, not the intersection like proxy_getcaps() does.

2008-08-05 09:00:50 +0000  Håvard Graff <havard.graff@tandberg.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Fix debug by logging the right seqnum.
	  Original commit message from CVS:
	  Patch by: Håvard Graff <havard dot graff at tandberg dot com>
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain):
	  Fix debug by logging the right seqnum.

2008-08-05 08:58:27 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/gstrtpbin.c: Release lock before emitting the request-pt-map signal.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester at tester dot ca>
	  * gst/rtpmanager/gstrtpbin.c: (get_pt_map):
	  Release lock before emitting the request-pt-map signal.
	  Fixes #543480.

2008-08-02 18:48:17 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/: Use oil_memcpy() instead of memcpy() as it's faster for the sizes that are usually used here.
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace_simple_method_interpolate_scanline),
	  (gst_deinterlace_simple_method_copy_scanline),
	  (gst_deinterlace_simple_method_deinterlace_frame):
	  * gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy):
	  * gst/deinterlace2/tvtime/greedyh.c:
	  (deinterlace_frame_di_greedyh):
	  * gst/deinterlace2/tvtime/scalerbob.c:
	  (deinterlace_scanline_scaler_bob):
	  * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy):
	  * gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave),
	  (copy_scanline):
	  * gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave),
	  (copy_scanline):
	  * gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave),
	  (copy_scanline):
	  Use oil_memcpy() instead of memcpy() as it's faster for the sizes that
	  are usually used here.

2008-08-02 18:36:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/: Add the remaining tvtime deinterlacing methods and fix the deinterlace_frame() implementation of G...
	  Original commit message from CVS:
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace_simple_method_deinterlace_frame),
	  (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  * gst/deinterlace2/tvtime/linear.c:
	  (deinterlace_scanline_linear_c), (deinterlace_scanline_linear_mmx),
	  (deinterlace_scanline_linear_mmxext),
	  (gst_deinterlace_method_linear_class_init),
	  (gst_deinterlace_method_linear_init):
	  * gst/deinterlace2/tvtime/linearblend.c:
	  (deinterlace_scanline_linear_blend_c),
	  (deinterlace_scanline_linear_blend2_c),
	  (deinterlace_scanline_linear_blend_mmx),
	  (deinterlace_scanline_linear_blend2_mmx),
	  (gst_deinterlace_method_linear_blend_class_init),
	  (gst_deinterlace_method_linear_blend_init):
	  * gst/deinterlace2/tvtime/plugins.h:
	  * gst/deinterlace2/tvtime/scalerbob.c:
	  (deinterlace_scanline_scaler_bob),
	  (gst_deinterlace_method_scaler_bob_class_init),
	  (gst_deinterlace_method_scaler_bob_init):
	  * gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave),
	  (copy_scanline), (gst_deinterlace_method_weave_class_init),
	  (gst_deinterlace_method_weave_init):
	  * gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave),
	  (copy_scanline), (gst_deinterlace_method_weave_bff_class_init),
	  (gst_deinterlace_method_weave_bff_init):
	  * gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave),
	  (copy_scanline), (gst_deinterlace_method_weave_tff_class_init),
	  (gst_deinterlace_method_weave_tff_init):
	  Add the remaining tvtime deinterlacing methods and fix the
	  deinterlace_frame() implementation of GstDeinterlaceSimpleMethod.

2008-08-02 18:30:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/vfir.c: Implement the VFIR deinterlacing method as simple method.
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
	  (deinterlace_line_mmx), (gst_deinterlace_method_vfir_class_init):
	  Implement the VFIR deinterlacing method as simple method.

2008-08-02 18:18:54 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/gstdeinterlace2.*: Add a GstDeinterlaceSimpleMethod subclass of GstDeinterlaceMethod that can be use...
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace_simple_method_interpolate_scanline),
	  (gst_deinterlace_simple_method_copy_scanline),
	  (gst_deinterlace_simple_method_deinterlace_frame),
	  (gst_deinterlace_simple_method_class_init),
	  (gst_deinterlace_simple_method_init):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  Add a GstDeinterlaceSimpleMethod subclass of GstDeinterlaceMethod that
	  can be used by simple deinterlacing methods. They only have to provide
	  a function for interpolating a scanline or copying a scanline.

2008-08-02 18:15:49 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/gstdeinterlace2.c: Respect the latency of the deinterlacing algorithm for the timestamps of every bu...
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_chain):
	  Respect the latency of the deinterlacing algorithm for the timestamps
	  of every buffer.

2008-08-02 18:13:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/: Add the MMX registers to the clobbered registers only if __MMX__ is defined.
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	  Add the MMX registers to the clobbered registers only if __MMX__ is
	  defined.

2008-08-02 18:09:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/: Enable tomsmocomp again as the C port will be ready for the next release.
	  Original commit message from CVS:
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method),
	  (gst_deinterlace2_class_init):
	  Enable tomsmocomp again as the C port will be ready for the next
	  release.

2008-08-02 18:02:44 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/gstdeinterlace2.c: Don't use proxy_getcaps() but implement our own getcaps() function that doubles/h...
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_init),
	  (gst_greatest_common_divisor), (gst_fraction_double),
	  (gst_deinterlace2_getcaps), (gst_deinterlace2_setcaps):
	  Don't use proxy_getcaps() but implement our own getcaps() function
	  that doubles/halfs the framerate if all fields should be sent out.

2008-08-02 17:39:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  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.

2008-08-02 17:29:44 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add CELT encoder and decoder elements based on the Speex elements.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/celt/Makefile.am:
	  * ext/celt/gstcelt.c: (plugin_init):
	  * ext/celt/gstceltdec.c: (gst_celt_dec_base_init),
	  (gst_celt_dec_class_init), (gst_celt_dec_reset),
	  (gst_celt_dec_init), (celt_dec_convert),
	  (celt_get_sink_query_types), (celt_dec_sink_query),
	  (celt_get_src_query_types), (celt_dec_src_query),
	  (celt_dec_src_event), (celt_dec_sink_event),
	  (celt_dec_chain_parse_header), (celt_dec_chain_parse_comments),
	  (celt_dec_chain_parse_data), (celt_dec_chain),
	  (celt_dec_change_state):
	  * ext/celt/gstceltdec.h:
	  * ext/celt/gstceltenc.c: (gst_celt_enc_setup_interfaces),
	  (gst_celt_enc_base_init), (gst_celt_enc_class_init),
	  (gst_celt_enc_finalize), (gst_celt_enc_sink_setcaps),
	  (gst_celt_enc_sink_getcaps), (gst_celt_enc_convert_src),
	  (gst_celt_enc_convert_sink), (gst_celt_enc_get_latency),
	  (gst_celt_enc_get_query_types), (gst_celt_enc_src_query),
	  (gst_celt_enc_sink_query), (gst_celt_enc_init),
	  (gst_celt_enc_create_metadata_buffer), (gst_celt_enc_setup),
	  (gst_celt_enc_buffer_from_data), (gst_celt_enc_push_buffer),
	  (gst_celt_enc_set_header_on_caps), (gst_celt_enc_sinkevent),
	  (gst_celt_enc_chain), (gst_celt_enc_get_property),
	  (gst_celt_enc_set_property), (gst_celt_enc_change_state):
	  * ext/celt/gstceltenc.h:
	  Add CELT encoder and decoder elements based on the Speex elements.

2008-08-02 17:16:39 +0000  Tal Shalif <tshalif@nargila.org>

	  ext/sdl/sdlvideosink.c: Use g_setenv() and g_unsetenv() instead of setenv() to fix compilation with mingw. Fixes bug ...
	  Original commit message from CVS:
	  Patch by: Tal Shalif <tshalif at nargila dot org>
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_initsdl):
	  Use g_setenv() and g_unsetenv() instead of setenv() to fix compilation
	  with mingw. Fixes bug #545247.

2008-08-01 23:30:29 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to development -> 0.10.8.1
	  Original commit message from CVS:
	  * configure.ac:
	  Back to development -> 0.10.8.1

2008-08-01 15:39:44 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  remove moved plugins from spec file
	  Original commit message from CVS:
	  remove moved plugins from spec file

=== release 0.10.8 ===

2008-07-31 22:15:17 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegtsparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst-plugins-bad.doap:
	* win32/common/config.h:
	  Release 0.10.8
	  Original commit message from CVS:
	  Release 0.10.8

2008-07-31 22:03:26 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* common:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/it.po:
	* po/ky.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-07-24 23:53:56 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: 0.10.7.3 pre-release
	  Original commit message from CVS:
	  * configure.ac:
	  0.10.7.3 pre-release
	  * po/LINGUAS:
	  * po/id.po:
	  Add Indonesian translation.

2008-07-24 00:32:37 +0000  Michael Smith <msmith@xiph.org>

	  gst/festival/gstfestival.c: Guard unistd.h with HAVE_UNISTD_H
	  Original commit message from CVS:
	  * gst/festival/gstfestival.c:
	  Guard unistd.h with HAVE_UNISTD_H
	  * gst/modplug/libmodplug/load_it.cpp:
	  * gst/modplug/libmodplug/sndfile.cpp:
	  * gst/modplug/libmodplug/sndfile.h:
	  * gst/modplug/libmodplug/stdafx.h:
	  Support for compiling with MSVC: use _MSC_VER for detecting MSVC instead
	  of MSC_VER. Make CanPackSamples take the type it's passed. Change scope
	  of a variable in load_it.cpp to MSVC's scoping rules.
	  * gst/sdp/gstsdpdemux.c:
	  Guard unistd.h with HAVE_UNISTD_H
	  Fixes #544457.

2008-07-22 06:27:44 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/timidity/gsttimidity.c: Fix compiler warning. Fixes #544050.
	  Original commit message from CVS:
	  * ext/timidity/gsttimidity.c:
	  Fix compiler warning. Fixes #544050.

2008-07-21 21:12:25 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Don't check for nav_print.h any more - it should be included in the libdvdnav development package if li...
	  Original commit message from CVS:
	  * configure.ac:
	  Don't check for nav_print.h any more - it should be included in
	  the libdvdnav development package if libdvdnav headers depend on it.
	  Fixes: #543846

2008-07-21 16:03:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Link the ladspa plugin with -ldl. It's needed for dlopen() and friends for loading the ladspa plugins and previously ...
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/ladspa/Makefile.am:
	  Link the ladspa plugin with -ldl. It's needed for dlopen() and friends
	  for loading the ladspa plugins and previously was linked in by
	  gmodule. Fixes bug #543848.

2008-07-21 10:16:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/modplug/libmodplug/Makefile.am: Use GST_CXXFLAGS instead of GST_CFLAGS for CXXFLAGS. GST_CFLAGS can contain compi...
	  Original commit message from CVS:
	  * gst/modplug/libmodplug/Makefile.am:
	  Use GST_CXXFLAGS instead of GST_CFLAGS for CXXFLAGS. GST_CFLAGS
	  can contain compiler parameters that are invalid for C++.
	  Fixes bug #543860.

2008-07-21 10:15:18 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/resindvd/Makefile.am: Dist missing header files. Fixes bug #543861.
	  Original commit message from CVS:
	  * ext/resindvd/Makefile.am:
	  Dist missing header files. Fixes bug #543861.

2008-07-19 14:12:59 +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-07-19 14:02:50 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/Makefile.am: Dist and recurse into resindvd subdir
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Dist and recurse into resindvd subdir

2008-07-19 13:43:04 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Remove interleave and replaygain configure.ac pieces too
	  Original commit message from CVS:
	  * configure.ac:
	  Remove interleave and replaygain configure.ac pieces too

2008-07-19 13:29:22 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  po/: Add new lithunian translation, and add french to the LINGUAS file.
	  Original commit message from CVS:
	  * po/LINGUAS:
	  * po/lt.po:
	  Add new lithunian translation, and add french to the LINGUAS
	  file.

2008-07-19 00:58:49 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove interleave and replaygain plugins that have moved to -good
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/inspect/plugin-interleave.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * gst/interleave/Makefile.am:
	  * gst/interleave/deinterleave.c:
	  * gst/interleave/deinterleave.h:
	  * gst/interleave/interleave.c:
	  * gst/interleave/interleave.h:
	  * gst/interleave/plugin.c:
	  * gst/interleave/plugin.h:
	  * gst/replaygain/Makefile.am:
	  * gst/replaygain/gstrganalysis.c:
	  * gst/replaygain/gstrganalysis.h:
	  * gst/replaygain/gstrglimiter.c:
	  * gst/replaygain/gstrglimiter.h:
	  * gst/replaygain/gstrgvolume.c:
	  * gst/replaygain/gstrgvolume.h:
	  * gst/replaygain/replaygain.c:
	  * gst/replaygain/replaygain.h:
	  * gst/replaygain/rganalysis.c:
	  * gst/replaygain/rganalysis.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/deinterleave.c:
	  * tests/check/elements/interleave.c:
	  * tests/check/elements/rganalysis.c:
	  * tests/check/elements/rglimiter.c:
	  * tests/check/elements/rgvolume.c:
	  Remove interleave and replaygain plugins that have moved to -good

2008-07-18 08:34:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Disable the tomsmocomp algorithm for this release as it's buggy and has no C implementation yet.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method),
	  (gst_deinterlace2_class_init), (gst_deinterlace2_init):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (gst_deinterlace_method_greedy_l_class_init):
	  * gst/deinterlace2/tvtime/greedyh.c:
	  (gst_deinterlace_method_greedy_h_class_init):
	  * gst/deinterlace2/tvtime/vfir.c:
	  (gst_deinterlace_method_vfir_class_init):
	  Disable the tomsmocomp algorithm for this release as it's buggy
	  and has no C implementation yet.
	  Build the deinterlace2 plugin on all architectures but still mark it
	  as experimental.
	  Build the x86 inline assembly only if GCC inline assembly is supported
	  and only on x86 or amd64. Fixes bug #543286.

2008-07-16 14:15:39 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/real/gstrealvideodec.c: Add some casts to fix the build on Forte
	  Original commit message from CVS:
	  * gst/real/gstrealvideodec.c: (open_library):
	  Add some casts to fix the build on Forte

2008-07-14 14:13:54 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/deinterlace2/tvtime/: Fix build on x86_64
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (gst_deinterlace_method_greedy_l_class_init):
	  * gst/deinterlace2/tvtime/greedyh.c:
	  (gst_deinterlace_method_greedy_h_class_init):
	  * gst/deinterlace2/tvtime/vfir.c:
	  (gst_deinterlace_method_vfir_class_init):
	  Fix build on x86_64

2008-07-14 07:50:01 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/gstmpegdemux.c: Remove whitespace line.
	  Original commit message from CVS:
	  * ext/resindvd/gstmpegdemux.c:
	  Remove whitespace line.
	  * ext/resindvd/resindvdbin.c:
	  * ext/resindvd/resindvdbin.h:
	  Make it so that audio/video pads aren't added to the bin
	  until after data flow starts.
	  * ext/resindvd/resin-play:
	  Move video buffer queue outside resindvdbin
	  * ext/resindvd/resindvdsrc.c:
	  Check that the nav_clock_id didn't already get unscheduled.
	  * gst/dvdspu/gstdvdspu.c:
	  Remove assert that sometimes triggers erroneously.

2008-07-13 10:56:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedyh.asm: Always use the C implementation if width is not a multiple of 4. The assembly op...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  Always use the C implementation if width is not a multiple of 4. The
	  assembly optimized version only handle this and calling the C
	  implementation for the remaining part doesn't work because it needs
	  previous calculations.

2008-07-13 10:52:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/: Some cleanup, use 3DNOW instead of TDNOW in macros.
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  * gst/deinterlace2/tvtime/greedyh.c:
	  * gst/deinterlace2/tvtime/greedyhmacros.h:
	  Some cleanup, use 3DNOW instead of TDNOW in macros.
	  * gst/deinterlace2/tvtime/tomsmocomp.c:
	  (gst_deinterlace_method_tomsmocomp_class_init):
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	  The SSE method in fact only needs MMXEXT, declare it as such.

2008-07-11 14:06:08 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  docs/plugins/.cvsignore: Ignore *-undeclared.txt
	  Original commit message from CVS:
	  * docs/plugins/.cvsignore:
	  Ignore *-undeclared.txt
	  * ext/resindvd/rsnaudiomunge.c:
	  Turn g_print's into debug statements.
	  * ext/resindvd/resin-play:
	  * ext/resindvd/Makefile.am:
	  * ext/resindvd/resindvdbin.c:
	  * ext/resindvd/resindvdbin.h:
	  * ext/resindvd/rsnparsetter.c:
	  * ext/resindvd/rsnparsetter.h:
	  * ext/resindvd/rsnwrappedbuffer.c:
	  * ext/resindvd/rsnwrappedbuffer.h:
	  Add a bloated implementation of a really simple idea: Replace the
	  pixel-aspect-ratio in the output video with a prescribed one when
	  necessary. There must be an easier way.
	  Split the dvdspu out of the resindvdbin and put out the subpicture
	  stream on the subpicture pad.
	  * ext/resindvd/gstmpegdemux.c:
	  Send video-aspect events down the pipe from the demuxer.
	  * ext/resindvd/resindvdsrc.c:
	  * ext/resindvd/resindvdsrc.h:
	  Handle timed-stills somewhat using g_cond_timed_wait, with a FIXME
	  to make it use clock-waiting later.
	  * ext/resindvd/rsnbasesrc.c:
	  Don't overwrite the last_stop in the basesrc segment after a seamless
	  seek.

2008-07-11 13:54:52 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* docs/plugins/.gitignore:
	  Commit file that moap seems to have missed: Ignore *-undeclared.txt
	  Original commit message from CVS:
	  Commit file that moap seems to have missed: Ignore *-undeclared.txt

2008-07-10 21:06:03 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Cleanup Plugin docs. Link to signals and properties. Fix sub-section titles. Drop mentining that all our example pipe...
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-base-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-base-plugins-overrides.txt:
	  * docs/plugins/gst-plugins-base-plugins-sections.txt:
	  * docs/plugins/gst-plugins-base-plugins.args:
	  * docs/plugins/gst-plugins-base-plugins.hierarchy:
	  * docs/plugins/gst-plugins-base-plugins.interfaces:
	  * docs/plugins/gst-plugins-base-plugins.prerequisites:
	  * docs/plugins/gst-plugins-base-plugins.signals:
	  * docs/plugins/inspect/plugin-adder.xml:
	  * docs/plugins/inspect/plugin-alsa.xml:
	  * docs/plugins/inspect/plugin-audioconvert.xml:
	  * docs/plugins/inspect/plugin-audiorate.xml:
	  * docs/plugins/inspect/plugin-audioresample.xml:
	  * docs/plugins/inspect/plugin-audiotestsrc.xml:
	  * docs/plugins/inspect/plugin-cdparanoia.xml:
	  * docs/plugins/inspect/plugin-decodebin.xml:
	  * docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
	  * docs/plugins/inspect/plugin-gdp.xml:
	  * docs/plugins/inspect/plugin-gnomevfs.xml:
	  * docs/plugins/inspect/plugin-libvisual.xml:
	  * docs/plugins/inspect/plugin-ogg.xml:
	  * docs/plugins/inspect/plugin-pango.xml:
	  * docs/plugins/inspect/plugin-playback.xml:
	  * docs/plugins/inspect/plugin-queue2.xml:
	  * docs/plugins/inspect/plugin-subparse.xml:
	  * docs/plugins/inspect/plugin-tcp.xml:
	  * docs/plugins/inspect/plugin-theora.xml:
	  * docs/plugins/inspect/plugin-typefindfunctions.xml:
	  * docs/plugins/inspect/plugin-uridecodebin.xml:
	  * docs/plugins/inspect/plugin-video4linux.xml:
	  * docs/plugins/inspect/plugin-videorate.xml:
	  * docs/plugins/inspect/plugin-videoscale.xml:
	  * docs/plugins/inspect/plugin-videotestsrc.xml:
	  * docs/plugins/inspect/plugin-volume.xml:
	  * docs/plugins/inspect/plugin-vorbis.xml:
	  * docs/plugins/inspect/plugin-ximagesink.xml:
	  * docs/plugins/inspect/plugin-xvimagesink.xml:
	  * ext/alsa/gstalsamixer.c:
	  * ext/alsa/gstalsasink.c:
	  * ext/alsa/gstalsasrc.c:
	  * ext/gio/gstgiosink.c:
	  * ext/gio/gstgiosrc.c:
	  * ext/gio/gstgiostreamsink.c:
	  * ext/gio/gstgiostreamsrc.c:
	  * ext/gnomevfs/gstgnomevfssink.c:
	  * ext/gnomevfs/gstgnomevfssrc.c:
	  * ext/ogg/gstoggdemux.c:
	  * ext/ogg/gstoggmux.c:
	  * ext/pango/gstclockoverlay.c:
	  * ext/pango/gsttextoverlay.c:
	  * ext/pango/gsttextrender.c:
	  * ext/pango/gsttimeoverlay.c:
	  * ext/theora/theoradec.c:
	  * ext/theora/theoraenc.c:
	  * ext/theora/theoraparse.c:
	  * ext/vorbis/vorbisdec.c:
	  * ext/vorbis/vorbisenc.c:
	  * ext/vorbis/vorbisparse.c:
	  * ext/vorbis/vorbistag.c:
	  * gst/adder/gstadder.c:
	  * gst/audioconvert/gstaudioconvert.c:
	  * gst/audioresample/gstaudioresample.c:
	  * gst/audiotestsrc/gstaudiotestsrc.c:
	  * gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	  * gst/gdp/gstgdpdepay.c:
	  * gst/gdp/gstgdppay.c:
	  * gst/playback/gstdecodebin2.c:
	  * gst/playback/gstplaybin.c:
	  * gst/playback/gstplaybin2.c:
	  * gst/playback/gstqueue2.c:
	  * gst/playback/gsturidecodebin.c:
	  * gst/tcp/gstmultifdsink.c:
	  * gst/tcp/gsttcpserversink.c:
	  * gst/videorate/gstvideorate.c:
	  * gst/videoscale/gstvideoscale.c:
	  * gst/videotestsrc/gstvideotestsrc.c:
	  * gst/volume/gstvolume.c:
	  * sys/ximage/ximagesink.c:
	  * sys/xvimage/xvimagesink.c:
	  Cleanup Plugin docs. Link to signals and properties. Fix sub-section
	  titles. Drop mentining that all our example pipelines are "simple"
	  pipelines.

2008-07-10 20:23:09 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Convert extended event text to UTF-8.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Convert extended event text to UTF-8.

2008-07-10 18:51:11 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Document one more.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-stereo.xml:
	  * gst/stereo/gststereo.c:
	  Document one more.

2008-07-10 09:20:23 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/gstmpegdesc.h: Fix extended event descriptor parsing, out by 1 in position of text length.
	  Original commit message from CVS:
	  * gst/mpegtsparse/gstmpegdesc.h:
	  Fix extended event descriptor parsing, out by 1 in position of
	  text length.

2008-07-09 12:13:09 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/festival/gstfestival.c: Add a note to the docs, that festival need to be running. Also log an error it it is not....
	  Original commit message from CVS:
	  * gst/festival/gstfestival.c:
	  Add a note to the docs, that festival need to be running. Also log an
	  error it it is not. Fixes #541327

2008-07-08 21:20:27 +0000  Ilja Pavkovic <illsen@gumblfarz.de>

	  gst/librfb/gstrfbsrc.*: Add view-only property to ignore the navigation events
	  Original commit message from CVS:
	  patch by: Ilja Pavkovic <illsen@gumblfarz.de>
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/gstrfbsrc.h:
	  Add view-only property to ignore the navigation events

2008-07-08 18:53:41 +0000  Michael Smith <msmith@xiph.org>

	  sys/dshowdecwrapper/gstdshowaudiodec.c: Revert previous patch apart from typo fixes; the patch was not independently ...
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/gstdshowaudiodec.c:
	  Revert previous patch apart from typo fixes; the patch was not
	  independently useful.

2008-07-08 17:41:55 +0000  Alessandro Decina <alessandro@nnva.org>

	  sys/dshowdecwrapper/: Add AAC, AC3 to handled codecs.
	  Original commit message from CVS:
	  Based on patch by: Alessandro Decina <alessandro@nnva.org>
	  * sys/dshowdecwrapper/gstdshowaudiodec.c:
	  * sys/dshowdecwrapper/gstdshowdecwrapper.h:
	  * sys/dshowdecwrapper/gstdshowvideodec.c:
	  Add AAC, AC3 to handled codecs.
	  Fix handling of flush events.
	  Improve debug/error output.
	  Fix a number of typos in comments and variable names.

2008-07-08 15:24:44 +0000  Ilja Pavkovic <illsen@gumblfarz.de>

	  gst/librfb/rfbdecoder.c: Implement ServerCutText message
	  Original commit message from CVS:
	  patch by: Ilja Pavkovic <illsen@gumblfarz.de>
	  * gst/librfb/rfbdecoder.c:
	  Implement ServerCutText message

2008-07-08 14:28:08 +0000  Ilja Pavkovic <illsen@gumblfarz.de>

	  gst/librfb/: Add property for shared desktop
	  Original commit message from CVS:
	  patch by: Ilja Pavkovic <illsen@gumblfarz.de>
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/rfbdecoder.c:
	  Add property for shared desktop

2008-07-08 14:01:19 +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-08 13:31:37 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Don't use declarations after statements in the remaining code.
	  Original commit message from CVS:
	  * ext/spc/gstspc.c: (spc_setup):
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	  Don't use declarations after statements in the remaining code.

2008-07-08 13:28:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/: Don't use declarations after statements.
	  Original commit message from CVS:
	  Patch by:
	  Jonathan Rosser <jonathan dot rosser at rd dot bbc dot co dot uk>
	  * ext/metadata/metadataexif.c: (metadataparse_handle_unit_tags):
	  * ext/metadata/metadataxmp.c:
	  (metadataparse_xmp_iter_add_to_tag_list):
	  * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_start):
	  * ext/timidity/gstwildmidi.c: (gst_wildmidi_loop):
	  Don't use declarations after statements.

2008-07-07 13:22:26 +0000  Alessandro Decina <alessandro@nnva.org>

	  gst/mpegtsparse/mpegtsparse.c: Fix memory leak by unreffing structures when not needed.
	  Original commit message from CVS:
	  patch by: Alessandro Decina
	  * gst/mpegtsparse/mpegtsparse.c:
	  Fix memory leak by unreffing structures when not needed.
	  Fixes #539292.

2008-07-07 10:43:45 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/sdp/gstsdpdemux.c: Use floating point math for latencies < 0 sec in log output.
	  Original commit message from CVS:
	  * gst/sdp/gstsdpdemux.c:
	  Use floating point math for latencies < 0 sec in log output.

2008-07-06 20:43:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: Mark internal processing functions as static inline for quite ...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	  Mark internal processing functions as static inline for quite some
	  speedup as they're used only once and need to get many local variables
	  passed as parameter.

2008-07-05 19:20:30 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/gstdeinterlace2.*: Call the current instance "self" instead of "object".
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace_method_deinterlace_frame),
	  (gst_deinterlace2_set_method), (gst_deinterlace2_init),
	  (gst_deinterlace2_reset_history), (gst_deinterlace2_reset),
	  (gst_deinterlace2_set_property), (gst_deinterlace2_get_property),
	  (gst_deinterlace2_pop_history), (gst_deinterlace2_head_history),
	  (gst_deinterlace2_push_history), (gst_deinterlace2_chain),
	  (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
	  (gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
	  (gst_deinterlace2_src_query):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  Call the current instance "self" instead of "object".

2008-07-05 19:11:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/gstdeinterlace2.*: Include latency of the method in the returned latency.
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace_method_get_latency),
	  (gst_deinterlace2_set_method), (gst_deinterlace2_class_init),
	  (gst_deinterlace2_push_history), (gst_deinterlace2_chain),
	  (gst_deinterlace2_setcaps), (gst_deinterlace2_src_query):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  Include latency of the method in the returned latency.
	  Fix outputting of all fields, i.e. doubling of the framerate.

2008-07-05 16:47:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/: Use a GstObject subtype for the deinterlacing methods and export the different settings for each d...
	  Original commit message from CVS:
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace_method_class_init), (gst_deinterlace_method_init),
	  (gst_deinterlace_method_deinterlace_frame),
	  (gst_deinterlace_method_get_fields_required),
	  (gst_deinterlace2_methods_get_type), (_do_init),
	  (gst_deinterlace2_set_method), (gst_deinterlace2_class_init),
	  (gst_deinterlace2_child_proxy_get_child_by_index),
	  (gst_deinterlace2_child_proxy_get_children_count),
	  (gst_deinterlace2_child_proxy_interface_init),
	  (gst_deinterlace2_init), (gst_deinterlace2_finalize),
	  (gst_deinterlace2_chain), (gst_deinterlace2_src_query):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (deinterlace_greedy_packed422_scanline_c),
	  (deinterlace_greedy_packed422_scanline_mmx),
	  (deinterlace_greedy_packed422_scanline_mmxext),
	  (deinterlace_frame_di_greedy),
	  (gst_deinterlace_method_greedy_l_set_property),
	  (gst_deinterlace_method_greedy_l_get_property),
	  (gst_deinterlace_method_greedy_l_class_init),
	  (gst_deinterlace_method_greedy_l_init):
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C),
	  (deinterlace_frame_di_greedyh),
	  (gst_deinterlace_method_greedy_h_set_property),
	  (gst_deinterlace_method_greedy_h_get_property),
	  (gst_deinterlace_method_greedy_h_class_init),
	  (gst_deinterlace_method_greedy_h_init):
	  * gst/deinterlace2/tvtime/greedyh.h:
	  * gst/deinterlace2/tvtime/plugins.h:
	  * gst/deinterlace2/tvtime/tomsmocomp.c:
	  (gst_deinterlace_method_tomsmocomp_set_property),
	  (gst_deinterlace_method_tomsmocomp_get_property),
	  (gst_deinterlace_method_tomsmocomp_class_init),
	  (gst_deinterlace_method_tomsmocomp_init):
	  * gst/deinterlace2/tvtime/tomsmocomp.h:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir),
	  (gst_deinterlace_method_vfir_class_init),
	  (gst_deinterlace_method_vfir_init):
	  Use a GstObject subtype for the deinterlacing methods and export
	  the different settings for each deinterlacing method via GObject
	  properties.
	  Implement GstChildProxy interface to allow access to the used
	  deinterlacing method and to allow adjusting the different settings.
	  Move global variables of the tomsmocomp deinterlacing method into
	  function local variables to make it possible to use this deinterlacing
	  method from different instances.

2008-07-05 12:22:37 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedyh.asm: Support widths that are not a multiply of 4 when using the assembly optimized gr...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  Support widths that are not a multiply of 4 when using the assembly
	  optimized greedyh implementations.

2008-07-04 18:54:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedyh.c: Only build the assembly optimized implementations on x86.
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedyh.c:
	  (deinterlace_frame_di_greedyh):
	  Only build the assembly optimized implementations on x86.

2008-07-04 18:52:37 +0000  Damien Lespiau <damien.lespiau@gmail.com>

	  configure.ac: Fix checking of headers for the OSS4 plugin to fail if a single header doesn't exist already. AC_CHECK_...
	  Original commit message from CVS:
	  Patch by: Damien Lespiau <damien dot lespiau at gmail dot com>
	  * configure.ac:
	  Fix checking of headers for the OSS4 plugin to fail if a single
	  header doesn't exist already. AC_CHECK_HEADERS only fails if none
	  of the headers is found. Fixes bug #541543.

2008-07-04 16:06:09 +0000  Damien Lespiau <damien.lespiau@gmail.com>

	  Fix built of the festival plugin with mingw32 by linking to ws2_32.dll and including winsock headers. Fixes bug #541522.
	  Original commit message from CVS:
	  Patch by: Damien Lespiau <damien dot lespiau at gmail dot com>
	  * configure.ac:
	  * gst/festival/Makefile.am:
	  * gst/festival/gstfestival.c:
	  Fix built of the festival plugin with mingw32 by linking to ws2_32.dll
	  and including winsock headers. Fixes bug #541522.

2008-07-03 14:44:51 +0000  Peter Kjellerstedt <pkj@axis.com>

	  gst/rtpmanager/: Corrected a typo (interpollate -> interpolate).
	  Original commit message from CVS:
	  * ChangeLog:
	  * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_loop):
	  * gst/rtpmanager/rtpsource.c: (rtp_source_get_new_sr):
	  Corrected a typo (interpollate -> interpolate).

2008-07-03 14:31:10 +0000  Peter Kjellerstedt <pkj@axis.com>

	  gst/rtpmanager/: Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a pipeline is running normally.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp),
	  (gst_rtp_session_send_rtp), (gst_rtp_session_send_rtcp),
	  (gst_rtp_session_sync_rtcp), (gst_rtp_session_chain_recv_rtp),
	  (gst_rtp_session_chain_recv_rtcp), (gst_rtp_session_chain_send_rtp):
	  * gst/rtpmanager/rtpsession.c: (source_push_rtp),
	  (rtp_session_send_rtp):
	  * gst/rtpmanager/rtpsource.c: (push_packet), (calculate_jitter),
	  (rtp_source_process_rtp), (rtp_source_send_rtp):
	  Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a
	  pipeline is running normally.

2008-07-03 13:47:19 +0000  Peter Kjellerstedt <pkj@axis.com>

	  gst/rtpmanager/: Do not mix the use of g_get_current_time() with gst_clock_get_time().
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init),
	  (gst_rtp_session_finalize), (rtcp_thread),
	  (gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_recv_rtcp),
	  (gst_rtp_session_event_send_rtp_sink),
	  (gst_rtp_session_chain_send_rtp):
	  * gst/rtpmanager/rtpsession.c: (check_collision),
	  (update_arrival_stats), (rtp_session_process_rtp),
	  (rtp_session_process_rtcp), (rtp_session_send_rtp),
	  (rtp_session_send_bye_locked), (rtp_session_send_bye),
	  (rtp_session_next_timeout), (session_report_blocks), (session_cleanup),
	  (is_rtcp_time), (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsession.h:
	  Do not mix the use of g_get_current_time() with gst_clock_get_time().

2008-07-01 21:40:19 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegvideoparse/mpegvideoparse.*: Queue new-segment events and send them after caps have been determined and set, ...
	  Original commit message from CVS:
	  * gst/mpegvideoparse/mpegvideoparse.c:
	  * gst/mpegvideoparse/mpegvideoparse.h:
	  Queue new-segment events and send them after caps have been
	  determined and set, so that the decoder will have been auto-plugged.

2008-07-01 11:28:17 +0000  Michael Smith <msmith@xiph.org>

	  sys/qtwrapper/: Make qtwrapper compile/work on win32.
	  Original commit message from CVS:
	  Patch by : Michael Smith <msmith @ xiph dot org>
	  * sys/qtwrapper/audiodecoders.c: (qtwrapper_audio_decoder_init),
	  (clear_AudioStreamBasicDescription), (fill_indesc_mp3),
	  (fill_indesc_aac), (make_samr_magic_cookie), (write_len),
	  (make_aac_magic_cookie), (open_decoder), (process_buffer_cb),
	  (qtwrapper_audio_decoder_chain),
	  (qtwrapper_audio_decoder_sink_event),
	  (qtwrapper_audio_decoder_base_init),
	  (qtwrapper_audio_decoder_class_init),
	  (qtwrapper_audio_decoders_register):
	  * sys/qtwrapper/codecmapping.h:
	  * sys/qtwrapper/imagedescription.c: (image_description_for_avc1),
	  (image_description_for_mp4v), (image_description_from_stsd_buffer):
	  * sys/qtwrapper/imagedescription.h:
	  * sys/qtwrapper/qtutils.c: (get_name_info_from_component),
	  (dump_avcc_atom), (dump_image_description),
	  (AllocateAudioBufferList):
	  * sys/qtwrapper/qtutils.h:
	  * sys/qtwrapper/qtwrapper.c: (plugin_init):
	  * sys/qtwrapper/qtwrapper.h:
	  * sys/qtwrapper/videodecoders.c:
	  (qtwrapper_video_decoder_base_init), (open_decoder),
	  (decompressCb), (qtwrapper_video_decoder_chain),
	  (qtwrapper_video_decoders_register):
	  Make qtwrapper compile/work on win32.
	  Lots of fixes
	  Fixes #531840

2008-06-30 19:19:26 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/rawparse/gstvideoparse.c: Fix size calculation for RGB buffers -> bpp is in bits, so divide by 8
	  Original commit message from CVS:
	  * gst/rawparse/gstvideoparse.c:
	  Fix size calculation for RGB buffers -> bpp is in bits, so divide by 8

2008-06-30 07:51:07 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/: Remove useless file and mark everything possible as static.
	  Original commit message from CVS:
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/tvtime/tomsmocomp.c: (tomsmocomp_init),
	  (tomsmocomp_filter_mmx), (tomsmocomp_filter_3dnow),
	  (tomsmocomp_filter_sse), (deinterlace_frame_di_tomsmocomp):
	  * gst/deinterlace2/tvtime/tomsmocomp.h:
	  Remove useless file and mark everything possible as static.
	  * gst/deinterlace2/tvtime/greedy.c:
	  * gst/deinterlace2/tvtime/greedyh.c:
	  Use "_stdint.h" instead of <stdint.h>.

2008-06-29 10:56:47 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/: Get rid of speedy.[ch] as we don't use most of it's code anyway and it doesn't seem to be relicens...
	  Original commit message from CVS:
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_init):
	  * gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy):
	  * gst/deinterlace2/tvtime/greedyh.c:
	  (deinterlace_frame_di_greedyh):
	  * gst/deinterlace2/tvtime/speedtools.h:
	  * gst/deinterlace2/tvtime/speedy.c:
	  * gst/deinterlace2/tvtime/speedy.h:
	  * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy):
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir):
	  Get rid of speedy.[ch] as we don't use most of it's code anyway
	  and it doesn't seem to be relicensed to LGPL. Use memcpy() instead
	  of the speedy memcpy everywhere instead.
	  * gst/deinterlace2/gstdeinterlace2.h:
	  Remove many unused declarations.

2008-06-28 20:51:36 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  ext/mpeg2enc/gstmpeg2encoptions.*: Expose the additional MPEG HDTV format profiles available in latest mjpegtools ver...
	  Original commit message from CVS:
	  * ext/mpeg2enc/gstmpeg2encoptions.cc:
	  * ext/mpeg2enc/gstmpeg2encoptions.hh:
	  Expose the additional MPEG HDTV format profiles available in latest
	  mjpegtools version.

2008-06-28 18:13:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/gstdeinterlace2.c: Divide latency be 2 to convert from fields to frames.
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_src_query):
	  Divide latency be 2 to convert from fields to frames.

2008-06-28 18:10:52 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedy.c: Don't use scanlines function from gstdeinterlace2 as it's not appropiate for this m...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (deinterlace_greedy_packed422_scanline_c),
	  (deinterlace_greedy_packed422_scanline_mmx),
	  (deinterlace_greedy_packed422_scanline_mmxext),
	  (deinterlace_frame_di_greedy):
	  Don't use scanlines function from gstdeinterlace2 as it's
	  not appropiate for this method. Instead implement deinterlace_frame
	  function by taking the one from greedyh.
	  * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C):
	  Small fix for the C implementation.
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir):
	  Don't use the scanlines function from gstdeinterlace2 as it's only
	  used for this method and will be removed. Instead implement
	  deinterlace_frame function and make it a bit more efficient.
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace2_class_init), (gst_deinterlace2_set_method),
	  (gst_deinterlace2_push_history), (gst_deinterlace2_chain),
	  (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
	  (gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
	  (gst_deinterlace2_src_query):
	  Fix coding style and remove scanlines function as it's unused now.

2008-06-28 17:25:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/: Add a C implementation for the greedyh deinterlacing method, clean up the code a bit and ma...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C),
	  (deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method):
	  * gst/deinterlace2/tvtime/greedyhmacros.h:
	  Add a C implementation for the greedyh deinterlacing method, clean
	  up the code a bit and mark the SSE version as MMXEXT as it doesn't
	  require any SSE instructions.

2008-06-27 13:22:34 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/gstdeinterlace2.c: If we're outputting all fields the framerate has to be doubled.
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace2_set_property), (gst_deinterlace2_chain),
	  (gst_deinterlace2_setcaps):
	  If we're outputting all fields the framerate has to be doubled.
	  Set duration on the outgoing buffers.

2008-06-26 15:52:40 +0000  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

	  Add documentation for YUV4MPEG2 encoder element.
	  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/y4m/gsty4mencode.c:
	  Add documentation for YUV4MPEG2 encoder element.

2008-06-25 16:05:08 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: Remove unneeded macros that break build on macosx.
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	  Remove unneeded macros that break build on macosx.

2008-06-24 15:48:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Depend on released versions of core and -base.
	  Original commit message from CVS:
	  * configure.ac:
	  Depend on released versions of core and -base.

2008-06-24 12:08:47 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedy.c: Optimize MMX/MMXEXT implementations a bit by requiring two less memory accesses and...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (deinterlace_greedy_packed422_scanline_mmx),
	  (deinterlace_greedy_packed422_scanline_mmxext):
	  Optimize MMX/MMXEXT implementations a bit by requiring two less
	  memory accesses and fix the workaround for the missing right shift
	  on bytes to unset the highest bit of every byte.

2008-06-24 10:15:41 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedy.c: Remove sfence instruction as it's not needed and actually is an SSE instruction.
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (deinterlace_greedy_packed422_scanline_mmxext):
	  Remove sfence instruction as it's not needed and actually is an SSE
	  instruction.

2008-06-24 10:12:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedy.c: Add plain MMX implementation for the greedyl method.
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (deinterlace_greedy_packed422_scanline_mmx),
	  (deinterlace_greedy_packed422_scanline):
	  Add plain MMX implementation for the greedyl method.

2008-06-24 09:40:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/Makefile.am: Move the assembly includes to noinst_HEADERS where they belong.
	  Original commit message from CVS:
	  * gst/deinterlace2/Makefile.am:
	  Move the assembly includes to noinst_HEADERS where they belong.
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
	  (deinterlace_line_mmx):
	  Fix C and MMX implementations a bit more.

2008-06-24 09:10:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedy.c: Fix the C implementation to produce correct results and optimize the
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (deinterlace_greedy_packed422_scanline_c),
	  (deinterlace_greedy_packed422_scanline_mmxext),
	  (deinterlace_greedy_packed422_scanline):
	  Fix the C implementation to produce correct results and optimize the
	  MMXEXT implementation.
	  Handle odd widths and don't read over array boundaries in the MMXEXT
	  implementation.
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
	  (deinterlace_line_mmx), (deinterlace_scanline_vfir):
	  Fix a small rounding bug in the MMX implementation, the MMX
	  implementation doesn't actually need MMXEXT instructions so don't mark
	  it as such.
	  Handle odd widths in both implementations.

2008-06-21 21:20:24 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/resindvd/rsnbasesrc.c: Use the right i18n header.
	  Original commit message from CVS:
	  * ext/resindvd/rsnbasesrc.c:
	  Use the right i18n header.

2008-06-21 09:05:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/greedy.c: Implement a C version of the greedy low motion algorithm and mark the assembly opti...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/greedy.c:
	  (deinterlace_greedy_packed422_scanline_sse),
	  (deinterlace_greedy_packed422_scanline_c),
	  (deinterlace_greedy_packed422_scanline):
	  Implement a C version of the greedy low motion algorithm and mark the
	  assembly optimized version as SSE as it uses SSE instructions
	  additional to MMX instructions.

2008-06-20 16:54:28 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Fix problem when empty string is provided.
	  Original commit message from CVS:
	  Patch by: Sebastian Pölsterl
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Fix problem when empty string is provided.

2008-06-20 14:48:40 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/vfir.c: Make it possible to use the vfir method on X86 CPUs without MMXEXT too but use the MM...
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_mmxext),
	  (deinterlace_line_c), (deinterlace_scanline_vfir):
	  Make it possible to use the vfir method on X86 CPUs without MMXEXT too
	  but use the MMXEXT optimized code whenever possible.

2008-06-20 14:35:25 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/gstdeinterlace2.*: Reset element state on PAUSED->READY properly, don't leak any buffers when finali...
	  Original commit message from CVS:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace2_class_init), (gst_deinterlace2_init),
	  (gst_deinterlace2_reset_history), (gst_deinterlace2_reset),
	  (gst_deinterlace2_finalize), (gst_deinterlace2_chain),
	  (gst_deinterlace2_sink_event), (gst_deinterlace2_change_state),
	  (gst_deinterlace2_src_query):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  Reset element state on PAUSED->READY properly, don't leak any buffers
	  when finalizing, allocate buffers with gst_pad_alloc_buffer() and
	  properly return flow returns from gst_pad_push() instead of ignoring them.

2008-06-20 13:45:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: Add missing header.
	  Original commit message from CVS:
	  * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	  Add missing header.

2008-06-20 13:24:29 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Fix compilation on generic x86/amd64 and include deinterlace2 in the build system. Because of several bugs it's still...
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	  Fix compilation on generic x86/amd64 and include deinterlace2 in the
	  build system. Because of several bugs it's still enabled only
	  by --enable-experimental.

2008-06-20 13:07:56 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/resindvdsrc.*: Schedule NAV packets and activate them with an async clock callback at the right moment. ...
	  Original commit message from CVS:
	  * ext/resindvd/resindvdsrc.c:
	  * ext/resindvd/resindvdsrc.h:
	  Schedule NAV packets and activate them with an async clock callback
	  at the right moment. This makes delayed menu highlights appear
	  at the correct time and fixes Back To The Future.
	  When outputting new segment in do_seek(), calculate our position
	  value properly, so we report the right time when popping in and
	  out of the menus.
	  * ext/resindvd/rsnbasesrc.c:
	  When handling a non-flushing seek, accumulate the segment,
	  rather than having every seek start from 0 and messing with sync

2008-06-19 13:18:24 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Use BOILERPLATE macro and update test to the latest api changes.
	  Original commit message from CVS:
	  * gst/selector/gstoutputselector.c:
	  * tests/icles/output-selector-test.c:
	  Use BOILERPLATE macro and update test to the latest api changes.

2008-06-19 11:25:37 +0000  Wim Taymans <wim.taymans@gmail.com>

	  examples/app/appsink-src.c: Don't use a buffer after unreffing it.
	  Original commit message from CVS:
	  * examples/app/appsink-src.c: (on_new_buffer_from_source):
	  Don't use a buffer after unreffing it.

2008-06-18 07:02:54 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/metadata/metadataexif.c: Add description tag mapping.
	  Original commit message from CVS:
	  * ext/metadata/metadataexif.c:
	  Add description tag mapping.

2008-06-18 06:31:13 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix gtk-doc warnings. Also don't misuse api-doc comments for normal comments.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * examples/app/appsrc-ra.c:
	  * examples/app/appsrc-seekable.c:
	  * examples/app/appsrc-stream.c:
	  * examples/app/appsrc-stream2.c:
	  * ext/directfb/dfbvideosink.h:
	  * ext/metadata/gstbasemetadata.c:
	  * ext/metadata/gstbasemetadata.h:
	  * ext/metadata/metadata.c:
	  * ext/metadata/metadataexif.c:
	  * ext/theora/theoradec.h:
	  * gst/deinterlace2/gstdeinterlace2.h:
	  * gst/deinterlace2/tvtime/speedy.c:
	  * gst/deinterlace2/tvtime/speedy.h:
	  * gst/deinterlace2/tvtime/vfir.c:
	  Fix gtk-doc warnings. Also don't misuse api-doc comments for normal
	  comments.

2008-06-17 19:52:00 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/resindvd/resindvdbin.c: Parse the URI argument into the device name so dvd:///path/to/image works.
	  Original commit message from CVS:
	  * ext/resindvd/resindvdbin.c:
	  Parse the URI argument into the device name so dvd:///path/to/image
	  works.
	  * ext/resindvd/resindvdsrc.c:
	  Implement a trivial duration query reporting the current PGC length.
	  * gst/dvdspu/gstdvdspu.c:
	  Rename typo in the function name.

2008-06-17 11:01:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Disable deinterlace2 plugin again which was accidently enabled with last commit.
	  Original commit message from CVS:
	  * configure.ac:
	  Disable deinterlace2 plugin again which was accidently enabled
	  with last commit.

2008-06-17 10:53:35 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Make resindvd work with libdvdnav >= 4.0.0.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/resindvd/resindvdsrc.h:
	  Make resindvd work with libdvdnav >= 4.0.0.

2008-06-17 01:08:14 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Check for libdvdnav to build resindvd.
	  Original commit message from CVS:
	  * configure.ac:
	  Check for libdvdnav to build resindvd.
	  * ext/Makefile.am:
	  * ext/resindvd/Makefile.am:
	  * ext/resindvd/gstmpegdefs.h:
	  * ext/resindvd/gstmpegdemux.c:
	  * ext/resindvd/gstmpegdemux.h:
	  * ext/resindvd/gstmpegdesc.c:
	  * ext/resindvd/gstmpegdesc.h:
	  * ext/resindvd/gstpesfilter.c:
	  * ext/resindvd/gstpesfilter.h:
	  * ext/resindvd/plugin.c:
	  * ext/resindvd/resin-play:
	  * ext/resindvd/resindvdbin.c:
	  * ext/resindvd/resindvdbin.h:
	  * ext/resindvd/resindvdsrc.c:
	  * ext/resindvd/resindvdsrc.h:
	  * ext/resindvd/rsnaudiomunge.c:
	  * ext/resindvd/rsnaudiomunge.h:
	  * ext/resindvd/rsnbasesrc.c:
	  * ext/resindvd/rsnbasesrc.h:
	  * ext/resindvd/rsnpushsrc.c:
	  * ext/resindvd/rsnpushsrc.h:
	  * ext/resindvd/rsnstreamselector.c:
	  * ext/resindvd/rsnstreamselector.h:
	  First commit of DVD-Video playback component 'rsndvdbin'
	  and helper elements.
	  Use --enable-experimental for now, but feel free to give it a
	  try using the resin-play script.
	  * gst/dvdspu/gstdvdspu.c:
	  Add some extra guards for malformed events.

2008-06-17 00:37:49 +0000  David Schleef <ds@schleef.org>

	  configure.ac: Bump dirac requirement to 0.10 due to api changes.
	  Original commit message from CVS:
	  * configure.ac:
	  Bump dirac requirement to 0.10 due to api changes.

2008-06-16 14:11:36 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* gst-libs/gst/app/gstappsrc.c:
	  gst-libs/gst/app/gstappsrc.c (gst_app_src_set_max_bytes)
	  Original commit message from CVS:
	  2008-06-16  Andy Wingo  <wingo@pobox.com>
	  * gst-libs/gst/app/gstappsrc.c (gst_app_src_set_max_bytes)
	  (gst_app_src_get_max_bytes, gst_app_src_push_buffer): Use
	  G_GUINT64_FORMAT. Avoid overflow in get_max_bytes().

2008-06-16 12:37:34 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  sys/dvb/gstdvbsrc.c: Move docblob upwards. Balance tags and restore blank line.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Move docblob upwards. Balance tags and restore blank line.

2008-06-16 11:47:34 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Fix out of date docs.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Fix out of date docs.

2008-06-16 11:29:46 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Patch from: Vincent Genieux
	  Original commit message from CVS:
	  Patch from: Vincent Genieux
	  * gst/mpegtsparse/mpegtsparse.c:
	  Fix refcount issues, fixes #538560.

2008-06-16 09:22:30 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Parse the extended event descriptor.
	  Original commit message from CVS:
	  * gst/mpegtsparse/gstmpegdesc.h:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Parse the extended event descriptor.

2008-06-16 07:30:34 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Final round of doc updates.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  * gst/speed/gstspeed.c:
	  * gst/speexresample/gstspeexresample.c:
	  * gst/videosignal/gstvideoanalyse.c:
	  * gst/videosignal/gstvideodetect.c:
	  * gst/videosignal/gstvideomark.c:
	  * sys/dvb/gstdvbsrc.c:
	  * sys/oss4/oss4-mixer.c:
	  * sys/oss4/oss4-sink.c:
	  * sys/oss4/oss4-source.c:
	  * sys/wininet/gstwininetsrc.c:
	  Final round of doc updates.

2008-06-16 07:03:58 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/: More doc updates. More xrefs.
	  Original commit message from CVS:
	  * gst/deinterlace/gstdeinterlace.c:
	  * gst/rtpmanager/gstrtpbin.c:
	  * gst/rtpmanager/gstrtpclient.c:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  * gst/rtpmanager/gstrtpptdemux.c:
	  * gst/rtpmanager/gstrtpsession.c:
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  * gst/sdp/gstsdpdemux.c:
	  More doc updates. More xrefs.

2008-06-13 22:46:43 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/: Introduce demuxing support for AAC and
	  Original commit message from CVS:
	  2008-06-14  Julien Moutte  <julien@fluendo.com>
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	  (gst_flv_demux_dispose):
	  * gst/flv/gstflvdemux.h:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate),
	  (gst_flv_parse_tag_video): Introduce demuxing support for AAC
	  and
	  H.264/AVC inside FLV.
	  * sys/dshowdecwrapper/gstdshowaudiodec.c:
	  (gst_dshowaudiodec_init),
	  (gst_dshowaudiodec_chain), (gst_dshowaudiodec_push_buffer),
	  (gst_dshowaudiodec_sink_event), (gst_dshowaudiodec_setup_graph):
	  * sys/dshowdecwrapper/gstdshowaudiodec.h:
	  * sys/dshowdecwrapper/gstdshowvideodec.c:
	  (gst_dshowvideodec_init),
	  (gst_dshowvideodec_sink_event), (gst_dshowvideodec_chain),
	  (gst_dshowvideodec_push_buffer),
	  (gst_dshowvideodec_src_getcaps):
	  * sys/dshowdecwrapper/gstdshowvideodec.h: Lot of random fixes
	  to improve stability (ref counting, safety checks...)

2008-06-13 18:25:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/real/gstrealaudiodec.c: Disable sipro on 64bits, it crashes.
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_probe_modules):
	  Disable sipro on 64bits, it crashes.

2008-06-13 18:03:16 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/real/gstrealaudiodec.c: Add raversions we can support on the caps.
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain),
	  (close_library), (open_library),
	  (gst_real_audio_dec_probe_modules), (gst_real_audio_dec_getcaps),
	  (gst_real_audio_dec_setcaps), (gst_real_audio_dec_init),
	  (gst_real_audio_dec_change_state), (gst_real_audio_dec_finalize):
	  Add raversions we can support on the caps.
	  Refactor the loading of the real codecs like realvideo so that we can
	  implement probing.
	  Probe all supported formats by trying to load the .so files, only report
	  the versions on the caps that we can actually load.
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	  (gst_real_video_dec_getcaps), (gst_real_video_dec_setcaps),
	  (open_library), (close_library),
	  (gst_real_video_dec_probe_modules),
	  (gst_real_video_dec_change_state), (gst_real_video_dec_init),
	  (gst_real_video_dec_finalize), (gst_real_video_dec_class_init):
	  * gst/real/gstrealvideodec.h:
	  Change the loading of the library like the audio decoder.
	  Probe the supported formats by trying to load the .so files and only
	  report the versions on the caps that we can actually load.

2008-06-13 15:46:03 +0000  Sebastian Pölsterl <marduk@k-d-w.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Handle character sets in strings coming from DVB SI according to the DVB SI spec.
	  Original commit message from CVS:
	  patch by: Sebastian Pölsterl
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Handle character sets in strings coming from DVB SI according
	  to the DVB SI spec.

2008-06-13 14:33:52 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/replaygain/: More doc updates.
	  Original commit message from CVS:
	  * gst/replaygain/gstrganalysis.c:
	  * gst/replaygain/gstrglimiter.c:
	  * gst/replaygain/gstrgvolume.c:
	  More doc updates.

2008-06-13 11:59:23 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: docs/plugins/inspect/plugin-mythtv.xml
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-amrwb.xml:
	  * docs/plugins/inspect/plugin-app.xml:
	  * docs/plugins/inspect/plugin-bayer.xml:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdaudio.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-dvb.xml:
	  * docs/plugins/inspect/plugin-dvdspu.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-fbdevsink.xml:
	  * docs/plugins/inspect/plugin-festival.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-flvdemux.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstinterlace.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-interleave.xml:
	  * docs/plugins/inspect/plugin-jack.xml:
	  * docs/plugins/inspect/plugin-ladspa.xml:
	  * docs/plugins/inspect/plugin-metadata.xml:
	  * docs/plugins/inspect/plugin-mms.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	  * docs/plugins/inspect/plugin-mpegtsparse.xml:
	  * docs/plugins/inspect/plugin-mpegvideoparse.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-mve.xml:
	  * docs/plugins/inspect/plugin-mythtv.xml
	  * docs/plugins/inspect/plugin-nas.xml:
	  * docs/plugins/inspect/plugin-neon.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-nuvdemux.xml:
	  * docs/plugins/inspect/plugin-oss4.xml
	  * docs/plugins/inspect/plugin-rawparse.xml:
	  * docs/plugins/inspect/plugin-real.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-rfbsrc.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-sdp.xml:
	  * docs/plugins/inspect/plugin-selector.xml:
	  * docs/plugins/inspect/plugin-sndfile.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-speexresample.xml:
	  * docs/plugins/inspect/plugin-stereo.xml:
	  * docs/plugins/inspect/plugin-subenc.xml
	  * docs/plugins/inspect/plugin-timidity.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-vcdsrc.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-vmnc.xml:
	  * docs/plugins/inspect/plugin-wildmidi.xml:
	  * docs/plugins/inspect/plugin-x264.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  * docs/plugins/inspect/plugin-y4menc.xml:
	  * ext/amrwb/gstamrwbdec.c:
	  * ext/amrwb/gstamrwbenc.c:
	  * ext/amrwb/gstamrwbparse.c:
	  * ext/dc1394/gstdc1394.c:
	  * ext/directfb/dfbvideosink.c:
	  * ext/ivorbis/vorbisdec.c:
	  * ext/jack/gstjackaudiosink.c:
	  * ext/mpeg2enc/gstmpeg2enc.cc:
	  * ext/mplex/gstmplex.cc:
	  * ext/musicbrainz/gsttrm.c:
	  * ext/mythtv/gstmythtvsrc.c:
	  * ext/theora/theoradec.c:
	  * ext/timidity/gsttimidity.c:
	  * ext/timidity/gstwildmidi.c:
	  * gst-libs/gst/app/gstappsink.c:
	  * gst/deinterlace/gstdeinterlace.c:
	  * gst/dvdspu/gstdvdspu.c:
	  * gst/festival/gstfestival.c:
	  * gst/freeze/gstfreeze.c:
	  * gst/interleave/deinterleave.c:
	  * gst/interleave/interleave.c:
	  * gst/modplug/gstmodplug.cc:
	  * gst/nuvdemux/gstnuvdemux.c:
	  Add missing elements to docs. Fix doc-markup: use convinience syntax
	  for examples (produces valid docbook), add several refsec2 when we
	  have several titles. Fix some types.

2008-06-12 15:47:03 +0000  Wim Taymans <wim.taymans@gmail.com>

	  examples/app/: Add beefed up example app from bug #413418. It now also uses appsink instead of fakesink for more ulti...
	  Original commit message from CVS:
	  * examples/app/.cvsignore:
	  * examples/app/Makefile.am:
	  * examples/app/appsink-src.c: (on_new_buffer_from_source),
	  (on_source_message), (on_sink_message), (main):
	  Add beefed up example app from bug #413418. It now also uses appsink
	  instead of fakesink for more ultimate coolness.
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	  (gst_app_src_init), (gst_app_src_set_property),
	  (gst_app_src_get_property), (gst_app_src_unlock),
	  (gst_app_src_unlock_stop), (gst_app_src_create),
	  (gst_app_src_set_max_bytes), (gst_app_src_push_buffer),
	  (gst_app_src_end_of_stream):
	  * gst-libs/gst/app/gstappsrc.h:
	  Add block property to allow push based implementation to block when we
	  fill up the appsrc queues.
	  Emit the enough-data signal while releasing our lock.

2008-06-12 14:50:27 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  examples/app/.cvsignore: Ignore more.
	  Original commit message from CVS:
	  * examples/app/.cvsignore:
	  Ignore more.

2008-06-12 14:49:18 +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/dc1394/gstdc1394.c:
	  * ext/ivorbis/vorbisdec.c:
	  * ext/jack/gstjackaudiosink.c:
	  * ext/metadata/gstmetadatademux.c:
	  * ext/mythtv/gstmythtvsrc.c:
	  * ext/theora/theoradec.c:
	  * gst-libs/gst/app/gstappsink.c:
	  * gst/bayer/gstbayer2rgb.c:
	  * gst/deinterlace/gstdeinterlace.c:
	  * gst/rawparse/gstaudioparse.c:
	  * gst/rawparse/gstvideoparse.c:
	  * gst/rtpmanager/gstrtpbin.c:
	  * gst/rtpmanager/gstrtpclient.c:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  * gst/rtpmanager/gstrtpptdemux.c:
	  * gst/rtpmanager/gstrtpsession.c:
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  * gst/selector/gstinputselector.c:
	  * gst/selector/gstoutputselector.c:
	  * gst/videosignal/gstvideoanalyse.c:
	  * gst/videosignal/gstvideodetect.c:
	  * gst/videosignal/gstvideomark.c:
	  * sys/oss4/oss4-mixer.c:
	  * sys/oss4/oss4-sink.c:
	  * sys/oss4/oss4-source.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.
	  Also fixing up the ChangeLog order.

2008-06-12 14:20:40 +0000  Sebastien Merle <sylane@gmail.com>

	  ext/amrwb/gstamrwbdec.c: Fix the sign of the data we pass to the decoder so that the decoder compiles with newer refe...
	  Original commit message from CVS:
	  Patch by: Sebastien Merle <sylane at gmail dot com>
	  * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_chain):
	  Fix the sign of the data we pass to the decoder so that the decoder
	  compiles with newer reference code as well. Fixes #528618.

2008-06-12 13:51:51 +0000  Sebastien Merle <sylane@gmail.com>

	  ext/amrwb/gstamrwbdec.c: Fix the sign of the data we pass to the decoder so that the decoder compiles with newer refe...
	  Original commit message from CVS:
	  Patch by: Sebastien Merle <sylane at gmail dot com>
	  * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_chain):
	  Fix the sign of the data we pass to the decoder so that the decoder
	  compiles with newer reference code as well. Fixes #528618.

2008-06-12 13:06:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/icles/test-oss4.c: Include stdlib.h.
	  Original commit message from CVS:
	  * tests/icles/test-oss4.c:
	  Include stdlib.h.

2008-06-11 11:12:49 +0000  Martin Eikermann <meiker@upb.de>

	  gst/deinterlace2/: Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer, which was relicensed to LGPL f...
	  Original commit message from CVS:
	  Based on a patch by: Martin Eikermann <meiker at upb dot de>
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace2_method_get_type),
	  (gst_deinterlace2_fields_get_type),
	  (gst_deinterlace2_field_layout_get_type),
	  (gst_deinterlace2_base_init), (gst_deinterlace2_class_init),
	  (gst_deinterlace2_init), (gst_deinterlace2_set_method),
	  (gst_deinterlace2_set_property), (gst_deinterlace2_get_property),
	  (gst_deinterlace2_finalize), (gst_deinterlace2_pop_history),
	  (gst_deinterlace2_head_history), (gst_deinterlace2_push_history),
	  (gst_deinterlace2_deinterlace_scanlines), (gst_deinterlace2_chain),
	  (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
	  (gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
	  (gst_deinterlace2_src_query), (gst_deinterlace2_src_query_types),
	  (plugin_init):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  * gst/deinterlace2/tvtime/greedy.c: (copy_scanline),
	  (deinterlace_greedy_packed422_scanline_mmxext),
	  (dscaler_greedyl_get_method):
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  * gst/deinterlace2/tvtime/greedyh.c:
	  (deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method),
	  (greedyh_init), (greedyh_filter_mmx), (greedyh_filter_3dnow),
	  (greedyh_filter_sse):
	  * gst/deinterlace2/tvtime/greedyh.h:
	  * gst/deinterlace2/tvtime/greedyhmacros.h:
	  * gst/deinterlace2/tvtime/mmx.h:
	  * gst/deinterlace2/tvtime/plugins.h:
	  * gst/deinterlace2/tvtime/speedtools.h:
	  * gst/deinterlace2/tvtime/speedy.c: (multiply_alpha), (clip255),
	  (comb_factor_packed422_scanline_mmx),
	  (diff_factor_packed422_scanline_c),
	  (diff_factor_packed422_scanline_mmx),
	  (diff_packed422_block8x8_mmx), (diff_packed422_block8x8_c),
	  (packed444_to_packed422_scanline_c),
	  (packed422_to_packed444_scanline_c),
	  (packed422_to_packed444_rec601_scanline_c),
	  (vfilter_chroma_121_packed422_scanline_mmx),
	  (vfilter_chroma_121_packed422_scanline_c),
	  (vfilter_chroma_332_packed422_scanline_mmx),
	  (vfilter_chroma_332_packed422_scanline_c),
	  (kill_chroma_packed422_inplace_scanline_mmx),
	  (kill_chroma_packed422_inplace_scanline_c),
	  (invert_colour_packed422_inplace_scanline_mmx),
	  (invert_colour_packed422_inplace_scanline_c),
	  (mirror_packed422_inplace_scanline_c),
	  (interpolate_packed422_scanline_c),
	  (convert_uyvy_to_yuyv_scanline_mmx),
	  (convert_uyvy_to_yuyv_scanline_c),
	  (interpolate_packed422_scanline_mmx),
	  (interpolate_packed422_scanline_mmxext),
	  (blit_colour_packed422_scanline_c),
	  (blit_colour_packed422_scanline_mmx),
	  (blit_colour_packed422_scanline_mmxext),
	  (blit_colour_packed4444_scanline_c),
	  (blit_colour_packed4444_scanline_mmx),
	  (blit_colour_packed4444_scanline_mmxext), (small_memcpy),
	  (speedy_memcpy_c), (speedy_memcpy_mmx), (speedy_memcpy_mmxext),
	  (blit_packed422_scanline_c), (blit_packed422_scanline_mmx),
	  (blit_packed422_scanline_mmxext),
	  (composite_colour4444_alpha_to_packed422_scanline_c),
	  (composite_colour4444_alpha_to_packed422_scanline_mmxext),
	  (composite_packed4444_alpha_to_packed422_scanline_c),
	  (composite_packed4444_alpha_to_packed422_scanline_mmxext),
	  (composite_packed4444_to_packed422_scanline_c),
	  (composite_packed4444_to_packed422_scanline_mmxext),
	  (composite_alphamask_to_packed4444_scanline_c),
	  (composite_alphamask_to_packed4444_scanline_mmxext),
	  (composite_alphamask_alpha_to_packed4444_scanline_c),
	  (premultiply_packed4444_scanline_c),
	  (premultiply_packed4444_scanline_mmxext),
	  (blend_packed422_scanline_c), (blend_packed422_scanline_mmxext),
	  (quarter_blit_vertical_packed422_scanline_mmxext),
	  (quarter_blit_vertical_packed422_scanline_c),
	  (subpix_blit_vertical_packed422_scanline_c),
	  (a8_subpix_blit_scanline_c), (myround), (init_RGB_to_YCbCr_tables),
	  (init_YCbCr_to_RGB_tables), (rgb24_to_packed444_rec601_scanline_c),
	  (rgba32_to_packed4444_rec601_scanline_c),
	  (packed444_to_rgb24_rec601_scanline_c),
	  (packed444_to_nonpremultiplied_packed4444_scanline_c),
	  (aspect_adjust_packed4444_scanline_c), (setup_speedy_calls),
	  (speedy_get_accel):
	  * gst/deinterlace2/tvtime/speedy.h:
	  * gst/deinterlace2/tvtime/sse.h:
	  * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy),
	  (deinterlace_frame_di_tomsmocomp), (dscaler_tomsmocomp_get_method),
	  (tomsmocomp_init), (tomsmocomp_filter_mmx),
	  (tomsmocomp_filter_3dnow), (tomsmocomp_filter_sse):
	  * gst/deinterlace2/tvtime/tomsmocomp.h:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoop0A.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA8.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA2.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA6.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH2.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVA.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVAH.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line),
	  (deinterlace_scanline_vfir), (copy_scanline),
	  (dscaler_vfir_get_method):
	  * gst/deinterlace2/tvtime/x86-64_macros.inc:
	  Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer,
	  which was relicensed to LGPL for GStreamer and in theory provides
	  better and faster results than the simple deinterlace element.
	  Fixes bug #163578.
	  Ported to GStreamer 0.10 but still not enabled or included in the
	  build system by default because of bad artefacts caused by a bug
	  somewhere and as it can be only build on x86/amd64 ATM and requires
	  special CFLAGS. Will be fixed soon.

2008-06-11 11:12:14 +0000  Martin Eikermann <meiker@upb.de>

	  gst/deinterlace2/: Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer, which was relicensed to LGPL f...
	  Original commit message from CVS:
	  Based on a patch by: Martin Eikermann <meiker at upb dot de>
	  * gst/deinterlace2/Makefile.am:
	  * gst/deinterlace2/gstdeinterlace2.c:
	  (gst_deinterlace2_method_get_type),
	  (gst_deinterlace2_fields_get_type),
	  (gst_deinterlace2_field_layout_get_type),
	  (gst_deinterlace2_base_init), (gst_deinterlace2_class_init),
	  (gst_deinterlace2_init), (gst_deinterlace2_set_method),
	  (gst_deinterlace2_set_property), (gst_deinterlace2_get_property),
	  (gst_deinterlace2_finalize), (gst_deinterlace2_pop_history),
	  (gst_deinterlace2_head_history), (gst_deinterlace2_push_history),
	  (gst_deinterlace2_deinterlace_scanlines), (gst_deinterlace2_chain),
	  (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
	  (gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
	  (gst_deinterlace2_src_query), (gst_deinterlace2_src_query_types),
	  (plugin_init):
	  * gst/deinterlace2/gstdeinterlace2.h:
	  * gst/deinterlace2/tvtime/greedy.c: (copy_scanline),
	  (deinterlace_greedy_packed422_scanline_mmxext),
	  (dscaler_greedyl_get_method):
	  * gst/deinterlace2/tvtime/greedyh.asm:
	  * gst/deinterlace2/tvtime/greedyh.c:
	  (deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method),
	  (greedyh_init), (greedyh_filter_mmx), (greedyh_filter_3dnow),
	  (greedyh_filter_sse):
	  * gst/deinterlace2/tvtime/greedyh.h:
	  * gst/deinterlace2/tvtime/greedyhmacros.h:
	  * gst/deinterlace2/tvtime/mmx.h:
	  * gst/deinterlace2/tvtime/plugins.h:
	  * gst/deinterlace2/tvtime/speedtools.h:
	  * gst/deinterlace2/tvtime/speedy.c: (multiply_alpha), (clip255),
	  (comb_factor_packed422_scanline_mmx),
	  (diff_factor_packed422_scanline_c),
	  (diff_factor_packed422_scanline_mmx),
	  (diff_packed422_block8x8_mmx), (diff_packed422_block8x8_c),
	  (packed444_to_packed422_scanline_c),
	  (packed422_to_packed444_scanline_c),
	  (packed422_to_packed444_rec601_scanline_c),
	  (vfilter_chroma_121_packed422_scanline_mmx),
	  (vfilter_chroma_121_packed422_scanline_c),
	  (vfilter_chroma_332_packed422_scanline_mmx),
	  (vfilter_chroma_332_packed422_scanline_c),
	  (kill_chroma_packed422_inplace_scanline_mmx),
	  (kill_chroma_packed422_inplace_scanline_c),
	  (invert_colour_packed422_inplace_scanline_mmx),
	  (invert_colour_packed422_inplace_scanline_c),
	  (mirror_packed422_inplace_scanline_c),
	  (interpolate_packed422_scanline_c),
	  (convert_uyvy_to_yuyv_scanline_mmx),
	  (convert_uyvy_to_yuyv_scanline_c),
	  (interpolate_packed422_scanline_mmx),
	  (interpolate_packed422_scanline_mmxext),
	  (blit_colour_packed422_scanline_c),
	  (blit_colour_packed422_scanline_mmx),
	  (blit_colour_packed422_scanline_mmxext),
	  (blit_colour_packed4444_scanline_c),
	  (blit_colour_packed4444_scanline_mmx),
	  (blit_colour_packed4444_scanline_mmxext), (small_memcpy),
	  (speedy_memcpy_c), (speedy_memcpy_mmx), (speedy_memcpy_mmxext),
	  (blit_packed422_scanline_c), (blit_packed422_scanline_mmx),
	  (blit_packed422_scanline_mmxext),
	  (composite_colour4444_alpha_to_packed422_scanline_c),
	  (composite_colour4444_alpha_to_packed422_scanline_mmxext),
	  (composite_packed4444_alpha_to_packed422_scanline_c),
	  (composite_packed4444_alpha_to_packed422_scanline_mmxext),
	  (composite_packed4444_to_packed422_scanline_c),
	  (composite_packed4444_to_packed422_scanline_mmxext),
	  (composite_alphamask_to_packed4444_scanline_c),
	  (composite_alphamask_to_packed4444_scanline_mmxext),
	  (composite_alphamask_alpha_to_packed4444_scanline_c),
	  (premultiply_packed4444_scanline_c),
	  (premultiply_packed4444_scanline_mmxext),
	  (blend_packed422_scanline_c), (blend_packed422_scanline_mmxext),
	  (quarter_blit_vertical_packed422_scanline_mmxext),
	  (quarter_blit_vertical_packed422_scanline_c),
	  (subpix_blit_vertical_packed422_scanline_c),
	  (a8_subpix_blit_scanline_c), (myround), (init_RGB_to_YCbCr_tables),
	  (init_YCbCr_to_RGB_tables), (rgb24_to_packed444_rec601_scanline_c),
	  (rgba32_to_packed4444_rec601_scanline_c),
	  (packed444_to_rgb24_rec601_scanline_c),
	  (packed444_to_nonpremultiplied_packed4444_scanline_c),
	  (aspect_adjust_packed4444_scanline_c), (setup_speedy_calls),
	  (speedy_get_accel):
	  * gst/deinterlace2/tvtime/speedy.h:
	  * gst/deinterlace2/tvtime/sse.h:
	  * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy),
	  (deinterlace_frame_di_tomsmocomp), (dscaler_tomsmocomp_get_method),
	  (tomsmocomp_init), (tomsmocomp_filter_mmx),
	  (tomsmocomp_filter_3dnow), (tomsmocomp_filter_sse):
	  * gst/deinterlace2/tvtime/tomsmocomp.h:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoop0A.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA8.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA2.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA6.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH2.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVA.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVAH.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	  * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
	  * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line),
	  (deinterlace_scanline_vfir), (copy_scanline),
	  (dscaler_vfir_get_method):
	  * gst/deinterlace2/tvtime/x86-64_macros.inc:
	  Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer,
	  which was relicensed to LGPL for GStreamer and in theory provides
	  better and faster results than the simple deinterlace element.
	  Fixes bug #163578.
	  Ported to GStreamer 0.10 but still not enabled or included in the
	  build system by default because of bad artefacts caused by a bug
	  somewhere and as it can be only build on x86/amd64 ATM and requires
	  special CFLAGS. Will be fixed soon.

2008-06-11 07:58:44 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/timidity/gstwildmidi.*: Initialize wildmidi only once in the plugin init function instead of once for every insta...
	  Original commit message from CVS:
	  Based on a patch by:  Sonicadvance1 at GMAIL dot COM
	  * ext/timidity/gstwildmidi.c: (gst_wildmidi_init),
	  (gst_wildmidi_change_state), (plugin_init):
	  * ext/timidity/gstwildmidi.h:
	  Initialize wildmidi only once in the plugin init function instead
	  of once for every instance. The second and following calls to the
	  wildmidi initialization function will fail. Fixes bug #525613.
	  Also don't register the element at all if wildmidi initialization
	  fails.

2008-06-10 12:54:59 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soundtouch/gstpitch.cc: Call gst_element_no_more_pads() after all pads are added.
	  Original commit message from CVS:
	  * ext/soundtouch/gstpitch.cc:
	  Call gst_element_no_more_pads() after all pads are added.

2008-06-09 17:57:08 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rawparse/gstrawparse.c: Add simple reverse playback.
	  Original commit message from CVS:
	  * gst/rawparse/gstrawparse.c: (gst_raw_parse_push_buffer),
	  (gst_raw_parse_loop), (gst_raw_parse_handle_seek_push),
	  (gst_raw_parse_handle_seek_pull):
	  Add simple reverse playback.

2008-06-09 12:05:00 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rawparse/gstrawparse.*: Fix seeking, timestamps, duration and some more. Fixes #536309.
	  Original commit message from CVS:
	  * gst/rawparse/gstrawparse.c: (gst_raw_parse_reset),
	  (gst_raw_parse_push_buffer), (gst_raw_parse_chain),
	  (gst_raw_parse_loop), (gst_raw_parse_sink_activatepull),
	  (gst_raw_parse_convert), (gst_raw_parse_sink_event),
	  (gst_raw_parse_handle_seek_push), (gst_raw_parse_handle_seek_pull),
	  (gst_raw_parse_src_query), (gst_raw_parse_get_fps):
	  * gst/rawparse/gstrawparse.h:
	  Fix seeking, timestamps, duration and some more. Fixes #536309.

2008-06-06 16:50:51 +0000  Wim Taymans <wim.taymans@gmail.com>

	  examples/app/: Added 3 more example application for using appsrc in random-access mode, pull-mode streaming and pull ...
	  Original commit message from CVS:
	  * examples/app/Makefile.am:
	  * examples/app/appsrc-ra.c: (feed_data), (seek_data),
	  (found_source), (bus_message), (main):
	  * examples/app/appsrc-seekable.c: (feed_data), (seek_data),
	  (found_source), (bus_message), (main):
	  * examples/app/appsrc-stream2.c: (feed_data), (found_source),
	  (bus_message), (main):
	  Added 3 more example application for using appsrc in random-access mode,
	  pull-mode streaming and pull mode seekable.
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	  (gst_app_src_start), (gst_app_src_do_get_size),
	  (gst_app_src_create):
	  * gst-libs/gst/app/gstappsrc.h:
	  Make stream-type property writable.
	  Unset flushing when starting so that we reuse appsrc.
	  Inform basesrc about the configured size.
	  Emit seek-data signal when we are going to a different offset in
	  random-access mode.

2008-06-06 14:19:54 +0000  Wim Taymans <wim.taymans@gmail.com>

	  examples/app/appsrc-stream.c: Use deep-notify until we can depend on a playbin2 with support for the source property.
	  Original commit message from CVS:
	  * examples/app/appsrc-stream.c: (found_source), (main):
	  Use deep-notify until we can depend on a playbin2 with support for the
	  source property.

2008-06-06 13:01:05 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Fix deadlock when shutting down, use a new lock instead to properly shutdown.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_init),
	  (gst_rtp_bin_finalize), (gst_rtp_bin_change_state):
	  Fix deadlock when shutting down, use a new lock instead to properly
	  shutdown.

2008-06-05 16:38:50 +0000  Wim Taymans <wim.taymans@gmail.com>

	  examples/app/: Added an example on how to use appsrc in playbin in streaming mode from an mmapped file.
	  Original commit message from CVS:
	  * examples/app/.cvsignore:
	  * examples/app/Makefile.am:
	  * examples/app/appsrc-stream.c: (read_data), (start_feed),
	  (stop_feed), (found_source), (bus_message), (main):
	  Added an example on how to use appsrc in playbin in streaming mode from
	  an mmapped file.
	  * examples/app/appsrc_ex.c: (main):
	  Set pipeline to NULL to free queued buffers.
	  * gst-libs/gst/app/gstapp-marshal.list:
	  * gst-libs/gst/app/gstappsrc.c: (stream_type_get_type), (_do_init),
	  (gst_app_src_class_init), (gst_app_src_init),
	  (gst_app_src_flush_queued), (gst_app_src_dispose),
	  (gst_app_src_set_property), (gst_app_src_get_property),
	  (gst_app_src_unlock), (gst_app_src_unlock_stop),
	  (gst_app_src_start), (gst_app_src_stop), (gst_app_src_is_seekable),
	  (gst_app_src_check_get_range), (gst_app_src_do_seek),
	  (gst_app_src_create), (gst_app_src_set_stream_type),
	  (gst_app_src_get_stream_type), (gst_app_src_set_max_bytes),
	  (gst_app_src_get_max_bytes), (gst_app_src_push_buffer),
	  (gst_app_src_end_of_stream), (gst_app_src_uri_get_type),
	  (gst_app_src_uri_get_protocols), (gst_app_src_uri_get_uri),
	  (gst_app_src_uri_set_uri), (gst_app_src_uri_handler_init):
	  * gst-libs/gst/app/gstappsrc.h:
	  Measure max queue size in bytes instead.
	  Add support for 3 modes of operation, streaming, seekable and
	  random-access, making basesrc handle the scheduling modes for each.
	  Add appsrc:// uri handler so that automatic plugging can be done from
	  playbin2 or uridecodebin, for example.
	  Added support for custom segment formats.
	  Add support for push and pull based operations from the application.
	  Expand the methods so that errors can be detected.
	  Flush the queued buffers on seeks and when shutting down.
	  Add signals to inform the app that a seek must happen.

2008-06-05 11:07:17 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/: Properly implement duration and position queries in bytes format. We have to take the upstream reply...
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c: (gst_deinterleave_add_new_pads),
	  (gst_deinterleave_src_query):
	  * gst/interleave/interleave.c: (gst_interleave_src_query_duration),
	  (gst_interleave_src_query):
	  Properly implement duration and position queries in bytes format. We
	  have to take the upstream reply and divide/multiply it by the number
	  of channels to get the correct result.

2008-06-04 21:18:53 +0000  Michael Smith <msmith@xiph.org>

	  sys/dshowvideosink/: Fix up copyright notice on new plugin.
	  Original commit message from CVS:
	  * sys/dshowvideosink/dshowvideofakesrc.cpp:
	  * sys/dshowvideosink/dshowvideofakesrc.h:
	  * sys/dshowvideosink/dshowvideosink.cpp:
	  * sys/dshowvideosink/dshowvideosink.h:
	  Fix up copyright notice on new plugin.

2008-06-04 17:02:38 +0000  Jon Trowbridge <trow@ximian.com>

	  ext/dirac/gstdiracenc.cc: Update properties for recent dirac changes.  Patch from Jonathan Rosser.
	  Original commit message from CVS:
	  * ext/dirac/gstdiracenc.cc: Update properties for recent
	  dirac changes.  Patch from Jonathan Rosser.

2008-06-04 11:33:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  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.

2008-06-04 06:48:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/interleave.*: Use an always increasing integer for the number in the name of the requested sink pads t...
	  Original commit message from CVS:
	  * gst/interleave/interleave.c: (gst_interleave_pad_get_type),
	  (gst_interleave_pad_get_property), (gst_interleave_pad_class_init),
	  (gst_interleave_request_new_pad), (gst_interleave_release_pad):
	  * gst/interleave/interleave.h:
	  Use an always increasing integer for the number in the name of the
	  requested sink pads to guarantuee a unique name. Add a "channel"
	  property to GstInterleavePad to make it possible for applications
	  to retrieve the channel number in the output for every pad.
	  Use g_type_register_static_simple() instead of
	  g_type_register_static() to save some relocations.

2008-06-03 15:41:05 +0000  Christian Schaller <uraeus@gnome.org>

	* autogen.sh:
	  fix package name
	  Original commit message from CVS:
	  fix package name

2008-06-03 14:35:59 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/interleave.c: Stop GstCollectPads before calling the parent's state change function when going from PA...
	  Original commit message from CVS:
	  * gst/interleave/interleave.c: (gst_interleave_pad_get_type),
	  (gst_interleave_change_state):
	  Stop GstCollectPads before calling the parent's state change function
	  when going from PAUSED to READY as we otherwise deadlock.
	  Fixes bug #536258.

2008-06-03 11:10:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/h264parse/gsth264parse.*: Parse codec_data and use the nalu_size_length field to get the NALU length in packetize...
	  Original commit message from CVS:
	  * gst/h264parse/gsth264parse.c: (gst_nal_bs_init),
	  (gst_h264_parse_sink_setcaps), (gst_h264_parse_chain_forward),
	  (gst_h264_parse_queue_buffer), (gst_h264_parse_chain_reverse),
	  (gst_h264_parse_chain):
	  * gst/h264parse/gsth264parse.h:
	  Parse codec_data and use the nalu_size_length field to get the NALU
	  length in packetized h264.
	  When queueing a packetized buffer in reverse mode, don't unref the
	  buffer twice.
	  Avoid accessing the buffer TIMESTAMP field after we pushed it on
	  the adaptor.

2008-06-03 09:03:19 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/interleave.c: Use new gst_audio_check_channel_positions() function and register the GstInterleavePad t...
	  Original commit message from CVS:
	  * gst/interleave/interleave.c:
	  (gst_interleave_check_channel_positions),
	  (gst_interleave_set_channel_positions),
	  (gst_interleave_class_init):
	  Use new gst_audio_check_channel_positions() function and register
	  the GstInterleavePad type from a threadsafe context.

2008-06-02 21:51:52 +0000  Michael Smith <msmith@xiph.org>

	  configure.ac: Revert accidental addition in configure.ac. Sorry.
	  Original commit message from CVS:
	  * configure.ac:
	  Revert accidental addition in configure.ac. Sorry.

2008-06-02 18:23:54 +0000  Michael Smith <msmith@xiph.org>

	  Add a new win32 videosink. Uses the DirectShow renderers for high-performance video rendering on win32.
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/dshowvideosink/Makefile.am:
	  * sys/dshowvideosink/README:
	  * sys/dshowvideosink/dshowvideofakesrc.cpp:
	  * sys/dshowvideosink/dshowvideofakesrc.h:
	  * sys/dshowvideosink/dshowvideosink.cpp:
	  * sys/dshowvideosink/dshowvideosink.h:
	  Add a new win32 videosink. Uses the DirectShow renderers for
	  high-performance video rendering on win32.
	  Currently only supports some YUV formats.
	  Rank PRIMARY, since it's much more useful for the common cases that the
	  directdraw sink (which only does RGB).

2008-06-02 18:06:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/spc/Makefile.am: Dist tag.h
	  Original commit message from CVS:
	  * ext/spc/Makefile.am:
	  Dist tag.h

2008-06-02 17:06:34 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faad/gstfaad.c: Always drain before activating the new segment.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_sink_event):
	  Always drain before activating the new segment.

2008-06-02 12:42:14 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/interleave.*: Allow setting channel positions via a property and allow using the channel positions on ...
	  Original commit message from CVS:
	  * gst/interleave/interleave.c: (gst_interleave_pad_get_type),
	  (gst_interleave_finalize), (gst_audio_check_channel_positions),
	  (gst_interleave_set_channel_positions),
	  (gst_interleave_class_init), (gst_interleave_init),
	  (gst_interleave_set_property), (gst_interleave_get_property),
	  (gst_interleave_request_new_pad), (gst_interleave_release_pad),
	  (gst_interleave_sink_setcaps), (gst_interleave_src_query_duration),
	  (gst_interleave_src_query_latency), (gst_interleave_collected):
	  * gst/interleave/interleave.h:
	  Allow setting channel positions via a property and allow using the
	  channel positions on the input as the channel positions of the output.
	  Fix some broken logic and memory leaks.
	  * tests/check/Makefile.am:
	  * tests/check/elements/interleave.c: (src_handoff_float32),
	  (sink_handoff_float32), (GST_START_TEST), (interleave_suite):
	  Add unit tests for checking correct handling of channel positions.

2008-06-02 10:18:25 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faad/gstfaad.*: Add basic reverse playback support.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_dispose), (clear_queued),
	  (flush_queued), (gst_faad_drain), (gst_faad_do_raw_seek),
	  (gst_faad_src_event), (gst_faad_sink_event), (gst_faad_chain),
	  (gst_faad_change_state):
	  * ext/faad/gstfaad.h:
	  Add basic reverse playback support.
	  Clear decoder state after disconts.
	  Remove some unused code.
	  Mark output buffers with a discont after a decoding error.

2008-06-02 07:37:31 +0000  Sjoerd Simons <sjoerd@luon.net>

	  gst/mpeg4videoparse/mpeg4videoparse.c: Fix mpeg4videoparse on big endian architectures. Fixes bug #536042.
	  Original commit message from CVS:
	  Patch by: Sjoerd Simons <sjoerd at luon dot net>
	  * gst/mpeg4videoparse/mpeg4videoparse.c:
	  (gst_mpeg4vparse_handle_vos):
	  Fix mpeg4videoparse on big endian architectures. Fixes bug #536042.

2008-05-29 19:56:53 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/mplex.c: Don't use the deprecated gst_element_get_pad().
	  Original commit message from CVS:
	  * tests/check/elements/mplex.c: (setup_src_pad),
	  (teardown_src_pad):
	  Don't use the deprecated gst_element_get_pad().

2008-05-29 19:11:47 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  examples/directfb/gstdfb.c: Don't use the deprecated gst_element_get_pad().
	  Original commit message from CVS:
	  * examples/directfb/gstdfb.c: (main):
	  Don't use the deprecated gst_element_get_pad().

2008-05-28 08:53:00 +0000  Onkar Shinde <onkarshinde@gmail.com>

	  sys/vcd/vcdsrc.c: Allow the track to be set by using the uri. Fixes #535043.
	  Original commit message from CVS:
	  Based on patch by: <onkarshinde at gmail dot com>
	  * sys/vcd/vcdsrc.c: (gst_vcdsrc_uri_get_uri),
	  (gst_vcdsrc_uri_set_uri):
	  Allow the track to be set by using the uri. Fixes #535043.

2008-05-28 08:14:16 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/interleave.c: Implement latency query.
	  Original commit message from CVS:
	  * gst/interleave/interleave.c: (gst_interleave_src_query_duration),
	  (gst_interleave_src_query_latency), (gst_interleave_src_query):
	  Implement latency query.

2008-05-27 17:53:58 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/mpegvideoparse/mpegvideoparse.c: Add GST_BUFFER_FLAG_DELTA_UNIT to not I frame buffers
	  Original commit message from CVS:
	  * gst/mpegvideoparse/mpegvideoparse.c:
	  Add GST_BUFFER_FLAG_DELTA_UNIT to not I frame buffers

2008-05-27 16:48:10 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Break out of callbacks when we are shutting down.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c:
	  (gst_rtp_bin_propagate_property_to_jitterbuffer),
	  (gst_rtp_bin_change_state), (new_payload_found),
	  (new_ssrc_pad_found):
	  Break out of callbacks when we are shutting down.
	  Make sure no state changes can happen when we reconfigure.

2008-05-27 16:32:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  configure.ac: Require CVS core and base for new audio clock reset method.
	  Original commit message from CVS:
	  * configure.ac:
	  Require CVS core and base for new audio clock reset method.
	  * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_change_state):
	  Reset the audio clock. See #521761.

2008-05-26 17:52:21 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/jack/gstjackaudiosink.c: Include the element name in the port name to avoid duplicate port names.
	  Original commit message from CVS:
	  * ext/jack/gstjackaudiosink.c:
	  (gst_jack_audio_sink_allocate_channels):
	  Include the element name in the port name to avoid duplicate port names.

2008-05-26 10:28:47 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/deinterleave.c: Add another example launch line.
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c:
	  Add another example launch line.
	  * gst/interleave/interleave.c: (interleave_24),
	  (gst_interleave_finalize), (gst_interleave_base_init),
	  (gst_interleave_class_init), (gst_interleave_init),
	  (gst_interleave_request_new_pad), (gst_interleave_release_pad),
	  (gst_interleave_change_state), (__remove_channels),
	  (__set_channels), (gst_interleave_sink_getcaps),
	  (gst_interleave_set_process_function),
	  (gst_interleave_sink_setcaps), (gst_interleave_sink_event),
	  (gst_interleave_src_query_duration), (gst_interleave_src_query),
	  (forward_event_func), (forward_event), (gst_interleave_src_event),
	  (gst_interleave_collected):
	  * gst/interleave/interleave.h:
	  Major rewrite of interleave using GstCollectpads. This new version
	  also supports almost all raw audio formats and has better caps
	  negotiation. Fixes bug #506594.
	  Also update docs and add some more examples.
	  * tests/check/elements/interleave.c: (interleave_chain_func),
	  (GST_START_TEST), (src_handoff_float32), (sink_handoff_float32),
	  (interleave_suite):
	  Add some more extensive unit tests for interleave.

2008-05-26 10:09:29 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: When checking the seqnum, reset the jitterbuffer if the gap is too big, we need ...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	  When checking the seqnum, reset the jitterbuffer if the gap is too big,
	  we need to do this so that we can better handle a restarted source.
	  Fix some comments.
	  * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew),
	  (rtp_jitter_buffer_insert):
	  Tweak the skew resync diff.
	  Use our working seqnum compare function in -base.
	  Rework the jitterbuffer insert code to make it clearer and more
	  performant by only retrieving the seqnum of the input buffer once and by
	  adding some G_LIKELY compiler hints.
	  Improve debugging for duplicate packets.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp):
	  Fix a comment, we don't do skew correction here..

2008-05-26 10:00:24 +0000  Håvard Graff <havard.graff@tandberg.com>

	  gst/rtpmanager/gstrtpbin.c: Propagate the do-lost and latency properties to the jitterbuffers when they are changed o...
	  Original commit message from CVS:
	  Patch by: Håvard Graff <havard dot graff at tandberg dot com>
	  * gst/rtpmanager/gstrtpbin.c:
	  (gst_rtp_bin_propagate_property_to_jitterbuffer),
	  (gst_rtp_bin_set_property):
	  Propagate the do-lost and latency properties to the jitterbuffers when
	  they are changed on rtpbin.

2008-05-26 09:57:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Don't use _gst_pad().
	  Original commit message from CVS:
	  * examples/switch/switcher.c: (switch_timer):
	  * gst/replaygain/gstrgvolume.c: (gst_rg_volume_init):
	  * gst/rtpmanager/gstrtpclient.c: (create_stream):
	  * gst/sdp/gstsdpdemux.c: (gst_sdp_demux_stream_configure_udp),
	  (gst_sdp_demux_stream_configure_udp_sink):
	  * tests/check/elements/deinterleave.c: (GST_START_TEST),
	  (pad_added_setup_data_check_float32_8ch_cb):
	  * tests/check/elements/rganalysis.c: (send_eos_event),
	  (send_tag_event):
	  Don't use _gst_pad().

2008-05-22 19:47:53 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  docs/plugins/: Add interleave/deinterleave to the docs and while at that run make update in docs/plugins.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-amrwb.xml:
	  * docs/plugins/inspect/plugin-app.xml:
	  * docs/plugins/inspect/plugin-bayer.xml:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdaudio.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dfbvideosink.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-dvb.xml:
	  * docs/plugins/inspect/plugin-dvdspu.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-fbdevsink.xml:
	  * docs/plugins/inspect/plugin-festival.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-flvdemux.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-interleave.xml:
	  * docs/plugins/inspect/plugin-jack.xml:
	  * docs/plugins/inspect/plugin-ladspa.xml:
	  * docs/plugins/inspect/plugin-metadata.xml:
	  * docs/plugins/inspect/plugin-mms.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	  * docs/plugins/inspect/plugin-mpegtsparse.xml:
	  * docs/plugins/inspect/plugin-mpegvideoparse.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-mve.xml:
	  * docs/plugins/inspect/plugin-nas.xml:
	  * docs/plugins/inspect/plugin-neon.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-nuvdemux.xml:
	  * docs/plugins/inspect/plugin-rawparse.xml:
	  * docs/plugins/inspect/plugin-real.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-rfbsrc.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-sdp.xml:
	  * docs/plugins/inspect/plugin-selector.xml:
	  * docs/plugins/inspect/plugin-sndfile.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-speexresample.xml:
	  * docs/plugins/inspect/plugin-stereo.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-vcdsrc.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-vmnc.xml:
	  * docs/plugins/inspect/plugin-wildmidi.xml:
	  * docs/plugins/inspect/plugin-x264.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  * docs/plugins/inspect/plugin-y4menc.xml:
	  Add interleave/deinterleave to the docs and while at that
	  run make update in docs/plugins.
	  * gst/interleave/deinterleave.c:
	  Add a parapraph about using a queue and audioconvert after the source
	  pads to the docs.

2008-05-22 18:55:09 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/deinterleave.*: Don't set a getcaps() function on the src pads as it's not required and the default ge...
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c: (gst_deinterleave_base_init),
	  (gst_deinterleave_class_init), (gst_deinterleave_init),
	  (gst_deinterleave_add_new_pads), (gst_deinterleave_sink_getcaps):
	  * gst/interleave/deinterleave.h:
	  Don't set a getcaps() function on the src pads as it's not required
	  and the default getcaps() function returns the correct results for
	  our src pads.
	  Complete documentation and add myself to the authors of the element.

2008-05-22 16:33:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/icles/: Small oss4 test that probes for available devices and retrieves their caps and mixer tracks and all tha...
	  Original commit message from CVS:
	  * tests/icles/.cvsignore:
	  * tests/icles/Makefile.am:
	  * tests/icles/test-oss4.c: (opt_show_mixer_messages), (WAIT_TIME),
	  (show_mixer_messages), (probe_mixer_tracks), (probe_pad),
	  (probe_details), (probe_element), (main):
	  Small oss4 test that probes for available devices and retrieves
	  their caps and mixer tracks and all that. Also allows testing of
	  mixer change messages on the bus.

2008-05-22 15:14:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  sys/oss4/: Make device-name probing in NULL state work better (e.g. for the gnome-control-center sound capplet).
	  Original commit message from CVS:
	  * sys/oss4/oss4-mixer.c: (gst_oss4_mixer_open):
	  * sys/oss4/oss4-property-probe.c:
	  (gst_oss4_property_probe_find_device_name),
	  (gst_oss4_property_probe_find_device_name_nofd):
	  * sys/oss4/oss4-property-probe.h:
	  * sys/oss4/oss4-sink.c: (gst_oss4_sink_get_property):
	  * sys/oss4/oss4-source.c: (gst_oss4_source_get_property):
	  Make device-name probing in NULL state work better (e.g. for the
	  gnome-control-center sound capplet).

2008-05-22 14:03:05 +0000  Sjoerd Simons <sjoerd@luon.net>

	  gst/mpeg4videoparse/mpeg4videoparse.c: Move some code around to integrate the startcode searching with the other bits...
	  Original commit message from CVS:
	  Patch by: Sjoerd Simons <sjoerd at luon dot net>
	  * gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_push),
	  (gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain),
	  (gst_mpeg4vparse_change_state):
	  Move some code around to integrate the startcode searching with the
	  other bits of parsing, avoid a whole bunch of peeks.
	  Get rid of invalid data that should not happen according to the specs.
	  Fixes #533559.

2008-05-20 09:36:56 +0000  Bastien Nocera <hadess@hadess.net>

	  ext/mythtv/gstmythtvsrc.c: Correctly set duration to get a more correct seek bar in totem.
	  Original commit message from CVS:
	  Patch by: Bastien Nocera <hadess at hadess dot net>
	  * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_class_init),
	  (gst_mythtv_src_init), (gst_mythtv_src_clear),
	  (do_read_request_response), (gst_mythtv_src_create),
	  (gst_mythtv_src_start):
	  Correctly set duration to get a more correct seek bar in totem.
	  Disable query and event functions as they don't work and do some
	  smaller cleanup.
	  Fixes bug #533736.

2008-05-20 09:04:48 +0000  Brian Koropoff <brianhk@cs.washington.edu>

	  ext/spc/: Add support for some essential features like seeking, reading song duration and extended tags. Fixes bug #4...
	  Original commit message from CVS:
	  Patch by: Brian Koropoff <brianhk at cs dot washington dot edu>
	  * ext/spc/Makefile.am:
	  * ext/spc/gstspc.c: (gst_spc_dec_class_init),
	  (gst_spc_dec_src_query_type), (gst_spc_dec_init),
	  (gst_spc_dec_dispose), (gst_spc_dec_sink_event),
	  (gst_spc_duration), (gst_spc_fadeout), (gst_spc_dec_src_event),
	  (gst_spc_dec_src_query), (spc_play), (spc_setup):
	  * ext/spc/gstspc.h:
	  * ext/spc/tag.c: (spc_tag_is_extended), (spc_tag_is_text_format),
	  (spc_tag_is_present), (spc_tag_unpack_date), (spc_tag_clear),
	  (spc_tag_get_info), (spc_tag_free):
	  * ext/spc/tag.h:
	  Add support for some essential features like seeking, reading song
	  duration and extended tags. Fixes bug #454151.

2008-05-19 12:32:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/deinterleave.c: Set keep-positions property to TRUE for the 8 channel test to ensure that the or...
	  Original commit message from CVS:
	  * tests/check/elements/deinterleave.c: (GST_START_TEST):
	  Set keep-positions property to TRUE for the 8 channel test to ensure
	  that the original channel position is set on the output.

2008-05-19 07:46:05 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/deinterleave.*: Add a property to select whether channel positions should be kept on the mono output b...
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c: (gst_deinterleave_class_init),
	  (gst_deinterleave_init), (gst_deinterleave_add_new_pads),
	  (gst_deinterleave_set_pads_caps), (gst_deinterleave_set_property),
	  (gst_deinterleave_get_property):
	  * gst/interleave/deinterleave.h:
	  Add a property to select whether channel positions should be kept on
	  the mono output buffers or should be dropped.

2008-05-18 10:27:25 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  docs/Makefile.am: Oops - fix the spelling of the variable I added.
	  Original commit message from CVS:
	  * docs/Makefile.am:
	  Oops - fix the spelling of the variable I added.

2008-05-17 19:39:53 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/deinterleave.*: Queue events until src pads were added and they can be sent. Otherwise downstream will...
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c: (gst_deinterleave_finalize),
	  (gst_deinterleave_init), (gst_deinterleave_sink_event),
	  (gst_deinterleave_process), (gst_deinterleave_sink_activate_push):
	  * gst/interleave/deinterleave.h:
	  Queue events until src pads were added and they can be sent. Otherwise
	  downstream will never get the first newsegment event.

2008-05-17 14:05:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/deinterleave.c: Always set the channel positions when gst_audio_get_channel_positions() returns someth...
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c: (gst_deinterleave_sink_setcaps),
	  (gst_deinterleave_getcaps):
	  Always set the channel positions when gst_audio_get_channel_positions()
	  returns something, even if they're not set in the caps. This makes
	  sure that the output channels can be interleaved again correctly
	  in the mono/stereo cases too.
	  Don't ask for the peercaps of the current pad in getcaps() as this
	  might call getcaps() again and deadlock.

2008-05-16 22:00:49 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/timidity/gstwildmidi.c: Check some more common locations for a valid configuration file.
	  Original commit message from CVS:
	  * ext/timidity/gstwildmidi.c: (wildmidi_open_config):
	  Check some more common locations for a valid configuration file.
	  Fixes bug #533435. Packagers should still #define WILDMIDI_CFG
	  to the distributions default location.

2008-05-16 21:56:24 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/: Add support for all raw audio formats and provide better negotiation if the caps are changing.
	  Original commit message from CVS:
	  * gst/interleave/Makefile.am:
	  * gst/interleave/deinterleave.c: (deinterleave_24),
	  (gst_deinterleave_finalize), (gst_deinterleave_base_init),
	  (gst_deinterleave_class_init), (gst_deinterleave_init),
	  (gst_deinterleave_add_new_pads), (gst_deinterleave_set_pads_caps),
	  (gst_deinterleave_set_process_function),
	  (gst_deinterleave_sink_setcaps), (__remove_channels),
	  (__set_channels), (gst_deinterleave_getcaps),
	  (gst_deinterleave_process), (gst_deinterleave_chain),
	  (gst_deinterleave_sink_activate_push):
	  * gst/interleave/deinterleave.h:
	  Add support for all raw audio formats and provide better negotiation
	  if the caps are changing.
	  Don't allow changes of the channel positions and set the position of
	  the corresponding channel on the src pad caps.
	  General cleanup and smaller bugfixes.
	  * tests/check/elements/deinterleave.c: (float_buffer_check_probe):
	  Check the channel positions on the output buffer caps.

2008-05-16 19:56:30 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  docs/Makefile.am: Don't attempt to build plugin docs when they're disabled.
	  Original commit message from CVS:
	  * docs/Makefile.am:
	  Don't attempt to build plugin docs when they're disabled.
	  * gst/bayer/Makefile.am:
	  Add libgstvideo to the link.
	  * gst/rtpmanager/Makefile.am:
	  Fix link order, and move LIBS things to _LIBS

2008-05-16 14:49:07 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  docs/plugins/gst-plugins-bad-plugins.types: Remove bogus attempt to pull 'metadata' plugin's base class into the docs.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.types:
	  Remove bogus attempt to pull 'metadata' plugin's base
	  class into the docs.

2008-05-14 21:02:19 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Simply drop bad RTP packets with a warning instead of just posting an error and ...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain):
	  Simply drop bad RTP packets with a warning instead of just posting an
	  error and stopping. This is a perfectly recoverable event and we don't
	  force people to use an rtpbin to filter out bad packets first.

2008-05-14 20:57:31 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpeg4videoparse/mpeg4videoparse.c: Set fixed caps on the srcpad after we created the pad...
	  Original commit message from CVS:
	  * gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_init):
	  Set fixed caps on the srcpad after we created the pad...

2008-05-14 16:21:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/Makefile.am: Remove deinterleave test from VALGRIND_TO_FIX again now that there are suppressions in gst.s...
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Remove deinterleave test from VALGRIND_TO_FIX again now that
	  there are suppressions in gst.supp which make this work for me.

2008-05-14 14:19:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/Makefile.am: Add deinterleave unit test to VALGRIND_TO_FIX, since it causes weird invalid free errors in ...
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Add deinterleave unit test to VALGRIND_TO_FIX, since it causes
	  weird invalid free errors in valgrind/libc after _exit for some
	  reason.
	  * tests/check/elements/deinterleave.c: (pads_created),
	  (set_channel_positions), (src_handoff_float32_8ch),
	  (float_buffer_check_probe),
	  (pad_added_setup_data_check_float32_8ch_cb),
	  (make_fake_src_8chans_float32), (GST_START_TEST),
	  (deinterleave_suite):
	  Add some more deinterleave unit test bits I had locally.

2008-05-14 13:57:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/audioresample/gstaudioresample.c: Revert previous change which made basetransform handle buffer_alloc and which b...
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c: (gst_audioresample_init):
	  Revert previous change which made basetransform handle buffer_alloc
	  and which breaks things badly in the non-passthrough case since it
	  returned buffers with a different (ie. sometimes smaller) size than
	  the size requested.

2008-05-14 07:32:44 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/interleave/: Split definitions into separate header files for better documentation generation.
	  Original commit message from CVS:
	  * gst/interleave/Makefile.am:
	  * gst/interleave/deinterleave.h:
	  * gst/interleave/interleave.h:
	  * gst/interleave/plugin.h:
	  Split definitions into separate header files for better documentation
	  generation.
	  * gst/interleave/deinterleave.c: (gst_deinterleave_base_init),
	  (gst_deinterleave_class_init), (gst_deinterleave_sink_setcaps),
	  (gst_deinterleave_process):
	  Don't use alloca, allow caps changes as long as the number of channels
	  does not change, don't use g_warning, return NOT_NEGOTIATED as early
	  as possible and some other cleanup.
	  * gst/interleave/interleave.c: (gst_interleave_base_init),
	  (gst_interleave_class_init):
	  Do some random cleanup.
	  * tests/check/Makefile.am:
	  * tests/check/elements/deinterleave.c: (GST_START_TEST),
	  (deinterleave_chain_func), (deinterleave_pad_added),
	  (deinterleave_suite):
	  Add unit tests for the deinterleave element.

2008-05-13 17:21:07 +0000  Sjoerd Simons <sjoerd@luon.net>

	  gst/mpeg4videoparse/mpeg4videoparse.*: Parse the config data (either outbound or in the stream) to set width/height, ...
	  Original commit message from CVS:
	  Patch by: Sjoerd Simons <sjoerd at luon dot net>
	  * gst/mpeg4videoparse/mpeg4videoparse.c:
	  (gst_mpeg4vparse_set_new_caps), (gst_mpeg4vparse_align),
	  (get_bits), (next_start_code), (gst_mpeg4vparse_handle_vos),
	  (gst_mpeg4vparse_push), (gst_mpeg4vparse_drain),
	  (gst_mpeg4vparse_chain), (gst_mpeg4vparse_sink_setcaps),
	  (gst_mpeg4vparse_sink_event), (gst_mpeg4vparse_src_query),
	  (gst_mpeg4vparse_set_property), (gst_mpeg4vparse_get_property),
	  (gst_mpeg4vparse_class_init), (gst_mpeg4vparse_init):
	  * gst/mpeg4videoparse/mpeg4videoparse.h:
	  Parse the config data (either outbound or in the stream) to set
	  width/height, apect ration, framerate in the caps if applicable.
	  Mark frames as GST_BUFFER_FLAG_DELTA_UNIT when they are not
	  intra frames
	  Set the timestamps of outgoing buffers to the buffer in
	  which the VOP header was found.
	  Drop incoming data untill configuration is found (by default,
	  configurable using a property).
	  Report a 1 frame latency. Fixes #532723.

2008-05-13 16:16:35 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/real/gstrealvideodec.c: Add some debug for where we are searching for libraries.
	  Original commit message from CVS:
	  * gst/real/gstrealvideodec.c: (open_library):
	  Add some debug for where we are searching for libraries.

2008-05-13 10:59:49 +0000  Sjoerd Simons <sjoerd@luon.net>

	  tests/check/elements/audioresample.c: Add unit test for the latest basetransform negotiation changes.
	  Original commit message from CVS:
	  Patch by: Sjoerd Simons <sjoerd at luon dot net>
	  * tests/check/elements/audioresample.c:
	  (live_switch_alloc_only_48000), (live_switch_get_sink_caps),
	  (live_switch_push), (GST_START_TEST):
	  Add unit test for the latest basetransform negotiation changes.
	  See bug #526768.

2008-05-13 09:06:51 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Actually add the do-lost property to the object.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
	  Actually add the do-lost property to the object.

2008-05-12 18:43:41 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Avoid waiting for a negative (huge) duration when the last packet has a lower ti...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_loop):
	  Avoid waiting for a negative (huge) duration when the last packet has a
	  lower timestamp than the current packet.

2008-05-12 14:28:09 +0000  Peter Kjellerstedt <pkj@axis.com>

	  gst/rtpmanager/gstrtpsession.c: Make sure to unref the rtpsession returned by gst_pad_get_parent() to prevent a memor...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_query_send_rtcp_src):
	  Make sure to unref the rtpsession returned by gst_pad_get_parent() to
	  prevent a memory leak.

2008-05-12 14:17:06 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  docs/plugins/gst-plugins-bad-plugins-sections.txt: Quieten some docs output
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Quieten some docs output

2008-05-12 14:12:08 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Initialise with GST_CLOCK_TIME_NONE to avoid compiler warning.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_loop):
	  Initialise with GST_CLOCK_TIME_NONE to avoid compiler warning.

2008-05-11 17:23:20 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Random doc of the day: the deinterlace element.
	  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:
	  * docs/plugins/inspect/plugin-gstinterlace.xml:
	  * gst/deinterlace/gstdeinterlace.c:
	  * gst/deinterlace/gstdeinterlace.h:
	  Random doc of the day: the deinterlace element.

2008-05-09 10:21:07 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Make sure all schedule EIT and non-actual transport stream
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Make sure all schedule EIT and non-actual transport stream
	  EITs are parsed. Also add present-following flag and
	  actual-transport-stream flag to eit bus message.

2008-05-09 07:41:58 +0000  Peter Kjellerstedt <pkj@axis.com>

	  gst/rtpmanager/rtpsource.c: Make sure to unref the caps used by RTPSource to prevent a memory leak.
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsource.c: (rtp_source_finalize):
	  Make sure to unref the caps used by RTPSource to prevent a memory leak.

2008-05-08 19:16:17 +0000  Clive Wright <clive_wright@ntlworld.com>

	  sys/oss4/oss4-mixer-slider.c: Apparently mono sliders have the mono value repeated in the upper bits, so mask those o...
	  Original commit message from CVS:
	  Based on patch by: Clive Wright <clive_wright ntlworld com>
	  * sys/oss4/oss4-mixer-slider.c: (gst_oss4_mixer_slider_unpack_volume):
	  Apparently mono sliders have the mono value repeated in the upper bits,
	  so mask those out when reading them. Probably makes the mixer applet
	  work properly in some more cases.

2008-05-08 09:43:33 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/rtpsession.c: Unlock the session lock when calling one of our callbacks.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester at tester dot ca>
	  * gst/rtpmanager/rtpsession.c: (source_clock_rate),
	  (rtp_session_process_bye), (rtp_session_send_bye_locked):
	  Unlock the session lock when calling one of our callbacks.
	  Fixes #532011.

2008-05-08 06:23:39 +0000  Sjoerd Simons <sjoerd@luon.net>

	  gst/rtpmanager/gstrtpsession.c: Send RTP BYE command on EOS. Fixes bug #531955.
	  Original commit message from CVS:
	  Patch by: Sjoerd Simons <sjoerd at luon dot net>
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_event_send_rtp_sink):
	  Send RTP BYE command on EOS. Fixes bug #531955.

2008-05-08 06:20:42 +0000  Sjoerd Simons <sjoerd@luon.net>

	  gst/audioresample/gstaudioresample.c: Let audioresample use the buffer allocation of basetransform instead of it's ow...
	  Original commit message from CVS:
	  Patch by: Sjoerd Simons <sjoerd at luon dot net>
	  * gst/audioresample/gstaudioresample.c: (gst_audioresample_init):
	  Let audioresample use the buffer allocation of basetransform instead
	  of it's own stuff.
	  * tests/check/elements/audioresample.c: (alloc_only_48000),
	  (GST_START_TEST), (audioresample_suite):
	  Add unit test for the recent basetransform bugfix, where upstream
	  changes caps to something that can't be passed through anymore.

2008-05-07 20:25:09 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  win32/common/config.h.in: Don't define GST_FUNCTION, if GLib supports MSVC we'd much rather use the real thing than h...
	  Original commit message from CVS:
	  * win32/common/config.h.in:
	  Don't define GST_FUNCTION, if GLib supports MSVC we'd much rather
	  use the real thing than having "???" unconditionally.

2008-05-07 10:38:23 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/: Add marshal.list, make it compile and add to cvsignore.
	  Original commit message from CVS:
	  * gst-libs/gst/app/.cvsignore:
	  * gst-libs/gst/app/Makefile.am:
	  * gst-libs/gst/app/gstapp-marshal.list:
	  Add marshal.list, make it compile and add to cvsignore.
	  * gst-libs/gst/app/gstappsink.c: (gst_app_sink_dispose),
	  (gst_app_sink_stop):
	  Small cleanups.
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	  (gst_app_src_init), (gst_app_src_set_property),
	  (gst_app_src_get_property), (gst_app_src_unlock),
	  (gst_app_src_unlock_stop), (gst_app_src_start), (gst_app_src_stop),
	  (gst_app_src_create), (gst_app_src_set_caps),
	  (gst_app_src_get_caps), (gst_app_src_set_size),
	  (gst_app_src_get_size), (gst_app_src_set_seekable),
	  (gst_app_src_get_seekable), (gst_app_src_set_max_buffers),
	  (gst_app_src_get_max_buffers), (gst_app_src_push_buffer),
	  (gst_app_src_end_of_stream):
	  * gst-libs/gst/app/gstappsrc.h:
	  Beat appsrc in shape, add signals and actions.
	  Add some docs.
	  Add properties for caps, size, seekability and max-buffers.
	  Fix unlock/stop code.

2008-05-07 07:51:36 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Error out if we don't have the required versions of core/base.
	  Original commit message from CVS:
	  * configure.ac:
	  Error out if we don't have the required versions of core/base.

2008-05-05 10:27:45 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsink.*: Start some docs.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init),
	  (gst_app_sink_init), (gst_app_sink_set_property),
	  (gst_app_sink_get_property), (gst_app_sink_unlock_start),
	  (gst_app_sink_unlock_stop), (gst_app_sink_flush_unlocked),
	  (gst_app_sink_start), (gst_app_sink_stop), (gst_app_sink_event),
	  (gst_app_sink_preroll), (gst_app_sink_render),
	  (gst_app_sink_set_caps), (gst_app_sink_set_drop),
	  (gst_app_sink_get_drop):
	  * gst-libs/gst/app/gstappsink.h:
	  Start some docs.
	  Add property to drop buffers when the queue is filled
	  Fix unlocking and flushing when the queues are filled.

2008-05-02 14:40:08 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add wildmidi plugin
	  Original commit message from CVS:
	  add wildmidi plugin

2008-04-29 19:11:56 +0000  Jens Granseuer <jensgr@gmx.net>

	  gst/subenc/gstsrtenc.c: Declare variables at the beginning of blocks. Fixes compilation with gcc 2.x and other compil...
	  Original commit message from CVS:
	  Patch by: Jens Granseuer <jensgr at gmx dot net>
	  * gst/subenc/gstsrtenc.c: (gst_srt_enc_timestamp_to_string):
	  Declare variables at the beginning of blocks. Fixes compilation with
	  gcc 2.x and other compilers. Fixes bug #530611.

2008-04-29 09:02:35 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Detect SI pids (NIT, SDT, EIT etc.) based on table id and not by pid number. This allows for exampl...
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtspacketizer.h:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Detect SI pids (NIT, SDT, EIT etc.) based on table id and not
	  by pid number. This allows for example the EPG data from UK's
	  freesat to be picked up.

2008-04-25 23:22:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/: Cast NULL sentinels to void * as NULL is defined as an integer constant in most environments when using C++ and...
	  Original commit message from CVS:
	  * ext/mpeg2enc/gstmpeg2enc.cc:
	  * ext/soundtouch/gstbpmdetect.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.

2008-04-25 18:18:47 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsink.*: Add more docs.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init),
	  (gst_app_sink_init), (gst_app_sink_set_property),
	  (gst_app_sink_get_property), (gst_app_sink_event),
	  (gst_app_sink_preroll), (gst_app_sink_render),
	  (gst_app_sink_set_emit_signals), (gst_app_sink_get_emit_signals),
	  (gst_app_sink_set_max_buffers), (gst_app_sink_get_max_buffers),
	  (gst_app_sink_pull_buffer):
	  * gst-libs/gst/app/gstappsink.h:
	  Add more docs.
	  Add signals for when preroll and render buffers are available.
	  Add property to control signal emission.
	  Add property to control the max queue size.

2008-04-25 18:13:07 +0000  Michael Smith <msmith@xiph.org>

	  gst-libs/gst/dshow/Makefile.am: Use CXXFLAGS rather than CFLAGS; these are C++ files.
	  Original commit message from CVS:
	  * gst-libs/gst/dshow/Makefile.am:
	  Use CXXFLAGS rather than CFLAGS; these are C++ files.
	  Define required constants appropriately.
	  * sys/dshowdecwrapper/Makefile.am:
	  Add required include dir, libraries.
	  Define required constants appropriately.

2008-04-25 11:32:09 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.*: Expose new jitterbuffer property in rtpbin too.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_stream), (gst_rtp_bin_init),
	  (gst_rtp_bin_set_property), (gst_rtp_bin_get_property):
	  * gst/rtpmanager/gstrtpbin.h:
	  Expose new jitterbuffer property in rtpbin too.

2008-04-25 11:22:13 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Disable sending out rtp packet lost events by default and make a property to ena...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init),
	  (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property),
	  (gst_rtp_jitter_buffer_get_property):
	  Disable sending out rtp packet lost events by default and make a
	  property to enabe it. We will likely enable it by default when the base
	  depayloaders have a default handler for them so that we don't send these
	  events all through the pipeline for now.

2008-04-25 09:35:43 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Remove private version of a function that is in -base now.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_flush_stop),
	  (gst_rtp_jitter_buffer_src_event), (gst_rtp_jitter_buffer_chain),
	  (gst_rtp_jitter_buffer_loop):
	  Remove private version of a function that is in -base now.
	  Add src event handler.
	  Rework the jitterbuffer pushing loop so that it can quickly react to
	  lost packets and instruct the depayloader of them. This can then be used
	  to implement error concealment data.

2008-04-25 08:21:06 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Set up some internal links functions for the RTCP and sync pads because the defaults ...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_query_send_rtcp_src), (create_recv_rtcp_sink),
	  (create_send_rtcp_src):
	  Set up some internal links functions for the RTCP and sync pads because
	  the defaults are really not correct.
	  Implement a query handler for the RTCP src pad, mostly to correctly
	  report about the latency.

2008-04-25 08:15:58 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Also keep track of the first buffer timestamp together with the first
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	  (gst_rtp_bin_sync_chain):
	  * gst/rtpmanager/rtpsession.c: (update_arrival_stats),
	  (rtp_session_process_sr), (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsource.c: (rtp_source_init),
	  (calculate_jitter):
	  * gst/rtpmanager/rtpsource.h:
	  * gst/rtpmanager/rtpstats.h:
	  Also keep track of the first buffer timestamp together with the first
	  RTP timestamp as they both are needed to construct the timing of
	  outgoing packets in the jitterbuffer and are therefore also needed to
	  manage lip-sync. This fixes lip-sync if the first RTP packets arrive
	  with a wildly different gap.

2008-04-25 08:07:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/flv/gstflvdemux.c: Forward unknown queries upstream instead of returning FALSE on them.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_query):
	  Forward unknown queries upstream instead of returning FALSE on them.

2008-04-24 22:19:48 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add support for the new libmpcdec API which magically gets us support for SV8 files. Also do some random cleanup. Fix...
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init),
	  (gst_musepackdec_init), (gst_musepackdec_dispose),
	  (gst_musepackdec_handle_seek_event), (gst_musepack_stream_init),
	  (gst_musepackdec_loop), (plugin_init):
	  * ext/musepack/gstmusepackdec.h:
	  * ext/musepack/gstmusepackreader.c:
	  * ext/musepack/gstmusepackreader.h:
	  Add support for the new libmpcdec API which magically gets us support
	  for SV8 files. Also do some random cleanup. Fixes bug #526905.

2008-04-24 21:24:18 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to development -> 0.10.7.1
	  Original commit message from CVS:
	  * configure.ac:
	  Back to development -> 0.10.7.1
	  === release 0.10.7 ===

=== release 0.10.7 ===

2008-04-24 00:18:30 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-interleave.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegtsparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst-plugins-bad.doap:
	* po/LINGUAS:
	* win32/common/config.h:
	  Release 0.10.7
	  Original commit message from CVS:
	  Release 0.10.7

2008-04-24 00:15:27 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* common:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/en_GB.po:
	* po/es.po:
	* po/fi.po:
	* po/fr.po:
	* po/hu.po:
	* po/it.po:
	* po/ky.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-04-22 15:07:35 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/faad/gstfaad.c: Don't leak GstAudioChannelPosition. Fixes #529378.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c:
	  Don't leak GstAudioChannelPosition. Fixes #529378.

2008-04-22 08:18:05 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/sdp/gstsdpdemux.c: Ref caps, see #528245.
	  Original commit message from CVS:
	  * gst/sdp/gstsdpdemux.c: (request_pt_map):
	  Ref caps, see #528245.

2008-04-22 00:21:56 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: 0.10.6.4 pre-release
	  Original commit message from CVS:
	  * configure.ac:
	  0.10.6.4 pre-release

2008-04-21 21:54:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/rganalysis.c: Don't leak a tag list. Fixes bug #529285.
	  Original commit message from CVS:
	  * tests/check/elements/rganalysis.c: (GST_START_TEST):
	  Don't leak a tag list. Fixes bug #529285.

2008-04-21 21:52:30 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/ofa.c: Don't leak the tags string and tag list. Fixes bug #529283.
	  Original commit message from CVS:
	  * tests/check/elements/ofa.c: (bus_handler):
	  Don't leak the tags string and tag list. Fixes bug #529283.

2008-04-21 08:26:37 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/gstrtpbin.c: Ref caps when inserting into the cache.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester at tester dot ca>
	  * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	  (new_ssrc_pad_found):
	  Ref caps when inserting into the cache.
	  Don't leak pads.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_get_clock_rate),
	  (gst_rtp_jitter_buffer_query):
	  Avoid a caps leak.
	  Don't leak refcount in query.
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps),
	  (gst_rtp_pt_demux_chain):
	  Avoid caps leaks.
	  * gst/rtpmanager/gstrtpsession.c: (source_get_sdes_structure),
	  (gst_rtp_session_init), (return_true),
	  (gst_rtp_session_clear_pt_map), (gst_rtp_session_cache_caps),
	  (gst_rtp_session_clock_rate):
	  Ref caps when inserting into the cache.
	  Fix some more caps leaks. Fixes #528245.

2008-04-18 18:51:08 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/icles/metadata_editor.c: Add cast to placate gcc 4.1.2.
	  Original commit message from CVS:
	  * tests/icles/metadata_editor.c:
	  Add cast to placate gcc 4.1.2.

2008-04-17 23:01:11 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: 0.10.6.3 pre-release
	  Original commit message from CVS:
	  * configure.ac:
	  0.10.6.3 pre-release

2008-04-17 18:28:05 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Revert patch that added a loop timeout.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Revert patch that added a loop timeout.
	  Fixes #528614.

2008-04-17 07:31:44 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Unset GValues after g_signal_emitv so that we avoid a refcount leak.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (get_pt_map), (free_client),
	  (gst_rtp_bin_associate), (gst_rtp_bin_get_free_pad_name):
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_get_clock_rate):
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps):
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate):
	  Unset GValues after g_signal_emitv so that we avoid a refcount leak.
	  Don't leak a padname.
	  Don't leak client streams list.
	  Lock rtpbin when associating streams. Fixes #528245.

2008-04-16 09:50:17 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/Makefile.am: Don't inlcude dc1394src in the generic/states test as it requires special hardware. Fixes bu...
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Don't inlcude dc1394src in the generic/states test as it requires
	  special hardware. Fixes bug #528011.

2008-04-16 09:48:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/ofa.c: Only check if the generated fingerprints are valid Base64. The fingerprints are different...
	  Original commit message from CVS:
	  * tests/check/elements/ofa.c: (bus_handler), (GST_START_TEST):
	  Only check if the generated fingerprints are valid Base64. The
	  fingerprints are different when running on different architectures
	  which is a) no problem because the fingerprints are tolerant enough
	  and b) is caused by libofa. Fixes bug #528266.

2008-04-16 09:45:30 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/timidity/Makefile.am: Dist all source files, no matter if only timidity or wildmidi or nothing is found by config...
	  Original commit message from CVS:
	  * ext/timidity/Makefile.am:
	  Dist all source files, no matter if only timidity or wildmidi or
	  nothing is found by configure. Fixes bug #528000.

2008-04-14 20:09:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst-plugins-bad.spec.in: Remove souphttpsrc plugin from spec files, it's moved to -good.
	  Original commit message from CVS:
	  * gst-plugins-bad.spec.in:
	  Remove souphttpsrc plugin from spec files, it's moved to -good.

2008-04-13 23:11:09 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  tests/check/Makefile.am: Remove soup test certificates from the dist.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Remove soup test certificates from the dist.

2008-04-13 20:54:52 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/dirac/gstdiracenc.cc: Fix compilation by casting string constants.
	  Original commit message from CVS:
	  * ext/dirac/gstdiracenc.cc:
	  Fix compilation by casting string constants.
	  * sys/Makefile.am:
	  Fix WININET_DIR variable reference.

2008-04-12 23:32:14 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove soup plugin that's moved to -good (#523124)
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/inspect/plugin-soup.xml:
	  * ext/Makefile.am:
	  * ext/soup/Makefile.am:
	  * ext/soup/gstsouphttpsrc.c:
	  * ext/soup/gstsouphttpsrc.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/souphttpsrc.c:
	  * tests/check/test-cert.pem:
	  * tests/check/test-key.pem:
	  Remove soup plugin that's moved to -good (#523124)

2008-04-11 23:19:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/flv/gstflvparse.c: Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes crash caused by a strlen on a...
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
	  (gst_flv_parse_tag_script):
	  Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes
	  crash caused by a strlen on a NULL string (#527622).

2008-04-11 19:33:53 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  sys/dshowsrcwrapper/gstdshowvideosrc.*: Don't increase latency by queuing buffers in an async queue when the streamin...
	  Original commit message from CVS:
	  Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas at tandberg com>
	  * sys/dshowsrcwrapper/gstdshowvideosrc.c: (PROP_DEVICE_NAME),
	  (gst_dshowvideosrc_class_init), (gst_dshowvideosrc_init),
	  (gst_dshowvideosrc_dispose), (gst_dshowvideosrc_stop),
	  (gst_dshowvideosrc_unlock), (gst_dshowvideosrc_unlock_stop),
	  (gst_dshowvideosrc_create), (gst_dshowvideosrc_push_buffer):
	  * sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  Don't increase latency by queuing buffers in an async queue when
	  the streaming thread can't keep up or isn't scheduled often
	  enough for some other reason, but just drop the previous buffer
	  in that case. Also implement GstBaseSrc::unlock for faster
	  unlocking when shutting down. (#520892).

2008-04-11 18:46:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/icles/metadata_editor.*: Remove GstXOverlay stuff and use gdkpixbufsink plus some rather crude drawing/scaling ...
	  Original commit message from CVS:
	  * tests/icles/metadata_editor.c: (ENC_UNKNOWN), (last_pixbuf),
	  (draw_pixbuf), (change_tag_list), (update_draw_pixbuf),
	  (ui_drawing_size_allocate_cb), (on_drawingMain_expose_event),
	  (on_buttonSaveFile_clicked), (ui_create), (me_gst_bus_callback_view),
	  (me_gst_setup_view_pipeline), (process_file):
	  * tests/icles/metadata_editor.glade:
	  Remove GstXOverlay stuff and use gdkpixbufsink plus some rather crude
	  drawing/scaling logic to make this compile and work on all platforms.
	  Fixes #518227.

2008-04-11 13:57:03 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Bump core/base requirements to released versions to avoid confusion.
	  Original commit message from CVS:
	  * configure.ac:
	  Bump core/base requirements to released versions to avoid
	  confusion.
	  * gst/deinterlace/gstdeinterlace.c: (deinterlace_debug),
	  (GST_CAT_DEFAULT), (gst_deinterlace_base_init),
	  (gst_deinterlace_set_caps), (plugin_init):
	  Add debug category, use _set_element_details_simple and
	  remove special code path for Y42B to calculate offsets and
	  strides; libgstvideo knows how to handle this format now.

2008-04-11 13:08:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/cdxaparse/: Port VCD parser (formerly cdxastrip) from 0.8 to 0.10. Doesn't do anything the 0.8 version didn't do ...
	  Original commit message from CVS:
	  * gst/cdxaparse/Makefile.am:
	  * gst/cdxaparse/gstcdxaparse.c:
	  * gst/cdxaparse/gstcdxastrip.c:
	  * gst/cdxaparse/gstcdxastrip.h:
	  * gst/cdxaparse/gstvcdparse.c:
	  * gst/cdxaparse/gstvcdparse.h:
	  Port VCD parser (formerly cdxastrip) from 0.8 to 0.10. Doesn't do
	  anything the 0.8 version didn't do though.

2008-04-11 08:13:22 +0000  Julien Moutte <julien@moutte.net>

	  sys/oss4/: Fix arguments format in debug statements.
	  Original commit message from CVS:
	  2008-04-11  Julien Moutte  <julien@fluendo.com>
	  * sys/oss4/oss4-mixer-enum.c:
	  (gst_oss4_mixer_enum_get_values_locked):
	  * sys/oss4/oss4-source.c: (gst_oss4_source_delay): Fix arguments
	  format in debug statements.

2008-04-10 15:29:44 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  Add wininetsrc for basic http/ftp support on windows (#520897).
	  Original commit message from CVS:
	  Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas at tandberg com>
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/wininet/Makefile.am:
	  * sys/wininet/gstwininetsrc.c:
	  * sys/wininet/gstwininetsrc.h:
	  Add wininetsrc for basic http/ftp support on windows (#520897).

2008-04-10 10:01:48 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/nsf/nsf.h: Change prototype of process function here too to avoid 'incompatible assignment' warnings.
	  Original commit message from CVS:
	  * gst/nsf/nsf.h:
	  Change prototype of process function here too to avoid
	  'incompatible assignment' warnings.

2008-04-10 07:11:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/souphttpsrc.c: Increase the timeout for the internet tests to 250 seconds and check for NULL cap...
	  Original commit message from CVS:
	  * tests/check/elements/souphttpsrc.c: (got_buffer),
	  (souphttpsrc_suite):
	  Increase the timeout for the internet tests to 250 seconds
	  and check for NULL caps instead of just crashing.
	  The real fix would be to implement an shoutcast server for the unit test
	  instead of relying on a working internet connection.
	  Fixes bug #521749.

2008-04-09 22:27:50 +0000  Peter Kjellerstedt <pkj@axis.com>

	  gst/rtpmanager/: Avoid leaking pads in the RTP manager.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (free_session):
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize):
	  Avoid leaking pads in the RTP manager.

2008-04-09 13:43:51 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/nsf/nes_apu.*: Don't do void pointer arithmetic - it's a gcc extension.
	  Original commit message from CVS:
	  * gst/nsf/nes_apu.c: (apu_process):
	  * gst/nsf/nes_apu.h:
	  Don't do void pointer arithmetic - it's a gcc extension.

2008-04-06 20:18:16 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/jack/gstjackaudiosink.c: Work around missing bits of thread-safety on older GLibs some more to avoid assertions w...
	  Original commit message from CVS:
	  * ext/jack/gstjackaudiosink.c: (gst_jack_audio_sink_class_init):
	  Work around missing bits of thread-safety on older GLibs some
	  more to avoid assertions when starting up multiple playbin
	  objects concurrently (see #512382).

2008-04-06 09:01:42 +0000  Sjoerd Simons <sjoerd@luon.net>

	  ext/soup/gstsouphttpsrc.c: Only ignore actual redirects not all responses when in state
	  Original commit message from CVS:
	  Patch by: Sjoerd Simons <sjoerd at luon dot net>
	  * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_response_cb):
	  Only ignore actual redirects not all responses when in state
	  GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING. Fixes bug #526337.

2008-04-06 08:58:39 +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-05 11:03:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/ofa.c: Also check that we have processed at least 135 seconds of audio until we stop and calcula...
	  Original commit message from CVS:
	  * tests/check/elements/ofa.c: (GST_START_TEST):
	  Also check that we have processed at least 135 seconds of audio
	  until we stop and calculated a fingerprint.

2008-04-04 20:43:18 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/subenc/gstsrtenc.*: GstSrtenc => GstSrtEnc and gst_srtenc_ => gst_srt_enc_.
	  Original commit message from CVS:
	  * gst/subenc/gstsrtenc.c:
	  * gst/subenc/gstsrtenc.h:
	  GstSrtenc => GstSrtEnc and gst_srtenc_ => gst_srt_enc_.

2008-04-04 19:18:36 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/: Add simple unit tests for the OFA plugin.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/ofa.c: (bus_handler), (GST_START_TEST),
	  (ofa_suite), (main):
	  Add simple unit tests for the OFA plugin.

2008-04-03 14:23:47 +0000  Christian Schaller <uraeus@gnome.org>

	* common:
	* gst-plugins-bad.spec.in:
	  update spec file with new ossv4 plugin
	  Original commit message from CVS:
	  update spec file with new ossv4 plugin

2008-04-02 20:18:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Add initial support for OSSv4. Mixer still needs a bit more love, but even magic has its limits.
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/oss4/Makefile.am:
	  * sys/oss4/oss4-audio.c:
	  * sys/oss4/oss4-audio.h:
	  * sys/oss4/oss4-mixer-enum.c:
	  * sys/oss4/oss4-mixer-enum.h:
	  * sys/oss4/oss4-mixer-slider.c:
	  * sys/oss4/oss4-mixer-slider.h:
	  * sys/oss4/oss4-mixer-switch.c:
	  * sys/oss4/oss4-mixer-switch.h:
	  * sys/oss4/oss4-mixer.c:
	  * sys/oss4/oss4-mixer.h:
	  * sys/oss4/oss4-property-probe.c:
	  * sys/oss4/oss4-property-probe.h:
	  * sys/oss4/oss4-sink.c:
	  * sys/oss4/oss4-sink.h:
	  * sys/oss4/oss4-soundcard.h:
	  * sys/oss4/oss4-source.c:
	  * sys/oss4/oss4-source.h:
	  Add initial support for OSSv4. Mixer still needs a bit more love,
	  but even magic has its limits.

2008-04-01 22:40:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Rename new srtenc plugin to subenc.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst-plugins-bad.spec.in:
	  * gst/srtenc/Makefile.am:
	  * gst/srtenc/gstsrtenc.c:
	  * gst/srtenc/gstsrtenc.h:
	  * gst/subenc/Makefile.am:
	  * gst/subenc/gstsrtenc.c: (plugin_init):
	  Rename new srtenc plugin to subenc.

2008-04-01 20:33:19 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  fix spec'a'lec
	  Original commit message from CVS:
	  fix spec'a'lec

2008-04-01 19:53:53 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Cable delivery subsystem descriptors' frequency's bcd is measured in 100Hz units ...
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Cable delivery subsystem descriptors' frequency's bcd
	  is measured in 100Hz units so adjust multiplier accordingly.

2008-04-01 13:42:55 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  Add srt subtitle encoder
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/srtenc/Makefile.am:
	  * gst/srtenc/gstsrtenc.c:
	  * gst/srtenc/gstsrtenc.h:
	  Add srt subtitle encoder

2008-03-31 16:24:42 +0000  kapil <kapil@fluendo.com>

	  ext/gsm/gstgsmdec.*: Increase the allowed samplerates for the ms-gsm format.
	  Original commit message from CVS:
	  Patch by: kapil <kapil at fluendo dot com>
	  * ext/gsm/gstgsmdec.c: (gst_gsmdec_sink_setcaps),
	  (gst_gsmdec_chain):
	  * ext/gsm/gstgsmdec.h:
	  Increase the allowed samplerates for the ms-gsm format.
	  Fixes #481354.

2008-03-30 21:06:58 +0000  Jan de Groot <jan@jgc.homeip.net>

	  configure.ac: Fix build with --disable-external (#525100).
	  Original commit message from CVS:
	  Patch by: Jan de Groot <jan at jgc homeip net>
	  * configure.ac:
	  Fix build with --disable-external (#525100).

2008-03-28 09:48:27 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Repeat diseqc call to allow for some diseqc switches.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Repeat diseqc call to allow for some diseqc switches.

2008-03-27 16:32:27 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  ext/Makefile.am: Dist ofa correctly! Fixes non-uninstalled build.
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Dist ofa correctly! Fixes non-uninstalled build.

2008-03-27 15:57:14 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Make diseqc work more reliably.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Make diseqc work more reliably.

2008-03-26 07:40:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/nsf/: Remove memguard again and apply hopefully all previously dropped local patches. Should be really better tha...
	  Original commit message from CVS:
	  * gst/nsf/Makefile.am:
	  * gst/nsf/fds_snd.c:
	  * gst/nsf/mmc5_snd.c:
	  * gst/nsf/nsf.c:
	  * gst/nsf/types.h:
	  * gst/nsf/vrc7_snd.c:
	  * gst/nsf/vrcvisnd.c:
	  * gst/nsf/memguard.c:
	  * gst/nsf/memguard.h:
	  Remove memguard again and apply hopefully all previously dropped
	  local patches. Should be really better than the old version now.

2008-03-25 16:58:53 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/nsf/: Unbreak compilation by disabling memguard and doing some dirty hack fixes to make it compile on 64bits.
	  Original commit message from CVS:
	  * gst/nsf/memguard.c: (_my_free):
	  * gst/nsf/types.h:
	  Unbreak compilation by disabling memguard and doing some dirty hack
	  fixes to make it compile on 64bits.

2008-03-25 15:56:13 +0000  Andreas Henriksson <andreas@fatal.set>

	  gst/nsf/: Update our internal nosefart to nosefart-2.7-mls to fix segfaults on some files. Fixes bug #498237.
	  Original commit message from CVS:
	  Patch by: Andreas Henriksson <andreas at fatal dot set>
	  * gst/nsf/Makefile.am:
	  * gst/nsf/dis6502.h:
	  * gst/nsf/fds_snd.c:
	  * gst/nsf/fds_snd.h:
	  * gst/nsf/fmopl.c:
	  * gst/nsf/fmopl.h:
	  * gst/nsf/gstnsf.c:
	  * gst/nsf/log.c:
	  * gst/nsf/log.h:
	  * gst/nsf/memguard.c:
	  * gst/nsf/memguard.h:
	  * gst/nsf/mmc5_snd.c:
	  * gst/nsf/mmc5_snd.h:
	  * gst/nsf/nes6502.c:
	  * gst/nsf/nes6502.h:
	  * gst/nsf/nes_apu.c:
	  * gst/nsf/nes_apu.h:
	  * gst/nsf/nsf.c:
	  * gst/nsf/nsf.h:
	  * gst/nsf/osd.h:
	  * gst/nsf/types.h:
	  * gst/nsf/vrc7_snd.c:
	  * gst/nsf/vrc7_snd.h:
	  * gst/nsf/vrcvisnd.c:
	  * gst/nsf/vrcvisnd.h:
	  Update our internal nosefart to nosefart-2.7-mls to fix segfaults
	  on some files. Fixes bug #498237.
	  Remove some // comments, fix some compiler warnings and use pow()
	  instead of a slow, selfmade implementation.

2008-03-25 15:17:58 +0000  Ed Catmur <ed@catmur.co.uk>

	  configure.ac: Add support for neon 0.28, which didn't change API. Fixes bug #524035.
	  Original commit message from CVS:
	  Patch by: Ed Catmur <ed at catmur dot co dot uk>
	  * configure.ac:
	  Add support for neon 0.28, which didn't change API. Fixes bug #524035.

2008-03-24 12:32:59 +0000  Rene Stadler <mail@renestadler.de>

	  Make rganalysis and rglimiter elements GAP-flag aware.
	  Original commit message from CVS:
	  * gst/replaygain/gstrganalysis.c (gst_rg_analysis_init),
	  (gst_rg_analysis_transform_ip):
	  * gst/replaygain/gstrglimiter.c (gst_rg_limiter_init),
	  (gst_rg_limiter_transform_ip):
	  Make rganalysis and rglimiter elements GAP-flag aware.
	  * tests/check/elements/rganalysis.c: (test_gap_buffers),
	  (rganalysis_suite):
	  * tests/check/elements/rglimiter.c (test_gap), (rglimiter_suite):
	  Add tests to verify gap-awareness.

2008-03-22 19:26:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soup/gstsouphttpsrc.c: Don't autoplug souphttpsrc for dav/davs. This is better handled by
	  Original commit message from CVS:
	  * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_got_headers_cb),
	  (gst_soup_http_src_chunk_allocator),
	  (gst_soup_http_src_got_chunk_cb),
	  (gst_soup_http_src_uri_get_protocols):
	  Don't autoplug souphttpsrc for dav/davs. This is better handled by
	  GIO and GnomeVFS as they provide authentication.
	  Don't leak the icy caps if we already set them and get a new
	  icy-metaint header.
	  Try harder to set the icy caps on the output buffer to have correct
	  caps for the first buffer already.
	  * tests/check/elements/souphttpsrc.c: (got_buffer),
	  (GST_START_TEST):
	  Check that we get a buffer with application/x-icy caps if iradio-mode
	  is enabled and we have an icecast URL.

2008-03-22 18:18:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soup/gstsouphttpsrc.c: Actually set the icy caps on our src pad if we have icecast data.
	  Original commit message from CVS:
	  * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_chunk_allocator):
	  Actually set the icy caps on our src pad if we have icecast data.
	  Fixes bug #523854.

2008-03-22 15:00:47 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u...
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/alsa/gstalsamixerelement.c:
	  (gst_alsa_mixer_element_class_init):
	  * ext/alsa/gstalsasink.c: (gst_alsasink_class_init):
	  * ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init):
	  * ext/cdparanoia/gstcdparanoiasrc.c:
	  (gst_cd_paranoia_src_class_init):
	  * ext/gio/gstgiosink.c: (gst_gio_sink_class_init):
	  * ext/gio/gstgiosrc.c: (gst_gio_src_class_init):
	  * ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_class_init):
	  * ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_class_init):
	  * ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init):
	  * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init):
	  * ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init):
	  * ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init):
	  * ext/pango/gsttextrender.c: (gst_text_render_class_init):
	  * ext/theora/theoradec.c: (gst_theora_dec_class_init):
	  * ext/theora/theoraenc.c: (gst_theora_enc_class_init):
	  * ext/theora/theoraparse.c: (gst_theora_parse_class_init):
	  * ext/vorbis/vorbisenc.c: (gst_vorbis_enc_class_init):
	  * gst-libs/gst/audio/gstaudiofiltertemplate.c:
	  (gst_audio_filter_template_class_init):
	  * gst-libs/gst/audio/gstbaseaudiosink.c:
	  (gst_base_audio_sink_class_init):
	  * gst-libs/gst/audio/gstbaseaudiosrc.c:
	  (gst_base_audio_src_class_init):
	  * gst-libs/gst/cdda/gstcddabasesrc.c:
	  (gst_cdda_base_src_class_init):
	  * gst-libs/gst/interfaces/mixertrack.c:
	  (gst_mixer_track_class_init):
	  * gst-libs/gst/rtp/gstbasertpdepayload.c:
	  (gst_base_rtp_depayload_class_init):
	  * gst-libs/gst/rtp/gstbasertppayload.c:
	  (gst_basertppayload_class_init):
	  * gst/audioconvert/gstaudioconvert.c:
	  (gst_audio_convert_class_init):
	  * gst/audiorate/gstaudiorate.c: (gst_audio_rate_class_init):
	  * gst/audioresample/gstaudioresample.c:
	  (gst_audioresample_class_init):
	  * gst/audiotestsrc/gstaudiotestsrc.c:
	  (gst_audio_test_src_class_init):
	  * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init):
	  * gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
	  * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	  (preroll_unlinked):
	  * gst/playback/gstplaybin.c: (gst_play_bin_class_init):
	  * gst/playback/gstplaybin2.c: (gst_play_bin_class_init):
	  * gst/playback/gstplaysink.c: (gst_play_sink_class_init):
	  * gst/playback/gstqueue2.c: (gst_queue_class_init):
	  * gst/playback/gststreaminfo.c: (gst_stream_info_class_init):
	  * gst/playback/gststreamselector.c: (gst_selector_pad_class_init),
	  (gst_stream_selector_class_init):
	  * gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init):
	  * gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
	  * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
	  * gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
	  * gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
	  * gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
	  * gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
	  * gst/videorate/gstvideorate.c: (gst_video_rate_class_init):
	  * gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
	  * gst/videotestsrc/gstvideotestsrc.c:
	  (gst_video_test_src_class_init):
	  * gst/volume/gstvolume.c: (gst_volume_class_init):
	  * sys/v4l/gstv4lelement.c: (gst_v4lelement_class_init):
	  * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
	  * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
	  * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init):
	  * sys/ximage/ximagesink.c: (gst_ximagesink_class_init):
	  * sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init):
	  Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use
	  static strings (i.e. all). This gives us less memory usage,
	  fewer allocations and thus less memory defragmentation. Depend
	  on core CVS for this. Fixes bug #523806.

2008-03-21 14:50:41 +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.
	  * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  * ext/mplex/gstmplex.cc:
	  Include <string.h> for memcpy and friends to fix the build with
	  gcc 4.3.
	  * tests/check/Makefile.am:
	  Remove trailing backslash.

2008-03-20 18:10:29 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Do g_object_notify() only when not holding the lock to get the property because othe...
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c:
	  (gst_input_selector_set_active_pad), (gst_input_selector_switch):
	  Do g_object_notify() only when not holding the lock to get the property
	  because otherwise we run into a deadlock with the deep-notify handlers
	  that are possibly installed.

2008-03-20 17:48:49 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Release the selector lock when pad alloc happens on a non selected pad.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
	  (gst_selector_pad_event), (gst_selector_pad_bufferalloc),
	  (gst_selector_pad_chain), (gst_input_selector_set_active_pad):
	  Release the selector lock when pad alloc happens on a non selected pad.

2008-03-20 17:07:07 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Add pad property to configure behaviour of the unselected pad, it can return OK or N...
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
	  (gst_selector_pad_init), (gst_selector_pad_set_property),
	  (gst_selector_pad_get_property), (gst_selector_pad_event),
	  (gst_selector_pad_bufferalloc), (gst_selector_pad_chain),
	  (gst_input_selector_set_active_pad):
	  Add pad property to configure behaviour of the unselected pad, it can
	  return OK or NOT_LINKED, based on the use case.

2008-03-20 16:48:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.*: Figure out the locking a bit more.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c:
	  (gst_selector_pad_get_running_time), (gst_selector_pad_reset),
	  (gst_selector_pad_event), (gst_selector_pad_bufferalloc),
	  (gst_input_selector_wait), (gst_selector_pad_chain),
	  (gst_input_selector_class_init), (gst_input_selector_init),
	  (gst_input_selector_dispose), (gst_segment_set_start),
	  (gst_input_selector_set_active_pad),
	  (gst_input_selector_set_property),
	  (gst_input_selector_get_property),
	  (gst_input_selector_get_linked_pad),
	  (gst_input_selector_is_active_sinkpad),
	  (gst_input_selector_activate_sinkpad),
	  (gst_input_selector_request_new_pad),
	  (gst_input_selector_release_pad),
	  (gst_input_selector_change_state), (gst_input_selector_block),
	  (gst_input_selector_switch):
	  * gst/selector/gstinputselector.h:
	  Figure out the locking a bit more.
	  Mark buffers with discont after switching.
	  Fix initial segment forwarding, make sure to only forward one segment
	  regardless of what the sequence of buffers/segments is. See #522203.
	  Improve flushing when blocked.
	  Return NOT_LINKED when a stream is not selected.
	  Not API change for the switch signal in the docs.
	  Fix start/time/accum values of the new segment.
	  Correctly unlock and flush a blocking selector when going to READY.

2008-03-20 15:54:23 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/ladspa/: Add some thoughts and FIXME's.
	  Original commit message from CVS:
	  * ext/ladspa/gstladspa.c:
	  * ext/ladspa/gstsignalprocessor.c:
	  Add some thoughts and FIXME's.

2008-03-20 15:49:22 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/bayer/gstbayer2rgb.c: Include stdlib.h for abs.
	  Original commit message from CVS:
	  * gst/bayer/gstbayer2rgb.c:
	  Include stdlib.h for abs.

2008-03-19 19:56:59 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/freeze/: Add example to source code documentation blob and remove the 3 line
	  Original commit message from CVS:
	  * gst/freeze/FAQ:
	  * gst/freeze/Makefile.am:
	  * gst/freeze/gstfreeze.c:
	  Add example to source code documentation blob and remove the 3 line
	  FAQ.
	  * gst/interleave/interleave.c:
	  Add a source code documentation blob.

2008-03-19 18:44:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/ofa/gstofa.c: Improve debugging, clean up a bit and really generate the fingerprint after 135 seconds.
	  Original commit message from CVS:
	  * ext/ofa/gstofa.c: (create_fingerprint), (gst_ofa_event),
	  (gst_ofa_transform_ip), (plugin_init):
	  Improve debugging, clean up a bit and really generate the fingerprint
	  after 135 seconds.

2008-03-19 18:19:12 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/ofa/gstofa.c: Use GPL as license, the plugin itself is LGPL but libofa is GPL.
	  Original commit message from CVS:
	  * ext/ofa/gstofa.c:
	  Use GPL as license, the plugin itself is LGPL but libofa is GPL.

2008-03-19 18:14:17 +0000  Eric Buehl <eric.buehl@gmail.com>

	  Add an OFA element, the successor of MusicBrainz TRM fingerprinting.
	  Original commit message from CVS:
	  Based on a patch by: Eric Buehl <eric dot buehl at gmail dot com>
	  * configure.ac:
	  * ext/ofa/Makefile.am:
	  * ext/ofa/gstofa.c: (gst_ofa_base_init), (gst_ofa_finalize),
	  (gst_ofa_class_init), (create_fingerprint), (gst_ofa_event),
	  (gst_ofa_init), (gst_ofa_transform_ip), (gst_ofa_get_property),
	  (plugin_init):
	  * ext/ofa/gstofa.h:
	  Add an OFA element, the successor of MusicBrainz TRM fingerprinting.
	  Fixes bug #351309.

2008-03-18 10:12:40 +0000  Andy Wingo <wingo@pobox.com>

	  ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument, and a potential int overflow.
	  Original commit message from CVS:
	  2008-03-18  Andy Wingo  <wingo@pobox.com>
	  * ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument,
	  and a potential int overflow.
	  * ext/faad/gstfaad.h: Include <neaacdec.h> if faad is neaac.
	  Avoids a #warning about an ignored #pragma.

2008-03-17 15:51:08 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  examples/switch/switcher.c: Update switch example to use input selector.
	  Original commit message from CVS:
	  * examples/switch/switcher.c:
	  Update switch example to use input selector.

2008-03-17 09:02:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/neon/gstneonhttpsrc.c: Handle HTTP status code 303 (See Other) the same way as 302 (Found). Not sure what to do a...
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	  (gst_neonhttp_src_send_request_and_redirect):
	  Handle HTTP status code 303 (See Other) the same way
	  as 302 (Found). Not sure what to do about all the other 3xx
	  redirect status codes. Fixes bug #522884.

2008-03-14 21:48:37 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst-libs/gst/dshow/Makefile.am: Make sure the dshow helper library headers get distributed in the next release.
	  Original commit message from CVS:
	  * gst-libs/gst/dshow/Makefile.am:
	  Make sure the dshow helper library headers get distributed in the next
	  release.

2008-03-14 17:38:10 +0000  William M. Brack <wbrack@mmm.hk>

	  gst/bayer/gstbayer2rgb.c: Significant improvements.  Fixes #521392.
	  Original commit message from CVS:
	  Patch by: William M. Brack
	  * gst/bayer/gstbayer2rgb.c: Significant improvements.  Fixes #521392.

2008-03-14 17:22:21 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Add lots of debugging.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_selector_pad_event),
	  (gst_selector_pad_bufferalloc), (gst_selector_pad_chain),
	  (gst_input_selector_class_init),
	  (gst_input_selector_set_active_pad),
	  (gst_input_selector_set_property),
	  (gst_input_selector_push_pending_stop):
	  Add lots of debugging.
	  Fix time member in the newsegment event.

2008-03-13 16:46:04 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.*: Various cleanups.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
	  (gst_selector_pad_finalize), (gst_selector_pad_get_property),
	  (gst_selector_pad_event), (gst_input_selector_class_init),
	  (gst_input_selector_init), (gst_input_selector_set_active_pad),
	  (gst_input_selector_set_property),
	  (gst_input_selector_get_property),
	  (gst_input_selector_request_new_pad),
	  (gst_input_selector_release_pad),
	  (gst_input_selector_push_pending_stop),
	  (gst_input_selector_switch):
	  * gst/selector/gstinputselector.h:
	  Various cleanups.
	  Added tags to the pads.
	  Select active pad based on the pad object instead of its name.
	  Fix refcount in set_active_pad.
	  Add property to get the number of pads.
	  * gst/selector/gstoutputselector.c:
	  (gst_output_selector_class_init),
	  (gst_output_selector_set_property),
	  (gst_output_selector_get_property):
	  Various cleanups.
	  Select the active pad based on the pad object instead of its name.
	  Fix locking when setting the active pad.
	  * gst/selector/gstselector-marshal.list:
	  * tests/check/elements/selector.c: (cleanup_pad),
	  (selector_set_active_pad), (run_input_selector_buffer_count):
	  Fixes for pad instead of padname for pad selection.

2008-03-13 14:25:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Use GST_LICENSE, GST_PACKAGE_NAME and GST_PACKAGE_ORIGIN instead of hardcoding values where possible. Fixes bug #522212.
	  Original commit message from CVS:
	  * ext/alsaspdif/alsaspdifsink.c:
	  * ext/gsm/gstgsm.c:
	  * ext/jack/gstjack.c:
	  * ext/libmms/gstmms.c:
	  * ext/neon/gstneonhttpsrc.c:
	  * ext/shout/gstshout.c:
	  * ext/timidity/gsttimidity.c:
	  * ext/timidity/gstwildmidi.c:
	  * gst/nuvdemux/gstnuvdemux.c:
	  * gst/tta/gsttta.c:
	  Use GST_LICENSE, GST_PACKAGE_NAME and GST_PACKAGE_ORIGIN instead
	  of hardcoding values where possible. Fixes bug #522212.

2008-03-13 09:45:09 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/soup/gstsouphttpsrc.*: Try to resume on server disconnect. Fixes bug #522134.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_init),
	  (gst_soup_http_src_finished_cb), (gst_soup_http_src_response_cb),
	  (gst_soup_http_src_build_message), (gst_soup_http_src_create):
	  * ext/soup/gstsouphttpsrc.h:
	  Try to resume on server disconnect. Fixes bug #522134.

2008-03-12 18:44:58 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/xvid/gstxvidenc.c: Set correct pixel aspect ratio for the encoder.
	  Original commit message from CVS:
	  * ext/xvid/gstxvidenc.c: (gst_xvidenc_chain):
	  Set correct pixel aspect ratio for the encoder.

2008-03-11 12:40:58 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/rtpsession.*: Implement collision and loop detection in rtpmanager.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester at tester dot ca>
	  * gst/rtpmanager/rtpsession.c: (find_add_conflicting_addresses),
	  (check_collision), (obtain_source), (rtp_session_create_new_ssrc),
	  (rtp_session_create_source), (rtp_session_process_rtp),
	  (rtp_session_process_sr), (rtp_session_process_rr),
	  (rtp_session_process_sdes), (rtp_session_process_bye),
	  (rtp_session_send_bye_locked), (rtp_session_send_bye),
	  (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsession.h:
	  Implement collision and loop detection in rtpmanager.
	  Fixes #520626.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_reset),
	  (rtp_source_init):
	  * gst/rtpmanager/rtpsource.h:
	  Add method to reset stats.

2008-03-11 11:36:03 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  gst/rtpmanager/gstrtpsession.c: Avoid a deadlock when joining the RTCP thread in PAUSED because it might be blocked d...
	  Original commit message from CVS:
	  Based on patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init),
	  (rtcp_thread), (start_rtcp_thread), (stop_rtcp_thread),
	  (join_rtcp_thread), (gst_rtp_session_change_state):
	  Avoid a deadlock when joining the RTCP thread in PAUSED because it might
	  be blocked downstream. Also avoid spawning multiple rtcp threads.
	  Fixes #520894.

2008-03-11 10:43:32 +0000  Stefan Kost <ensonic@users.sf.net>

	  gst/rtpmanager/rtpjitterbuffer.c: Don't try to reset the clock skew when we have no timestamps.
	  Original commit message from CVS:
	  Patch by: Stefan Kost <ensonic@users.sf.net>
	  * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
	  Don't try to reset the clock skew when we have no timestamps.
	  Fixes #519005.

2008-03-08 04:27:03 +0000  Sjoerd Simons <sjoerd@luon.net>

	  ext/faad/gstfaad.c: Improve the header checking to look for what faad2 looks for too. Fixes playback of same apple tr...
	  Original commit message from CVS:
	  Patch by: Sjoerd Simons <sjoerd at luon dot net>
	  * ext/faad/gstfaad.c: (looks_like_valid_header):
	  Improve the header checking to look for what faad2 looks
	  for too. Fixes playback of same apple trailers.
	  Fixes bug #469979.

2008-03-07 13:28:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Really check for libdc1394 >= 2.0.0, pkg-config thinks that 2.0.0-rcX is newer than 2.0.0 so we check f...
	  Original commit message from CVS:
	  * configure.ac:
	  Really check for libdc1394 >= 2.0.0, pkg-config thinks that
	  2.0.0-rcX is newer than 2.0.0 so we check for this too.

2008-03-06 07:03:09 +0000  David Schleef <ds@schleef.org>

	  ext/dirac/gstdiracenc.cc: Add a bunch of properties cribbed from the encoder program in dirac.
	  Original commit message from CVS:
	  * ext/dirac/gstdiracenc.cc: Add a bunch of properties cribbed
	  from the encoder program in dirac.

2008-03-06 03:16:13 +0000  David Schleef <ds@schleef.org>

	  Rewrite Dirac encoder plugin based on Schroedinger gstreamer elements.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/dirac/Makefile.am:
	  * ext/dirac/gstdirac.cc:
	  * ext/dirac/gstdiracenc.cc:
	  Rewrite Dirac encoder plugin based on Schroedinger gstreamer
	  elements.

2008-03-05 06:03:03 +0000  Mark Nauwelaerts <manauw@skynet.be>

	  Port mplex element to 0.10. Fixes bug #520329.
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <manauw at skynet dot be>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/mplex/Makefile.am:
	  * ext/mplex/gstmplex.cc:
	  * ext/mplex/gstmplex.hh:
	  * ext/mplex/gstmplexibitstream.cc:
	  * ext/mplex/gstmplexibitstream.hh:
	  * ext/mplex/gstmplexjob.cc:
	  * ext/mplex/gstmplexjob.hh:
	  * ext/mplex/gstmplexoutputstream.cc:
	  * ext/mplex/gstmplexoutputstream.hh:
	  Port mplex element to 0.10. Fixes bug #520329.
	  * tests/check/Makefile.am:
	  * tests/check/elements/mplex.c: (test_sink_event), (setup_src_pad),
	  (teardown_src_pad), (setup_mplex), (cleanup_mplex),
	  (GST_START_TEST), (mplex_suite), (main):
	  Add unit test for the mplex element.

2008-03-05 05:38:06 +0000  Mark Nauwelaerts <manauw@skynet.be>

	  configure.ac: Clean up detection of different mjpegtoolsAPI versions.
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <manauw at skynet dot be>
	  * configure.ac:
	  Clean up detection of different mjpegtoolsAPI versions.
	  * ext/mpeg2enc/gstmpeg2enc.cc:
	  * ext/mpeg2enc/gstmpeg2enc.hh:
	  * ext/mpeg2enc/gstmpeg2encoder.cc:
	  * ext/mpeg2enc/gstmpeg2encoptions.cc:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.hh:
	  * ext/mpeg2enc/gstmpeg2encstreamwriter.cc:
	  * ext/mpeg2enc/gstmpeg2encstreamwriter.hh:
	  Streamline conditional code for evolving mjpegtools API,
	  optimize and fix/prevent crash in log handling, use
	  names/nicks for enums in the usual way andm inor updates
	  in code and properties/settings. Partially fixes bug #520329.

2008-03-04 17:49:15 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Add parsing of cable delivery system descriptor.
	  Original commit message from CVS:
	  * gst/mpegtsparse/gstmpegdesc.h:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Add parsing of cable delivery system descriptor.

2008-03-03 12:48: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-03-03 06:04:02 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Correct all relevant warnings found by the sparse semantic code analyzer. This include marking several symbols static...
	  Original commit message from CVS:
	  * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_get_type):
	  * ext/alsa/gstalsasink.c: (set_hwparams):
	  * ext/alsa/gstalsasrc.c: (set_hwparams):
	  * ext/gio/gstgio.c: (gst_gio_uri_handler_get_uri):
	  * ext/ogg/gstoggmux.h:
	  * ext/ogg/gstogmparse.c:
	  * gst-libs/gst/audio/audio.c:
	  * gst-libs/gst/fft/kiss_fft_f64.c: (kiss_fft_f64_alloc):
	  * gst-libs/gst/pbutils/missing-plugins.c:
	  (gst_missing_uri_sink_message_new),
	  (gst_missing_element_message_new),
	  (gst_missing_decoder_message_new),
	  (gst_missing_encoder_message_new):
	  * gst-libs/gst/rtp/gstbasertppayload.c:
	  * gst-libs/gst/rtp/gstrtcpbuffer.c:
	  (gst_rtcp_packet_bye_get_reason):
	  * gst/audioconvert/gstaudioconvert.c:
	  * gst/audioresample/gstaudioresample.c:
	  * gst/ffmpegcolorspace/imgconvert.c:
	  * gst/playback/test.c: (gen_video_element), (gen_audio_element):
	  * gst/typefind/gsttypefindfunctions.c:
	  * gst/videoscale/vs_4tap.c:
	  * gst/videoscale/vs_4tap.h:
	  * sys/v4l/gstv4lelement.c:
	  * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_any_caps):
	  * sys/v4l/v4l_calls.c:
	  * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init),
	  (gst_v4lsrc_try_capture):
	  * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	  (gst_ximagesink_ximage_new):
	  * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	  (gst_xvimagesink_xvimage_new):
	  * tests/check/elements/audioconvert.c:
	  * tests/check/elements/audioresample.c:
	  (fail_unless_perfect_stream):
	  * tests/check/elements/audiotestsrc.c: (setup_audiotestsrc):
	  * tests/check/elements/decodebin.c:
	  * tests/check/elements/gdpdepay.c: (setup_gdpdepay),
	  (setup_gdpdepay_streamheader):
	  * tests/check/elements/gdppay.c: (setup_gdppay), (GST_START_TEST),
	  (setup_gdppay_streamheader):
	  * tests/check/elements/gnomevfssink.c: (setup_gnomevfssink):
	  * tests/check/elements/multifdsink.c: (setup_multifdsink):
	  * tests/check/elements/textoverlay.c:
	  * tests/check/elements/videorate.c: (setup_videorate):
	  * tests/check/elements/videotestsrc.c: (setup_videotestsrc):
	  * tests/check/elements/volume.c: (setup_volume):
	  * tests/check/elements/vorbisdec.c: (setup_vorbisdec):
	  * tests/check/elements/vorbistag.c:
	  * tests/check/generic/clock-selection.c:
	  * tests/check/generic/states.c: (setup), (teardown):
	  * tests/check/libs/cddabasesrc.c:
	  * tests/check/libs/video.c:
	  * tests/check/pipelines/gio.c:
	  * tests/check/pipelines/oggmux.c:
	  * tests/check/pipelines/simple-launch-lines.c:
	  (simple_launch_lines_suite):
	  * tests/check/pipelines/streamheader.c:
	  * tests/check/pipelines/theoraenc.c:
	  * tests/check/pipelines/vorbisdec.c:
	  * tests/check/pipelines/vorbisenc.c:
	  * tests/examples/seek/scrubby.c:
	  * tests/examples/seek/seek.c: (query_positions_elems),
	  (query_positions_pads):
	  * tests/icles/stress-xoverlay.c: (myclock):
	  Correct all relevant warnings found by the sparse semantic code
	  analyzer. This include marking several symbols static, using
	  NULL instead of 0 for pointers and using "foo (void)" instead
	  of "foo ()" for declarations.
	  * win32/common/libgstrtp.def:
	  Add gst_rtp_buffer_set_extension_data to the symbol definition file.

2008-03-03 04:39:48 +0000  Jens Granseuer <jensgr@gmx.net>

	  gst/mve/gstmvedemux.c: Fix audio discontinuity that happens when silent chunks are followed by real data again. Fixes...
	  Original commit message from CVS:
	  Patch by: Jens Granseuer <jensgr at gmx dot net>
	  * gst/mve/gstmvedemux.c: (gst_mve_audio_data),
	  (gst_mve_demux_get_type):
	  Fix audio discontinuity that happens when silent chunks are
	  followed by real data again. Fixes bug #519905.

2008-03-01 12:49:13 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/: Add DVB-C support. Special thanks to Christian Schaller for a testing ground.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  * sys/dvb/parsechannels.c:
	  Add DVB-C support. Special thanks to Christian Schaller
	  for a testing ground.

2008-02-28 13:22:24 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtsparse.c: Only send PMTs to program pads that the PMT is for even if on same pid.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Only send PMTs to program pads that the PMT is for even if
	  on same pid.
	  As a by-product, we now no longer hardcode any psi pid numbers.
	  Also remove pcr stream from old pmt when we apply a new pmt.

2008-02-28 10:41:56 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* tests/icles/metadata_editor.c:
	  Map Date-Time and GPS tags and Convert from EXIF to XMP Datatime as local time (those changes has been done in previo...
	  Original commit message from CVS:
	  Map Date-Time and GPS tags and Convert from EXIF to XMP Datatime as local time (those changes has been done in previous comit but had to be revert in 2008-02-10 due to frozen)

2008-02-27 23:29:44 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/camutils.c: Remove the G_VALUE_HOLDS_BOXED checks. They were only added to help debug the data corruption.
	  Original commit message from CVS:
	  * sys/dvb/camutils.c:
	  Remove the G_VALUE_HOLDS_BOXED checks. They were
	  only added to help debug the data corruption.

2008-02-27 19:41:13 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/camutils.c: Don't free the program descriptors, this structure containing them is stills tored after.
	  Original commit message from CVS:
	  * sys/dvb/camutils.c:
	  Don't free the program descriptors, this structure
	  containing them is stills tored after.
	  Fixes data corruption.

2008-02-27 12:34:00 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/camutils.c: Extra checks to prevent data corruption/segfaults.
	  Original commit message from CVS:
	  * sys/dvb/camutils.c:
	  Extra checks to prevent data corruption/segfaults.

2008-02-26 15:13:54 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec file
	  Original commit message from CVS:
	  update spec file

2008-02-26 12:04:21 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/nas/nassink.c: Fix build warning by using portable API.
	  Original commit message from CVS:
	  * ext/nas/nassink.c:
	  Fix build warning by using portable API.

2008-02-26 12:01:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/selector/gstoutputselector.c: Fix changing to same pad twice before a chain call.
	  Original commit message from CVS:
	  * gst/selector/gstoutputselector.c:
	  Fix changing to same pad twice before a chain call.

2008-02-26 05:54:26 +0000  Daniel Fischer <dan@f3c.com>

	  Add support for libdc1394 2.0.0 and above and require this version now. Fixes bug #514964.
	  Original commit message from CVS:
	  Patch by: Daniel Fischer <dan at f3c dot com>
	  * configure.ac:
	  * ext/dc1394/gstdc1394.c: (gst_dc1394_change_state),
	  (gst_dc1394_get_cam_caps), (gst_dc1394_open_cam_with_best_caps):
	  * ext/dc1394/gstdc1394.h:
	  Add support for libdc1394 2.0.0 and above and require this version
	  now. Fixes bug #514964.

2008-02-26 05:36:17 +0000  Wouter Cloetens <wouter@mind.be>

	  Add support for specifying a list of cookies to be passed in the HTTP request. Fixes bug #518722.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_class_init),
	  (gst_soup_http_src_init), (gst_soup_http_src_dispose),
	  (gst_soup_http_src_set_property), (gst_soup_http_src_get_property),
	  (gst_soup_http_src_create):
	  * ext/soup/gstsouphttpsrc.h:
	  * tests/check/elements/souphttpsrc.c: (run_test), (GST_START_TEST),
	  (souphttpsrc_suite):
	  Add support for specifying a list of cookies to be passed in
	  the HTTP request. Fixes bug #518722.

2008-02-25 08:53:51 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/selector/gstinputselector.*: Added "select-all" property to make it work like aggregator in 0.8.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c:
	  * gst/selector/gstinputselector.h:
	  Added "select-all" property to make it work like aggregator in 0.8.
	  * gst/selector/gstoutputselector.c:
	  Fix resend-latest behavoiur.
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/selector.c:
	  Add unit tests for selector.

2008-02-25 06:29:12 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Remove midi typefinders and require base CVS as they moved there.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/timidity/gsttimidity.c: (plugin_init):
	  * ext/timidity/gstwildmidi.c: (plugin_init):
	  Remove midi typefinders and require base CVS as they moved there.

2008-02-24 09:57:42 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/Makefile.am: Only disable the ext/timidity directory if both, wildmidi _and_ timidity are not available.
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Only disable the ext/timidity directory if both, wildmidi
	  _and_ timidity are not available.

2008-02-24 04:24:20 +0000  Emilio Pozuelo Monfort <pochu@ubuntu.com>

	  ext/Makefile.am: Build the wildmidi plugin if it's enabled and not only when both, the timidity and wildmidi plugin, ...
	  Original commit message from CVS:
	  Patch by: Emilio Pozuelo Monfort <pochu at ubuntu dot com>
	  * ext/Makefile.am:
	  Build the wildmidi plugin if it's enabled and not only when
	  both, the timidity and wildmidi plugin, are enabled.

2008-02-23 15:01:32 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them when building C++ code.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/mpeg2enc/Makefile.am:
	  * ext/soundtouch/Makefile.am:
	  * gst/modplug/Makefile.am:
	  Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them
	  when building C++ code.

2008-02-23 11:56:41 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Add initial support for multiproto driver (not yet merged into v4l-dvb mainline yet).
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Add initial support for multiproto driver (not yet merged into
	  v4l-dvb mainline yet).
	  Only works for DVB-S not DVB-S2, DVB-T, DVB-C or other.

2008-02-22 10:18:27 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/inspect/: Update to version 0.10.6.1.
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-app.xml:
	  * docs/plugins/inspect/plugin-bayer.xml:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdaudio.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dfbvideosink.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-dvb.xml:
	  * docs/plugins/inspect/plugin-dvdspu.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-fbdevsink.xml:
	  * docs/plugins/inspect/plugin-festival.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-flvdemux.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstinterlace.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-interleave.xml:
	  * docs/plugins/inspect/plugin-jack.xml:
	  * docs/plugins/inspect/plugin-ladspa.xml:
	  * docs/plugins/inspect/plugin-metadata.xml:
	  * docs/plugins/inspect/plugin-mms.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	  * docs/plugins/inspect/plugin-mpegtsparse.xml:
	  * docs/plugins/inspect/plugin-mpegvideoparse.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-mve.xml:
	  * docs/plugins/inspect/plugin-neon.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-nuvdemux.xml:
	  * docs/plugins/inspect/plugin-rawparse.xml:
	  * docs/plugins/inspect/plugin-real.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-rfbsrc.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-sdp.xml:
	  * docs/plugins/inspect/plugin-selector.xml:
	  * docs/plugins/inspect/plugin-sndfile.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-speexresample.xml:
	  * docs/plugins/inspect/plugin-stereo.xml:
	  * docs/plugins/inspect/plugin-tremor.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-vcdsrc.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-vmnc.xml:
	  * docs/plugins/inspect/plugin-x264.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  * docs/plugins/inspect/plugin-y4menc.xml:
	  Update to version 0.10.6.1.

2008-02-22 09:56:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/: Remove docs for elements that have moved to other modules or been renamed.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/inspect/plugin-gdp.xml:
	  * docs/plugins/inspect/plugin-quicktime.xml:
	  * docs/plugins/inspect/plugin-switch.xml:
	  * docs/plugins/inspect/plugin-videocrop.xml:
	  Remove docs for elements that have moved to other modules
	  or been renamed.

2008-02-22 07:20:03 +0000  Wouter Cloetens <wouter@mind.be>

	  Implement zero-copy and make the buffer size configurable.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * configure.ac:
	  * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_cancel_message),
	  (gst_soup_http_src_finished_cb), (gst_soup_http_src_chunk_free),
	  (gst_soup_http_src_chunk_allocator),
	  (gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_create),
	  (gst_soup_http_src_start), (gst_soup_http_src_set_proxy):
	  * ext/soup/gstsouphttpsrc.h:
	  Implement zero-copy and make the buffer size configurable.
	  Prefix proxy URIs with "http://" if they don't start with it
	  already and catch errors earlier, fixes hanging in some situations.
	  Fixes bug #514948.

2008-02-22 06:42:28 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/gst-plugins-bad.supp: Add suppressions for SoundTouch valgrind warnings and a valgrind warning caused by ...
	  Original commit message from CVS:
	  * tests/check/gst-plugins-bad.supp:
	  Add suppressions for SoundTouch valgrind warnings and
	  a valgrind warning caused by the LADSPA sine plugin and
	  happening on every exit().
	  Remove GIO suppressions as it's now in -base.

2008-02-22 06:33:49 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mythtv/gstmythtvsrc.c: Don't allocate and copy the data to a new place but instead put the data from gmyth (which...
	  Original commit message from CVS:
	  * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_create):
	  Don't allocate and copy the data to a new place but instead
	  put the data from gmyth (which we own) into the buffers that
	  are passed downstream.

2008-02-22 06:31:44 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/timidity/gstwildmidi.c: If WILDMIDI_CFG is not defined, define it to the default timidity configure file.
	  Original commit message from CVS:
	  * ext/timidity/gstwildmidi.c:
	  If WILDMIDI_CFG is not defined, define it to the default
	  timidity configure file.

2008-02-22 06:12:07 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Remove hack to work with mjpegtools 1.9.0rc3 and above and instead use mjpeg_loglev_t() for getting the log levels. C...
	  Original commit message from CVS:
	  Based on a patch by:
	  Hans de Goede <j dot w dot r dot degoede at hhs dot nl>
	  * configure.ac:
	  * ext/mpeg2enc/gstmpeg2enc.cc:
	  Remove hack to work with mjpegtools 1.9.0rc3 and above and instead
	  use mjpeg_loglev_t() for getting the log levels. Check for this
	  function in configure.ac as the pkg-config file doesn't tell us
	  which release candidate we have. Fixes bug #517896.

2008-02-22 05:48:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Check for X for the nas plugin to make it possible to build it again. Fixes bug #517895.
	  Original commit message from CVS:
	  * configure.ac:
	  Check for X for the nas plugin to make it possible to build it
	  again. Fixes bug #517895.

2008-02-22 05:42:16 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/Makefile.am: Ignore some more elements for the states unit test, like dfbvideosink which produces a segfa...
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Ignore some more elements for the states unit test, like
	  dfbvideosink which produces a segfault. Fixes bug #517854.

2008-02-22 05:33:59 +0000  Jens Granseuer <jensgr@gmx.net>

	  Some C89 fixes, moving variable declarations to the beginning of a block. Fixes bug #517937.
	  Original commit message from CVS:
	  Patch by: Jens Granseuer <jensgr at gmx dot net>
	  * gst/librfb/gstrfbsrc.c: (gst_rfb_property_set_version):
	  * gst/librfb/rfbdecoder.c: (rfb_decoder_message_set_encodings),
	  (rfb_decoder_state_set_encodings):
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  (mpegts_packetizer_parse_nit), (mpegts_packetizer_parse_sdt),
	  (mpegts_packetizer_parse_eit):
	  * sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps),
	  (gst_fbdevsink_setcaps), (gst_fbdevsink_render):
	  Some C89 fixes, moving variable declarations to the beginning
	  of a block. Fixes bug #517937.

2008-02-21 23:50:31 +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.6 ===

2008-02-21 00:13:31 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-interleave.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegtsparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-tremor.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst-plugins-bad.doap:
	* po/LINGUAS:
	* win32/common/config.h:
	  Release 0.10.6 - A Big Deep Breath
	  Original commit message from CVS:
	  Release 0.10.6 - A Big Deep Breath

2008-02-20 23:35:19 +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/ky.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-20 16:04:32 +0000  Bastien Nocera <hadess@hadess.net>

	  ext/mythtv/gstmythtvsrc.c: Using the wrong GstFormat for the filesize, and fail seek properly on anything but _BYTES ...
	  Original commit message from CVS:
	  2008-02-20  Bastien Nocera  <hadess@hadess.net>
	  * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_do_seek),
	  (gst_mythtv_src_start): Using the wrong GstFormat for the filesize,
	  and fail seek properly on anything but _BYTES format
	  Fixes bug #517684

2008-02-20 09:33:25 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/gstrtpbin.c: Fix small memory leak, leaking caps. Fixes #bug 517571.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester at tester dot ca>
	  * gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found):
	  Fix small memory leak, leaking caps. Fixes #bug 517571.

2008-02-19 11:50:45 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  change gmyth-1.0 to gmyth
	  Original commit message from CVS:
	  change gmyth-1.0 to gmyth

2008-02-19 10:51:34 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/tta/Makefile.am: Link tta plugin with libm. Fixes bug #517391.
	  Original commit message from CVS:
	  * gst/tta/Makefile.am:
	  Link tta plugin with libm. Fixes bug #517391.

2008-02-14 17:09:38 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/camutils.c: Do not assume "descriptors" property in the pmt structure is present.
	  Original commit message from CVS:
	  * sys/dvb/camutils.c:
	  Do not assume "descriptors" property in the pmt structure
	  is present.
	  Fixes #516499.

2008-02-14 16:25:51 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/gstrtpbin.c: Ignore streams that did not receive an SR packet when doing synchronisation. Fixes #516160.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester@tester.ca>
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate):
	  Ignore streams that did not receive an SR packet when doing
	  synchronisation. Fixes #516160.

2008-02-14 14:33:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/dvdspu/gstdvdspu.c: Set n_line_ctrl_i to 0 whenever we free line_ctrl_i. Patch based on an idea by Jan Schmidt, f...
	  Original commit message from CVS:
	  * gst/dvdspu/gstdvdspu.c: (gst_dvd_spu_handle_new_spu_buf):
	  Set n_line_ctrl_i to 0 whenever we free line_ctrl_i. Patch based
	  on an idea by Jan Schmidt, fixes bug #516436.

2008-02-14 14:22:57 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Make sure the gstmpegdesc debug lines do not critical when GST_DEBUG is enabled and also actually o...
	  Original commit message from CVS:
	  * gst/mpegtsparse/gstmpegdesc.c:
	  * gst/mpegtsparse/gstmpegdesc.h:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Make sure the gstmpegdesc debug lines do not critical
	  when GST_DEBUG is enabled and also actually output.
	  Thanks to Alessandro Decina for spotting.
	  Fixes #516448

2008-02-13 23:52:42 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Also add dshow pieces to the disted subdirs to fix distcheck.
	  Original commit message from CVS:
	  * gst-libs/gst/Makefile.am:
	  * sys/Makefile.am:
	  Also add dshow pieces to the disted subdirs to fix distcheck.

2008-02-13 14:40:33 +0000  Josep Torra Valles <josep@fluendo.com>

	  gst/h264parse/gsth264parse.c: Fix potential buffer leak in reverse mode. Re-Fixes #516061.
	  Original commit message from CVS:
	  Patch by: Josep Torra Valles <josep@fluendo.com>
	  * gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_reverse):
	  Fix potential buffer leak in reverse mode. Re-Fixes #516061.

2008-02-13 11:22:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Allow gmyth versions from 0.4 up to 0.7.99, the API didn't change until 0.7 fortunately.
	  Original commit message from CVS:
	  * configure.ac:
	  Allow gmyth versions from 0.4 up to 0.7.99, the API didn't change
	  until 0.7 fortunately.

2008-02-12 23:16:21 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Generate the directshow Makefiles so that the directories get disted. Still needs some configure time d...
	  Original commit message from CVS:
	  * configure.ac:
	  Generate the directshow Makefiles so that the directories
	  get disted. Still needs some configure time detection to enable
	  building them under MingW.

2008-02-12 23:13:55 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/metadata/Makefile.am: Don't install a header file. We will have to merge these tags into libgsttag after the rele...
	  Original commit message from CVS:
	  * ext/metadata/Makefile.am:
	  Don't install a header file. We will have to merge these
	  tags into libgsttag after the release and use them from there.
	  Fixes: #515860

2008-02-12 22:10:39 +0000  Sébastien Moutte <sebastien@moutte.net>

	  Add Makefiles to win32 plugins and lib.
	  Original commit message from CVS:
	  * gst-libs/gst/dshow/Makefile.am:
	  * sys/dshowdecwrapper/Makefile.am:
	  * sys/dshowsrcwrapper/Makefile.am:
	  Add Makefiles to win32 plugins and lib.
	  They will need to be tested and probably fixed by developers
	  working with mingw. This is a first step to include source files
	  with releases.

2008-02-12 21:31:57 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/dvbbasebin.c: Fix leak of location string returned from gst_uri_get_location.
	  Original commit message from CVS:
	  * sys/dvb/dvbbasebin.c:
	  Fix leak of location string returned from gst_uri_get_location.
	  Fixes bug #516114

2008-02-12 21:01:17 +0000  David Schleef <ds@schleef.org>

	  Remove glimagesink, as it's been moved to gst-plugins-gl.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/inspect/plugin-glimagesink.xml:
	  * sys/Makefile.am:
	  * sys/glsink/BUGS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/color_matrix.c:
	  * sys/glsink/glextensions.c:
	  * sys/glsink/glextensions.h:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/gltestsrc.c:
	  * sys/glsink/gltestsrc.h:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstglbuffer.h:
	  * sys/glsink/gstglconvert.c:
	  * sys/glsink/gstgldisplay.c:
	  * sys/glsink/gstgldisplay.h:
	  * sys/glsink/gstgldownload.c:
	  * sys/glsink/gstglfilter.c:
	  * sys/glsink/gstglfilter.h:
	  * sys/glsink/gstglfilterexample.c:
	  * sys/glsink/gstgltestsrc.c:
	  * sys/glsink/gstgltestsrc.h:
	  * sys/glsink/gstglupload.c:
	  * sys/glsink/gstopengl.c:
	  Remove glimagesink, as it's been moved to gst-plugins-gl.
	  Fixes #516094.

2008-02-12 18:29:29 +0000  Josep Torra Valles <josep@fluendo.com>

	  gst/h264parse/gsth264parse.c: Fix potential buffer leak in reverse mode. Fixes #516061.
	  Original commit message from CVS:
	  Patch by: Josep Torra Valles <josep@fluendo.com>
	  * gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_reverse):
	  Fix potential buffer leak in reverse mode. Fixes #516061.

2008-02-12 11:08:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  sys/dshowdecwrapper/: Chain up dispose methods properly. Fixes bug #515970.
	  Original commit message from CVS:
	  * sys/dshowdecwrapper/gstdshowaudiodec.c:
	  (gst_dshowaudiodec_dispose):
	  * sys/dshowdecwrapper/gstdshowvideodec.c:
	  (gst_dshowvideodec_dispose):
	  Chain up dispose methods properly. Fixes bug #515970.

2008-02-12 11:02:37 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	  Changelog surgery: mention bug 515919 fixed in my previous commit
	  Original commit message from CVS:
	  Changelog surgery: mention bug 515919 fixed in my previous commit

2008-02-12 10:57:27 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegvideoparse/mpegvideoparse.c: Fix leaking caps.
	  Original commit message from CVS:
	  * gst/mpegvideoparse/mpegvideoparse.c:
	  (mpegvideoparse_handle_sequence), (mpegvideoparse_drain_avail),
	  (gst_mpegvideoparse_change_state):
	  Fix leaking caps.
	  Fix potential buffer leak in forward mode.
	  Cleanup queues when going to READY. Fixes #515815.

2008-02-12 10:24:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  docs/plugins/: Remove documentation for the GIO plugin as it was moved to gst-plugins-base. Fixes bug #515964.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-gio.xml:
	  Remove documentation for the GIO plugin as it was moved to
	  gst-plugins-base. Fixes bug #515964.

2008-02-12 10:22:42 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Fix some finalize leaks by chaining up to the parent method.
	  Original commit message from CVS:
	  * ext/xvid/gstxvidenc.c:
	  * gst/vmnc/vmncdec.c:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/gstgldisplay.c:
	  Fix some finalize leaks by chaining up to the parent method.

2008-02-12 05:21:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/souphttpsrc.c: Include glib/gprintf.h for g_vasprintf(). Fixes bug #515564.
	  Original commit message from CVS:
	  * tests/check/elements/souphttpsrc.c:
	  Include glib/gprintf.h for g_vasprintf(). Fixes bug #515564.

2008-02-12 05:19:05 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/librfb/gstrfbsrc.c: Free the rfb decoder on finalize. Fixes bug #515721.
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c: (gst_rfb_src_dispose):
	  Free the rfb decoder on finalize. Fixes bug #515721.

2008-02-11 13:34:47 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  sys/fbdev/gstfbdevsink.c: Free the device string in finalize. Fixes bug #515722.
	  Original commit message from CVS:
	  * sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_class_init),
	  (gst_fbdevsink_finalize):
	  Free the device string in finalize. Fixes bug #515722.

2008-02-11 13:33:10 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/xvid/gstxvidenc.c: Unset GValues after using them. Fixes bug #515720.
	  Original commit message from CVS:
	  * ext/xvid/gstxvidenc.c: (gst_xvidenc_init):
	  Unset GValues after using them. Fixes bug #515720.

2008-02-11 05:11:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/Makefile.am: Disable the dvb plugin for the states test. Fixes bug #515567.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Disable the dvb plugin for the states test. Fixes bug #515567.

2008-02-10 21:03:54 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* tests/icles/metadata_editor.c:
	  Revert changes to 2008-02-09 due to frozen.
	  Original commit message from CVS:
	  Revert changes to 2008-02-09 due to frozen.

2008-02-10 19:44:50 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	  Fix Josep's surname in the previous few commits
	  Original commit message from CVS:
	  Fix Josep's surname in the previous few commits

2008-02-10 19:01:43 +0000  Josep Torre Valles <josep@fluendo.com>

	  ext/ivorbis/vorbisfile.c: Trivial fix for build warning.
	  Original commit message from CVS:
	  * ext/ivorbis/vorbisfile.c:
	  Trivial fix for build warning.
	  Patch by: Josep Torre Valles <josep@fluendo.com>
	  Fixes: #515588

2008-02-10 18:36:46 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/metadataexif.c:
	  Convert from EXIF to XMP DataTime as local time.
	  Original commit message from CVS:
	  Convert from EXIF to XMP DataTime as local time.

2008-02-10 04:36:12 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* tests/icles/metadata_editor.c:
	  Map Date-Time and GPS tags.
	  Original commit message from CVS:
	  Map Date-Time and GPS tags.

2008-02-09 03:37:40 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/selector/Makefile.am: Listing the marshal.h in the nodist_HEADERS breaks distcheck, so let's not do that
	  Original commit message from CVS:
	  * gst/selector/Makefile.am:
	  Listing the marshal.h in the nodist_HEADERS breaks distcheck, so
	  let's not do that
	  * tests/check/Makefile.am:
	  Disable the crashing cdaudio plugin from the states test so I can make
	  pre-releases.

2008-02-09 02:33:06 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  win32/vs6/: Convert to DOS line endings, and set -kb
	  Original commit message from CVS:
	  * win32/vs6/libgstdshowdecwrapper.dsp:
	  * win32/vs6/libgstflv.dsp:
	  Convert to DOS line endings, and set -kb

2008-02-08 18:22:08 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/: Add URI Handler for dvb.
	  Original commit message from CVS:
	  * sys/dvb/Makefile.am:
	  * sys/dvb/dvbbasebin.c:
	  Add URI Handler for dvb.
	  Re-order pad templates to workaround a bug in playbasebin.
	  * sys/dvb/parsechannels.c:
	  * sys/dvb/parsechannels.h:
	  Add code to parse channels from zap-style channels.conf files.

2008-02-08 04:22:06 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove multifile plugin, which has moved to -good
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/inspect/plugin-multifile.xml:
	  * gst/multifile/Makefile.am:
	  * gst/multifile/gstmultifile.c:
	  * gst/multifile/gstmultifilesink.c:
	  * gst/multifile/gstmultifilesink.h:
	  * gst/multifile/gstmultifilesrc.c:
	  * gst/multifile/gstmultifilesrc.h:
	  * gst/multifile/multifile.vproj:
	  * tests/check/Makefile.am:
	  * tests/check/elements/multifile.c:
	  Remove multifile plugin, which has moved to -good

2008-02-08 03:44:12 +0000  David Schleef <ds@schleef.org>

	  gst/multifile/: Use g_file_[sg]et_contents() instead of using stdio functions.
	  Original commit message from CVS:
	  * gst/multifile/gstmultifilesink.c:
	  * gst/multifile/gstmultifilesrc.c:
	  Use g_file_[sg]et_contents() instead of using stdio functions.
	  Should be less error prone.
	  * tests/check/elements/multifile.c:
	  Create a temporary directory using standard functions instead of
	  creating a directory in the current dir.

2008-02-08 03:27:14 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove spectrum plugin, which has moved to -good
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * gst/spectrum/.cvsignore:
	  * gst/spectrum/Makefile.am:
	  * gst/spectrum/README:
	  * gst/spectrum/demo-audiotest.c:
	  * gst/spectrum/demo-osssrc.c:
	  * gst/spectrum/gstspectrum.c:
	  * gst/spectrum/gstspectrum.h:
	  * gst/spectrum/spectrum.vcproj:
	  * tests/check/Makefile.am:
	  * tests/check/elements/spectrum.c:
	  Remove spectrum plugin, which has moved to -good

2008-02-08 02:48:54 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  docs/plugins/gst-plugins-bad-plugins.*: Remove equalizer plugin docs
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  Remove equalizer plugin docs
	  * tests/check/Makefile.am:
	  Add GST_OPTION_CFLAGS, to get -Werror -Wall into the tests as for
	  other modules.
	  * tests/check/elements/multifile.c:
	  * tests/check/elements/rganalysis.c:
	  * tests/check/elements/rglimiter.c:
	  Fix compiler warnings from -Wall -Werror

2008-02-08 02:00:49 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove the equalizer plugin, which has moved to -good
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-equalizer.xml:
	  * gst/equalizer/.cvsignore:
	  * gst/equalizer/Makefile.am:
	  * gst/equalizer/demo.c:
	  * gst/equalizer/gstiirequalizer.c:
	  * gst/equalizer/gstiirequalizer.h:
	  * gst/equalizer/gstiirequalizer10bands.c:
	  * gst/equalizer/gstiirequalizer10bands.h:
	  * gst/equalizer/gstiirequalizer3bands.c:
	  * gst/equalizer/gstiirequalizer3bands.h:
	  * gst/equalizer/gstiirequalizernbands.c:
	  * gst/equalizer/gstiirequalizernbands.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/equalizer.c:
	  Remove the equalizer plugin, which has moved to -good

2008-02-08 01:12:09 +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:48:30 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  docs/plugins/Makefile.am: Don't scan deleted xingmux header.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  Don't scan deleted xingmux header.

2008-02-08 00:40:34 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove the xingmux plugin, as the element has moved into mpegaudioparse in -ugly.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  * gst/xingheader/Makefile.am:
	  * gst/xingheader/gstxingmux.c:
	  * gst/xingheader/gstxingmux.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/xingmux.c:
	  * tests/check/elements/xingmux_testdata.h:
	  Remove the xingmux plugin, as the element has moved into
	  mpegaudioparse in -ugly.

2008-02-07 23:37:32 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  docs/plugins/Makefile.am: Remove mention of non-existent headers to fix the build.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  Remove mention of non-existent headers to fix the build.

2008-02-07 23:30:45 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove GIO plugin which has now moved to -base.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/gio/Makefile.am:
	  * ext/gio/gstgio.c:
	  * ext/gio/gstgio.h:
	  * ext/gio/gstgiobasesink.c:
	  * ext/gio/gstgiobasesink.h:
	  * ext/gio/gstgiobasesrc.c:
	  * ext/gio/gstgiobasesrc.h:
	  * ext/gio/gstgiosink.c:
	  * ext/gio/gstgiosink.h:
	  * ext/gio/gstgiosrc.c:
	  * ext/gio/gstgiosrc.h:
	  * ext/gio/gstgiostreamsink.c:
	  * ext/gio/gstgiostreamsink.h:
	  * ext/gio/gstgiostreamsrc.c:
	  * ext/gio/gstgiostreamsrc.h:
	  * tests/check/Makefile.am:
	  * tests/check/pipelines/.cvsignore:
	  * tests/check/pipelines/gio.c:
	  Remove GIO plugin which has now moved to -base.

2008-02-07 21:53:39 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove lpwsinc and bpwsinc elements - they've become audiowsinclimit and audiowsincband respectively, in the gst-plug...
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * gst/filter/Makefile.am:
	  * gst/filter/filter.vcproj:
	  * gst/filter/gstbpwsinc.c:
	  * gst/filter/gstbpwsinc.h:
	  * gst/filter/gstfilter.c:
	  * gst/filter/gstfilter.h:
	  * gst/filter/gstlpwsinc.c:
	  * gst/filter/gstlpwsinc.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/bpwsinc.c:
	  * tests/check/elements/lpwsinc.c:
	  Remove lpwsinc and bpwsinc elements - they've become
	  audiowsinclimit and audiowsincband respectively, in the
	  gst-plugins-good audiofx plugin.

2008-02-07 21:02:19 +0000  Sébastien Moutte <sebastien@moutte.net>

	  ext\neon\gstneonhttpsrc.c: Include unistd.h only if _HAVE_UNISTD_H is defined
	  Original commit message from CVS:
	  * ext\neon\gstneonhttpsrc.c:
	  Include unistd.h only if _HAVE_UNISTD_H is defined
	  * gst\mpegvideoparse\mpegvideoparse.c:
	  Use G_GUINT64_CONSTANT GLIB macro for constant
	  * sys\dshowsrcwrapper\gstdshowaudiosrc.c:
	  * sys\dshowsrcwrapper\gstdshowvideosrc.c:
	  * sys\dshowdecwrapper\gstdshowaudiodec.c:
	  * sys\dshowdecwrapper\gstdshowaudiodec.h:
	  * sys\dshowdecwrapper\gstdshowdecwrapper.c:
	  * sys\dshowdecwrapper\gstdshowdecwrapper.h:
	  * sys\dshowdecwrapper\gstdshowvideodec.c
	  * sys\dshowdecwrapper\gstdshowvideodec.h:
	  Add a DirectShow decoder wrapper.
	  * win32\MANIFEST:
	  Add new win32 files to MANIFEST
	  * win32\vs6\gst_plugins_bad.dsw:
	  * win32\vs6\libgstdshow.dsp:
	  * win32\vs6\libgstdshowdecwrapper.dsp:
	  * win32\vs6\libgstflv.dsp:
	  Add new projects to bad workspace

2008-02-07 14:45:06 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Parse component descriptor.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Parse component descriptor.
	  * gst/mpegtsparse/mpegtsparse.c:
	  Add SI pids to every program (but hardcoded currently).

2008-02-07 13:59:41 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* tests/icles/metadata_editor.c:
	* tests/icles/metadata_editor.glade:
	  Add more tags. Improve test app.
	  Original commit message from CVS:
	  Add more tags. Improve test app.

2008-02-07 13:48:20 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/multifile/gstmultifilesink.c: Add a fixme comment.
	  Original commit message from CVS:
	  * gst/multifile/gstmultifilesink.c:
	  Add a fixme comment.
	  * gst/selector/gstoutputselector.c:
	  Fix same leak as in input-selector.
	  * tests/icles/output-selector-test.c:
	  Improve the test.

2008-02-07 13:41:11 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/gstspectrum.c: Improve the docs.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c:
	  Improve the docs.

2008-02-07 12:05:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: The dc1394 plugin seems to use API that was removed or changed before the final 2.0.0 release, so only ...
	  Original commit message from CVS:
	  * configure.ac:
	  The dc1394 plugin seems to use API that was removed or changed
	  before the final 2.0.0 release, so only build it if 2.0.0-rc5
	  is available. Someone needs to port it to the final API.
	  * ext/dc1394/gstdc1394.c: (gst_dc1394_change_camera_transmission):
	  Include string.h for memcpy and use g_usleep instead of usleep.

2008-02-07 10:04:01 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstlpwsinc.c: Fix typo in the long description of the element.
	  Original commit message from CVS:
	  * gst/filter/gstlpwsinc.c:
	  Fix typo in the long description of the element.

2008-02-07 02:06:19 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/xingheader/Makefile.am: Put CFLAGS and LIBS in the right order
	  Original commit message from CVS:
	  * gst/xingheader/Makefile.am:
	  Put CFLAGS and LIBS in the right order

2008-02-06 18:56:40 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: ximagesrc has moved to -good, so no need to check for the required X libs here any more.
	  Original commit message from CVS:
	  * configure.ac:
	  ximagesrc has moved to -good, so no need to check for
	  the required X libs here any more.

2008-02-06 11:07:47 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/soup/gstsouphttpsrc.c: Fix memory leak and improve debugging a bit.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_got_chunk_cb),
	  (gst_soup_http_src_create):
	  Fix memory leak and improve debugging a bit.

2008-02-05 17:10:11 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	  Add more tags mapping.
	  Original commit message from CVS:
	  Add more tags mapping.

2008-02-05 12:19:46 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtsparse.c: Handle latency queries in src pads.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Handle latency queries in src pads.

2008-02-05 11:40:43 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Add flag to both sdt and nit structures to say whether the table is for the actua...
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Add flag to both sdt and nit structures to say
	  whether the table is for the actual network/ts
	  or not.

2008-02-05 11:30:49 +0000  Josep Torre Valles <josep@fluendo.com>

	  gst/mpegvideoparse/mpegvideoparse.c: Flush packetizer too.
	  Original commit message from CVS:
	  Patch by: Josep Torre Valles <josep@fluendo.com>
	  * gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_flush):
	  Flush packetizer too.

2008-02-04 19:15:39 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/ladspa/gstladspa.c: Don't use GST_BOILERPLATE as the stuff generated from it is not used anyway and can't be used.
	  Original commit message from CVS:
	  * ext/ladspa/gstladspa.c: (gst_ladspa_base_init),
	  (gst_ladspa_class_init), (ladspa_describe_plugin), (plugin_init):
	  Don't use GST_BOILERPLATE as the stuff generated from it is not used
	  anyway and can't be used.
	  Store the class struct of the correct type in parent_class.
	  Pass the LADSPA_Descriptor as class_data to the class_init function
	  as preparation for the time, when we can add pad templates and friends
	  in class_init and add a FIXME for that.
	  Don't use a custom hash table for passing the LADSPA_Descriptors to
	  base_init but use g_type_set_qdata and g_type_get_qdata.

2008-02-04 16:22:11 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/mpeg2enc/gstmpeg2encpicturereader.cc: Really fix the build.
	  Original commit message from CVS:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  Really fix the build.
	  TODO : Apply spankOmatic2000 on thaytan's rear end.

2008-02-04 13:12:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mpeg2enc/gstmpeg2encpicturereader.cc: Fix compilation with libmjpegtools 1.8.x.
	  Original commit message from CVS:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  (GstMpeg2EncPictureReader.StreamPictureParams):
	  Fix compilation with libmjpegtools 1.8.x.

2008-02-04 11:48:50 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/ladspa/gstsignalprocessor.c: Don't unref the pad template after adding it. gst_element_class_add_pad_template tak...
	  Original commit message from CVS:
	  * ext/ladspa/gstsignalprocessor.c:
	  (gst_signal_processor_class_add_pad_template):
	  Don't unref the pad template after adding it.
	  gst_element_class_add_pad_template takes ownership of it.

2008-02-03 18:22:18 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/mpeg2enc/gstmpeg2encpicturereader.cc: Use the incoming pixel-aspect-ratio if provided to infer a default aspect r...
	  Original commit message from CVS:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  Use the incoming pixel-aspect-ratio if provided to infer a
	  default aspect ratio, which can be overridden using the 'aspect'
	  property.
	  Fixes: #499008

2008-02-03 17:47:25 +0000  Andrzej Mendel <andrzej.mendel@gmail.com>

	  configure.ac: Fix variable naming to make it possible to build the glimagesink plugin. Fixes bug #514093.
	  Original commit message from CVS:
	  Patch by: Andrzej Mendel <andrzej dot mendel at gmail dot com>
	  * configure.ac:
	  Fix variable naming to make it possible to build the glimagesink
	  plugin. Fixes bug #514093.

2008-02-02 23:25:10 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/metadata/gstmetadatademux.c: Demote metadatademux to GST_RANK_NONE for the release, it's not ready to be autoplug...
	  Original commit message from CVS:
	  * ext/metadata/gstmetadatademux.c:
	  Demote metadatademux to GST_RANK_NONE for the release, it's not
	  ready to be autoplugged yet.
	  * tests/icles/metadata_editor.c:
	  Fix printf format warning for GType on ppc32 by removing it,
	  since it doesn't make sense to print the GType value anyway.

2008-02-02 20:22:19 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* ext/metadata/TODO:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	  Map more Exif tags.
	  Original commit message from CVS:
	  Map more Exif tags.

2008-02-01 17:08:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/selector/gstinputselector.c: Don't leak event on pads that are not linked. Fixes #512826.
	  Original commit message from CVS:
	  * gst/selector/gstinputselector.c: (gst_selector_pad_event):
	  Don't leak event on pads that are not linked. Fixes #512826.

2008-02-01 13:02:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Bump core/base requirements to released versions, to avoid confusion.
	  Original commit message from CVS:
	  * configure.ac:
	  Bump core/base requirements to released versions, to avoid confusion.
	  * gst/deinterlace/Makefile.am:
	  * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_set_caps):
	  Use the new GstVideoFormat API to get strides, plane offsets etc..
	  For Y42B we still need to calculate these ourselves, since the lib
	  in -base doesn't know about this format yet and we can't bump the
	  requirement to CVS right now. Fix the Y42B stride, offset and size
	  calculations for odd widths and heights while we're at it though
	  (to match those in videotestsrc).

2008-01-31 21:55:44 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	  Add documentation.
	  Original commit message from CVS:
	  Add documentation.

2008-01-31 17:20:41 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/metadata/metadataparsejpeg.c: Fix compilation.
	  Original commit message from CVS:
	  * ext/metadata/metadataparsejpeg.c: (metadataparse_jpeg_reading):
	  Fix compilation.

2008-01-31 17:18:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsink.c: Really clean up the queue instead of just unreffing all buffers in it.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c: (gst_app_sink_dispose):
	  Really clean up the queue instead of just unreffing all buffers
	  in it.
	  * gst-libs/gst/app/gstappsrc.c: (gst_app_src_base_init),
	  (gst_app_src_class_init), (gst_app_src_init),
	  (gst_app_src_dispose), (gst_app_src_finalize):
	  Fix dispose/finalize.

2008-01-31 15:52:18 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/faad/gstfaad.c: Fix compiler warning by making the function signature match what everyone is passing in...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst):
	  Fix compiler warning by making the function signature match what
	  everyone is passing in...
	  * tests/icles/Makefile.am:
	  Fix the build on Solaris by removing GNU ld specific flags that
	  look unnecessary.

2008-01-31 10:16:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/metadata/Makefile.am: Add some relevant variables to CFLAGS and LIBADD, for example our compiler warnings paramters.
	  Original commit message from CVS:
	  * ext/metadata/Makefile.am:
	  Add some relevant variables to CFLAGS and LIBADD, for example our
	  compiler warnings paramters.
	  * ext/metadata/gstbasemetadata.c:
	  (gst_base_metadata_strip_push_buffer),
	  (gst_base_metadata_calculate_offsets),
	  (gst_base_metadata_src_event), (gst_base_metadata_sink_activate):
	  * ext/metadata/gstmetadatademux.c: (gst_metadata_demux_init),
	  (gst_metadata_demux_set_property), (gst_metadata_demux_dispose):
	  * ext/metadata/gstmetadatamux.c: (gst_metadata_mux_init),
	  (gst_metadata_mux_set_property), (gst_metadata_mux_get_property),
	  (gst_metadata_mux_dispose),
	  (gst_metadata_mux_create_chunks_from_tags):
	  * ext/metadata/metadata.c: (metadata_dispose):
	  * ext/metadata/metadataexif.c:
	  (metadataparse_exif_content_foreach_entry_func),
	  (metadatamux_exif_for_each_tag_in_list):
	  * ext/metadata/metadataiptc.c:
	  (metadatamux_iptc_for_each_tag_in_list):
	  * ext/metadata/metadatamuxjpeg.c: (metadatamux_jpeg_lazy_update),
	  (metadatamux_jpeg_reading):
	  * ext/metadata/metadatamuxpng.c: (metadatamux_png_reading):
	  * ext/metadata/metadataparsejpeg.c: (metadataparse_jpeg_reading):
	  * ext/metadata/metadataparsepng.c:
	  * ext/metadata/metadataparseutil.h:
	  * ext/metadata/metadataxmp.c: (metadataparse_xmp_tag_list_add),
	  (metadatamux_xmp_create_chunk_from_tag_list):
	  Fix a million warnings that showed up after the above change.

2008-01-31 09:50:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soup/gstsouphttpsrc.c: Add changes to gstsouphttpsrc.c that were missing from last commit.
	  Original commit message from CVS:
	  * ext/soup/gstsouphttpsrc.c: (_do_init),
	  (gst_soup_http_src_base_init), (gst_soup_http_src_class_init),
	  (gst_soup_http_src_init), (gst_soup_http_src_dispose),
	  (gst_soup_http_src_set_property), (gst_soup_http_src_get_property),
	  (gst_soup_http_src_unicodify), (gst_soup_http_src_cancel_message),
	  (gst_soup_http_src_queue_message),
	  (gst_soup_http_src_add_range_header),
	  (gst_soup_http_src_session_unpause_message),
	  (gst_soup_http_src_session_pause_message),
	  (gst_soup_http_src_session_close),
	  (gst_soup_http_src_got_headers_cb),
	  (gst_soup_http_src_got_body_cb), (gst_soup_http_src_finished_cb),
	  (gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_response_cb),
	  (gst_soup_http_src_parse_status), (gst_soup_http_src_create),
	  (gst_soup_http_src_start), (gst_soup_http_src_stop),
	  (gst_soup_http_src_unlock), (gst_soup_http_src_unlock_stop),
	  (gst_soup_http_src_get_size), (gst_soup_http_src_is_seekable),
	  (gst_soup_http_src_do_seek), (gst_soup_http_src_set_location),
	  (gst_soup_http_src_set_proxy), (gst_soup_http_src_uri_get_type),
	  (gst_soup_http_src_uri_get_protocols),
	  (gst_soup_http_src_uri_get_uri), (gst_soup_http_src_uri_set_uri),
	  (gst_soup_http_src_uri_handler_init), (plugin_init):
	  Add changes to gstsouphttpsrc.c that were missing from last commit.

2008-01-31 08:57:16 +0000  Wouter Cloetens <wouter@mind.be>

	  Make coding style more consistent, including class renaming.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/inspect/plugin-soup.xml:
	  (gst_soup_http_src_base_init), (gst_soup_http_src_class_init),
	  (gst_soup_http_src_init), (gst_soup_http_src_dispose),
	  (gst_soup_http_src_set_property), (gst_soup_http_src_get_property),
	  (gst_soup_http_src_unicodify), (gst_soup_http_src_cancel_message),
	  (gst_soup_http_src_queue_message),
	  (gst_soup_http_src_add_range_header),
	  (gst_soup_http_src_session_unpause_message),
	  (gst_soup_http_src_session_pause_message),
	  (gst_soup_http_src_session_close),
	  (gst_soup_http_src_got_headers_cb),
	  (gst_soup_http_src_got_body_cb), (gst_soup_http_src_finished_cb),
	  (gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_response_cb),
	  (gst_soup_http_src_parse_status), (gst_soup_http_src_create),
	  (gst_soup_http_src_start), (gst_soup_http_src_stop),
	  (gst_soup_http_src_unlock), (gst_soup_http_src_unlock_stop),
	  (gst_soup_http_src_get_size), (gst_soup_http_src_is_seekable),
	  (gst_soup_http_src_do_seek), (gst_soup_http_src_set_location),
	  (gst_soup_http_src_set_proxy), (gst_soup_http_src_uri_get_type),
	  (gst_soup_http_src_uri_get_protocols),
	  (gst_soup_http_src_uri_get_uri), (gst_soup_http_src_uri_set_uri),
	  (gst_soup_http_src_uri_handler_init), (plugin_init):
	  * ext/soup/gstsouphttpsrc.h:
	  Make coding style more consistent, including class renaming.

2008-01-30 20:55:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Fix configure check for soundtouch to not produce syntax errors.
	  Original commit message from CVS:
	  * configure.ac:
	  Fix configure check for soundtouch to not produce syntax errors.

2008-01-30 19:19:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Fix build with exempi >= 1.99.5 and fix the include path for exempi.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/metadata/metadataxmp.c:
	  (metadatamux_xmp_for_each_tag_in_list):
	  Fix build with exempi >= 1.99.5 and fix the include
	  path for exempi.

2008-01-30 16:53:40 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	  Just uptade the ToDo list.
	  Original commit message from CVS:
	  Just uptade the ToDo list.

2008-01-30 16:05:24 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadatatypes.c:
	* ext/metadata/metadatatypes.h:
	* ext/metadata/metadataxmp.c:
	  Add documentation. Speed up a bit png muxer. Fix xmp muxer.
	  Original commit message from CVS:
	  Add documentation. Speed up a bit png muxer. Fix xmp muxer.

2008-01-30 15:40:44 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/soup/gstsouphttpsrc.c: Update documentation a bit.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c:
	  Update documentation a bit.
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-dvb.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-glimagesink.xml:
	  * docs/plugins/inspect/plugin-mpegvideoparse.xml:
	  * docs/plugins/inspect/plugin-quicktime.xml:
	  * docs/plugins/inspect/plugin-rawparse.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-soup.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-speexresample.xml:
	  * docs/plugins/inspect/plugin-switch.xml:
	  * docs/plugins/inspect/plugin-videocrop.xml:
	  Regenerate everything for the documentation changes we had.

2008-01-30 15:34:25 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/gio/: Use async variants of the close stream functions to prevent blocking for a long time there and add some mor...
	  Original commit message from CVS:
	  * ext/gio/gstgiobasesink.c: (close_stream_cb),
	  (gst_gio_base_sink_stop), (gst_gio_base_sink_event),
	  (gst_gio_base_sink_render), (gst_gio_base_sink_set_stream):
	  * ext/gio/gstgiobasesrc.c: (close_stream_cb),
	  (gst_gio_base_src_stop), (gst_gio_base_src_create),
	  (gst_gio_base_src_set_stream):
	  Use async variants of the close stream functions to prevent blocking
	  for a long time there and add some more sanity checks for a correct
	  stream.

2008-01-30 13:38:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/icles/Makefile.am: Move -Wl parameter from _LDADD to _LDFLAGS to fix autogen.sh.
	  Original commit message from CVS:
	  * tests/icles/Makefile.am:
	  Move -Wl parameter from _LDADD to _LDFLAGS to fix autogen.sh.

2008-01-30 13:29:15 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/soup/gstsouphttpsrc.c: Let the proxy property default to the content of the $http_proxy environment variable.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_init):
	  Let the proxy property default to the content of the $http_proxy
	  environment variable.

2008-01-30 13:08:45 +0000  Wouter Cloetens <wouter@mind.be>

	  tests/check/: Add missing files for the unit test.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * tests/check/test-cert.pem:
	  * tests/check/test-key.pem:
	  Add missing files for the unit test.

2008-01-30 13:06:01 +0000  Wouter Cloetens <wouter@mind.be>

	  docs/plugins/: Add souphttpsrc to the docs.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Add souphttpsrc to the docs.
	  * configure.ac:
	  * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init),
	  (gst_souphttp_src_init), (gst_souphttp_src_dispose),
	  (gst_souphttp_src_set_property), (gst_souphttp_src_get_property),
	  (gst_souphttp_src_cancel_message),
	  (gst_souphttp_src_queue_message),
	  (gst_souphttp_src_add_range_header),
	  (gst_souphttp_src_session_unpause_message),
	  (gst_souphttp_src_session_pause_message),
	  (gst_souphttp_src_session_close),
	  (gst_souphttp_src_got_headers_cb), (gst_souphttp_src_got_body_cb),
	  (gst_souphttp_src_finished_cb), (gst_souphttp_src_got_chunk_cb),
	  (gst_souphttp_src_response_cb), (gst_souphttp_src_parse_status),
	  (gst_souphttp_src_create), (gst_souphttp_src_start),
	  (gst_souphttp_src_stop), (gst_souphttp_src_unlock),
	  (gst_souphttp_src_unlock_stop), (gst_souphttp_src_get_size),
	  (gst_souphttp_src_is_seekable), (gst_souphttp_src_do_seek),
	  (gst_souphttp_src_set_location), (gst_souphttp_src_set_proxy),
	  (plugin_init):
	  * ext/soup/gstsouphttpsrc.h:
	  Add support for libsoup2.4 and require it. Also implement redirection
	  and manual proxy specification. Fixes bug #510708.
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/souphttpsrc.c:
	  Add unit test for souphttpsrc.

2008-01-30 12:56:51 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/Makefile.am:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxjpeg.h:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadatamuxpng.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsepng.c:
	* tests/icles/Makefile.am:
	  Add documentation. Fix test app compilation. Fix pull mode.
	  Original commit message from CVS:
	  Add documentation. Fix test app compilation. Fix pull mode.

2008-01-29 18:57:27 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Try to get the new clock-rate from the buffer caps when we receive a new payload...
	  Original commit message from CVS:
	  Patch by: Thijs Vermeir  <thijsvermeir at gmail dot com>
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain):
	  Try to get the new clock-rate from the buffer caps when we receive a new
	  payload type instead of always firing the signal. Fixes #512774.

2008-01-29 18:05:01 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/mpeg2enc/gstmpeg2enc.cc: Define LOG_NONE and friends if they're not defined yet. mjpegtools 1.9.0rc3 removed thei...
	  Original commit message from CVS:
	  * ext/mpeg2enc/gstmpeg2enc.cc:
	  Define LOG_NONE and friends if they're not defined yet. mjpegtools
	  1.9.0rc3 removed their definitions but without it doesn't make much
	  sense to write a log handler.

2008-01-29 11:32:27 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Add base classes for metadata and equalizer (no introspection yet).
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.types:
	  Add base classes for metadata and equalizer (no introspection yet).

2008-01-29 07:43:28 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/metadata/README: Formatting.
	  Original commit message from CVS:
	  * ext/metadata/README:
	  Formatting.
	  * tests/icles/metadata_editor.c:
	  Include stdlib.h.

2008-01-29 07:38:31 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Replace the switch plugin with the selector plugin. Add output- selector as the opposite of input-selectoo (was switc...
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-metadata.xml:
	  * docs/plugins/inspect/plugin-selector.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-switch.xml:
	  * gst/selector/.cvsignore:
	  * gst/selector/Makefile.am:
	  * gst/selector/gstinputselector.c:
	  * gst/selector/gstinputselector.h:
	  * gst/selector/gstoutputselector.c:
	  * gst/selector/gstoutputselector.h:
	  * gst/selector/gstselector-marshal.list:
	  * gst/selector/gstselector.c:
	  * gst/selector/selector.vcproj:
	  * gst/switch/.cvsignore:
	  * gst/switch/Makefile.am:
	  * gst/switch/gstswitch-marshal.list:
	  * gst/switch/gstswitch.c:
	  * gst/switch/gstswitch.h:
	  * gst/switch/switch.vcproj:
	  * tests/icles/.cvsignore:
	  * tests/icles/Makefile.am:
	  * tests/icles/output-selector-test.c:
	  Replace the switch plugin with the selector plugin. Add output-
	  selector as the opposite of input-selectoo (was switch). Add a test
	  for output-selector. Add docs for the elements. The vcproj needs
	  update. Fixes #500142.

2008-01-28 23:18:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/h264parse/gsth264parse.c: Try to avoid 'unused variable' compiler warning if debugging is disabled (not bullet pr...
	  Original commit message from CVS:
	  * gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_forward):
	  Try to avoid 'unused variable' compiler warning if debugging is
	  disabled (not bullet proof, but seems to do for now). (#512654)

2008-01-28 11:47:18 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soundtouch/gstbpmdetect.cc: Clean up a bit and only allocate a temporary buffer for the data if processing stereo...
	  Original commit message from CVS:
	  * ext/soundtouch/gstbpmdetect.cc:
	  Clean up a bit and only allocate a temporary buffer for the data
	  if processing stereo data as BPMDetect downmixes from stereo to
	  mono and stores the result in the input data. Thanks to
	  Stefan Kost for the suggestions.

2008-01-27 17:02:24 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soundtouch/gstpitch.cc: Cast a double to a GstClockTimeDiff to fix a compiler warning.
	  Original commit message from CVS:
	  * ext/soundtouch/gstpitch.cc:
	  Cast a double to a GstClockTimeDiff to fix a compiler warning.

2008-01-27 16:12:45 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/icles/metadata_editor.c: Printf format fix.
	  Original commit message from CVS:
	  * tests/icles/metadata_editor.c:
	  Printf format fix.

2008-01-27 07:51:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soundtouch/gstpitch.cc: Don't send a LATENCY event for now until we get the usage right.
	  Original commit message from CVS:
	  * ext/soundtouch/gstpitch.cc:
	  Don't send a LATENCY event for now until we get the usage right.

2008-01-27 07:37:40 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soundtouch/gstpitch.*: Implement LATENCY query and notify about latency changes.
	  Original commit message from CVS:
	  * ext/soundtouch/gstpitch.cc:
	  * ext/soundtouch/gstpitch.hh:
	  Implement LATENCY query and notify about latency changes.
	  Unfortunately we don't have a fixed latency but it changes
	  a bit with each buffer so we only send an LATENCY event with
	  the maximum latency if it changes.
	  Always calculate the timestamp, duration, etc from the sample
	  rate instead of using a pre-calculated duration for one sample
	  to prevent large rounding errors.

2008-01-27 07:32:19 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add support for building against mjpegtools 1.9 while keeping compatiblity with older versions.
	  Original commit message from CVS:
	  Based on a patch by:
	  Hans de Goede <j dot w dot r dot degoede at hhs dot nl>
	  * configure.ac:
	  * ext/mpeg2enc/gstmpeg2encoder.cc:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.hh:
	  Add support for building against mjpegtools 1.9 while keeping
	  compatiblity with older versions.

2008-01-27 06:31:52 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soundtouch/gstbpmdetect.cc: Only consider a BPM value above 1.0 as valid.
	  Original commit message from CVS:
	  * ext/soundtouch/gstbpmdetect.cc:
	  Only consider a BPM value above 1.0 as valid.

2008-01-27 05:56:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soundtouch/: Add BPM detection plugin based on SoundTouch's libBPM.
	  Original commit message from CVS:
	  * ext/soundtouch/Makefile.am:
	  * ext/soundtouch/gstbpmdetect.cc:
	  * ext/soundtouch/gstbpmdetect.hh:
	  * ext/soundtouch/plugin.c: (plugin_init):
	  Add BPM detection plugin based on SoundTouch's libBPM.
	  * ext/soundtouch/gstpitch.cc:
	  Allow sample rates until MAX instead of only 48kHz and remove the
	  buffer-frames field from that caps.
	  Clear the remaining samples completely when necessary to get into
	  a clean state again.

2008-01-26 16:19:26 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: Don't implement get_unit_size() ourselves, the GstAudioFilter base class already does this for us.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init):
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init):
	  Don't implement get_unit_size() ourselves, the GstAudioFilter base
	  class already does this for us.

2008-01-26 15:12:50 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soundtouch/gstpitch.cc: Allow seeking only in TIME and DEFAULT format, other formats will not work as expected. A...
	  Original commit message from CVS:
	  * ext/soundtouch/gstpitch.cc:
	  Allow seeking only in TIME and DEFAULT format, other formats will
	  not work as expected. Also handle a stop position of -1 correctly
	  for seeks, newsegment events and the queries. This fixes playback
	  with the pitch element if upstream doesn't know the duration or has
	  -1 as stop position in NEWSEGMENT events for other reasons. Before
	  simply nothing was played as the segment was going from 0 to 0.
	  Send a GST_MESSAGE_DURATION whenever the rate or tempo is changed
	  so applications can update their cached duration. Fixes bug #503308.
	  Some random cleanup and memory leak closing.

2008-01-26 14:35:22 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/musepack/: First include the libmpcdec headers before everything else as they #define TRUE and FALSE unconditiona...
	  Original commit message from CVS:
	  * ext/musepack/gstmusepackdec.h:
	  * ext/musepack/gstmusepackreader.c:
	  First include the libmpcdec headers before everything else as they
	  #define TRUE and FALSE unconditionally and we otherwise get conflicts
	  with the ones that GLib defines.

2008-01-26 13:24:17 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add support for libsoundtouch 1.3.1 and add an ugly workaround for the header definined PACKAGE and other variables f...
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/soundtouch/gstpitch.cc:
	  Add support for libsoundtouch 1.3.1 and add an ugly workaround for
	  the header definined PACKAGE and other variables for which we need
	  our own values from config.h.

2008-01-26 12:11:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Check for libglade-2.0, for the metadata-editor example.
	  Original commit message from CVS:
	  * configure.ac:
	  Check for libglade-2.0, for the metadata-editor example.
	  * tests/icles/Makefile.am:
	  Only try to build the metadata-editor example if we have gtk and
	  glade (otherwise the build would just fail ...); fix build in
	  uninstalled setup.
	  * tests/icles/metadata_editor.c: (on_cell_edited), (ui_add_columns):
	  Fix compiler warnings (use GLib macros to cast pointer <-> int).

2008-01-25 17:45:28 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparseutil.c:
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadatatypes.c:
	* ext/metadata/metadatatypes.h:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	* ext/metadata/test/Makefile:
	* ext/metadata/test/MetadataEditorMain.glade:
	* ext/metadata/test/metadata_editor.c:
	* tests/icles/Makefile.am:
	* tests/icles/metadata_editor.c:
	* tests/icles/metadata_editor.glade:
	  Add lot of documentation.
	  Original commit message from CVS:
	  Add lot of documentation.

2008-01-25 17:35:46 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Open frontend in NULL->READY so caps about dvb adapter can be seen by the app.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Open frontend in NULL->READY so caps about dvb adapter can be
	  seen by the app.

2008-01-25 16:58:00 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/gstrtpbin.c: Also handle lip-sync when the clock-rate is not provided with caps but with a signal.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester@tester.ca>
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	  (create_stream), (payload_type_change), (new_ssrc_pad_found):
	  Also handle lip-sync when the clock-rate is not provided with caps but
	  with a signal.

2008-01-25 16:00:52 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/: Remove the fixed clock-rate from the jitterbuffer and extend it so that a clock-rate can be provided...
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester@tester.ca>
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain):
	  * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew),
	  (rtp_jitter_buffer_insert):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Remove the fixed clock-rate from the jitterbuffer and extend it so that
	  a clock-rate can be provided with each buffer instead. Fixes #511686.

2008-01-25 15:49:55 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Remove old unused variable.
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester@tester.ca>
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_change_state),
	  (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	  Remove old unused variable.
	  Track pt on input buffers and get the clock-rate when it changes.
	  Ignore packets with unknown clock-rate. See #511686.

2008-01-25 12:48:40 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Post bus message about adapter type and it's capabilities, when opening the frontend.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Post bus message about adapter type and it's capabilities,
	  when opening the frontend.
	  After failing to read from the dvr, post a bus message to
	  inform the app.

2008-01-25 09:50:07 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.c: The logic for the guard interval calculation was totally wrong.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  The logic for the guard interval calculation was totally wrong.
	  Fixed.

2008-01-25 01:44:27 +0000  Olivier Crete <tester@tester.ca>

	  gst/rtpmanager/rtpsource.c: Fix unref of buffer using the wrong function.  Fixes #511920
	  Original commit message from CVS:
	  Patch by: Olivier Crete <tester@tester.ca>
	  * gst/rtpmanager/rtpsource.c: Fix unref of buffer using the
	  wrong function.  Fixes #511920

2008-01-24 13:23:03 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Now we have full hierarchy.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  Now we have full hierarchy.
	  * docs/plugins/inspect/plugin-metadata.xml:
	  Regenerate.
	  * ext/amrwb/gstamrwbdec.h:
	  Add doc blob for object instance.

2008-01-24 10:15:34 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/: Update this too, hopefully fixes the docs build (does at least for me, after make clean in docs/plugins).
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/inspect/plugin-metadata.xml:
	  Update this too, hopefully fixes the docs build (does at least
	  for me, after make clean in docs/plugins).

2008-01-24 08:12:29 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Fix network name descriptor, the length is actually the descriptor length not stored in the byte af...
	  Original commit message from CVS:
	  * gst/mpegtsparse/gstmpegdesc.h:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Fix network name descriptor, the length is actually the
	  descriptor length not stored in the byte after.
	  Fix bounds checking to be more correct.

2008-01-24 00:22:17 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Parse and add to relevant bus messages the terrestrial delivery system descriptor and the logical c...
	  Original commit message from CVS:
	  * gst/mpegtsparse/gstmpegdesc.h:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Parse and add to relevant bus messages the terrestrial delivery
	  system descriptor and the logical channel descriptor.
	  Do bounds checking on data stored in descriptor before use.

2008-01-23 16:35:34 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/gstmetadatademux.c:
	* ext/metadata/gstmetadatademux.h:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/metadatatags.c:
	  Add some documentation.
	  Original commit message from CVS:
	  Add some documentation.

2008-01-23 15:51:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add support for building against libdca (with the libdts compat header). Fixes bug #511530.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/dts/gstdtsdec.c:
	  Add support for building against libdca (with the libdts compat
	  header). Fixes bug #511530.
	  Should probably be ported to libdca as some points as it's the
	  successor of libdts.

2008-01-23 14:59:47 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Do not go on forever if problem with reading from dvr, rather return NULL.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Do not go on forever if problem with reading from dvr, rather
	  return NULL.
	  Handle some cleanup issues of closing filedescriptors when
	  failing to tune or similar.

2008-01-23 13:18:24 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* gst-plugins-bad.spec.in:
	* gst/rawparse/Makefile.am:
	  Add missing no_inst header files to Makefile.am so disting still works
	  Original commit message from CVS:
	  Add missing no_inst header files to Makefile.am so disting still works
	  Update spec file with latest 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-23 09:49:27 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Parsed the satellite delivery system descriptor and added into nit's transport structure for delive...
	  Original commit message from CVS:
	  * gst/mpegtsparse/gstmpegdesc.h:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Parsed the satellite delivery system descriptor and
	  added into nit's transport structure for delivery
	  over the bus.

2008-01-22 20:27:28 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Parsed and added network name to the nit structure sent in the bus message.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Parsed and added network name to the nit structure sent
	  in the bus message.

2008-01-22 19:59:39 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Remove leaks introduced by not freeing g_strndup'd strings.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Remove leaks introduced by not freeing g_strndup'd strings.
	  Fix start_time and duration parsing in EIT.

2008-01-22 18:40:16 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.c: Add event name and description to the eit structure sent in the bus message.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  Add event name and description to the eit structure
	  sent in the bus message.

2008-01-22 18:08:01 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtsparse.c: Revert const removal from previous commit.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Revert const removal from previous commit.

2008-01-22 18:04:04 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Added descriptor searching infrastructure from Fluendo TS demuxer.
	  Original commit message from CVS:
	  * gst/mpegtsparse/Makefile.am:
	  * gst/mpegtsparse/gstmpegdesc.c:
	  * gst/mpegtsparse/gstmpegdesc.h:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Added descriptor searching infrastructure from Fluendo TS demuxer.
	  Add channel name and provider to the sdt structure sent in the
	  bus message.

2008-01-22 17:43:35 +0000  Julien Moutte <julien@moutte.net>

	  gst/h264parse/gsth264parse.c: Parse NAL units in forward mode to mark delta units flags.
	  Original commit message from CVS:
	  2008-01-22  Julien Moutte  <julien@fluendo.com>
	  * gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_forward):
	  Parse NAL units in forward mode to mark delta units flags.

2008-01-22 12:06:19 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Regenerate.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  Regenerate.
	  * docs/plugins/inspect/plugin-tremor.xml:
	  Add vorbisidec aka trmor.
	  * ext/dc1394/gstdc1394.c:
	  Add short description.

2008-01-22 09:55:23 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/Makefile.am: Add missing eol \
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  Add missing eol \
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Place object names to standard sectionas plugin dont document those.
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-dvb.xml:
	  * docs/plugins/inspect/plugin-nuvdemux.xml:
	  regenerate.
	  * ext/ivorbis/vorbisdec.c:
	  * ext/ivorbis/vorbisdec.h:
	  Mark private vars and add short desc.
	  * ext/mythtv/gstmythtvsrc.c:
	  * ext/theora/theoradec.c:
	  Add short desc.

2008-01-21 14:33:11 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  One less to do. Its 'nuv' not 'nvu'. As an extra bonus I mention what it actually is.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * gst/nuvdemux/gstnuvdemux.c:
	  One less to do. Its 'nuv' not 'nvu'. As an extra bonus I mention what
	  it actually is.

2008-01-21 14:19:32 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Update lists again. Those whole can build ivorbisdec, mythtvsrc, nvudemux and theoradecexp, please com...
	  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:
	  Update lists again. Those whole can build ivorbisdec, mythtvsrc,
	  nvudemux and theoradecexp, please commit the inspect/plugin-xxx.xml.
	  * docs/plugins/inspect/plugin-gstinterlace.xml:
	  * docs/plugins/inspect/plugin-rawparse.xml
	  * docs/plugins/inspect/plugin-videoparse.xml:
	  Replace videoparse with rawparse.
	  * gst/dvdspu/gstdvdspu.h:
	  Help gtk-doc to recognize the object struct.

2008-01-21 12:42:09 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/librfb/rfbdecoder.*: Don't use gtk-doc comment style for non gtk-doc comments.
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  Don't use gtk-doc comment style for non gtk-doc comments.
	  Make one static function static.

2008-01-21 12:19:13 +0000  Gabriel Bouvigne <bouvigne@mp3-tech.org>

	  gst/deinterlace/gstdeinterlace.*: Provide 4:2:2 support
	  Original commit message from CVS:
	  Patch by: Gabriel Bouvigne <bouvigne at mp3-tech dot org>
	  * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_class_init),
	  (gst_deinterlace_init), (gst_deinterlace_set_caps),
	  (gst_deinterlace_transform_ip), (gst_deinterlace_set_property),
	  (gst_deinterlace_get_property):
	  * gst/deinterlace/gstdeinterlace.h:
	  Provide 4:2:2 support
	  Also deinterlace chroma planes
	  Allow to turn on/off deinterlacing
	  Change of default thresholds, in order to provide acceptable results
	  with default params. Fixes #511001.

2008-01-21 11:04:00 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/gst-plugins-bad-plugins-sections.txt: Update docs file too.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Update docs file too.

2008-01-21 11:01:30 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/dvdspu/: Fix up dvdspu element again after previous namespace mangling: rename debug category variable to old nam...
	  Original commit message from CVS:
	  * gst/dvdspu/gstdvdspu-render.c: (gst_dvd_spu_render_spu):
	  * gst/dvdspu/gstdvdspu.c: (dvdspu_debug), (GST_CAT_DEFAULT),
	  (subpic_sink_factory), (gst_dvd_spu_base_init),
	  (gst_dvd_spu_class_init), (gst_dvd_spu_init), (gst_dvd_spu_clear),
	  (gst_dvd_spu_dispose), (gst_dvd_spu_finalize),
	  (gst_dvd_spu_flush_spu_info), (gst_dvd_spu_buffer_alloc),
	  (gst_dvd_spu_src_event), (gst_dvd_spu_video_set_caps),
	  (gst_dvd_spu_video_proxy_getcaps), (gst_dvd_spu_video_event),
	  (gst_dvd_spu_video_chain), (dvspu_handle_vid_buffer),
	  (gst_dvd_spu_redraw_still), (gst_dvd_spu_parse_chg_colcon),
	  (gst_dvd_spu_exec_cmd_blk), (gst_dvd_spu_finish_spu_buf),
	  (gst_dvd_spu_setup_cmd_blk), (gst_dvd_spu_handle_new_spu_buf),
	  (gst_dvd_spu_handle_dvd_event), (gst_dvd_spu_advance_spu),
	  (gst_dvd_spu_check_still_updates), (gst_dvd_spu_subpic_chain),
	  (gst_dvd_spu_subpic_event), (gst_dvd_spu_change_state),
	  (gst_dvd_spu_plugin_init):
	  * gst/dvdspu/gstdvdspu.h: (GST_TYPE_DVD_SPU):
	  Fix up dvdspu element again after previous namespace mangling:
	  rename debug category variable to old name, matching that in
	  dvdspu-render.c, to avoid undefined symbol error when loading
	  the module; same for the _render function in dvdspu-render.c:
	  we must use the same name in both .c files; change functions
	  now called gstgst_* back to gst_* again; and while we're at it,
	  we may as well canonicalise the namespace properly, namely to
	  gst_dvd_spu_*.

2008-01-21 10:06:08 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Coherent namespace usage and adding symbold from unused to sections.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * ext/theora/theoradec.c:
	  * ext/theora/theoradec.h:
	  Coherent namespace usage and adding symbold from unused to sections.

2008-01-21 09:57:07 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Add symbols from -unused.txt to the right place.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Add symbols from -unused.txt to the right place.
	  * gst/dvdspu/gstdvdspu.c:
	  * gst/dvdspu/gstdvdspu.h:
	  Coherent namespace usage.
	  * gst/spectrum/gstspectrum.c:
	  Fix broken XML fragment in doc snippet even more.

2008-01-21 07:54:02 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/Makefile.am: Update include list.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  Update include list.
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  Update xml includes.
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-amrwb.xml:
	  * docs/plugins/inspect/plugin-bayer.xml:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-dvbsrc.xml:
	  * docs/plugins/inspect/plugin-dvdspu.xml:
	  * docs/plugins/inspect/plugin-equalizer.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-fbdevsink.xml:
	  * docs/plugins/inspect/plugin-festival.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-flvdemux.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstinterlace.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-interleave.xml:
	  * docs/plugins/inspect/plugin-ladspa.xml:
	  * docs/plugins/inspect/plugin-metadata.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	  * docs/plugins/inspect/plugin-mpegtsparse.xml:
	  * docs/plugins/inspect/plugin-mpegvideoparse.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-mve.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-nuvdemux.xml:
	  * docs/plugins/inspect/plugin-qtdemux.xml:
	  * docs/plugins/inspect/plugin-quicktime.xml:
	  * docs/plugins/inspect/plugin-real.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-sdp.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-speexresample.xml:
	  * docs/plugins/inspect/plugin-stereo.xml:
	  * docs/plugins/inspect/plugin-switch.xml:
	  * docs/plugins/inspect/plugin-timidity.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-videocrop.xml:
	  * docs/plugins/inspect/plugin-videoparse.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-vmnc.xml:
	  * docs/plugins/inspect/plugin-wildmidi.xml:
	  * docs/plugins/inspect/plugin-x264.xml:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  * docs/plugins/inspect/plugin-y4menc.xml:
	  Regenerate files.
	  * gst/spectrum/gstspectrum.c:
	  Fix broken XML fragment in doc snippet.
	  * tests/check/elements/.cvsignore:
	  Add test binary to ignores.

2008-01-21 07:22:47 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/h264parse/gsth264parse.c: Fix the build. GST_TIME_ARGS takes a timestamp not a buffer.
	  Original commit message from CVS:
	  * gst/h264parse/gsth264parse.c:
	  Fix the build. GST_TIME_ARGS takes a timestamp not a buffer.

2008-01-20 05:07:52 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/soup/gstsouphttpsrc.c: Report the size of the stream as the total size instead of the remaining Content-Length, w...
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c: (soup_got_headers):
	  Report the size of the stream as the total size instead of
	  the remaining Content-Length, which is wrong after a seek.

2008-01-19 16:13:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/rawparse/gstrawparse.c: Handle framesizes > 4096 with multiple frames per buffer correctly in pull mode and handl...
	  Original commit message from CVS:
	  * gst/rawparse/gstrawparse.c: (gst_raw_parse_push_buffer),
	  (gst_raw_parse_loop):
	  Handle framesizes > 4096 with multiple frames per buffer correctly
	  in pull mode and handle short reads better.
	  Also put offset and offset_end on outgoing buffers.

2008-01-19 15:53:38 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/rawparse/gstrawparse.c: Improve handling of unknown or too small upstream sizes in pull mode.
	  Original commit message from CVS:
	  * gst/rawparse/gstrawparse.c: (gst_raw_parse_loop):
	  Improve handling of unknown or too small upstream sizes in
	  pull mode.

2008-01-19 15:39:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/rawparse/gstrawparse.c: Improve debugging a bit and for handling multiple frames per buffer in pull mode choose t...
	  Original commit message from CVS:
	  * gst/rawparse/gstrawparse.c: (gst_raw_parse_loop),
	  (gst_raw_parse_handle_seek_push):
	  Improve debugging a bit and for handling multiple frames per buffer
	  in pull mode choose the next smallest multiply of framesize below
	  4096 instead of always handling 1024 frames.

2008-01-19 14:34:50 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/soup/gstsouphttpsrc.c: Correctly set duration on the GstBaseSrc segment when we know it to fix failing the durati...
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c: (soup_got_headers):
	  Correctly set duration on the GstBaseSrc segment when we know it
	  to fix failing the duration query.

2008-01-18 17:37:03 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/h264parse/gsth264parse.c: Set timestamps more correctly.
	  Original commit message from CVS:
	  * gst/h264parse/gsth264parse.c: (gst_h264_parse_flush_decode),
	  (gst_h264_parse_queue_buffer), (gst_h264_parse_chain_reverse):
	  Set timestamps more correctly.

2008-01-18 16:56:19 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/rawparse/gstrawparse.*: Implement pull mode.
	  Original commit message from CVS:
	  * gst/rawparse/gstrawparse.c: (gst_raw_parse_class_init),
	  (gst_raw_parse_init), (gst_raw_parse_reset),
	  (gst_raw_parse_set_src_caps), (gst_raw_parse_push_buffer),
	  (gst_raw_parse_chain), (gst_raw_parse_loop),
	  (gst_raw_parse_sink_activate), (gst_raw_parse_sink_activatepull),
	  (gst_raw_parse_change_state), (gst_raw_parse_sink_event),
	  (gst_raw_parse_handle_seek_push), (gst_raw_parse_handle_seek_pull),
	  (gst_raw_parse_src_event), (gst_raw_parse_src_query):
	  * gst/rawparse/gstrawparse.h:
	  Implement pull mode.

2008-01-18 10:05:53 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/multifile/gstmultifilesrc.c: Fix memory leak spotted by the unit test.
	  Original commit message from CVS:
	  * gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create):
	  Fix memory leak spotted by the unit test.

2008-01-18 09:54:59 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/Makefile.am: Enable spectrum test again.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Enable spectrum test again.
	  * tests/check/gst-plugins-bad.supp:
	  Add suppressions for a singleton in GIO that can't be freed.

2008-01-18 08:49:59 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/: Add some minimal tests for the equalizer plugin.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/equalizer.c: (setup_equalizer),
	  (cleanup_equalizer), (GST_START_TEST), (equalizer_suite), (main):
	  Add some minimal tests for the equalizer plugin.

2008-01-18 07:03:23 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/gstiirequalizer.c: Unparent all bands from the equalizer when finalizing to stop leaking	them.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_finalize):
	  Unparent all bands from the equalizer when finalizing to stop
	  leaking	them.

2008-01-18 05:32:26 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/soup/gstsouphttpsrc.c: Add support for WebDAV.
	  Original commit message from CVS:
	  * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_uri_get_protocols):
	  Add support for WebDAV.

2008-01-18 05:24:39 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/soup/gstsouphttpsrc.*: Add support for seeking to souphttpsrc. Fixes bug #502335.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init),
	  (gst_souphttp_src_init), (gst_souphttp_src_create),
	  (gst_souphttp_src_is_seekable), (gst_souphttp_src_do_seek),
	  (soup_add_range_header), (soup_got_headers), (soup_got_chunk):
	  * ext/soup/gstsouphttpsrc.h:
	  Add support for seeking to souphttpsrc. Fixes bug #502335.

2008-01-17 18:39:24 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/h264parse/gsth264parse.*: Improve debugging.
	  Original commit message from CVS:
	  * gst/h264parse/gsth264parse.c: (gst_h264_parse_clear_queues),
	  (gst_h264_parse_flush_decode), (gst_h264_parse_queue_buffer),
	  (gst_h264_parse_find_start_reverse),
	  (gst_h264_parse_chain_reverse), (gst_h264_parse_chain):
	  * gst/h264parse/gsth264parse.h:
	  Improve debugging.
	  Fix buffer splitting at sync codes and leftover buffer after
	  scanning.

2008-01-17 16:10:48 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataxmp.c:
	  Fixed adding EXIF tags to correct IFD. Mapped some XMP tags.
	  Original commit message from CVS:
	  Fixed adding EXIF tags to correct IFD. Mapped some XMP tags.

2008-01-16 18:28:00 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/h264parse/gsth264parse.*: Add reverse playback support for containers that don't know how to properly send data b...
	  Original commit message from CVS:
	  * gst/h264parse/gsth264parse.c: (gst_nal_list_new),
	  (gst_nal_list_prepend_link), (gst_nal_list_delete_head),
	  (gst_nal_bs_init), (gst_nal_bs_read), (gst_nal_bs_eos),
	  (gst_nal_bs_read_ue), (gst_h264_parse_class_init),
	  (gst_h264_parse_init), (gst_h264_parse_set_property),
	  (gst_h264_parse_get_property), (gst_h264_parse_sink_setcaps),
	  (gst_h264_parse_clear_queues), (gst_h264_parse_chain_forward),
	  (gst_h264_parse_flush_decode), (gst_h264_parse_queue_buffer),
	  (gst_h264_parse_find_start_reverse),
	  (gst_h264_parse_chain_reverse), (gst_h264_parse_chain),
	  (gst_h264_parse_sink_event), (gst_h264_parse_change_state):
	  * gst/h264parse/gsth264parse.h:
	  Add reverse playback support for containers that don't know how to
	  properly send data between I-frames.

2008-01-16 05:40:48 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Update for API changes in GIO and require GIO 2.15.2 for this.
	  Original commit message from CVS:
	  * configure.ac:
	  * tests/check/pipelines/gio.c: (GST_START_TEST):
	  Update for API changes in GIO and require GIO 2.15.2 for this.

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 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-11 19:16:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/elements/: It's "endianness", not "endianess". Fixes unit tests.
	  Original commit message from CVS:
	  * tests/check/elements/rganalysis.c: (test_buffer_const_float_mono),
	  (test_buffer_const_float_stereo), (test_buffer_const_int16_mono),
	  (test_buffer_const_int16_stereo), (test_buffer_square_float_mono),
	  (test_buffer_square_float_stereo), (test_buffer_square_int16_mono),
	  (test_buffer_square_int16_stereo):
	  * tests/check/elements/rglimiter.c: (create_test_buffer):
	  * tests/check/elements/rgvolume.c: (test_buffer_new):
	  It's "endianness", not "endianess". Fixes unit tests.

2008-01-11 17:02:30 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: If we find the caps in the cache, use it to parse the clock-rate instead of returning...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate):
	  If we find the caps in the cache, use it to parse the clock-rate instead
	  of returning an error. Fixes a TODO as found by Youness Alaoui.

2008-01-11 16:45:57 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>

	  gst/rtpmanager/: Make it possible to use different user_data for each of the callbacks.
	  Original commit message from CVS:
	  Patch by: Youness Alaoui <youness dot alaoui at collabora dot co dot uk>
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate):
	  * gst/rtpmanager/rtpsession.c: (rtp_session_set_callbacks),
	  (rtp_session_set_process_rtp_callback),
	  (rtp_session_set_send_rtp_callback),
	  (rtp_session_set_send_rtcp_callback),
	  (rtp_session_set_sync_rtcp_callback),
	  (rtp_session_set_clock_rate_callback),
	  (rtp_session_set_reconsider_callback), (source_push_rtp),
	  (source_clock_rate), (rtp_session_process_bye),
	  (rtp_session_process_rtcp), (rtp_session_send_bye),
	  (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsession.h:
	  Make it possible to use different user_data for each of the callbacks.
	  Fixes #508587.

2008-01-11 15:58:15 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/mpegvideoparse/mpegpacketiser.c: Small meaningless cleanup.
	  Original commit message from CVS:
	  * gst/mpegvideoparse/mpegpacketiser.c: (mpeg_util_find_start_code):
	  Small meaningless cleanup.
	  * gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_flush),
	  (mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain_forward),
	  (scan_keyframe), (gst_mpegvideoparse_flush_decode),
	  (gst_mpegvideoparse_chain_reverse), (gst_mpegvideoparse_chain),
	  (mpv_parse_sink_event), (gst_mpegvideoparse_change_state):
	  * gst/mpegvideoparse/mpegvideoparse.h:
	  Track segment events.
	  Do the first part of reverse playback by sending data between two
	  I-frames to the decoder.

2008-01-10 20:57:17 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Fix documentation for latest patch
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c:
	  Fix documentation for latest patch

2008-01-10 14:34:30 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Allow request_new_pad with name NULL (bug #508515)
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c:
	  Allow request_new_pad with name NULL (bug #508515)

2008-01-10 12:36:46 +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 14:39:44 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Don't set fixed caps, we can basically do everything the upsteam peer pad can renegot...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (create_send_rtp_sink):
	  Don't set fixed caps, we can basically do everything the upsteam peer
	  pad can renegotiate to. Fixes #507940.

2008-01-09 13:53:21 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Makefile.am: Include lcov.mak to allow building coverage reports. Add top-level check targets similar to other gst pa...
	  Original commit message from CVS:
	  * Makefile.am:
	  Include lcov.mak to allow building coverage reports. Add top-level
	  check targets similar to other gst packages.

2008-01-06 22:35:31 +0000  David Schleef <ds@schleef.org>

	  ext/directfb/Makefile.am: Add GST_CFLAGS.  Otherwise we don't get -Wall -Werror.
	  Original commit message from CVS:
	  * ext/directfb/Makefile.am:
	  Add GST_CFLAGS.  Otherwise we don't get -Wall -Werror.
	  * ext/directfb/dfbvideosink.c:
	  Getting tired of directfb's chatter.  Quiet it.

2008-01-06 22:00:32 +0000  Sean D'Epagnier <sean@depagnier.com>

	  Add fbdev-based video sink.  Linux-only.  See bug #506549.
	  Original commit message from CVS:
	  Patch by: Sean D'Epagnier <sean@depagnier.com>
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/fbdev/Makefile.am:
	  * sys/fbdev/gstfbdevsink.c:
	  * sys/fbdev/gstfbdevsink.h:
	  Add fbdev-based video sink.  Linux-only.  See bug #506549.

2008-01-06 16:36:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Update to GMemoryInputStream API changes in GLib SVN and require gio-2.0 >= 2.15.1 for this. Fixes bug #507584.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/gio/gstgiobasesrc.c: (gst_gio_base_src_get_size):
	  * tests/check/pipelines/gio.c: (free_input), (GST_START_TEST):
	  Update to GMemoryInputStream API changes in GLib SVN and require
	  gio-2.0 >= 2.15.1 for this. Fixes bug #507584.
	  We can also report the duration for every GSeekable, not only
	  GFileInputStream and GMemoryInputStream.

2008-01-06 03:01:39 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Handle xoverlay exposes correctly.  This means glimagesink works correctly most of the time in totem (fu...
	  Original commit message from CVS:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/gstglbuffer.h:
	  * sys/glsink/gstgldisplay.c:
	  * sys/glsink/gstgldisplay.h:
	  * sys/glsink/gstglupload.c:
	  Handle xoverlay exposes correctly.  This means glimagesink works
	  correctly most of the time in totem (fullscreening being an
	  execption).  Doesn't handle expose events directly to the GL
	  window.

2008-01-06 01:19:48 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Reenable video/x-raw-rgb and x-raw-yuv for glimagesink.  Enable vblank synchronization.  Remove unused c...
	  Original commit message from CVS:
	  * sys/glsink/glextensions.c:
	  * sys/glsink/glextensions.h:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/gstgldisplay.c:
	  * sys/glsink/gstgldisplay.h:
	  * sys/glsink/gstopengl.c:
	  Reenable video/x-raw-rgb and x-raw-yuv for glimagesink.  Enable
	  vblank synchronization.  Remove unused code.

2008-01-04 18:47:57 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Don't unref the popped buffer when we don't have ownership.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_loop):
	  Don't unref the popped buffer when we don't have ownership.
	  Fixes #507020.

2008-01-03 23:35:52 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Remove no longer needed files.
	  Original commit message from CVS:
	  * gst/mpegtsparse/Makefile.am:
	  * gst/mpegtsparse/flutspatinfo.c:
	  * gst/mpegtsparse/flutspatinfo.h:
	  * gst/mpegtsparse/flutspmtinfo.c:
	  * gst/mpegtsparse/flutspmtinfo.h:
	  * gst/mpegtsparse/flutspmtstreaminfo.c:
	  * gst/mpegtsparse/flutspmtstreaminfo.h:
	  Remove no longer needed files.

2008-01-02 20:49:12 +0000  David Schleef <ds@schleef.org>

	  tests/check/Makefile.am: Disable vcdsrc in states test because it takes too much time to get to PLAYING if it can fin...
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Disable vcdsrc in states test because it takes too much time
	  to get to PLAYING if it can find a device.

2008-01-01 01:18:19 +0000  David Schleef <ds@schleef.org>

	  ext/musicbrainz/gsttrm.c: Don't emit signiture when going to READY, because it might not be ready.
	  Original commit message from CVS:
	  * ext/musicbrainz/gsttrm.c:
	  Don't emit signiture when going to READY, because it might
	  not be ready.
	  * ext/nas/nassink.c:
	  Remove useless call that sleeps for 5 seconds.  Yup, it calls
	  sleep(1) 5 times.  Go NAS.
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/rfbdecoder.c:
	  Initialize our debug categories properly.
	  * gst/rawparse/gstrawparse.c:
	  Don't register element details for a non-element.  Be much more
	  rude when subclass doesn't set a pad template (assert!).  Don't
	  unref the pad template; we don't own it.
	  * gst/videosignal/gstvideoanalyse.c:
	  Initialize debug category.
	  * tests/check/Makefile.am:
	  Ignore nassink element in tests because it has unavoidable
	  long timeouts.

2007-12-31 13:12:06 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpssrcdemux.c: Don't clean up pads when going to PAUSED.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  (gst_rtp_ssrc_demux_change_state):
	  Don't clean up pads when going to PAUSED.

2007-12-31 07:55:23 +0000  David Schleef <ds@schleef.org>

	  Switch to using pkgconfig to detect libGL.  Since we use recent features added to Mesa, there's no point in adding a ...
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/glsink/Makefile.am:
	  Switch to using pkgconfig to detect libGL.  Since we use
	  recent features added to Mesa, there's no point in adding
	  a check for pre-pkgconfig versions.

2007-12-29 17:31:49 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Fix 'xyz may be used uninitialized' compiler warnings caused by broken g_assert_not_reached() macro in GLib-2.15.x an...
	  Original commit message from CVS:
	  * ext/ladspa/gstladspa.c: (gst_ladspa_get_property):
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_show_frame):
	  * gst/mve/gstmvemux.c: (gst_mve_mux_request_new_pad):
	  * sys/dvb/dvbbasebin.c: (dvb_base_bin_class_init):
	  Fix 'xyz may be used uninitialized' compiler warnings caused
	  by broken g_assert_not_reached() macro in GLib-2.15.x and don't
	  abort() in any case but properly report the error.

2007-12-29 17:29:17 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Update to latest API changes in GLib/GIO and require at least gio-2.0 2.15.0 for this.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/gio/gstgio.c:
	  * ext/gio/gstgio.h:
	  * ext/gio/gstgiobasesink.h:
	  * ext/gio/gstgiobasesrc.c: (gst_gio_base_src_get_size):
	  * ext/gio/gstgiobasesrc.h:
	  * ext/gio/gstgiosink.c: (gst_gio_sink_start):
	  * ext/gio/gstgiosink.h:
	  * ext/gio/gstgiosrc.h:
	  * ext/gio/gstgiostreamsink.h:
	  * ext/gio/gstgiostreamsrc.h:
	  * tests/check/pipelines/gio.c:
	  Update to latest API changes in GLib/GIO and require at least
	  gio-2.0 2.15.0 for this.
	  * ext/gio/Makefile.am:
	  Add GST_PLUGIN_LDFLAGS to LDFLAGS.

2007-12-29 00:37:41 +0000  David Schleef <ds@schleef.org>

	  Major cleanup of code.  Convert glupload to BaseTransform.
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/glsink/glextensions.c:
	  * sys/glsink/glextensions.h:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstglbuffer.h:
	  * sys/glsink/gstglconvert.c:
	  * sys/glsink/gstgldisplay.c:
	  * sys/glsink/gstgldisplay.h:
	  * sys/glsink/gstgldownload.c:
	  * sys/glsink/gstglfilter.c:
	  * sys/glsink/gstglfilter.h:
	  * sys/glsink/gstglfilterexample.c:
	  * sys/glsink/gstgltestsrc.c:
	  * sys/glsink/gstglupload.c:
	  Major cleanup of code.  Convert glupload to BaseTransform.
	  Handle caps negotiation mostly correctly.  Reenable in build.

2007-12-28 11:44:28 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/soup/: Use gst_tag_freeform_string_to_utf8() and post radio station info as tags on the bus.
	  Original commit message from CVS:
	  * ext/soup/Makefile.am:
	  * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_get_property),
	  (gst_souphttp_src_unicodify), (soup_got_headers):
	  Use gst_tag_freeform_string_to_utf8() and post radio station
	  info as tags on the bus.

2007-12-27 05:26:05 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Change glimagesink over to using GL buffers.  This breaks glimagesink for normal operation, but should b...
	  Original commit message from CVS:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/gstglupload.c:
	  Change glimagesink over to using GL buffers.  This breaks
	  glimagesink for normal operation, but should be fixed soon.

2007-12-27 04:15:26 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Convert gldownload to BaseTransform.  Make glfilterexample visually interesting.  Add support for variou...
	  Original commit message from CVS:
	  * sys/glsink/gltestsrc.c:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstglbuffer.h:
	  * sys/glsink/gstgldownload.c:
	  * sys/glsink/gstglfilter.c:
	  * sys/glsink/gstglfilterexample.c:
	  * sys/glsink/gstgltestsrc.c:
	  * sys/glsink/gstglupload.c:
	  Convert gldownload to BaseTransform.  Make glfilterexample
	  visually interesting.  Add support for various formats to
	  downloading.  Fix a few places where we leak GL state to
	  other elements (bad, but hard to prevent).

2007-12-27 00:52:23 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Remove code that handles non-texture buffers.  Add a
	  Original commit message from CVS:
	  * sys/glsink/BUGS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstglbuffer.h:
	  * sys/glsink/gstglconvert.c:
	  * sys/glsink/gstgldisplay.c:
	  * sys/glsink/gstglfilter.c:
	  * sys/glsink/gstglfilter.h:
	  * sys/glsink/gstglfilterexample.c:
	  * sys/glsink/gstgltestsrc.c:
	  * sys/glsink/gstglupload.c:
	  * sys/glsink/gstopengl.c:
	  Remove code that handles non-texture buffers.  Add a
	  GstGLBufferFormat type that corresponds to how to use the
	  texture, not the original video format.  Convert gstflfilter.c
	  into a base class, add glfilterexample and glconvert elements.
	  * sys/glsink/color_matrix.c:
	  Minor ramblings about color conversion matrices.

2007-12-25 00:34:14 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Add gltestsrc element, a duplicate of videotestsrc that uses
	  Original commit message from CVS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/gltestsrc.c:
	  * sys/glsink/gltestsrc.h:
	  * sys/glsink/gstgldisplay.c:
	  * sys/glsink/gstgldownload.c:
	  * sys/glsink/gstglfilter.c:
	  * sys/glsink/gstgltestsrc.c:
	  * sys/glsink/gstgltestsrc.h:
	  * sys/glsink/gstglupload.c:
	  * sys/glsink/gstopengl.c:
	  Add gltestsrc element, a duplicate of videotestsrc that uses
	  GL rendering to create images.  More cleanup.

2007-12-24 21:26:40 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Clean up code.  Fix a few leaks.
	  Original commit message from CVS:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstgldownload.c:
	  * sys/glsink/gstglfilter.c:
	  Clean up code.  Fix a few leaks.

2007-12-24 21:04:46 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Rename glvideo.[ch] to gstgldisplay.[ch].
	  Original commit message from CVS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstglbuffer.h:
	  * sys/glsink/gstgldisplay.c:
	  * sys/glsink/gstgldisplay.h:
	  Rename glvideo.[ch] to gstgldisplay.[ch].

2007-12-24 20:53:56 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Rewrite a bunch of code to use textures as the intermediate instead of renderbuffers.  upload, download,...
	  Original commit message from CVS:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstglbuffer.h:
	  * sys/glsink/gstgldownload.c:
	  * sys/glsink/gstglfilter.c:
	  * sys/glsink/gstglupload.c:
	  Rewrite a bunch of code to use textures as the intermediate
	  instead of renderbuffers.  upload, download, filtering all
	  work.

2007-12-23 22:04:00 +0000  David Schleef <ds@schleef.org>

	  gst/videoparse/: Remove videoparse element, because it was moved to gst/rawparse/
	  Original commit message from CVS:
	  * gst/videoparse/Makefile.am:
	  * gst/videoparse/README:
	  * gst/videoparse/gstvideoparse.c:
	  Remove videoparse element, because it was moved to gst/rawparse/

2007-12-23 10:34:39 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/rawparse/gstrawparse.c: Always seek on frame boundaries, will produce nothing useful otherwise.
	  Original commit message from CVS:
	  * gst/rawparse/gstrawparse.c: (gst_raw_parse_src_event):
	  Always seek on frame boundaries, will produce nothing useful
	  otherwise.

2007-12-23 06:22:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add new plugin rawparse that contains a base class for raw data parsers and the two elements audioparse and videopars...
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/rawparse/Makefile.am:
	  * gst/rawparse/README:
	  * gst/rawparse/gstaudioparse.c: (gst_audio_parse_format_get_type),
	  (gst_audio_parse_endianness_get_type), (gst_audio_parse_base_init),
	  (gst_audio_parse_class_init), (gst_audio_parse_init),
	  (gst_audio_parse_set_property), (gst_audio_parse_get_property),
	  (gst_audio_parse_update_frame_size), (gst_audio_parse_get_caps):
	  * gst/rawparse/gstaudioparse.h:
	  * gst/rawparse/gstrawparse.c: (gst_raw_parse_base_init),
	  (gst_raw_parse_class_init), (gst_raw_parse_init),
	  (gst_raw_parse_dispose),
	  (gst_raw_parse_class_set_src_pad_template),
	  (gst_raw_parse_class_set_multiple_frames_per_buffer),
	  (gst_raw_parse_reset), (gst_raw_parse_chain),
	  (gst_raw_parse_convert), (gst_raw_parse_sink_event),
	  (gst_raw_parse_src_event), (gst_raw_parse_src_query_type),
	  (gst_raw_parse_src_query), (gst_raw_parse_set_framesize),
	  (gst_raw_parse_set_fps), (gst_raw_parse_get_fps),
	  (gst_raw_parse_is_negotiated):
	  * gst/rawparse/gstrawparse.h:
	  * gst/rawparse/gstvideoparse.c: (gst_video_parse_format_get_type),
	  (gst_video_parse_endianness_get_type), (gst_video_parse_base_init),
	  (gst_video_parse_class_init), (gst_video_parse_init),
	  (gst_video_parse_set_property), (gst_video_parse_get_property),
	  (gst_video_parse_format_to_fourcc),
	  (gst_video_parse_update_frame_size), (gst_video_parse_get_caps):
	  * gst/rawparse/gstvideoparse.h:
	  * gst/rawparse/plugin.c: (plugin_init):
	  Add new plugin rawparse that contains a base class for raw data
	  parsers and the two elements audioparse and videoparse that can
	  be used to parse raw audio and video. These are inspired by the
	  old videoparse element which the new rawparse plugin deprecates.

2007-12-22 05:01:58 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: A careful read of the documentation reveals that I can't use renderbuffers as textures.  Duh.  Checkpoin...
	  Original commit message from CVS:
	  * sys/glsink/glextensions.c:
	  * sys/glsink/glextensions.h:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstgldownload.c:
	  * sys/glsink/gstglupload.c:
	  A careful read of the documentation reveals that I can't use
	  renderbuffers as textures.  Duh.  Checkpoint because I'm about
	  to rewrite a bunch of code.

2007-12-21 19:01:00 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparseutil.c:
	  Some IPTC tags mapped.
	  Original commit message from CVS:
	  Some IPTC tags mapped.

2007-12-21 09:45:56 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/Makefile.am:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/gstmetadatacommon.c:
	* ext/metadata/gstmetadatacommon.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	  Removed gstmetadatacommon.
	  Original commit message from CVS:
	  Removed gstmetadatacommon.

2007-12-21 00:03:11 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Switch to using framebuffer_objects instead of GLXPixmaps, because that's what my driver supports.  Remo...
	  Original commit message from CVS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/glextensions.c:
	  * sys/glsink/glextensions.h:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  * sys/glsink/gstglbuffer.c:
	  * sys/glsink/gstglbuffer.h:
	  * sys/glsink/gstgldownload.c:
	  * sys/glsink/gstglfilter.c:
	  * sys/glsink/gstglupload.c:
	  * sys/glsink/gstopengl.c:
	  Switch to using framebuffer_objects instead of GLXPixmaps,
	  because that's what my driver supports.  Remove GLDrawable,
	  since GstGLDisplay now has a default drawable and context.

2007-12-20 17:07:22 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/: Ignore more.
	  Original commit message from CVS:
	  * gst/equalizer/.cvsignore:
	  * gst/switch/.cvsignore:
	  Ignore more.

2007-12-19 09:50:47 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/Makefile.am:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/gstmetadatacommon.c:
	* ext/metadata/gstmetadatacommon.h:
	* ext/metadata/gstmetadatademux.c:
	* ext/metadata/gstmetadatademux.h:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadatatags.h:
	* ext/metadata/test/metadata_editor.c:
	  New base class for metadata elements.
	  Original commit message from CVS:
	  New base class for metadata elements.

2007-12-18 16:08:13 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/: gst/switch/gstswitch.c (enum, gst_selector_pad_class_init) (gst_selector_pad_get_property) (gst_selector...
	  Original commit message from CVS:
	  2007-12-18  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch-marshal.list:
	  * gst/switch/gstswitch.h (struct _GstStreamSelectorClass):
	  * gst/switch/gstswitch.c (enum, gst_selector_pad_class_init)
	  (gst_selector_pad_get_property)
	  (gst_selector_pad_get_running_time)
	  (gst_stream_selector_class_init, gst_segment_get_timestamp)
	  (gst_segment_set_stop, gst_segment_set_start)
	  (gst_stream_selector_set_active_pad, gst_stream_selector_block)
	  (gst_stream_selector_push_pending_stop)
	  (gst_stream_selector_switch): Change so that the signals and
	  properties deal in running time, not buffer time. Document the
	  signals more. Change uint64 in API to int64, to reflect what's in
	  GstSegment.

2007-12-18 09:26:42 +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).
	  * configure.ac:
	  Bump requirements to -base CVS for libgstvideo additions in
	  glimagesink. Disable glimagesink until the missing files get
	  checked in.

2007-12-18 01:25:58 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Use new GstVideoFormat checked into -base.  Add new glupload element to upload raw video into a GLXPixbu...
	  Original commit message from CVS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  * sys/glsink/gstopengl.c:
	  * sys/glsink/gstglupload.c:
	  Use new GstVideoFormat checked into -base.  Add new glupload
	  element to upload raw video into a GLXPixbuf.  Untested.  Will
	  likely crash your motorcycle if you try it.
	  * sys/glsink/gstvideo-common.c:
	  * sys/glsink/gstvideo-common.h:
	  Remove.

2007-12-17 21:12:28 +0000  David Schleef <ds@schleef.org>

	  gst/multifile/gstmultifilesrc.*: When subsequent files are read, if the file doesn't exist, send an EOS instead of ca...
	  Original commit message from CVS:
	  * gst/multifile/gstmultifilesrc.c:
	  * gst/multifile/gstmultifilesrc.h:
	  When subsequent files are read, if the file doesn't exist, send
	  an EOS instead of causing an error.

2007-12-17 15:09:17 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/gstswitch.c (gst_selector_pad_chain): Return OK when a buffer is ignored, not NOT_LINKED. No sense in maki...
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.c (gst_selector_pad_chain): Return OK when
	  a buffer is ignored, not NOT_LINKED. No sense in making a source
	  element error out; at least fdsrc considers NOT_LINKED to be a
	  fatal error. Patch 11/12. There is no patch 12/12. Foo.

2007-12-17 15:06:48 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/: gst/switch/gstswitch.c (gst_stream_selector_class_init) (gst_stream_selector_block): Make the block() si...
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch-marshal.list:
	  * gst/switch/gstswitch.h (struct _GstStreamSelectorClass):
	  * gst/switch/gstswitch.c (gst_stream_selector_class_init)
	  (gst_stream_selector_block): Make the block() signal return the
	  last stop time of the active pad. Patch 10/12.

2007-12-17 15:04:51 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* gst/switch/gstswitch.c:
	  gst/switch/gstswitch.c (gst_selector_pad_get_property) (gst_selector_pad_class_init, gst_stream_selector_class_init)
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.c (gst_selector_pad_get_property)
	  (gst_selector_pad_class_init, gst_stream_selector_class_init)
	  (gst_stream_selector_get_property): Expose 'last-stop-time' as a
	  pad property, not an element property.
	  (gst_selector_pad_chain): Mark the last_stop time as timestamp +
	  duration, not timestamp. Patch 9/12.

2007-12-17 15:01:55 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* gst/switch/gstswitch.c:
	  gst/switch/gstswitch.c (gst_stream_selector_change_state)
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.c (gst_stream_selector_change_state)
	  (gst_stream_selector_block, gst_stream_selector_switch): Use the
	  cond mechanism instead of blocked pads. Patch 8/12.

2007-12-17 15:00:15 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/gstswitch.h (struct _GstStreamSelector): gst/switch/gstswitch.c (gst_stream_selector_wait) (gst_selector_p...
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.h (struct _GstStreamSelector):
	  * gst/switch/gstswitch.c (gst_stream_selector_wait)
	  (gst_selector_pad_chain, gst_stream_selector_init)
	  (gst_stream_selector_dispose): Add infrastructure for new blocking
	  mechanism that does not use gst_pad_set_blocked, which does not
	  work on sink pads. Patch 7/12.

2007-12-17 14:58:18 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* gst/switch/gstswitch.c:
	  gst/switch/gstswitch.c (gst_stream_selector_class_init)
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.c (gst_stream_selector_class_init)
	  (gst_stream_selector_get_property): Add last-stop-time readable
	  property. Patch 6/12.

2007-12-17 14:55:54 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/gstswitch.h (struct _GstStreamSelector): Add some state variables.
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.h (struct _GstStreamSelector): Add some
	  state variables.
	  * gst/switch/gstswitch.c (gst_stream_selector_push_pending_stop)
	  (gst_selector_pad_chain): Push any pending stop event.
	  (gst_stream_selector_set_active_pad)
	  (gst_stream_selector_set_property): Factor out setting the active
	  pad to a function. Close the segment of the previous active pad if
	  told to do so via a stop_time != GST_CLOCK_TIME_NONE.
	  (gst_stream_selector_switch): Implement switch vmethod. Patch 5/12.

2007-12-17 14:52:14 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/gstswitch.c (gst_stream_selector_block): Implement the block() signal. This implementation will be replace...
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.c (gst_stream_selector_block): Implement
	  the block() signal. This implementation will be replaced in future
	  patches, however. Patch 4/12.

2007-12-17 14:48:26 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/gstswitch.h (struct _GstStreamSelectorClass): Fix vmethod prototypes.
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.h (struct _GstStreamSelectorClass): Fix
	  vmethod prototypes.
	  * gst/switch/gstswitch.c (gst_stream_selector_class_init)
	  (gst_stream_selector_block, gst_stream_selector_switch): Add empty
	  vmethod definitions. Patch 3/12.

2007-12-17 14:46:26 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/gstswitch.*: Add `block' and `switch' signals.
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.h (struct _GstStreamSelectorClass):
	  * gst/switch/gstswitch.c (gst_stream_selector_class_init): Add
	  `block' and `switch' signals.
	  * gst/switch/Makefile.am:
	  * gst/switch/gstswitch-marshal.list: Add foo to generate a
	  marshaller for the `switch' signal. Patch 2/12.

2007-12-17 14:43:04 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/gstswitch.*: Replace with files from gststreamselector.[ch], registered as the "switch" plugin, with "GstS...
	  Original commit message from CVS:
	  2007-12-17  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.h:
	  * gst/switch/gstswitch.c: Replace with files from
	  gststreamselector.[ch], registered as the "switch" plugin, with
	  "GstSwitch" types. Patch 1/12.

2007-12-17 14:37:39 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add libsoup plugin to spec
	  Original commit message from CVS:
	  add libsoup plugin to spec

2007-12-17 12:37:36 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/gstmetadatademux.c:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/test/MetadataEditorMain.glade:
	* ext/metadata/test/metadata_editor.c:
	  Added "parse-only" property to metadatademux.
	  Original commit message from CVS:
	  Added "parse-only" property to metadatademux.

2007-12-16 22:57:22 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Rename GLVideo* to GstGL*.
	  Original commit message from CVS:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  Rename GLVideo* to GstGL*.

2007-12-16 00:16:46 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Add vblank synchronization.  Isn't really working on my driver. :(
	  Original commit message from CVS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/glextensions.c:
	  * sys/glsink/glextensions.h:
	  * sys/glsink/glvideo.c:
	  Add vblank synchronization.  Isn't really working on my
	  driver. :(

2007-12-15 19:31:23 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Add support for xRGB, xBGR, and AYUV.  Re-add support for power-of-2 textures.
	  Original commit message from CVS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  * sys/glsink/gstvideo-common.c:
	  * sys/glsink/gstvideo-common.h:
	  Add support for xRGB, xBGR, and AYUV.  Re-add support for
	  power-of-2 textures.

2007-12-15 17:52:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/videoparse/gstvideoparse.c: Free the adapter on dispose and correctly reset on newsegment events.
	  Original commit message from CVS:
	  * gst/videoparse/gstvideoparse.c: (gst_video_parse_dispose),
	  (gst_video_parse_sink_event):
	  Free the adapter on dispose and correctly reset on newsegment events.

2007-12-15 13:10:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/videoparse/gstvideoparse.c: Improve duration query by first asking upstream and if it can't handle the query try ...
	  Original commit message from CVS:
	  * gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event),
	  (gst_video_parse_src_event), (gst_video_parse_src_query):
	  Improve duration query by first asking upstream and if it can't handle
	  the query try to get the duration in bytes from upstream and convert.
	  For seeks, try if upstream handles this already first and do our
	  conversion to byte format only if it doesn't and if we get a
	  newsegment event in time format keep it and only do our conversions
	  if the event has another format.

2007-12-15 07:37:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/videoparse/gstvideoparse.c: Add support for video/x-raw-rgb and video/x-raw-gray. Also send downstream elements d...
	  Original commit message from CVS:
	  * gst/videoparse/gstvideoparse.c:
	  (gst_video_parse_format_get_type),
	  (gst_video_parse_endianness_get_type),
	  (gst_video_parse_class_init), (gst_video_parse_init),
	  (gst_video_parse_set_property), (gst_video_parse_get_property),
	  (gst_video_parse_format_to_fourcc),
	  (gst_video_parse_update_block_size), (gst_video_parse_chain),
	  (gst_video_parse_sink_event):
	  Add support for video/x-raw-rgb and video/x-raw-gray. Also send
	  downstream elements downstream, not upstream.

2007-12-15 06:33:37 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/gstvideo-common.*: Pull together some common raw video functions into one location.
	  Original commit message from CVS:
	  * sys/glsink/gstvideo-common.c:
	  * sys/glsink/gstvideo-common.h:
	  Pull together some common raw video functions into one location.
	  This should eventually move to -base.
	  * sys/glsink/Makefile.am:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  * sys/glsink/gstopengl.c:
	  Use the new video-common.h stuff.  Readd support for RGB video.

2007-12-14 18:18:37 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/Makefile.am:
	* ext/metadata/TODO:
	* ext/metadata/gstmetadata.c:
	* ext/metadata/gstmetadatacommon.c:
	* ext/metadata/gstmetadatacommon.h:
	* ext/metadata/gstmetadatademux.c:
	* ext/metadata/gstmetadatademux.h:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/test/metadata_editor.c:
	  Added new module for common functions. Using GST_TYPE_FRACTION for Exif (S)Rational types.
	  Original commit message from CVS:
	  Added new module for common functions. Using GST_TYPE_FRACTION for Exif (S)Rational types.

2007-12-14 17:51:49 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtspacketizer.*: Hash streams by pid again. Add a linked list inside each stream with a list of su...
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtspacketizer.h:
	  Hash streams by pid again. Add a linked list inside each
	  stream with a list of sub_tables. Fix multiple sections
	  as it was borked with my last commit.

2007-12-14 16:23:06 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* gst-plugins-bad.spec.in:
	* gst/speexresample/Makefile.am:
	* sys/glsink/Makefile.am:
	  update spec file and add two missing files for disting
	  Original commit message from CVS:
	  update spec file and add two missing files for disting

2007-12-13 17:19:54 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/TODO:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxjpeg.h:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadatamuxpng.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparseutil.c:
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadatatypes.h:
	* ext/metadata/metadataxmp.c:
	  Code documentation.
	  Original commit message from CVS:
	  Code documentation.

2007-12-13 12:45:06 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* configure.ac:
	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/test/Makefile:
	* ext/metadata/test/MetadataEditorMain.glade:
	* ext/metadata/test/metadata_editor.c:
	  Added a test application. Added some EXIF tags. Fixed a muxer bug.
	  Original commit message from CVS:
	  Added a test application. Added some EXIF tags. Fixed a muxer bug.

2007-12-13 11:25:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/videoparse/gstvideoparse.c: Implement a query type function for the src pad, implement seeking and use ANY caps f...
	  Original commit message from CVS:
	  * gst/videoparse/gstvideoparse.c: (gst_video_parse_init),
	  (gst_video_parse_src_event), (gst_video_parse_src_query_type):
	  Implement a query type function for the src pad, implement seeking
	  and use ANY caps for the sink pad as the element doesn't care what
	  caps the input has and everything is handled via properties.

2007-12-13 10:38:23 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/videoparse/gstvideoparse.c: Handle -1 values for the CONVERT query too.
	  Original commit message from CVS:
	  * gst/videoparse/gstvideoparse.c: (gst_video_parse_convert),
	  (gst_video_parse_sink_event):
	  Handle -1 values for the CONVERT query too.

2007-12-13 10:16:48 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/videoparse/gstvideoparse.c: Add YV12 to the pad templates as it is supported too and allow
	  Original commit message from CVS:
	  * gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event):
	  Add YV12 to the pad templates as it is supported too and allow
	  -1 as stop position for NEWSEGMENT events.

2007-12-13 08:54:08 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/videoparse/Makefile.am: Add $(GST_PLUGINS_BASE_CFLAGS) to CFLAGS to fix the build.
	  Original commit message from CVS:
	  * gst/videoparse/Makefile.am:
	  Add $(GST_PLUGINS_BASE_CFLAGS) to CFLAGS to fix the build.
	  * gst/videoparse/gstvideoparse.c: (gst_video_parse_init),
	  (gst_video_parse_set_property), (gst_video_parse_get_property):
	  Use g_value_[sg]et_enum() for enum properties, g_value_[sg]et_int()
	  gives a g_critical().

2007-12-13 04:43:58 +0000  David Schleef <ds@schleef.org>

	  gst/videoparse/: Add a bunch of features: handle format specification, handle queries and conversion.  Works much lik...
	  Original commit message from CVS:
	  * gst/videoparse/README:
	  * gst/videoparse/gstvideoparse.c:
	  Add a bunch of features: handle format specification, handle
	  queries and conversion.  Works much like a normal parser now.

2007-12-12 16:59:03 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Clean up the dynamic pads when going to READY.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_finalize),
	  (gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release),
	  (gst_rtp_pt_demux_change_state):
	  * gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_reset),
	  (gst_rtp_ssrc_demux_dispose), (gst_rtp_ssrc_demux_src_query),
	  (gst_rtp_ssrc_demux_change_state):
	  Clean up the dynamic pads when going to READY.

2007-12-12 12:11:53 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Fix some leaks.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_finalize),
	  (gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string),
	  (gst_rtp_bin_handle_message):
	  * gst/rtpmanager/rtpsession.c: (rtp_session_finalize),
	  (rtp_session_send_bye):
	  * gst/rtpmanager/rtpsource.c: (rtp_source_finalize):
	  Fix some leaks.

2007-12-12 04:11:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/dts/gstdtsdec.*: Add support for "audio/x-private1-dts" as used by flupsparse. Most changes adapted from a52dec.
	  Original commit message from CVS:
	  * ext/dts/gstdtsdec.c: (gst_dtsdec_init),
	  (gst_dtsdec_sink_setcaps), (gst_dtsdec_chain_raw),
	  (gst_dtsdec_chain):
	  * ext/dts/gstdtsdec.h:
	  Add support for "audio/x-private1-dts" as used by flupsparse. Most
	  changes adapted from a52dec.

2007-12-12 02:33:12 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/: Split out gl-related code into a separate file with a sensible API.  Major cleanup.  Still crashes occas...
	  Original commit message from CVS:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glvideo.c:
	  * sys/glsink/glvideo.h:
	  Split out gl-related code into a separate file with a
	  sensible API.  Major cleanup.  Still crashes occasionally
	  due to different threads touching bits at the same time.

2007-12-11 16:39:39 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/soup/gstsouphttpsrc.*: Do not try to unpause I/O in the "queued" state.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * ext/soup/gstsouphttpsrc.c: (_do_init),
	  (gst_souphttp_src_class_init), (gst_souphttp_src_init),
	  (gst_souphttp_src_dispose), (gst_souphttp_src_set_property),
	  (gst_souphttp_src_get_property), (unicodify),
	  (gst_souphttp_src_unicodify), (gst_souphttp_src_create),
	  (gst_souphttp_src_start), (gst_souphttp_src_stop),
	  (gst_souphttp_src_unlock), (gst_souphttp_src_unlock_stop),
	  (gst_souphttp_src_get_size), (gst_souphttp_src_is_seekable),
	  (soup_got_headers), (soup_got_body), (soup_finished),
	  (soup_got_chunk), (soup_response), (soup_parse_status),
	  (gst_souphttp_src_uri_get_type),
	  (gst_souphttp_src_uri_get_protocols),
	  (gst_souphttp_src_uri_get_uri), (gst_souphttp_src_uri_set_uri),
	  (gst_souphttp_src_uri_handler_init):
	  * ext/soup/gstsouphttpsrc.h:
	  Do not try to unpause I/O in the "queued" state.
	  Reorganise a bunch of things and cleanups.
	  Uses G_GUINT64_FORMAT instead of hard-coding %llu.
	  See #502335.

2007-12-11 16:26:07 +0000  Wim Taymans <wim.taymans@gmail.com>

	  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-12-11 11:54:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/flv/gstflvparse.c: Don't strdup (and thus leak) codec name strings when passing them to gst_tag_list_add().
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video):
	  Don't strdup (and thus leak) codec name strings when passing
	  them to gst_tag_list_add().

2007-12-10 18:36:04 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Post a message when the SDES infor changes for a source.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init),
	  (gst_rtp_bin_handle_message):
	  * gst/rtpmanager/gstrtpsession.c: (source_get_sdes_structure),
	  (on_ssrc_sdes):
	  Post a message when the SDES infor changes for a source.
	  * gst/rtpmanager/rtpsession.c:
	  * gst/rtpmanager/rtpsource.c:
	  Update some comments.

2007-12-10 17:18:35 +0000  mutex at runbox dot com <mutex@runbox.com>

	  gst/videoparse/gstvideoparse.c: Forward the query upstream, the default element event handler does something differen...
	  Original commit message from CVS:
	  Based on patch by: <mutex at runbox dot com>
	  * gst/videoparse/gstvideoparse.c: (gst_video_parse_src_query):
	  Forward the query upstream, the default element event handler does
	  something different. Fixes #502879.

2007-12-10 15:34:19 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Add signal to notify of an SDES change.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (on_ssrc_sdes), (create_session),
	  (gst_rtp_bin_class_init):
	  * gst/rtpmanager/gstrtpbin.h:
	  * gst/rtpmanager/gstrtpclient.c:
	  * gst/rtpmanager/gstrtpclient.h:
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  * gst/rtpmanager/gstrtpmanager.c:
	  * gst/rtpmanager/gstrtpptdemux.c:
	  * gst/rtpmanager/gstrtpptdemux.h:
	  * gst/rtpmanager/gstrtpsession.c: (on_ssrc_sdes),
	  (gst_rtp_session_class_init), (gst_rtp_session_init):
	  * gst/rtpmanager/gstrtpsession.h:
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  * gst/rtpmanager/gstrtpssrcdemux.h:
	  * gst/rtpmanager/rtpjitterbuffer.c:
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (on_ssrc_sdes), (rtp_session_process_sdes):
	  * gst/rtpmanager/rtpsession.h:
	  * gst/rtpmanager/rtpsource.c:
	  * gst/rtpmanager/rtpsource.h:
	  * gst/rtpmanager/rtpstats.c:
	  * gst/rtpmanager/rtpstats.h:
	  Add signal to notify of an SDES change.
	  Fix object type in the signal callbacks.

2007-12-10 14:03:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.*: Expose SDES items as properties and configure the session managers with them.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_session),
	  (gst_rtp_bin_class_init), (gst_rtp_bin_init), (sdes_type_to_name),
	  (gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string),
	  (gst_rtp_bin_set_property), (gst_rtp_bin_get_property):
	  * gst/rtpmanager/gstrtpbin.h:
	  Expose SDES items as properties and configure the session managers with
	  them.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	  (rtp_source_set_property):
	  Fix SSRC property.

2007-12-10 11:08:11 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Update comment.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_session):
	  * gst/rtpmanager/rtpjitterbuffer.c:
	  Update comment.
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (gst_rtp_session_set_property), (gst_rtp_session_get_property):
	  Define some GObject properties to set SDES and other configuration.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (rtp_session_init), (rtp_session_finalize),
	  (rtp_session_set_property), (rtp_session_get_property),
	  (on_ssrc_sdes), (rtp_session_set_bandwidth),
	  (rtp_session_get_bandwidth), (rtp_session_set_rtcp_fraction),
	  (rtp_session_get_rtcp_fraction), (rtp_session_set_sdes_string),
	  (rtp_session_get_sdes_string), (obtain_source),
	  (rtp_session_get_internal_source), (rtp_session_process_sdes),
	  (rtp_session_send_rtp), (rtp_session_next_timeout), (session_sdes),
	  (is_rtcp_time):
	  * gst/rtpmanager/rtpsession.h:
	  Add signal when new SDES infor has been found for a source.
	  Create properties for SDES and other info.
	  Simplify the SDES API.
	  Add method for getting the internal source object of the session.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	  (rtp_source_finalize), (rtp_source_set_property),
	  (rtp_source_get_property), (rtp_source_set_callbacks),
	  (rtp_source_get_ssrc), (rtp_source_set_as_csrc),
	  (rtp_source_is_as_csrc), (rtp_source_is_active),
	  (rtp_source_is_validated), (rtp_source_is_sender),
	  (rtp_source_received_bye), (rtp_source_get_bye_reason),
	  (rtp_source_set_sdes), (rtp_source_set_sdes_string),
	  (rtp_source_get_sdes), (rtp_source_get_sdes_string),
	  (rtp_source_get_new_sr), (rtp_source_get_new_rb):
	  * gst/rtpmanager/rtpsource.h:
	  Add GObject properties for various things.
	  Don't leak the bye reason.

2007-12-09 19:37:53 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/flv/gstflvparse.c: Fix list of supported and known codecs.
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video):
	  Fix list of supported and known codecs.
	  Emit tag with the codec name so it gets properly reported in totem and
	  other applications.

2007-12-09 04:30:06 +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-06 12:45:50 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/gstiirequalizer.c: Fix compilation.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c:
	  (gst_iir_equalizer_transform_ip):
	  Fix compilation.

2007-12-06 12:42:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/gstiirequalizer.c: Don't process buffers in passthrough mode.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c:
	  (gst_iir_equalizer_transform_ip):
	  Don't process buffers in passthrough mode.

2007-12-06 12:37:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: The transform() methods are not called in passthrough mode so there's no need for checking if the elemen...
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (bpwsinc_transform):
	  * gst/filter/gstlpwsinc.c: (lpwsinc_transform):
	  The transform() methods are not called in passthrough mode so
	  there's no need for checking if the element is in passthrough mode.

2007-12-06 12:29:26 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: Sync the GObject properties with the controller even in passthrough mode to get consistent property values.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (bpwsinc_transform):
	  * gst/filter/gstlpwsinc.c: (lpwsinc_transform):
	  Sync the GObject properties with the controller even in passthrough
	  mode to get consistent property values.

2007-12-06 10:48:19 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mpegtsparse/mpegtsparse.c: Mark crc values table as constant.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtsparse.c: (crc_tab):
	  Mark crc values table as constant.

2007-12-05 17:00:59 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	  Added some tags to exif parser.
	  Original commit message from CVS:
	  Added some tags to exif parser.

2007-12-05 12:40:05 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: A sub table is identified by the pair table_id and sub_table_identifier, not by pid. So hash with t...
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtsparse.c:
	  A sub table is identified by the pair table_id and
	  sub_table_identifier, not by pid. So hash with that.
	  * sys/dvb/dvbbasebin.c:
	  Make sure initial pids are added properly to filter,

2007-12-05 11:25:58 +0000  Andy Wingo <wingo@pobox.com>

	  gst/switch/gstswitch.c (gst_switch_set_property): Don't push buffers from app thread when unsetting `queue-buffers', ...
	  Original commit message from CVS:
	  2007-12-05  Andy Wingo  <wingo@pobox.com>
	  * gst/switch/gstswitch.c (gst_switch_set_property): Don't push
	  buffers from app thread when unsetting `queue-buffers', it's
	  dangerous and the chain function will do it for us anyway.

2007-12-04 17:20:25 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadataparsejpeg.c:
	  Now compiles even when libiptc is missing.
	  Original commit message from CVS:
	  Now compiles even when libiptc is missing.

2007-12-04 16:42:25 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxjpeg.h:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadatamuxpng.h:
	  Fixed element properties and now muxer writes to png also.
	  Original commit message from CVS:
	  Fixed element properties and now muxer writes to png also.

2007-12-03 18:28:32 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Remove signals for pat, pmt, nit, eit, sdt. Replace with bus messages.
	  Original commit message from CVS:
	  * gst/mpegtsparse/Makefile.am:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Remove signals for pat, pmt, nit, eit, sdt. Replace with bus
	  messages.
	  * sys/dvb/dvbbasebin.c:
	  Instead of attaching to signals, use the bus messages.
	  Also fix up so the dvbsrc starts only outputting the info tables
	  like PAT, CAT, NIT, SDT, EIT instead of the whole ts.

2007-12-03 16:14:01 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	  Muxer writes (in jpeg only) whole IPTC chunk sent as tag. Muxer implemets GstTagSetter interface.
	  Original commit message from CVS:
	  Muxer writes (in jpeg only) whole IPTC chunk sent as tag. Muxer implemets GstTagSetter interface.

2007-12-03 13:08:26 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/rfbdecoder.c: Should fix the 64-bit build
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c:
	  Should fix the 64-bit build

2007-11-30 18:30:12 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	  Muxer writes (in jpeg only) whole EXIF and XMP chunks sent as tags.
	  Original commit message from CVS:
	  Muxer writes (in jpeg only) whole EXIF and XMP chunks sent as tags.

2007-11-30 14:08:15 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/rfbdecoder.*: Add CoRRE encoding
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  Add CoRRE encoding

2007-11-30 13:18:36 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/mpegtsparse.c: CRC check the psi pids. CRC checking code relicenced from MPL.
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtsparse.c:
	  CRC check the psi pids. CRC checking code relicenced from MPL.
	  Thanks Fluendo.

2007-11-30 12:53:13 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxjpeg.h:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadatamuxpng.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadatatypes.c:
	* ext/metadata/metadatatypes.h:
	  Fixed get_range bug when injecting and stripping. And mux is almost done now.
	  Original commit message from CVS:
	  Fixed get_range bug when injecting and stripping. And mux is almost done now.

2007-11-30 10:46:23 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/rfbdecoder.c: Use glib macro for swapping
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c:
	  Use glib macro for swapping

2007-11-29 13:32:11 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/: Disable CopyRect encoding by default
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  Disable CopyRect encoding by default
	  Add RRE encoding

2007-11-29 10:49:18 +0000  Wouter Cloetens <wouter@mind.be>

	  configure.ac: Bump libsoup requirement as libsoup does not support async client operation prior to version 2.2.104 an...
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * configure.ac:
	  Bump libsoup requirement as libsoup does not support async client
	  operation prior to version 2.2.104 and it has some leaks.
	  * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init),
	  (gst_souphttp_src_init), (gst_souphttp_src_dispose),
	  (gst_souphttp_src_set_property), (gst_souphttp_src_create),
	  (gst_souphttp_src_start), (gst_souphttp_src_stop),
	  (gst_souphttp_src_unlock), (gst_souphttp_src_unlock_stop),
	  (gst_souphttp_src_get_size), (soup_got_headers), (soup_got_body),
	  (soup_finished), (soup_got_chunk), (soup_response),
	  (soup_session_close):
	  * ext/soup/gstsouphttpsrc.h:
	  Implement unlock().
	  Picks up the size from the Content-Length header and emit a duration
	  message.
	  Don't leak the GMainContext object.
	  Fixes #500099.

2007-11-29 10:44:54 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/alsaspdif/alsaspdifsink.c: Don't free uninitialized data when we are in error.
	  Original commit message from CVS:
	  * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_set_caps),
	  (alsaspdifsink_get_time), (alsaspdifsink_set_params),
	  (alsaspdifsink_find_pcm_device):
	  Don't free uninitialized data when we are in error.

2007-11-28 14:03:35 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	  Sending make and model individual tags and muxer now links fine.
	  Original commit message from CVS:
	  Sending make and model individual tags and muxer now links fine.

2007-11-28 08:13:52 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadata.c:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparseexif.c:
	* ext/metadata/metadataparseexif.h:
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparseiptc.h:
	* ext/metadata/metadataparsexmp.c:
	* ext/metadata/metadataparsexmp.h:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	  Small fixes in get_range and better structure for generic muxer and demuxer.
	  Original commit message from CVS:
	  Small fixes in get_range and better structure for generic muxer and demuxer.

2007-11-26 13:19:48 +0000  Julien Moutte <julien@moutte.net>

	  configure.ac: Add QuickTime Wrapper plug-in.
	  Original commit message from CVS:
	  2007-11-26  Julien Moutte  <julien@fluendo.com>
	  * configure.ac: Add QuickTime Wrapper plug-in.
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_push_drain), (gst_speex_resample_process): Fix
	  build on Mac OS X Leopard. Incorrect printf format arguments.
	  * sys/Makefile.am:
	  * sys/qtwrapper/Makefile.am:
	  * sys/qtwrapper/audiodecoders.c:
	  (qtwrapper_audio_decoder_base_init),
	  (qtwrapper_audio_decoder_class_init),
	  (qtwrapper_audio_decoder_init),
	  (clear_AudioStreamBasicDescription), (fill_indesc_mp3),
	  (fill_indesc_aac), (fill_indesc_samr), (fill_indesc_generic),
	  (make_samr_magic_cookie), (open_decoder),
	  (qtwrapper_audio_decoder_sink_setcaps), (process_buffer_cb),
	  (qtwrapper_audio_decoder_chain),
	  (qtwrapper_audio_decoder_sink_event),
	  (qtwrapper_audio_decoders_register):
	  * sys/qtwrapper/codecmapping.c: (audio_caps_from_string),
	  (fourcc_to_caps):
	  * sys/qtwrapper/codecmapping.h:
	  * sys/qtwrapper/imagedescription.c: (image_description_for_avc1),
	  (image_description_for_mp4v), (image_description_from_stsd_buffer),
	  (image_description_from_codec_data):
	  * sys/qtwrapper/imagedescription.h:
	  * sys/qtwrapper/qtutils.c: (get_name_info_from_component),
	  (get_output_info_from_component), (dump_avcc_atom),
	  (dump_image_description), (dump_codec_decompress_params),
	  (addSInt32ToDictionary), (dump_cvpixel_buffer),
	  (DestroyAudioBufferList), (AllocateAudioBufferList):
	  * sys/qtwrapper/qtutils.h:
	  * sys/qtwrapper/qtwrapper.c: (plugin_init):
	  * sys/qtwrapper/qtwrapper.h:
	  * sys/qtwrapper/videodecoders.c:
	  (qtwrapper_video_decoder_base_init),
	  (qtwrapper_video_decoder_class_init),
	  (qtwrapper_video_decoder_init), (qtwrapper_video_decoder_finalize),
	  (fill_image_description), (new_image_description), (close_decoder),
	  (open_decoder), (qtwrapper_video_decoder_sink_setcaps),
	  (decompressCb), (qtwrapper_video_decoder_chain),
	  (qtwrapper_video_decoder_sink_event),
	  (qtwrapper_video_decoders_register): Initial import of QuickTime
	  wrapper jointly developped by Songbird authors (Pioneers of the
	  Inevitable) and Fluendo.

2007-11-26 10:08:20 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/gstspectrum.c: Use dispose and finalize. Dispose can be called multiple times.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c:
	  Use dispose and finalize. Dispose can be called multiple times.

2007-11-26 09:38:24 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadataparse.c:
	  Now works when get_range is not available upstream.
	  Original commit message from CVS:
	  Now works when get_range is not available upstream.

2007-11-26 08:43:25 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/: Update speex resampler to latest SVN. We're now down to only the changes noted in README again.
	  Original commit message from CVS:
	  * gst/speexresample/README:
	  * gst/speexresample/arch.h:
	  * gst/speexresample/resample.c: (resampler_basic_direct_single),
	  (resampler_basic_direct_double),
	  (resampler_basic_interpolate_single),
	  (resampler_basic_interpolate_double),
	  (speex_resampler_process_native), (speex_resampler_process_float),
	  (speex_resampler_process_int),
	  (speex_resampler_process_interleaved_float),
	  (speex_resampler_process_interleaved_int),
	  (speex_resampler_get_input_latency),
	  (speex_resampler_get_output_latency):
	  * gst/speexresample/speex_resampler.h:
	  Update speex resampler to latest SVN. We're now down to only the
	  changes noted in README again.
	  * gst/speexresample/speex_resampler_wrapper.h:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_push_drain), (gst_speex_resample_query):
	  Adjust to API changes.

2007-11-25 10:45:09 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/flv/gstflvparse.c: Output segment with proper 'stop' value, makes flvdemux 100% compatible with gnonlin.
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video):
	  Output segment with proper 'stop' value, makes flvdemux 100% compatible
	  with gnonlin.

2007-11-25 10:12:09 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/dc1394/gstdc1394.c: Set initial structure name to fix assertion, due to recent caps name constraints.
	  Original commit message from CVS:
	  * ext/dc1394/gstdc1394.c:
	  Set initial structure name to fix assertion, due to recent caps name
	  constraints.

2007-11-23 17:53:37 +0000  Alessandro Decina <alessandro@nnva.org>

	  gst/mpegtsparse/: pat-info is now a signal not a GObject property that gets notified.
	  Original commit message from CVS:
	  patch by: Alessandro Decina
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtspacketizer.h:
	  * gst/mpegtsparse/mpegtsparse.c:
	  * gst/mpegtsparse/mpegtsparse.h:
	  pat-info is now a signal not a GObject property that
	  gets notified.
	  pat-info, pmt-info now instead of passing a GObject as
	  a parameter, pass a GstStructure.
	  New signals: nit-info, sdt-info, eit-info for DVB SI information
	  * sys/dvb/camconditionalaccess.c:
	  * sys/dvb/camconditionalaccess.h:
	  * sys/dvb/camdevice.c:
	  * sys/dvb/camdevice.h:
	  * sys/dvb/camswclient.c:
	  * sys/dvb/camswclient.h:
	  * sys/dvb/camutils.c:
	  * sys/dvb/camutils.h:
	  Cam code now uses the pmt GstStructure passed from mpegtsparse
	  signals rather than the GObject.
	  * sys/dvb/dvbbasebin.c:
	  Use new signals in mpegtsparse and use GstStructures as per
	  mpegtsparse's modified API.

2007-11-23 17:35:21 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadata.c:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparsetypes.h:
	* ext/metadata/metadatatypes.c:
	* ext/metadata/metadatatypes.h:
	  Now parser is generic (just add/remove a list of chunks). And a template of muxer has been created.
	  Original commit message from CVS:
	  Now parser is generic (just add/remove a list of chunks). And a template of muxer has been created.

2007-11-23 10:21:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: Only post the latency message if we have a resampler state already.
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_update_state):
	  Only post the latency message if we have a resampler state already.

2007-11-23 10:21:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/audioresample/gstaudioresample.c: Implement latency query.
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c: (gst_audioresample_init),
	  (audioresample_query), (audioresample_query_type),
	  (gst_audioresample_set_property):
	  Implement latency query.

2007-11-23 10:01:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: Also post GST_MESSAGE_LATENCY if the latency changes.
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_update_state):
	  Also post GST_MESSAGE_LATENCY if the latency changes.

2007-11-23 08:48:50 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/: Add functions to push the remaining samples and to get the latency of the resampler. These will g...
	  Original commit message from CVS:
	  * gst/speexresample/resample.c: (speex_resampler_get_latency),
	  (speex_resampler_drain_float), (speex_resampler_drain_int),
	  (speex_resampler_drain_interleaved_float),
	  (speex_resampler_drain_interleaved_int):
	  * gst/speexresample/speex_resampler.h:
	  * gst/speexresample/speex_resampler_wrapper.h:
	  Add functions to push the remaining samples and to get the latency
	  of the resampler. These will get added to Speex SVN in this or a
	  slightly changed form at some point too and should get merged then
	  again.
	  * gst/speexresample/gstspeexresample.c: (gst_speex_resample_init),
	  (gst_speex_resample_init_state),
	  (gst_speex_resample_transform_size),
	  (gst_speex_resample_push_drain), (gst_speex_resample_event),
	  (gst_speex_fix_output_buffer), (gst_speex_resample_process),
	  (gst_speex_resample_query), (gst_speex_resample_query_type):
	  Drop the prepending zeroes and output the remaining samples on EOS.
	  Also properly implement the latency query for this. speexresample
	  should be completely ready for production use now.

2007-11-22 09:08:27 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: jitterbuffer can buffer an unlimited amount of time and thus has no max_latency ...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_query):
	  jitterbuffer can buffer an unlimited amount of time and thus has no
	  max_latency requirements.

2007-11-21 10:18:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/README: Add README explaining where the resampling code was taken from and which changes were done.
	  Original commit message from CVS:
	  * gst/speexresample/README:
	  Add README explaining where the resampling code was taken from
	  and which changes were done.
	  * gst/speexresample/resample.c: (speex_alloc), (speex_realloc),
	  (speex_free):
	  Use g_malloc() and friends instead of malloc() to achieve higher
	  portability and define the functions inline.
	  * gst/speexresample/speex_resampler.h:
	  Add back some useless preprocessor stuff to keep the diff between
	  our version and the one from the Speex SVN repository lower.

2007-11-21 09:56:54 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: Post a GST_MESSAGE_LATENCY if the latency changes.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (bpwsinc_set_property):
	  * gst/filter/gstlpwsinc.c: (lpwsinc_set_property):
	  Post a GST_MESSAGE_LATENCY if the latency changes.

2007-11-21 09:45:41 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faac/gstfaac.c: Don't try to flush the decoder on EOS when it was not initialized.
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_sink_event):
	  Don't try to flush the decoder on EOS when it was not initialized.
	  Fixes #498667

2007-11-21 09:40:08 +0000  Julien Moutte <julien@moutte.net>

	  ext/sdl/sdlaudiosink.c: Fix build on Mac OS X. (missing format parameter)
	  Original commit message from CVS:
	  2007-11-21  Julien Moutte  <julien@fluendo.com>
	  * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_write): Fix build
	  on Mac OS X. (missing format parameter)

2007-11-21 08:21:10 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/equalizer/: Remove preset iface again. We'll re-add this after its been released in -good.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer10bands.c:
	  * gst/equalizer/gstiirequalizer3bands.c:
	  Remove preset iface again. We'll re-add this after its been released
	  in -good.

2007-11-20 20:23:25 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: Some small cleanup and addition of a TODO item.
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_fix_output_buffer), (gst_speex_resample_transform):
	  Some small cleanup and addition of a TODO item.

2007-11-20 12:56:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/Makefile.am: Add missing file.
	  Original commit message from CVS:
	  * gst/speexresample/Makefile.am:
	  Add missing file.

2007-11-20 07:52:13 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  docs/plugins/inspect/: Add missing inspection files to CVS.
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-app.xml:
	  * docs/plugins/inspect/plugin-bayer.xml:
	  * docs/plugins/inspect/plugin-cdaudio.xml:
	  * docs/plugins/inspect/plugin-dvb.xml:
	  * docs/plugins/inspect/plugin-dvbsrc.xml:
	  * docs/plugins/inspect/plugin-dvdspu.xml:
	  * docs/plugins/inspect/plugin-festival.xml:
	  * docs/plugins/inspect/plugin-flvdemux.xml:
	  * docs/plugins/inspect/plugin-gstinterlace.xml:
	  * docs/plugins/inspect/plugin-interleave.xml:
	  * docs/plugins/inspect/plugin-ladspa.xml:
	  * docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	  * docs/plugins/inspect/plugin-mpegtsparse.xml:
	  * docs/plugins/inspect/plugin-mpegvideoparse.xml:
	  * docs/plugins/inspect/plugin-mve.xml:
	  * docs/plugins/inspect/plugin-nas.xml:
	  * docs/plugins/inspect/plugin-nuvdemux.xml:
	  * docs/plugins/inspect/plugin-quicktime.xml:
	  * docs/plugins/inspect/plugin-real.xml:
	  * docs/plugins/inspect/plugin-rfbsrc.xml:
	  * docs/plugins/inspect/plugin-sdp.xml:
	  * docs/plugins/inspect/plugin-sndfile.xml:
	  * docs/plugins/inspect/plugin-soup.xml:
	  * docs/plugins/inspect/plugin-speexresample.xml:
	  * docs/plugins/inspect/plugin-stereo.xml:
	  * docs/plugins/inspect/plugin-switch.xml:
	  * docs/plugins/inspect/plugin-vcdsrc.xml:
	  * docs/plugins/inspect/plugin-videocrop.xml:
	  * docs/plugins/inspect/plugin-videoparse.xml:
	  * docs/plugins/inspect/plugin-vmnc.xml:
	  * docs/plugins/inspect/plugin-x264.xml:
	  * docs/plugins/inspect/plugin-y4menc.xml:
	  Add missing inspection files to CVS.

2007-11-20 07:47:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add speexresample to the docs and while at that do a make update.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-equalizer.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gio.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  * gst/speexresample/gstspeexresample.h:
	  Add speexresample to the docs and while at that do a make update.

2007-11-20 07:30:30 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/speexresample/gstspeexresample.c: If the resampler gives less output samples than expected adjust the output buff...
	  Original commit message from CVS:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_fix_output_buffer), (gst_speex_resample_process):
	  If the resampler gives less output samples than expected
	  adjust the output buffer and print a warning.

2007-11-20 07:02:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add resample element based on the Speex resampling algorithm.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/speexresample/arch.h:
	  * gst/speexresample/fixed_generic.h:
	  * gst/speexresample/gstspeexresample.c:
	  (gst_speex_resample_base_init), (gst_speex_resample_class_init),
	  (gst_speex_resample_init), (gst_speex_resample_start),
	  (gst_speex_resample_stop), (gst_speex_resample_get_unit_size),
	  (gst_speex_resample_transform_caps),
	  (gst_speex_resample_init_state), (gst_speex_resample_update_state),
	  (gst_speex_resample_reset_state), (gst_speex_resample_parse_caps),
	  (gst_speex_resample_transform_size), (gst_speex_resample_set_caps),
	  (gst_speex_resample_event), (gst_speex_resample_check_discont),
	  (gst_speex_resample_process), (gst_speex_resample_transform),
	  (gst_speex_resample_set_property),
	  (gst_speex_resample_get_property), (plugin_init):
	  * gst/speexresample/gstspeexresample.h:
	  * gst/speexresample/resample.c: (speex_alloc), (speex_realloc),
	  (speex_free), (compute_func), (main), (sinc), (cubic_coef),
	  (resampler_basic_direct_single), (resampler_basic_direct_double),
	  (resampler_basic_interpolate_single),
	  (resampler_basic_interpolate_double), (update_filter),
	  (speex_resampler_init), (speex_resampler_init_frac),
	  (speex_resampler_destroy), (speex_resampler_process_native),
	  (speex_resampler_process_float), (speex_resampler_process_int),
	  (speex_resampler_process_interleaved_float),
	  (speex_resampler_process_interleaved_int),
	  (speex_resampler_set_rate), (speex_resampler_get_rate),
	  (speex_resampler_set_rate_frac), (speex_resampler_get_ratio),
	  (speex_resampler_set_quality), (speex_resampler_get_quality),
	  (speex_resampler_set_input_stride),
	  (speex_resampler_get_input_stride),
	  (speex_resampler_set_output_stride),
	  (speex_resampler_get_output_stride), (speex_resampler_skip_zeros),
	  (speex_resampler_reset_mem), (speex_resampler_strerror):
	  * gst/speexresample/speex_resampler.h:
	  * gst/speexresample/speex_resampler_float.c:
	  * gst/speexresample/speex_resampler_int.c:
	  * gst/speexresample/speex_resampler_wrapper.h:
	  Add resample element based on the Speex resampling algorithm.

2007-11-19 22:09:36 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	  Fixed buffer strip (safer wil pull and after seek).
	  Original commit message from CVS:
	  Fixed buffer strip (safer wil pull and after seek).

2007-11-19 20:30:19 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/equalizer/: Activate preset iface and upload two presets here.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer10bands.c:
	  * gst/equalizer/gstiirequalizer3bands.c:
	  Activate preset iface and upload two presets here.

2007-11-19 13:05:23 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	  Strip out in pull mode also. Seek and Query functions added.
	  Original commit message from CVS:
	  Strip out in pull mode also. Seek and Query functions added.

2007-11-18 21:06:51 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparsetypes.h:
	  Strip out metadata chunks.
	  Original commit message from CVS:
	  Strip out metadata chunks.

2007-11-16 11:11:06 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Als use AG_GST_PLUGIN_DOCS (see #344039).
	  Original commit message from CVS:
	  * configure.ac:
	  Als use AG_GST_PLUGIN_DOCS (see #344039).

2007-11-15 19:03:33 +0000  Wai-Ming Ho <webregbox@yahoo.co.uk>

	  gst/mpegtsparse/mpegtspacketizer.c: Ensure that the plugin does not crash when the property pat-info is queried befor...
	  Original commit message from CVS:
	  Patch by: Wai-Ming Ho <webregbox at yahoo dot co dot uk>
	  * gst/mpegtsparse/mpegtspacketizer.c: (foreach_stream_clear),
	  (remove_all), (mpegts_packetizer_clear):
	  Ensure that the plugin does not crash when the property pat-info is
	  queried before a PAT is available. It also ensures that the PAT info is
	  cleared when the changing from PLAYING to READY.
	  Fixes #487892.

2007-11-15 18:53:56 +0000  Wouter Paesen <wouter@blue-gate.be>

	  ext/soundtouch/gstpitch.cc: Handle seeking correctly. Fixes #461068.
	  Original commit message from CVS:
	  Patch by: Wouter Paesen <wouter at blue-gate dot be>
	  * ext/soundtouch/gstpitch.cc:
	  Handle seeking correctly. Fixes #461068.

2007-11-15 18:41:31 +0000  Michael Kötter <m.koetter@oraise.de>

	  ext/alsaspdif/alsaspdifsink.c: Fix sample rate and clocking.
	  Original commit message from CVS:
	  Patch by: Michael Kötter <m dot koetter at oraise dot de>
	  * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_set_caps),
	  (alsaspdifsink_get_time), (alsaspdifsink_open),
	  (alsaspdifsink_set_params), (alsaspdifsink_delay), (plugin_init):
	  Fix sample rate and clocking.
	  Remove buffer_time and period_time as this seems to break on some
	  hardware. Fixes #485462.

2007-11-15 17:26:25 +0000  Wouter Cloetens <wouter@mind.be>

	  Added HTTP source based on libsoup. Fixes #497020.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter at mind dot be>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/soup/Makefile.am:
	  * ext/soup/gstsouphttpsrc.c: (_do_init),
	  (gst_souphttp_src_base_init), (gst_souphttp_src_class_init),
	  (gst_souphttp_src_init), (gst_souphttp_src_dispose),
	  (gst_souphttp_src_set_property), (gst_souphttp_src_get_property),
	  (gst_souphttp_src_create), (gst_souphttp_src_start),
	  (gst_souphttp_src_stop), (gst_souphttp_src_unlock),
	  (gst_souphttp_src_set_location), (soup_got_chunk), (soup_response),
	  (soup_session_close), (plugin_init):
	  * ext/soup/gstsouphttpsrc.h:
	  Added HTTP source based on libsoup. Fixes #497020.

2007-11-15 15:32:47 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/gstrfbsrc.c: don't forget to handle the offset's
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  don't forget to handle the offset's
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  precalculate some many used values

2007-11-15 08:28:29 +0000  Armando Taffarel Neto <taffarel@solis.coop.br>

	  gst/librfb/gstrfbsrc.c: Set the timestamp for the output buffers
	  Original commit message from CVS:
	  patch by: Armando Taffarel Neto <taffarel@solis.coop.br>
	  * gst/librfb/gstrfbsrc.c:
	  Set the timestamp for the output buffers

2007-11-14 17:03:18 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/spectrum.c: Fix spectrum unit test for the latest spectrum changes.
	  Original commit message from CVS:
	  * tests/check/elements/spectrum.c: (GST_START_TEST):
	  Fix spectrum unit test for the latest spectrum changes.

2007-11-12 21:07:31 +0000  René Stadler <mail@renestadler.de>

	  gst/replaygain/rganalysis.c: Avoid slowdown from denormals when processing near-silence input data.
	  Original commit message from CVS:
	  Patch by: René Stadler <mail at renestadler dot de>
	  * gst/replaygain/rganalysis.c: (yule_filter):
	  Avoid slowdown from denormals when processing near-silence input data.
	  Spotted by Gabriel Bouvigne. Fixes #494499.

2007-11-12 19:22:24 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/flv/gstflvparse.c: Add mapping for Nellymoser ASAO audio codec.
	  Original commit message from CVS:
	  * gst/flv/gstflvparse.c:
	  Add mapping for Nellymoser ASAO audio codec.
	  (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Make sure we
	  actually have data to read at the end of the tag. This avoids trying
	  to allocate negative buffers.

2007-11-12 17:27:03 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/README:
	  Added a design proposal from metadata parse and mux.
	  Original commit message from CVS:
	  Added a design proposal from metadata parse and mux.

2007-11-11 21:12:10 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/: Change the meaning of the magnitude values given in the
	  Original commit message from CVS:
	  * gst/equalizer/demo.c: (draw_spectrum):
	  * gst/spectrum/demo-audiotest.c: (draw_spectrum):
	  * gst/spectrum/demo-osssrc.c: (draw_spectrum):
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init):
	  Change the meaning of the magnitude values given in the
	  GstMessages by spectrum to decibel instead of
	  decibel+threshold.

2007-11-11 13:55:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/: And continue to update docs. Also include some sample code for the n-band equalizer in the docs.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer10bands.c:
	  * gst/equalizer/gstiirequalizer3bands.c:
	  * gst/equalizer/gstiirequalizernbands.c:
	  And continue to update docs. Also include some sample code
	  for the n-band equalizer in the docs.

2007-11-11 12:54:31 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/: Update docs and property ranges to the real values.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer10bands.c:
	  (gst_iir_equalizer_10bands_class_init):
	  * gst/equalizer/gstiirequalizer3bands.c:
	  (gst_iir_equalizer_3bands_class_init):
	  * gst/equalizer/gstiirequalizernbands.c:
	  Update docs and property ranges to the real values.

2007-11-09 17:27:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/spectrum/gstspectrum.c: Now do the scaling right for real. Also initialize a previously uninitialized variable.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c:
	  Now do the scaling right for real. Also initialize a previously
	  uninitialized variable.

2007-11-09 15:53:13 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/metadataparsexmp.c:
	  Extracting more detailed info from XMP.
	  Original commit message from CVS:
	  Extracting more detailed info from XMP.

2007-11-08 15:56:46 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/equalizer/demo.c: Make default volume a bit less. Improve layout by giving more space to the slider with big-numb...
	  Original commit message from CVS:
	  * gst/equalizer/demo.c:
	  Make default volume a bit less. Improve layout by giving more space to
	  the slider with big-numbers and enable fill.

2007-11-07 16:47:32 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Require GIO >= 0.1.2 and adjust unit test for an API change.
	  Original commit message from CVS:
	  * configure.ac:
	  * tests/check/pipelines/gio.c: (GST_START_TEST):
	  Require GIO >= 0.1.2 and adjust unit test for an API change.

2007-11-07 15:36:59 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/icles/equalizer-test.c: Fix gain ranges for the latest equalizer changes.
	  Original commit message from CVS:
	  * tests/icles/equalizer-test.c: (do_slider_fiddling):
	  Fix gain ranges for the latest equalizer changes.

2007-11-07 15:18:54 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/gio/gstgio.h: Add macro to check if a stream supports seeking.
	  Original commit message from CVS:
	  * ext/gio/gstgio.h:
	  Add macro to check if a stream supports seeking.
	  * ext/gio/Makefile.am:
	  * ext/gio/gstgiobasesink.c: (gst_gio_base_sink_base_init),
	  (gst_gio_base_sink_class_init), (gst_gio_base_sink_init),
	  (gst_gio_base_sink_finalize), (gst_gio_base_sink_start),
	  (gst_gio_base_sink_stop), (gst_gio_base_sink_unlock),
	  (gst_gio_base_sink_unlock_stop), (gst_gio_base_sink_event),
	  (gst_gio_base_sink_render), (gst_gio_base_sink_query),
	  (gst_gio_base_sink_set_stream):
	  * ext/gio/gstgiobasesink.h:
	  * ext/gio/gstgiobasesrc.c: (gst_gio_base_src_base_init),
	  (gst_gio_base_src_class_init), (gst_gio_base_src_init),
	  (gst_gio_base_src_finalize), (gst_gio_base_src_start),
	  (gst_gio_base_src_stop), (gst_gio_base_src_get_size),
	  (gst_gio_base_src_is_seekable), (gst_gio_base_src_unlock),
	  (gst_gio_base_src_unlock_stop), (gst_gio_base_src_check_get_range),
	  (gst_gio_base_src_create), (gst_gio_base_src_set_stream):
	  * ext/gio/gstgiobasesrc.h:
	  Refactor common GIO functions to GstGioBaseSink and GstGioBaseSrc
	  base classes that only require a GInputStream or GOutputStream to
	  work.
	  * ext/gio/gstgiosink.c: (gst_gio_sink_base_init),
	  (gst_gio_sink_class_init), (gst_gio_sink_init),
	  (gst_gio_sink_finalize), (gst_gio_sink_start):
	  * ext/gio/gstgiosink.h:
	  * ext/gio/gstgiosrc.c: (gst_gio_src_base_init),
	  (gst_gio_src_class_init), (gst_gio_src_init),
	  (gst_gio_src_finalize), (gst_gio_src_start):
	  * ext/gio/gstgiosrc.h:
	  Use the newly created base classes here.
	  * ext/gio/gstgio.c: (plugin_init):
	  * ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_base_init),
	  (gst_gio_stream_sink_class_init), (gst_gio_stream_sink_init),
	  (gst_gio_stream_sink_finalize), (gst_gio_stream_sink_set_property),
	  (gst_gio_stream_sink_get_property):
	  * ext/gio/gstgiostreamsink.h:
	  * ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_base_init),
	  (gst_gio_stream_src_class_init), (gst_gio_stream_src_init),
	  (gst_gio_stream_src_finalize), (gst_gio_stream_src_set_property),
	  (gst_gio_stream_src_get_property):
	  * ext/gio/gstgiostreamsrc.h:
	  Implement GstGioStreamSink and GstGioStreamSrc that have a property
	  to set the GInputStream/GOutputStream that should be used.
	  * tests/check/Makefile.am:
	  * tests/check/pipelines/.cvsignore:
	  * tests/check/pipelines/gio.c: (message_handler), (GST_START_TEST),
	  (gio_testsuite), (main):
	  Add unit test for giostreamsrc and giostreamsink.

2007-11-07 11:48:09 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/gio/gstgio.c: Remove nowadays unnecessary workaround for a crash.
	  Original commit message from CVS:
	  * ext/gio/gstgio.c: (plugin_init):
	  Remove nowadays unnecessary workaround for a crash.
	  * ext/gio/gstgiosink.c: (gst_gio_sink_finalize),
	  (gst_gio_sink_start), (gst_gio_sink_stop),
	  (gst_gio_sink_unlock_stop):
	  * ext/gio/gstgiosink.h:
	  * ext/gio/gstgiosrc.c: (gst_gio_src_finalize), (gst_gio_src_start),
	  (gst_gio_src_stop), (gst_gio_src_unlock_stop):
	  * ext/gio/gstgiosrc.h:
	  Make the finalize function safer, clean up everything that could stay
	  around.
	  Reset the cancellable instead of creating a new one after cancelling
	  some operation.
	  Don't store the GFile in the element, it's only necessary for creating
	  the streams.

2007-11-06 12:23:35 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/spectrum/demo-audiotest.c: Use autoaudiosink instead of alsasink and use a sine wave.
	  Original commit message from CVS:
	  * gst/spectrum/demo-audiotest.c: (main):
	  Use autoaudiosink instead of alsasink and use a sine wave.
	  * gst/spectrum/gstspectrum.c:
	  Fix the magnitude calculation.

2007-11-04 11:04:28 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  gst-libs/gst/dshow/gstdshowfakesink.*: Fix crasher in constructor due to the base class's constructor not necessarily...
	  Original commit message from CVS:
	  Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>
	  * gst-libs/gst/dshow/gstdshowfakesink.cpp:
	  (CDshowFakeSink.CDshowFakeSink):
	  * gst-libs/gst/dshow/gstdshowfakesink.h: (CDshowFakeSink.m_hres):
	  Fix crasher in constructor due to the base class's constructor
	  not necessarily being NULL-safe (depends on the SDK version used
	  apparently; #492406).
	  * sys/dshowsrcwrapper/gstdshowaudiosrc.c: (gst_dshowaudiosrc_prepare):
	  * sys/dshowsrcwrapper/gstdshowvideosrc.c: (gst_dshowvideosrc_set_caps):
	  Fix a couple of MSVC compiler warnings (#492406).

2007-11-03 19:50:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/: Allow setting 0 as bandwidth and handle this correctly.
	  Original commit message from CVS:
	  * gst/equalizer/demo.c: (main):
	  * gst/equalizer/gstiirequalizer.c:
	  (gst_iir_equalizer_band_class_init), (setup_filter):
	  Allow setting 0 as bandwidth and handle this correctly.
	  Also handle a bandwidth of rate/2 properly.
	  * gst/equalizer/gstiirequalizernbands.c:
	  (gst_iir_equalizer_nbands_class_init):
	  Make it possible to generate a N-band equalizer with 1 bands. The
	  previous limit of 2 was caused by a nowadays replaced calculation
	  doing a division by zero if number of bands was 1.

2007-11-02 21:45:38 +0000  Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

	  gst/rtpmanager/gstrtpsession.c: Fix bad function signatures (#492798).
	  Original commit message from CVS:
	  Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>
	  * gst/rtpmanager/gstrtpsession.c:
	  Fix bad function signatures (#492798).

2007-11-02 16:50:42 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparseexif.c:
	* ext/metadata/metadataparseexif.h:
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparseiptc.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparseutil.c:
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadataparsexmp.c:
	* ext/metadata/metadataparsexmp.h:
	  Added support for PNG/XMP. Indentation. And fixed pull mode to parse the file.
	  Original commit message from CVS:
	  Added support for PNG/XMP. Indentation. And fixed pull mode to parse the file.

2007-11-02 12:03:04 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadataparse.c:
	  Now metadataparse works in push or pull mode.
	  Original commit message from CVS:
	  Now metadataparse works in push or pull mode.

2007-11-01 16:04:29 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/metadata/Makefile.am:
	* ext/metadata/metadataparseexif.c:
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparseutil.c:
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadataparsexmp.c:
	* ext/metadata/metadataparsexmp.h:
	  Some XMP stuff added.
	  Original commit message from CVS:
	  Some XMP stuff added.

2007-10-31 16:21:02 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparseexif.c:
	* ext/metadata/metadataparseexif.h:
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparseiptc.h:
	* ext/metadata/metadataparsexmp.c:
	* ext/metadata/metadataparsexmp.h:
	  Now sending iptc tag in whole chunk. Ready to also send exif and xmp in the same way (look at bug #486659).
	  Original commit message from CVS:
	  Now sending iptc tag in whole chunk. Ready to also send exif and xmp in the same way (look at bug #486659).

2007-10-31 14:44:55 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/rfbdecoder.c: Some refactoring in RAW encoding
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c:
	  Some refactoring in RAW encoding

2007-10-31 14:09:25 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/: Added copyrect encoding
	  Original commit message from CVS:
	  * gst/librfb/d3des.h:
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/gstrfbsrc.h:
	  * gst/librfb/rfbbuffer.h:
	  * gst/librfb/rfbcontext.h:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  * gst/librfb/rfbutil.h:
	  * gst/librfb/vncauth.h:
	  Added copyrect encoding

2007-10-31 13:31:08 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/camswclient.c: Warn on failed write.
	  Original commit message from CVS:
	  * sys/dvb/camswclient.c:
	  Warn on failed write.

2007-10-30 21:37:49 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/: Add small demo application based on the spectrum demo applications that gets white noise as input, pu...
	  Original commit message from CVS:
	  * gst/equalizer/Makefile.am:
	  * gst/equalizer/demo.c: (on_window_destroy), (on_configure_event),
	  (on_gain_changed), (on_bandwidth_changed), (on_freq_changed),
	  (draw_spectrum), (message_handler), (main):
	  Add small demo application based on the spectrum demo applications
	  that gets white noise as input, pushes it through an equalizer and
	  paints the spectrum. For every equalizer band it's possible to set
	  gain, bandwidth and frequency.
	  * gst/equalizer/gstiirequalizer.c: (setup_filter):
	  Add some guarding against too large or too small frequencies and
	  bandwidths. Also improve debugging a bit.

2007-10-30 21:18:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/gstiirequalizer.c: Replace filters with a bit better filters for which we can actually find documentati...
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c:
	  (gst_iir_equalizer_band_set_property),
	  (gst_iir_equalizer_band_get_property),
	  (gst_iir_equalizer_band_class_init), (arg_to_scale),
	  (setup_filter), (gst_iir_equalizer_compute_frequencies):
	  Replace filters with a bit better filters for which we can actually
	  find documentation, which don't change anything on zero gain, etc.
	  Make the frequency property of the bands writable, rename the
	  band-width property to bandwidth and change the	meaning to the
	  frequency difference between bandedges, change the meaning of the
	  gain property to dB instead of a weird scale between -1	and 1 that
	  has no real meaning.

2007-10-30 20:55:27 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  sys/dvb/dvbbasebin.c: Fix the build.
	  Original commit message from CVS:
	  * sys/dvb/dvbbasebin.c:
	  Fix the build.

2007-10-30 18:21:22 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/metadata/.gitignore:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	  Changed kclass to "Parser/Extracter/Metadata", changed caps to "image/jpeg, tags-extract=true/false" and changed prio...
	  Original commit message from CVS:
	  Changed kclass to "Parser/Extracter/Metadata", changed caps to "image/jpeg, tags-extract=true/false" and changed priority to GST_RANK_PRIMARY+1. Also, srcpad can only work in push mode until fixed to also work in pull mode.

2007-10-30 12:49:04 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/Makefile.am:
	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadata.c:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparseexif.c:
	* ext/metadata/metadataparseexif.h:
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparseiptc.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsexmp.c:
	* ext/metadata/metadataparsexmp.h:
	  Created new plugin ('medadata') and element ('metadataparse') that extract metadata from images (look at bug #486659).
	  Original commit message from CVS:
	  Created new plugin ('medadata') and element ('metadataparse') that extract metadata from images (look at bug #486659).

2007-10-29 15:54:04 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/dvbbasebin.c: Uncomment the line that sets the pid filter. Wrong way to work-around driver issues.
	  Original commit message from CVS:
	  * sys/dvb/dvbbasebin.c:
	  Uncomment the line that sets the pid filter. Wrong way to
	  work-around driver issues.

2007-10-28 15:22:06 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faac/gstfaac.c: Fix bitrate ranges and change enum nick for low complexity profile from LOW to LC for consistency...
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_profile_get_type),
	  (gst_faac_class_init), (gst_faac_init):
	  Fix bitrate ranges and change enum nick for low complexity
	  profile from LOW to LC for consistency (#490060).

2007-10-27 16:04:48 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/interleave/interleave.c: Let's not call every request pad we create "sink%d", that'll create problems if there's ...
	  Original commit message from CVS:
	  * gst/interleave/interleave.c: (gst_interleave_request_new_pad):
	  Let's not call every request pad we create "sink%d", that'll
	  create problems if there's to be more than one pad. Fixes #490682.
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/interleave.c:
	  Add unit test for the above.

2007-10-27 08:20:59 +0000  Julien Moutte <julien@moutte.net>

	  gst/mpeg4videoparse/mpeg4videoparse.*: Improved version not damaging headers using a simple state machine.
	  Original commit message from CVS:
	  2007-10-27  Julien MOUTTE  <julien@moutte.net>
	  * gst/mpeg4videoparse/mpeg4videoparse.c:
	  (gst_mpeg4vparse_align),
	  (gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain),
	  (gst_mpeg4vparse_sink_setcaps), (gst_mpeg4vparse_sink_event),
	  (gst_mpeg4vparse_cleanup), (gst_mpeg4vparse_change_state),
	  (gst_mpeg4vparse_dispose), (gst_mpeg4vparse_base_init),
	  (gst_mpeg4vparse_class_init), (gst_mpeg4vparse_init),
	  (plugin_init):
	  * gst/mpeg4videoparse/mpeg4videoparse.h: Improved version not
	  damaging headers using a simple state machine.

2007-10-26 17:18:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  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-10-26 16:08:04 +0000  Julien Moutte <julien@moutte.net>

	  Add a simple MPEG4 ES parser.
	  Original commit message from CVS:
	  2007-10-26  Julien MOUTTE  <julien@moutte.net>
	  * configure.ac:
	  * gst/mpeg4videoparse/Makefile.am:
	  * gst/mpeg4videoparse/mpeg4videoparse.c:
	  (gst_mpeg4vparse_drain),
	  (gst_mpeg4vparse_chain), (gst_mpeg4vparse_sink_setcaps),
	  (gst_mpeg4vparse_sink_event), (gst_mpeg4vparse_cleanup),
	  (gst_mpeg4vparse_change_state), (gst_mpeg4vparse_dispose),
	  (gst_mpeg4vparse_base_init), (gst_mpeg4vparse_class_init),
	  (gst_mpeg4vparse_init), (plugin_init):
	  * gst/mpeg4videoparse/mpeg4videoparse.h: Add a simple MPEG4 ES
	  parser.

2007-10-25 23:42:52 +0000  David Schleef <ds@schleef.org>

	  Improve documentation, write some tests for multifilesrc/sink for upcoming ->good review.
	  Original commit message from CVS:
	  * gst/multifile/Makefile.am:
	  * gst/multifile/gstmultifilesink.c:
	  * gst/multifile/gstmultifilesrc.c:
	  * tests/check/Makefile.am:
	  * tests/check/elements/multifile.c:
	  Improve documentation, write some tests for multifilesrc/sink
	  for upcoming ->good review.

2007-10-23 13:08:26 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Actually use the code-rate-hp parameter for DVB-S.
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c:
	  Actually use the code-rate-hp parameter for DVB-S.
	  It turns out setting to AUTO does not always work (
	  especially in diseq situations). Set by default to
	  FEC_AUTO.

2007-10-22 15:45:49 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvparse.c: Don't emit no-more-pads for single pad scenarios as the header is definitely not reliable. We ...
	  Original commit message from CVS:
	  2007-10-22  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video), (gst_flv_parse_tag_type): Don't
	  emit no-more-pads for single pad scenarios as the header
	  is definitely not reliable. We emit them for 2 pads scenarios
	  though to speed up media discovery.

2007-10-19 16:20:53 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/dvbbasebin.c: Added proxy property of diseqc-source
	  Original commit message from CVS:
	  * sys/dvb/dvbbasebin.c:
	  Added proxy property of diseqc-source

2007-10-18 06:20:21 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/gstiirequalizer.c: Add a missing break.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c:
	  (gst_iir_equalizer_band_set_property):
	  Add a missing break.

2007-10-18 06:14:42 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/equalizer/gstiirequalizer.*: Move bandwidth property to the separate bands and add float64 support.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c:
	  (gst_iir_equalizer_band_set_property),
	  (gst_iir_equalizer_band_get_property),
	  (gst_iir_equalizer_band_class_init), (gst_iir_equalizer_band_init),
	  (gst_iir_equalizer_band_get_type), (gst_iir_equalizer_class_init),
	  (setup_filter), (gst_iir_equalizer_setup):
	  * gst/equalizer/gstiirequalizer.h:
	  Move bandwidth property to the separate bands and add float64 support.

2007-10-17 14:43:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/cdaudio/Makefile.am: Add another missing GST_LIBS.
	  Original commit message from CVS:
	  * ext/cdaudio/Makefile.am:
	  Add another missing GST_LIBS.

2007-10-17 14:33:03 +0000  Richard Hult <richard@imendio.com>

	  gst/dvdspu/Makefile.am: Fix LIBS - we need to link against libgstreamer.
	  Original commit message from CVS:
	  Patch by: Richard Hult <richard imendio com>
	  * gst/dvdspu/Makefile.am:
	  Fix LIBS - we need to link against libgstreamer.

2007-10-17 10:33:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  sys/dvb/: Fix some warnings.
	  Original commit message from CVS:
	  * sys/dvb/camapplication.c:
	  * sys/dvb/camresourcemanager.c:
	  Fix some warnings.

2007-10-16 19:24:31 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/rfbdecoder.c: Add the set encodings client message
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c:
	  Add the set encodings client message

2007-10-16 18:33:44 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/: remove the rfbbytestream dead code
	  Original commit message from CVS:
	  * gst/librfb/Makefile.am:
	  * gst/librfb/rfb.h:
	  * gst/librfb/rfbbytestream.c:
	  * gst/librfb/rfbbytestream.h:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  remove the rfbbytestream dead code

2007-10-16 17:38:05 +0000  Alessandro Decina <alessandro@nnva.org>

	  sys/dvb/: Integrate SoC work done by Alessandro for the Freevo project.
	  Original commit message from CVS:
	  patch by: Alessandro Decina
	  * sys/dvb/Makefile.am:
	  * sys/dvb/cam.c:
	  * sys/dvb/cam.h:
	  * sys/dvb/camapplication.c:
	  * sys/dvb/camapplication.h:
	  * sys/dvb/camapplicationinfo.c:
	  * sys/dvb/camapplicationinfo.h:
	  * sys/dvb/camconditionalaccess.c:
	  * sys/dvb/camconditionalaccess.h:
	  * sys/dvb/camdevice.c:
	  * sys/dvb/camdevice.h:
	  * sys/dvb/camresourcemanager.c:
	  * sys/dvb/camresourcemanager.h:
	  * sys/dvb/camsession.c:
	  * sys/dvb/camsession.h:
	  * sys/dvb/camswclient.c:
	  * sys/dvb/camswclient.h:
	  * sys/dvb/camtransport.c:
	  * sys/dvb/camtransport.h:
	  * sys/dvb/camutils.c:
	  * sys/dvb/camutils.h:
	  * sys/dvb/dvbbasebin.c:
	  * sys/dvb/dvbbasebin.h:
	  * sys/dvb/gstdvb.c:
	  * sys/dvb/gstdvbsrc.c:
	  * sys/dvb/gstdvbsrc.h:
	  Integrate SoC work done by Alessandro for the Freevo project.
	  Adds cam support to the dvb stack in GStreamer and a new
	  element (actually a bin) called dvbbasebin that integrates
	  dvbsrc and mpegtsparse to a) handle decryption and b) allow
	  acquiring multiple channels on same transponder without
	  knowing pid numbers.

2007-10-16 16:51:23 +0000  Alessandro Decina <alessandro@nnva.org>

	  gst/mpegtsparse/: Add request pad for getting the full transport stream coming in.
	  Original commit message from CVS:
	  patch by: Alessandro Decina
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtsparse.c:
	  * gst/mpegtsparse/mpegtsparse.h:
	  Add request pad for getting the full transport stream coming in.

2007-10-14 17:22:18 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Update the highest allowed neon version from 0.26.99 to 0.27.99.
	  Original commit message from CVS:
	  * configure.ac:
	  Update the highest allowed neon version from 0.26.99 to 0.27.99.
	  No code changes are required to work with the newest neon version.

2007-10-10 11:44:01 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Require core CVS.  This is implicit in the -base CVS requirement already, so we might just well spell i...
	  Original commit message from CVS:
	  * configure.ac:
	  Require core CVS.  This is implicit in the -base CVS
	  requirement already, so we might just well spell it
	  out.  Also, we do need at least 0.10.14 for
	  gst_element_class_set_details_simple().  Make check
	  for gmyth a bit more restrictive so things don't break
	  if the next version changes API.
	  * ext/alsaspdif/alsaspdifsink.c:
	  Work around alsa alloca macros triggering 'always evaluates to
	  true' warnings with gcc-4.2 and fix compilation with gcc-4.2.
	  Also don't leak the device string.
	  * ext/mpeg2enc/gstmpeg2enc.cc:
	  * ext/soundtouch/gstpitch.cc:
	  * gst/modplug/gstmodplug.cc:
	  Fix compilation with g++4.2 and -Wall -Werror (also needs plugin
	  define fix from core CVS). Fixes #462737.

2007-10-09 10:01:39 +0000  Laurent Glayal <spglegle@yahoo.fr>

	  gst/rtpmanager/gstrtpbin.c: Fix memleak. Fixes #484990.
	  Original commit message from CVS:
	  Patch by: Laurent Glayal <spglegle at yahoo dot fr>
	  * gst/rtpmanager/gstrtpbin.c: (create_stream),
	  (gst_rtp_bin_class_init):
	  Fix memleak. Fixes #484990.

2007-10-08 17:46:45 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/: Fix compiler warnings shown by Forte.
	  Original commit message from CVS:
	  * gst/librfb/rfbbuffer.c: (rfb_buffer_new_and_alloc):
	  * gst/librfb/rfbbuffer.h:
	  * gst/librfb/rfbdecoder.c: (rfb_socket_get_buffer):
	  * gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_chain):
	  * gst/nsf/nes6502.c: (nes6502_execute):
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
	  * gst/real/gstrealvideodec.c: (open_library):
	  * gst/real/gstrealvideodec.h:
	  * gst/rtpmanager/gstrtpsession.c: (create_recv_rtp_sink),
	  (create_recv_rtcp_sink), (create_send_rtp_sink):
	  Fix compiler warnings shown by Forte.

2007-10-08 10:39:35 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Fix caps refcounting for payload maps.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (get_pt_map),
	  (gst_rtp_bin_clear_pt_map), (gst_rtp_bin_class_init):
	  Fix caps refcounting for payload maps.
	  When clearing payload maps, also clear sessions and streams payload
	  maps.
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps),
	  (gst_rtp_pt_demux_clear_pt_map), (gst_rtp_pt_demux_chain),
	  (find_pad_for_pt):
	  Implement clearing the payload map.
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_event_send_rtp_sink):
	  Forward flush events instead of leaking them.
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  (gst_rtp_ssrc_demux_rtcp_sink_event):
	  Correctly refcount events before pushing them.

2007-10-08 06:07:22 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/gio/gstgio.c: Use GIO function to get a list of supported URI schemes instead of hard coding something.
	  Original commit message from CVS:
	  * ext/gio/gstgio.c: (gst_gio_get_supported_protocols):
	  Use GIO function to get a list of supported URI schemes instead of
	  hard coding something.

2007-10-05 17:26:14 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/rtpsession.c: When reconsidering RTCP timeouts, set the next timeout against the last report time inst...
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsession.c: (rtp_session_next_timeout),
	  When reconsidering RTCP timeouts, set the next timeout against the last
	  report time instead of the current clock time so that we don't end up
	  reconsidering forever.

2007-10-05 12:07:37 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Only peek at the tail element instead of popping it off, which allows us to grea...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	  Only peek at the tail element instead of popping it off, which allows
	  us to greatly simplify things when the tail element changes.
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_event_recv_rtp_sink):
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  (gst_rtp_ssrc_demux_sink_event):
	  Forward FLUSH events instead of leaking them.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	  (calculate_skew), (rtp_jitter_buffer_insert):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Remove the tail-changed callback in favour of a simple boolean when we
	  insert a buffer in the queue.
	  Add method to peek the tail of the buffer.

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-10-05 08:05:14 +0000  Wai-Ming Ho <webregbox@yahoo.co.uk>

	  gst/mpegtsparse/mpegtspacketizer.c: Don't skip PAT with version number 0. Fixes #483400.
	  Original commit message from CVS:
	  Patch by: Wai-Ming Ho <webregbox at yahoo dot co dot uk>
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  (mpegts_packetizer_stream_new):
	  Don't skip PAT with version number 0. Fixes #483400.
	  * gst/mpegtsparse/mpegtsparse.c: (mpegts_parse_apply_pat):
	  Make all values above 0 mark a referenced program as they can be
	  incremented and only 1 had marked a referenced program before, causing
	  actually referenced programs to be unreferenced.

2007-10-02 10:29:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/sdp/gstsdpdemux.h: Change signature of pt to fix compilation on some platforms.
	  Original commit message from CVS:
	  * gst/sdp/gstsdpdemux.h:
	  Change signature of pt to fix compilation on some platforms.

2007-10-02 10:27:45 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Remove some old unused variables.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_flush_start),
	  (gst_rtp_jitter_buffer_flush_stop),
	  (gst_rtp_jitter_buffer_change_state), (apply_offset),
	  (gst_rtp_jitter_buffer_loop):
	  Remove some old unused variables.
	  Don't add the latency to the skew corrected timestamp, latency is only
	  used to sync against the clock.
	  Improve debugging.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init),
	  (rtp_jitter_buffer_reset_skew), (calculate_skew):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Handle case where server timestamp goes backwards or wildly jumps by
	  temporarily pausing the skew correction.
	  Improve debugging.

2007-10-02 10:12:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/sdp/Makefile.am: Forgot to commit makefile.
	  Original commit message from CVS:
	  * gst/sdp/Makefile.am:
	  Forgot to commit makefile.

2007-10-02 07:43:57 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/gio/gstgiosink.c: Update to API changes in GIO.
	  Original commit message from CVS:
	  * ext/gio/gstgiosink.c: (gst_gio_sink_start):
	  Update to API changes in GIO.

2007-10-01 14:01:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/sdp/gstsdpdemux.c: Use new function in -base to get the default clock-rate.
	  Original commit message from CVS:
	  * gst/sdp/gstsdpdemux.c: (gst_sdp_demux_media_to_caps):
	  Use new function in -base to get the default clock-rate.

2007-10-01 11:43:09 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Added SDP demuxer element. Fixes #426657.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/sdp/gstsdpdemux.c: (_do_init), (gst_sdp_demux_base_init),
	  (gst_sdp_demux_class_init), (gst_sdp_demux_init),
	  (gst_sdp_demux_finalize), (gst_sdp_demux_set_property),
	  (gst_sdp_demux_get_property), (find_stream_by_id),
	  (find_stream_by_pt), (find_stream_by_udpsrc), (find_stream),
	  (gst_sdp_demux_stream_free), (gst_sdp_demux_create_stream),
	  (gst_sdp_demux_cleanup), (get_default_rate_for_pt),
	  (gst_sdp_demux_parse_rtpmap), (gst_sdp_demux_media_to_caps),
	  (new_session_pad), (request_pt_map), (gst_sdp_demux_do_stream_eos),
	  (on_bye_ssrc), (on_timeout), (gst_sdp_demux_configure_manager),
	  (gst_sdp_demux_stream_configure_udp),
	  (gst_sdp_demux_stream_configure_udp_sink),
	  (gst_sdp_demux_combine_flows), (gst_sdp_demux_stream_push_event),
	  (gst_sdp_demux_handle_message), (gst_sdp_demux_start),
	  (gst_sdp_demux_sink_event), (gst_sdp_demux_sink_chain),
	  (gst_sdp_demux_change_state):
	  * gst/sdp/gstsdpdemux.h:
	  * gst/sdp/gstsdpelem.c: (plugin_init):
	  Added SDP demuxer element. Fixes #426657.

2007-10-01 09:21:19 +0000  mutex at runbox dot com <mutex@runbox.com>

	  gst/mpegtsparse/: Remove useless src pad that only results in not linked errors, fix a broken pointer dereference and...
	  Original commit message from CVS:
	  Patch by: mutex at runbox dot com
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  (mpegts_packetizer_parse_adaptation_field_control):
	  * gst/mpegtsparse/mpegtsparse.c: (mpegts_parse_base_init),
	  (mpegts_parse_init), (mpegts_parse_push):
	  * gst/mpegtsparse/mpegtsparse.h:
	  Remove useless src pad that only results in not linked errors,
	  fix a broken pointer dereference and make MAX_CONTINUITY constant
	  conform to the standard to stop outputting corrupted data.
	  Fixes #481276, #481279.

2007-09-29 19:36:34 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mythtv/gstmythtvsrc.c: Re-apply docs patch from #468039; fix tab.
	  Original commit message from CVS:
	  * ext/mythtv/gstmythtvsrc.c:
	  Re-apply docs patch from #468039; fix tab.
	  * gst/mpegtsparse/.cvsignore:
	  Ignore marshaller files generated at build time.

2007-09-29 07:01:55 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/gio/: Some minor cleanup and allow setting the location only when the element is not playing or paused.
	  Original commit message from CVS:
	  * ext/gio/gstgiosink.c: (gst_gio_sink_base_init),
	  (gst_gio_sink_set_property), (gst_gio_sink_render):
	  * ext/gio/gstgiosrc.c: (gst_gio_src_base_init),
	  (gst_gio_src_set_property):
	  Some minor cleanup and allow setting the location only when the
	  element is not playing or paused.

2007-09-29 05:26:54 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Update gio's pkg-config file name as currently in SVN.
	  Original commit message from CVS:
	  * configure.ac:
	  Update gio's pkg-config file name as currently in SVN.
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_set_location):
	  Remove special casing for a NULL query string. g_strjoin won't add
	  the separator if there's only one string.

2007-09-28 14:51:58 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Fix crasher in dispose.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (free_client):
	  Fix crasher in dispose.
	  * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
	  Handle cases where input buffers have no timestamps so that no clock
	  skew can be calculated, in this case interpollate timestamps based on
	  rtp timestamp and assume a 0 clock skew.

2007-09-28 11:17:35 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Remove jitter correction code, it's now in the lower level object.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c: (apply_latency),
	  (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_query):
	  Remove jitter correction code, it's now in the lower level object.
	  Use new -core method for doing a peer query.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init),
	  (calculate_skew), (rtp_jitter_buffer_insert):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Move jitter correction to the lowlevel jitterbuffer.
	  Increase the max window size.
	  When filling the window, already start estimating the skew using a
	  parabolic weighting factor so that we have a much better startup
	  behaviour that gets more accurate with the more samples we have.
	  Increase the default weighting factor for the steady state to get
	  smoother timestamps.

2007-09-28 11:07:34 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/neon/gstneonhttpsrc.c: Now that we require libneon >= 0.26 remove the neon 0.25 backward compatibility stuff. Als...
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_set_proxy),
	  (gst_neonhttp_src_send_request_and_redirect):
	  Now that we require libneon >= 0.26 remove the neon 0.25 backward
	  compatibility stuff. Also fix the default location.

2007-09-28 10:51:13 +0000  Wim Taymans <wim.taymans@gmail.com>

	  configure.ac: We require libneon >= 26 now for the query field in ne_uri.
	  Original commit message from CVS:
	  * configure.ac:
	  We require libneon >= 26 now for the query field in ne_uri.

2007-09-28 09:29:09 +0000  Wouter Cloetens <wouter@mind.be>

	  ext/neon/gstneonhttpsrc.*: Don't discard GET parameters from URL if existing.
	  Original commit message from CVS:
	  Patch by: Wouter Cloetens <wouter@mind.be>
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_dispose),
	  (gst_neonhttp_src_set_location),
	  (gst_neonhttp_src_send_request_and_redirect):
	  * ext/neon/gstneonhttpsrc.h:
	  Don't discard GET parameters from URL if existing.
	  Fixes #481200.

2007-09-27 14:52:58 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/gstrfbsrc.*: Added a property for incremental screen updates
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/gstrfbsrc.h:
	  Added a property for incremental screen updates

2007-09-27 13:02:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/xvid/gstxvidenc.*: Remove superfluous 'frame-encoded' signal (people can use an upstream identity's 'handoff' sig...
	  Original commit message from CVS:
	  * ext/xvid/gstxvidenc.c:
	  * ext/xvid/gstxvidenc.h:
	  Remove superfluous 'frame-encoded' signal (people can
	  use an upstream identity's 'handoff' signal or a pad
	  probe for this if they must know).

2007-09-27 10:06:23 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvparse.c: I got it wrong again, audio rate was not detected correctly in all cases.
	  Original commit message from CVS:
	  2007-09-27  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video): I got it wrong again, audio rate
	  was not detected correctly in all cases.

2007-09-26 20:08:28 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Fix cleanup crasher.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_dispose),
	  (gst_rtp_bin_finalize):
	  Fix cleanup crasher.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init),
	  (calculate_skew):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Dynamically adjust the skew calculation window so that we calculate it
	  over a period of around 2 seconds.

2007-09-26 16:44:42 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/gstrfbsrc.c: fix bug from generic/states.gdb
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  fix bug from generic/states.gdb

2007-09-26 16:30:50 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvparse.c: codec_data is needed for every tag not just the first one. (Fix a stupid bug i introduced with...
	  Original commit message from CVS:
	  2007-09-26  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video): codec_data is needed for every tag
	  not just the first one. (Fix a stupid bug i introduced without
	  testing)

2007-09-26 11:17:08 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvparse.c: Fix bit masks operations to be sure we detect the codec_tags and sample rates correctly.
	  Original commit message from CVS:
	  2007-09-26  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video): Fix bit masks operations to be
	  sure we detect the codec_tags and sample rates correctly.
	  Fix raw audio caps generation.

2007-09-24 10:53:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  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-09-22 18:31:17 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/LINGUAS: Added translations.
	  Original commit message from CVS:
	  * po/LINGUAS:
	  Added translations.

2007-09-22 18:29:49 +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:29:13 +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:28:30 +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:27:45 +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-21 18:00:24 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  docs/plugins/gst-plugins-bad-plugins.hierarchy: Update hierarchy.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  Update hierarchy.
	  * ext/gio/gstgiosink.h:
	  * ext/gio/gstgiosrc.h:
	  Mark private fields of the instance structs private.

2007-09-21 17:31:05 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  docs/plugins/: Add the GIO plugin to the docs and do a make update while doing that.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dfbvideosink.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-equalizer.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gio.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  Add the GIO plugin to the docs and do a make update
	  while doing that.
	  * ext/gio/gstgiosrc.c: (gst_gio_src_start):
	  Fix a small memleak.

2007-09-21 17:07:56 +0000  René Stadler <mail@renestadler.de>

	  Add a GIO/GVFS plugin with source and sink elements. This will only be enabled when --enable-experimental is given to...
	  Original commit message from CVS:
	  Patch by: René Stadler <mail at renestadler dot de>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/gio/Makefile.am:
	  * ext/gio/gstgio.c: (gst_gio_error), (gst_gio_seek),
	  (gst_gio_get_supported_protocols),
	  (gst_gio_uri_handler_get_type_sink),
	  (gst_gio_uri_handler_get_type_src),
	  (gst_gio_uri_handler_get_protocols), (gst_gio_uri_handler_get_uri),
	  (gst_gio_uri_handler_set_uri), (gst_gio_uri_handler_init),
	  (gst_gio_uri_handler_do_init), (plugin_init):
	  * ext/gio/gstgio.h:
	  * ext/gio/gstgiosink.c: (gst_gio_sink_base_init),
	  (gst_gio_sink_class_init), (gst_gio_sink_init),
	  (gst_gio_sink_finalize), (gst_gio_sink_set_property),
	  (gst_gio_sink_get_property), (gst_gio_sink_start),
	  (gst_gio_sink_stop), (gst_gio_sink_unlock),
	  (gst_gio_sink_unlock_stop), (gst_gio_sink_event),
	  (gst_gio_sink_render), (gst_gio_sink_query):
	  * ext/gio/gstgiosink.h:
	  * ext/gio/gstgiosrc.c: (gst_gio_src_base_init),
	  (gst_gio_src_class_init), (gst_gio_src_init),
	  (gst_gio_src_finalize), (gst_gio_src_set_property),
	  (gst_gio_src_get_property), (gst_gio_src_start),
	  (gst_gio_src_stop), (gst_gio_src_get_size),
	  (gst_gio_src_is_seekable), (gst_gio_src_unlock),
	  (gst_gio_src_unlock_stop), (gst_gio_src_check_get_range),
	  (gst_gio_src_create):
	  * ext/gio/gstgiosrc.h:
	  Add a GIO/GVFS plugin with source and sink elements. This will
	  only be enabled when --enable-experimental is given to configure
	  for now as the GIO API is not stable yet. Fixes #476916.

2007-09-21 15:49:24 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec file with various new plug-ins
	  Original commit message from CVS:
	  update spec file with various new plug-ins

2007-09-21 14:55:19 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/: Added offset-x, offset-y, width and height property for selecting a region from the screen
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  Added offset-x, offset-y, width and height property
	  for selecting a region from the screen

2007-09-21 10:27:02 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/gstrfbsrc.c: Minimum raw encoding is working now
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  Minimum raw encoding is working now
	  * gst/librfb/rfbdecoder.c:
	  fix address while reading from stream

2007-09-20 20:40:05 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/gstrfbsrc.c: raw encoding is working, but it looks like the ffmpegcolorspace plugin can't handle high reso...
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  raw encoding is working, but it looks like the
	  ffmpegcolorspace plugin can't handle high resolutions

2007-09-20 18:30:35 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/gstrfbsrc.c: bpp, depth and endianness are now set from the stream.
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  bpp, depth and endianness are now set from the
	  stream.

2007-09-20 17:38:10 +0000  Wim Taymans <wim.taymans@gmail.com>

	  examples/app/appsrc_ex.c: Fix compilation after changing the name of a method.
	  Original commit message from CVS:
	  * examples/app/appsrc_ex.c: (main):
	  Fix compilation after changing the name of a method.

2007-09-20 15:06:23 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix memory leaks. More to come.
	  Original commit message from CVS:
	  * ext/alsaspdif/alsaspdifsink.c:
	  * ext/timidity/gsttimidity.c:
	  * ext/timidity/gstwildmidi.c:
	  * gst/mpegvideoparse/mpegvideoparse.c:
	  Fix memory leaks. More to come.
	  * tests/check/Makefile.am:
	  * tests/check/generic/states.c:
	  Improved state change unit test.

2007-09-20 14:34:57 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Add notification of active SSRCs to various RTP elements. Fixes #478566.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (on_ssrc_active), (create_session),
	  (gst_rtp_bin_class_init):
	  * gst/rtpmanager/gstrtpbin.h:
	  * gst/rtpmanager/gstrtpsession.c: (on_ssrc_active),
	  (gst_rtp_session_class_init), (gst_rtp_session_init),
	  (gst_rtp_session_event_send_rtp_sink):
	  * gst/rtpmanager/gstrtpsession.h:
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (on_ssrc_active), (rtp_session_process_rb):
	  * gst/rtpmanager/rtpsession.h:
	  Add notification of active SSRCs to various RTP elements. Fixes #478566.

2007-09-20 13:59:50 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsink.*: Add properties, signals and actions to access the element even without linking to the ...
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c: (gst_app_marshal_OBJECT__VOID),
	  (gst_app_sink_class_init), (gst_app_sink_init),
	  (gst_app_sink_dispose), (gst_app_sink_finalize),
	  (gst_app_sink_set_property), (gst_app_sink_get_property),
	  (gst_app_sink_flush_unlocked), (gst_app_sink_start),
	  (gst_app_sink_event), (gst_app_sink_getcaps),
	  (gst_app_sink_set_caps), (gst_app_sink_get_caps),
	  (gst_app_sink_is_eos), (gst_app_sink_pull_preroll),
	  (gst_app_sink_pull_buffer):
	  * gst-libs/gst/app/gstappsink.h:
	  Add properties, signals and actions to access the element even without
	  linking to the library.
	  Fix some method names and signatures.

2007-09-19 21:18:27 +0000  Jonathan Matthew <jonathan@kaolin.wh9.net>

	  ext/faad/gstfaad.c: Don't set channel positions on regular mono and stereo cases.
	  Original commit message from CVS:
	  Patch by: Jonathan Matthew  <jonathan at kaolin wh9 net>
	  * ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst),
	  (gst_faad_srcgetcaps), (gst_faad_update_caps):
	  Don't set channel positions on regular mono and stereo cases.
	  Fixes #476370.

2007-09-19 20:55:43 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/: It is now possible to connect to a vncserver. there are still some issues with the ouput of the screen. ...
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  It is now possible to connect to a vncserver.
	  there are still some issues with the ouput of
	  the screen. Looks like some lines are confused

2007-09-19 18:22:23 +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-19 13:50:44 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/real/gstrealvideodec.*: Don't generate an error for occasional decoding errors.
	  Original commit message from CVS:
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	  (open_library), (gst_real_video_dec_init),
	  (gst_real_video_dec_set_property),
	  (gst_real_video_dec_get_property), (gst_real_video_dec_class_init):
	  * gst/real/gstrealvideodec.h:
	  Don't generate an error for occasional decoding errors.
	  Add max-errors property.
	  Error out when we receive max-errors in a row. Fixes #478159.

2007-09-19 13:06:17 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/gstrfbsrc.c: Add password property (write only)
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.c:
	  Add password property (write only)
	  * gst/librfb/rfbdecoder.c:
	  Read the reason on failure
	  Use the password property for authentication
	  * gst/librfb/rfbdecoder.h:
	  Add defines for version checking

2007-09-19 12:50:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/directfb/dfbvideosink.c: When finalizing GstDfbSurface, a subclass of GstBuffer, correctly chain up to the parent...
	  Original commit message from CVS:
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_destroy),
	  (gst_dfbsurface_class_init):
	  When finalizing GstDfbSurface, a subclass of GstBuffer, correctly
	  chain up to the parent class to free everything, including caps.

2007-09-19 12:50:05 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/directfb/dfbvideosink.c: When finalizing GstDfbSurface, a subclass of GstBuffer, correctly chain up to the parent...
	  Original commit message from CVS:
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_destroy),
	  (gst_dfbsurface_class_init):
	  When finalizing GstDfbSurface, a subclass of GstBuffer, correctly
	  chain up to the parent class to free everything, including caps.

2007-09-19 08:35:13 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/: VNC Authentication should be working now temperaly with fake password 'testtest'
	  Original commit message from CVS:
	  * gst/librfb/Makefile.am:
	  * gst/librfb/d3des.c:
	  * gst/librfb/d3des.h:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/vncauth.c:
	  * gst/librfb/vncauth.h:
	  VNC Authentication should be working now
	  temperaly with fake password 'testtest'

2007-09-18 16:32:19 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	  gst/librfb/rfbdecoder.*: Added some documentation about security handling start implementing security handling for rf...
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  Added some documentation about security handling
	  start implementing security handling for rfb 3.3

2007-09-18 13:55:06 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/: Handling window resize.
	  Original commit message from CVS:
	  * gst/spectrum/demo-audiotest.c:
	  * gst/spectrum/demo-osssrc.c:
	  Handling window resize.

2007-09-18 11:45:06 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ChangeLog: Add missing newline.
	  Original commit message from CVS:
	  * ChangeLog:
	  Add missing newline.
	  * gst/librfb/rfbdecoder.c:
	  Fix the build (missing stdlib.h).
	  * gst/spectrum/gstspectrum.c:
	  * gst/spectrum/gstspectrum.h:
	  Use basetransform segment so that it is correctly managed on flushes
	  and start/stop. Report message timestamp as stream time, which is what
	  an application can understand. (Yes these are adapted from wim recent
	  level element changes)

2007-09-17 21:12:17 +0000  Thijs Vermeir <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/gstrfbsrc.h:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	  Added a new property for the rfb version
	  Original commit message from CVS:
	  Added a new property for the rfb version

2007-09-17 02:01:41 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Link to the right pads regardless of which one was created first in the ssrc demuxer.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found):
	  Link to the right pads regardless of which one was created first in the
	  ssrc demuxer.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp),
	  (gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_send_rtp):
	  * gst/rtpmanager/rtpsource.c: (calculate_jitter):
	  Improve debugging.
	  * gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
	  (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_finalize),
	  (gst_rtp_ssrc_demux_sink_event),
	  (gst_rtp_ssrc_demux_rtcp_sink_event), (gst_rtp_ssrc_demux_chain),
	  (gst_rtp_ssrc_demux_rtcp_chain),
	  (gst_rtp_ssrc_demux_internal_links):
	  * gst/rtpmanager/gstrtpssrcdemux.h:
	  Fix race in creating the RTP and RTCP pads when a new SSRC is detected.

2007-09-16 19:40:31 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Use lock to protect variable.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_set_property),
	  (gst_rtp_bin_get_property):
	  Use lock to protect variable.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init),
	  (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain),
	  (convert_rtptime_to_gsttime), (gst_rtp_jitter_buffer_loop):
	  Reconstruct GST timestamp from RTP timestamps based on measured clock
	  skew and sync offset.
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init),
	  (rtp_jitter_buffer_set_tail_changed),
	  (rtp_jitter_buffer_set_clock_rate),
	  (rtp_jitter_buffer_get_clock_rate), (calculate_skew),
	  (rtp_jitter_buffer_insert), (rtp_jitter_buffer_peek):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Measure clock skew.
	  Add callback to be notfied when a new packet was inserted at the tail.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_init),
	  (calculate_jitter), (rtp_source_send_rtp):
	  * gst/rtpmanager/rtpsource.h:
	  Remove clock skew detection, it's move to the jitterbuffer now.

2007-09-16 07:28:18 +0000  Daniel Charles <dcharles@ti.com>

	  ext/amrwb/gstamrwbenc.*: Add property to control bandmode. Fixes #477306.
	  Original commit message from CVS:
	  Patch by: Daniel Charles <dcharles at ti dot com>
	  * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_bandmode_get_type),
	  (gst_amrwbenc_set_property), (gst_amrwbenc_get_property),
	  (gst_amrwbenc_class_init), (gst_amrwbenc_chain):
	  * ext/amrwb/gstamrwbenc.h:
	  Add property to control bandmode. Fixes #477306.

2007-09-15 18:48:03 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Also set NTP base time on new sessions.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_session):
	  Also set NTP base time on new sessions.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_query),
	  (gst_rtp_jitter_buffer_set_property),
	  (gst_rtp_jitter_buffer_get_property):
	  Use the right lock to protect our variables.
	  Fix some comment.
	  * gst/rtpmanager/gstrtpsession.c:
	  (gst_rtp_session_getcaps_send_rtp),
	  (gst_rtp_session_chain_send_rtp), (create_send_rtp_sink):
	  Implement getcaps on the sender sinkpad so that payloaders can negotiate
	  the right SSRC.

2007-09-12 21:23:47 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Various leak fixes.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_session), (free_session),
	  (get_client), (free_client), (gst_rtp_bin_associate),
	  (free_stream), (gst_rtp_bin_class_init), (gst_rtp_bin_dispose),
	  (gst_rtp_bin_finalize):
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init),
	  (gst_rtp_jitter_buffer_finalize):
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_release):
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize),
	  (gst_rtp_session_set_property), (gst_rtp_session_chain_recv_rtp),
	  (gst_rtp_session_chain_send_rtp):
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  (gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_dispose):
	  * gst/rtpmanager/rtpsession.c: (rtp_session_finalize):
	  * gst/rtpmanager/rtpsession.h:
	  Various leak fixes.

2007-09-12 18:04:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Calculate and configure the NTP base time so that we can generate better
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (calc_ntp_ns_base),
	  (gst_rtp_bin_change_state), (new_payload_found), (create_send_rtp):
	  Calculate and configure the NTP base time so that we can generate better
	  NTP times in SR packets.
	  Set caps on new ghostpad.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_loop):
	  Clean debug statement.
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (gst_rtp_session_init), (gst_rtp_session_set_property),
	  (gst_rtp_session_get_property), (get_current_ntp_ns_time),
	  (rtcp_thread), (gst_rtp_session_event_recv_rtp_sink),
	  (gst_rtp_session_internal_links), (gst_rtp_session_chain_recv_rtp),
	  (gst_rtp_session_event_send_rtp_sink),
	  (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
	  (create_send_rtp_sink):
	  * gst/rtpmanager/gstrtpsession.h:
	  Add ntp-ns-base property to convert running_time to NTP time.
	  Handle NEWSEGMENT events on send and recv RTP pads so that we can
	  calculate the running time and thus NTP time of the packets.
	  Simplify getting the current NTP time using the pipeline clock.
	  Implement internal links functions.
	  Use the buffer timestamp to calculate the NTP time instead of the clock.
	  * gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
	  (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_sink_event),
	  (gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_rtcp_chain),
	  (gst_rtp_ssrc_demux_internal_links),
	  (gst_rtp_ssrc_demux_src_query):
	  * gst/rtpmanager/gstrtpssrcdemux.h:
	  Implement internal links function.
	  Calculate the diff between different streams, this might be used later
	  to get the inter stream latency.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_send_rtp):
	  Simple cleanup.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_init),
	  (calculate_jitter), (rtp_source_send_rtp), (rtp_source_get_new_sr):
	  Make the clock skew window a little bigger.
	  Apply the clock skew to all buffers, not just one with a new timestamp.
	  Calculate and debug sender clock drift.
	  Use extended last timestamp to interpollate for SR reports.

2007-09-12 08:38:22 +0000  Peter Kjellerstedt <pkj@axis.com>

	  gst/: Printf format fixes (#476128).
	  Original commit message from CVS:
	  Patch by: Peter Kjellerstedt  <pkj at axis com>
	  * gst-libs/gst/app/gstappsink.c:
	  * gst/flv/gstflvdemux.c:
	  * gst/flv/gstflvparse.c:
	  * gst/interleave/deinterleave.c:
	  * gst/switch/gstswitch.c:
	  Printf format fixes (#476128).

2007-09-09 19:05:19 +0000  Thomas Green <tom78999@gmail.com>

	  ext/neon/gstneonhttpsrc.c: With libneon 2.6, we need to set the NE_SESSFLAG_ICYPROTO flag if we want ICY streams to b...
	  Original commit message from CVS:
	  Patch by: Thomas Green  <tom78999 gmail com>
	  * ext/neon/gstneonhttpsrc.c:
	  With libneon 2.6, we need to set the NE_SESSFLAG_ICYPROTO
	  flag if we want ICY streams to be handled too, otherwise
	  libneon will error out with a 'can't parse reponse' error.
	  Fixes #474696.
	  * tests/check/elements/neonhttpsrc.c:
	  Unit test for the above by Yours Truly.

2007-09-09 18:22:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Use AC_TRY_COMPILE instead of AC_TRY_RUN for the faad and the xvid configure checks, so they still work...
	  Original commit message from CVS:
	  * configure.ac:
	  Use AC_TRY_COMPILE instead of AC_TRY_RUN for the faad and the
	  xvid configure checks, so they still work when cross-compiling.
	  Fixes #452009.

2007-09-07 15:54:38 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/spectrum/gstspectrum.c: Use the correct parameter order for the memset calls.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_start),
	  (gst_spectrum_transform_ip):
	  Use the correct parameter order for the memset calls.
	  Thanks to Christian Schaller for noticing.

2007-09-06 20:37:56 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/mpegtsparse/mpegtsparse.c: Fix the build (missing stdlib.h).
	  Original commit message from CVS:
	  * gst/mpegtsparse/mpegtsparse.c:
	  Fix the build (missing stdlib.h).

2007-09-06 07:26:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/spectrum/fix_fft.c: Remove fixed point FFT as it's not used anymore.
	  Original commit message from CVS:
	  * gst/spectrum/fix_fft.c:
	  Remove fixed point FFT as it's not used anymore.

2007-09-06 07:21:22 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Port GstSpectrum to GstAudioFilter and libgstfft, add support for int32, float and double, use floats for the message...
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/spectrum/Makefile.am:
	  * gst/spectrum/demo-audiotest.c: (draw_spectrum),
	  (message_handler), (main):
	  * gst/spectrum/demo-osssrc.c: (draw_spectrum), (message_handler):
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_base_init),
	  (gst_spectrum_class_init), (gst_spectrum_init),
	  (gst_spectrum_dispose), (gst_spectrum_set_property),
	  (gst_spectrum_get_property), (gst_spectrum_start),
	  (gst_spectrum_setup), (gst_spectrum_message_new),
	  (gst_spectrum_transform_ip):
	  * gst/spectrum/gstspectrum.h:
	  Port GstSpectrum to GstAudioFilter and libgstfft, add support
	  for int32, float and double, use floats for the message contents,
	  average all FFTs done in one interval for better results, use
	  a better windowing function, allow posting the phase in the message
	  and actually do an FFT with the requested number of bands instead
	  of interpolating.
	  * tests/check/elements/spectrum.c: (GST_START_TEST),
	  (spectrum_suite):
	  Improve the units tests by checking for a 11025Hz sine wave
	  and add unit tests for all 4 supported sample types.

2007-09-05 21:09:08 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/real/gstrealvideodec.c: Add some more debugging.
	  Original commit message from CVS:
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	  (gst_real_video_dec_setcaps):
	  Add some more debugging.
	  Don't set LONG for width/height in caps.
	  Set correct output buffer size when caps changed.
	  The custom message sent to the decoder should not include the format and
	  subformat. Fixes #471554.

2007-09-04 15:23:34 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/rtpmanager/gstrtpsession.c: Make compiler happy: fix compilation with -Wall -Werror (#473562).
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c:
	  Make compiler happy: fix compilation with -Wall -Werror
	  (#473562).

2007-09-04 02:22:20 +0000  Johan Dahlin <johan@gnome.org>

	* gst/nsf/gstnsf.c:
	  Nosefart -> NES Sound Format
	  Original commit message from CVS:
	  Nosefart -> NES Sound Format

2007-09-04 02:16:53 +0000  Johan Dahlin <johan@gnome.org>

	  gst/nsf/gstnsf.*: Add support for (very) basic tagging.
	  Original commit message from CVS:
	  2007-09-03  Johan Dahlin  <johan@gnome.org>
	  * gst/nsf/gstnsf.c: (gst_nsfdec_finalize), (start_play_tune):
	  * gst/nsf/gstnsf.h:
	  Add support for (very) basic tagging.

2007-09-03 21:19:34 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Updated example pipelines in docs.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin-marshal.list:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_client),
	  (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain), (create_stream),
	  (gst_rtp_bin_init), (caps_changed), (new_ssrc_pad_found),
	  (create_recv_rtp), (create_recv_rtcp), (create_send_rtp):
	  * gst/rtpmanager/gstrtpbin.h:
	  Updated example pipelines in docs.
	  Handle sync_rtcp buffers from the SSRC demuxer to perform lip-sync.
	  Set the default latency correctly.
	  Add some more points where we can get caps.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init),
	  (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_loop),
	  (gst_rtp_jitter_buffer_query),
	  (gst_rtp_jitter_buffer_set_property),
	  (gst_rtp_jitter_buffer_get_property):
	  Add ts-offset property to control timestamping.
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (gst_rtp_session_init), (gst_rtp_session_set_property),
	  (gst_rtp_session_get_property), (get_current_ntp_ns_time),
	  (rtcp_thread), (stop_rtcp_thread), (gst_rtp_session_change_state),
	  (gst_rtp_session_send_rtcp), (gst_rtp_session_sync_rtcp),
	  (gst_rtp_session_cache_caps), (gst_rtp_session_clock_rate),
	  (gst_rtp_session_sink_setcaps), (gst_rtp_session_chain_recv_rtp),
	  (gst_rtp_session_event_send_rtp_sink),
	  (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
	  (create_recv_rtcp_sink), (create_send_rtp_sink),
	  (create_send_rtcp_src):
	  Various cleanups.
	  Feed rtpsession manager with NTP time based on pipeline clock when
	  handling RTP packets and RTCP timeouts.
	  Perform all RTCP with the system clock.
	  Set caps on RTCP outgoing buffers.
	  * gst/rtpmanager/gstrtpssrcdemux.c: (find_demux_pad_for_ssrc),
	  (create_demux_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init),
	  (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_sink_event),
	  (gst_rtp_ssrc_demux_rtcp_sink_event), (gst_rtp_ssrc_demux_chain),
	  (gst_rtp_ssrc_demux_rtcp_chain):
	  * gst/rtpmanager/gstrtpssrcdemux.h:
	  Also demux RTCP messages.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_set_callbacks),
	  (update_arrival_stats), (rtp_session_process_rtp),
	  (rtp_session_process_rb), (rtp_session_process_sr),
	  (rtp_session_process_rr), (rtp_session_process_rtcp),
	  (rtp_session_send_rtp), (rtp_session_send_bye),
	  (session_start_rtcp), (session_report_blocks), (session_cleanup),
	  (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsession.h:
	  Remove the get_time callback, the GStreamer part will feed us with
	  enough timing information.
	  Split sync timing and RTCP timing information.
	  Factor out common RB handling for SR and RR.
	  Send out SR RTCP packets for lip-sync.
	  Move SR and RR packet info generation to the source.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_init),
	  (rtp_source_update_caps), (get_clock_rate), (calculate_jitter),
	  (rtp_source_process_rtp), (rtp_source_send_rtp),
	  (rtp_source_process_sr), (rtp_source_process_rb),
	  (rtp_source_get_new_sr), (rtp_source_get_new_rb),
	  (rtp_source_get_last_sr):
	  * gst/rtpmanager/rtpsource.h:
	  * gst/rtpmanager/rtpstats.h:
	  Use caps on incomming buffers to get timing information when they are
	  there.
	  Calculate clock scew of the receiver compared to the sender and adjust
	  the rtp timestamps.
	  Calculate the round trip in sources.
	  Do SR and RR calculations in the source.

2007-09-03 20:07:17 +0000  Renato Filho <renato.filho@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/mythtv/gstmythtvsrc.c:
	* ext/mythtv/gstmythtvsrc.h:
	  gmythsrc code rewrite;
	  Original commit message from CVS:
	  gmythsrc code rewrite;

2007-08-31 15:26:14 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Use extended timestamp to release buffers from the jitterbuffer so that we can h...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_flush_stop),
	  (gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_loop):
	  Use extended timestamp to release buffers from the jitterbuffer so that
	  we can handle the rtp wraparound correctly.

2007-08-29 16:56:27 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Improve Comments.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_loop):
	  Improve Comments.
	  * gst/rtpmanager/gstrtpsession.c: (stop_rtcp_thread),
	  (gst_rtp_session_change_state), (gst_rtp_session_parse_caps),
	  (gst_rtp_session_clock_rate), (gst_rtp_session_sink_setcaps),
	  (gst_rtp_session_event_send_rtp_sink), (create_recv_rtp_sink),
	  (create_send_rtp_sink):
	  Also parse the sink caps for clock-rate instead of only relying on the
	  result of the signal.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp):
	  Make sure we fetch the clock rate for payloads we are sending out so
	  that we can use it for SR reports.

2007-08-29 16:20:28 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/switch/gstswitch.c (gst_switch_chain, gst_switch_set_property): If all information is known at time of setting st...
	  Original commit message from CVS:
	  * gst/switch/gstswitch.c (gst_switch_chain, gst_switch_set_property):
	  If all information is known at time of setting start-time
	  property, send new segments then.

2007-08-29 01:22:43 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.*: Distribute synchronisation parameters to the session manager so that it can generate ...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (stop_rtcp_thread),
	  (gst_rtp_session_change_state),
	  (gst_rtp_session_event_send_rtp_sink):
	  * gst/rtpmanager/gstrtpsession.h:
	  Distribute synchronisation parameters to the session manager so that it
	  can generate correct SR packets for lip-sync.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_set_base_time),
	  (rtp_session_set_timestamp_sync), (session_start_rtcp):
	  * gst/rtpmanager/rtpsession.h:
	  Add methods for setting sync parameters.
	  Set correct RTP time in SR packets using the sync params.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp):
	  * gst/rtpmanager/rtpsource.h:
	  Record last RTP <-> GST timestamp so that we can use them to convert NTP
	  to RTP timestamps in SR packets.

2007-08-28 20:30:16 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Add some more advanced example pipelines.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_clear_pt_map):
	  Add some more advanced example pipelines.
	  * gst/rtpmanager/gstrtpsession.c: (rtcp_thread),
	  (stop_rtcp_thread), (gst_rtp_session_send_rtcp):
	  Add some debug and FIXME.
	  Release LOCK when performing session cleanup.
	  * gst/rtpmanager/rtpsession.c: (session_report_blocks):
	  Add some debug.
	  * gst/rtpmanager/rtpsource.c: (calculate_jitter),
	  (rtp_source_send_rtp):
	  Make sure we always send RTP packets with the session SSRC.

2007-08-28 08:10:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/dvdspu/gstdvdspu.c: Don't need this include (fixes compilation in uninstalled setup).
	  Original commit message from CVS:
	  * gst/dvdspu/gstdvdspu.c:
	  Don't need this include (fixes compilation in uninstalled setup).

2007-08-27 21:17:21 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: When synchronizing buffers, take peer latency into account.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_loop),
	  (gst_rtp_jitter_buffer_query):
	  When synchronizing buffers, take peer latency into account.
	  Don't try to add our latency to invalid peer max latency values.

2007-08-27 14:56:05 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvdemux.c: Make sure we initialize the seek result.
	  Original commit message from CVS:
	  2007-08-27  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_handle_seek_pull):
	  Make sure we initialize the seek result.

2007-08-27 14:41:01 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/dvdspu/Makefile.am: Commit the makefile too.
	  Original commit message from CVS:
	  * gst/dvdspu/Makefile.am:
	  Commit the makefile too.

2007-08-27 14:33:59 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  dvdspu element donated by Fluendo. It implements a DVD Sub-Picture
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/dvdspu/.cvsignore:
	  * gst/dvdspu/Notes.txt:
	  * gst/dvdspu/gstdvdspu-render.c: (dvdspu_recalc_palette),
	  (dvdspu_update_palettes), (dvdspu_clear_comp_buffers),
	  (dvdspu_get_nibble), (dvdspu_get_rle_code), (dvdspu_draw_rle_run),
	  (rle_end_x), (dvdspu_render_line), (dvdspu_update_chgcol),
	  (dvdspu_render_line_with_chgcol), (dvdspu_blend_comp_buffers),
	  (gstdvdspu_render_spu):
	  * gst/dvdspu/gstdvdspu.c: (dvdspu_base_init), (dvdspu_class_init),
	  (dvdspu_init), (dvdspu_clear), (dvdspu_dispose), (dvdspu_finalize),
	  (dvdspu_flush_spu_info), (dvdspu_buffer_alloc), (dvdspu_src_event),
	  (dvdspu_video_set_caps), (dvdspu_video_proxy_getcaps),
	  (dvdspu_video_event), (dvdspu_video_chain),
	  (dvspu_handle_vid_buffer), (dvdspu_redraw_still),
	  (gstdvdspu_parse_chg_colcon), (dvdspu_exec_cmd_blk),
	  (dvdspu_finish_spu_buf), (dvdspu_setup_cmd_blk),
	  (dvdspu_handle_new_spu_buf), (dvdspu_handle_dvd_event),
	  (dvdspu_dump_dcsq), (dvdspu_advance_spu),
	  (dvdspu_check_still_updates), (dvdspu_subpic_chain),
	  (dvdspu_subpic_event), (dvdspu_change_state),
	  (gstdvdspu_plugin_init):
	  * gst/dvdspu/gstdvdspu.h:
	  dvdspu element donated by Fluendo. It implements a DVD Sub-Picture
	  Unit, decoding and overlaying DVD subtitles and menu graphics.
	  * gst/mpeg2sub/.cvsignore:
	  * gst/mpeg2sub/Makefile.am:
	  * gst/mpeg2sub/Notes.txt:
	  * gst/mpeg2sub/gstmpeg2subt.c:
	  * gst/mpeg2sub/gstmpeg2subt.h:
	  * gst/mpeg2sub/mpeg2subt.vcproj:
	  Delete old and broken mpeg2subt element that was never ported from 0.8

2007-08-24 17:03:15 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvdemux.c: Remove some useless ifdef.
	  Original commit message from CVS:
	  2007-08-24  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
	  (gst_flv_demux_chain), (gst_flv_demux_pull_tag),
	  (gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push),
	  (gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event),
	  (gst_flv_demux_src_event): Remove some useless ifdef.

2007-08-24 15:56:52 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Make switch more reliable and also not lock up when sink pad caps change.
	  Original commit message from CVS:
	  * examples/switch/switcher.c (main):
	  * gst/switch/gstswitch.c (gst_switch_chain):
	  Make switch more reliable and also not lock up when
	  sink pad caps change.

2007-08-24 15:31:26 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvdemux.c: Implement seeking in push mode.
	  Original commit message from CVS:
	  2007-08-24  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
	  (gst_flv_demux_cleanup), (gst_flv_demux_chain),
	  (gst_flv_demux_pull_tag), (gst_flv_demux_find_offset),
	  (gst_flv_demux_handle_seek_push),
	  (gst_flv_demux_handle_seek_pull),
	  (gst_flv_demux_sink_event), (gst_flv_demux_src_event): Implement
	  seeking in push mode.
	  * gst/flv/gstflvdemux.h:

2007-08-24 11:23:28 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/mpegtsparse/: Update licences to reflect LGPL-ness of these files also.
	  Original commit message from CVS:
	  * gst/mpegtsparse/flutspatinfo.c:
	  * gst/mpegtsparse/flutspatinfo.h:
	  * gst/mpegtsparse/flutspmtinfo.c:
	  * gst/mpegtsparse/flutspmtinfo.h:
	  Update licences to reflect LGPL-ness of these files also.

2007-08-23 21:39:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Rename all GstRTPFoo structs to GstRtpFoo so that GST_BOILERPLATE registers a GType that's different than the GstRTPF...
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * gst/rtpmanager/gstrtpbin.c:
	  * gst/rtpmanager/gstrtpbin.h:
	  * gst/rtpmanager/gstrtpclient.c:
	  * gst/rtpmanager/gstrtpclient.h:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  * gst/rtpmanager/gstrtpptdemux.c:
	  * gst/rtpmanager/gstrtpptdemux.h:
	  * gst/rtpmanager/gstrtpsession.c:
	  * gst/rtpmanager/gstrtpsession.h:
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  * gst/rtpmanager/gstrtpssrcdemux.h:
	  Rename all GstRTPFoo structs to GstRtpFoo so that GST_BOILERPLATE
	  registers a GType that's different than the GstRTPFoo types that
	  farsight registers (luckily GType names are case sensitive). Should
	  finally fix #430664.

2007-08-23 17:21:23 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Automatically generate win32/common/config.h via configure (this ensures the win32 version of config.h is up-to-date ...
	  Original commit message from CVS:
	  * configure.ac:
	  * win32/common/config.h:
	  * win32/common/config.h.in:
	  Automatically generate win32/common/config.h via configure (this
	  ensures the win32 version of config.h is up-to-date when a release
	  is made, #433373). config.h.in file might need some more work.

2007-08-23 13:24:33 +0000  Jonathan Matthew <jonathan@kaolin.wh9.net>

	  Port festival plugin to GStreamer-0.10 (#461377).
	  Original commit message from CVS:
	  Patch by: Jonathan Matthew  <jonathan at kaolin wh9 net>
	  * configure.ac:
	  * gst/festival/Makefile.am:
	  * gst/festival/gstfestival.c:
	  Port festival plugin to GStreamer-0.10 (#461377).

2007-08-22 15:32:04 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faad/gstfaad.c: Don't unref the buffer when it was clipped.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_chain):
	  Don't unref the buffer when it was clipped.

2007-08-22 14:50:51 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/: Handle pixel aspect ratio through metadata tags like ASF does. Fluendo muxer supports this and
	  Original commit message from CVS:
	  2007-08-22  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	  (gst_flv_demux_pull_tag):
	  * gst/flv/gstflvdemux.h:
	  * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
	  (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video): Handle pixel aspect ratio through
	  metadata tags like ASF does. Fluendo muxer supports this and
	  Flash players can support it as well this way.

2007-08-22 14:03:42 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/: Make sure we don't try filling up the index if no times object was parsed. Fix the way we decide to push ta...
	  Original commit message from CVS:
	  2007-08-22  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag):
	  * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
	  (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video): Make sure we don't try filling up the
	  index if no times object was parsed. Fix the way we decide to
	  push
	  tags and emit no-more-pads. Fix some printf typing in debugging.

2007-08-21 17:18:29 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: When drop-on-latency is set but we have no latency configured, just push the buf...
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain),
	  (gst_rtp_jitter_buffer_set_property):
	  When drop-on-latency is set but we have no latency configured, just push
	  the buffer as fast as possible.
	  Fix typo in comment.

2007-08-21 16:04:47 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/rtpjitterbuffer.*: Fix undefined overflow prone ts_diff handling.
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpjitterbuffer.c:
	  (rtp_jitter_buffer_get_ts_diff):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Fix undefined overflow prone ts_diff handling.

2007-08-21 15:59:39 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/modplug/gstmodplug.cc: Fix compiler warning.
	  Original commit message from CVS:
	  * gst/modplug/gstmodplug.cc:
	  Fix compiler warning.

2007-08-21 12:59:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/modplug/gstmodplug.cc: Don't use NULL caps for srcpad is not yet connected.
	  Original commit message from CVS:
	  * gst/modplug/gstmodplug.cc:
	  Don't use NULL caps for srcpad is not yet connected.

2007-08-20 14:23:45 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Add mpeg transport stream parser written by:
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/mpegtsparse/Makefile.am:
	  * gst/mpegtsparse/flutspatinfo.c:
	  * gst/mpegtsparse/flutspatinfo.h:
	  * gst/mpegtsparse/flutspmtinfo.c:
	  * gst/mpegtsparse/flutspmtinfo.h:
	  * gst/mpegtsparse/flutspmtstreaminfo.c:
	  * gst/mpegtsparse/flutspmtstreaminfo.h:
	  * gst/mpegtsparse/mpegtspacketizer.c:
	  * gst/mpegtsparse/mpegtspacketizer.h:
	  * gst/mpegtsparse/mpegtsparse.c:
	  * gst/mpegtsparse/mpegtsparse.h:
	  * gst/mpegtsparse/mpegtsparsemarshal.list:
	  Add mpeg transport stream parser written by:
	  Alessandro Decina. Includes a couple of files from the
	  Fluendo transport stream demuxer that Fluendo have
	  kindly allowed to be licenced under LGPL also.

2007-08-20 09:13:47 +0000  Bastien Nocera <hadess@hadess.net>

	  ext/mythtv/gstmythtvsrc.c: Add examples for live mythtv:// URIs to docs (#468039).
	  Original commit message from CVS:
	  Patch by: Bastien Nocera  <hadess at hadess net>
	  * ext/mythtv/gstmythtvsrc.c:
	  Add examples for live mythtv:// URIs to docs (#468039).
	  Also convert some tabs into spaces.

2007-08-19 19:16:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: Add small comparision with the chebyshev filters in the docs.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c:
	  * gst/filter/gstlpwsinc.c:
	  Add small comparision with the chebyshev filters in the docs.

2007-08-19 19:01:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/: Also test everything in 32 bit float mode.
	  Original commit message from CVS:
	  * tests/check/elements/bpwsinc.c: (GST_START_TEST),
	  (bpwsinc_suite):
	  * tests/check/elements/lpwsinc.c: (GST_START_TEST),
	  (lpwsinc_suite):
	  Also test everything in 32 bit float mode.

2007-08-17 15:05:17 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Use generator macros for the process functions for the different sample types, add lower upper boundaries for the GOb...
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init),
	  (bpwsinc_set_property), (bpwsinc_get_property):
	  * gst/filter/gstbpwsinc.h:
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init),
	  (gst_lpwsinc_init), (lpwsinc_build_kernel), (lpwsinc_set_property),
	  (lpwsinc_get_property):
	  * gst/filter/gstlpwsinc.h:
	  * tests/check/elements/lpwsinc.c: (GST_START_TEST):
	  Use generator macros for the process functions for the different
	  sample types, add lower upper boundaries for the GObject properties
	  so automatically generated UIs can use sliders and change frequency
	  properties to floats to save a bit of memory, even ints would in
	  theory be enough. Also rename frequency to cutoff for consistency
	  reasons.
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  Regenerated for the above changes.

2007-08-17 06:55:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/amrwb/gstamrwbparse.c: Don't leak the adapter.
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbparse.c:
	  Don't leak the adapter.

2007-08-16 19:22:48 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstbpwsinc.*: Implement latency query and only forward those samples downstream that actually contain the ...
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init),
	  (gst_bpwsinc_init), (process_32), (process_64),
	  (bpwsinc_build_kernel), (bpwsinc_push_residue),
	  (bpwsinc_transform), (bpwsinc_start), (bpwsinc_query),
	  (bpwsinc_query_type), (bpwsinc_event), (bpwsinc_set_property):
	  * gst/filter/gstbpwsinc.h:
	  Implement latency query and only forward those samples downstream
	  that actually contain the data we want, i.e. drop kernel_length/2
	  in the beginning and append kernel_length/2 (created by convolving
	  the filter kernel with zeroes) to the end.
	  * tests/check/elements/bpwsinc.c: (GST_START_TEST):
	  Adjust the unit test for this slightly changed behaviour.
	  * gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel):
	  Reset residue length only when actually creating a residue.

2007-08-16 17:11:48 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsink.c: Override the preroll vmethod instead of overriding the render method twice.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init):
	  Override the preroll vmethod instead of overriding the render method
	  twice.

2007-08-16 11:40:16 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Fix EOS handling.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain),
	  (gst_rtp_jitter_buffer_loop):
	  Fix EOS handling.
	  Convert some DEBUG into WARNINGs.
	  Pause task when flushing.
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (rtcp_thread), (gst_rtp_session_event_recv_rtcp_sink):
	  Use system clock for RTCP session management timeouts.
	  * gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision),
	  (on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout):
	  Release the session lock when emiting signals.

2007-08-16 11:34:54 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faad/gstfaad.c: Add some debug info.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_setcaps),
	  (gst_faad_chanpos_to_gst):
	  Add some debug info.

2007-08-16 09:48:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstlpwsinc.*: Implement latency query and only forward those samples downstream that actually contain the ...
	  Original commit message from CVS:
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init),
	  (gst_lpwsinc_init), (process_32), (process_64),
	  (lpwsinc_build_kernel), (lpwsinc_push_residue),
	  (lpwsinc_transform), (lpwsinc_start), (lpwsinc_query),
	  (lpwsinc_query_type), (lpwsinc_event), (lpwsinc_set_property):
	  * gst/filter/gstlpwsinc.h:
	  Implement latency query and only forward those samples downstream
	  that actually contain the data we want, i.e. drop kernel_length/2
	  in the beginning and append kernel_length/2 (created by convolving
	  the filter kernel with zeroes) to the end.
	  * tests/check/elements/lpwsinc.c: (GST_START_TEST):
	  Adjust the unit test for this slightly changed behaviour.

2007-08-16 07:07:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/ladspa/gstladspa.c: Don't leak like hell.
	  Original commit message from CVS:
	  * ext/ladspa/gstladspa.c:
	  Don't leak like hell.

2007-08-16 06:49:39 +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-15 13:28:39 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	* ChangeLog:
	  ChangeLog surgery
	  Original commit message from CVS:
	  ChangeLog surgery

2007-08-15 13:26:57 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/timidity/gstwildmidi.*:
	  Original commit message from CVS:
	  reviewed by: <delete if not using a buddy>
	  patch by: <delete if not someone else's patch>
	  * ext/timidity/gstwildmidi.c:
	  * ext/timidity/gstwildmidi.h:

2007-08-14 17:47:34 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsink.c: Don't use new API.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c: (gst_app_sink_flush_unlocked):
	  Don't use new API.

2007-08-14 17:38:05 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst-libs/gst/app/gstappsink.*: Make love to appsink.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsink.c: (gst_app_sink_base_init),
	  (gst_app_sink_class_init), (gst_app_sink_dispose),
	  (gst_app_sink_flush_unlocked), (gst_app_sink_start),
	  (gst_app_sink_stop), (gst_app_sink_event), (gst_app_sink_preroll),
	  (gst_app_sink_render), (gst_app_sink_get_caps),
	  (gst_app_sink_set_caps), (gst_app_sink_end_of_stream),
	  (gst_app_sink_pull_preroll), (gst_app_sink_pull_buffer):
	  * gst-libs/gst/app/gstappsink.h:
	  Make love to appsink.
	  Make it support pulling of the preroll buffer.
	  Add docs and debug statements.
	  Fix some races wrt to EOS handling and stopping.
	  Implement getcaps.
	  Implement FLUSHING.
	  API: gst_app_sink_pull_preroll()

2007-08-14 14:56:20 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/flv/gstflvdemux.c: Fix locking and refcounting on the index.
	  Original commit message from CVS:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_set_index),
	  (gst_flv_demux_get_index):
	  Fix locking and refcounting on the index.

2007-08-14 14:22:09 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/gstflvdemux.c: First method for seeking in pull mode using the index built step by step or coming from metadata.
	  Original commit message from CVS:
	  2007-08-14  Julien MOUTTE  <julien@moutte.net>
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	  (gst_flv_demux_adapter_flush), (gst_flv_demux_chain),
	  (gst_flv_demux_pull_tag), (gst_flv_demux_do_seek),
	  (gst_flv_demux_handle_seek), (gst_flv_demux_sink_event),
	  (gst_flv_demux_src_event), (gst_flv_demux_query),
	  (gst_flv_demux_change_state), (gst_flv_demux_set_index),
	  (gst_flv_demux_get_index), (gst_flv_demux_dispose),
	  (gst_flv_demux_class_init): First method for seeking in pull
	  mode using the index built step by step or coming from metadata.
	  * gst/flv/gstflvdemux.h:
	  * gst/flv/gstflvparse.c: (FLV_GET_STRING),
	  (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Parse
	  more metadata types and keyframes index.

2007-08-13 13:50:39 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add docs for lpwsinc and bpwsinc and integrate them into the build system. While doing that also update all other doc...
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  * gst/filter/gstbpwsinc.c:
	  * gst/filter/gstbpwsinc.h:
	  * gst/filter/gstlpwsinc.c:
	  * gst/filter/gstlpwsinc.h:
	  Add docs for lpwsinc and bpwsinc and integrate them
	  into the build system. While doing that also update
	  all other docs via make update in docs/plugins.

2007-08-13 06:16:40 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/rtpmanager/rtpjitterbuffer.c: Include stdlib.
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpjitterbuffer.c:
	  Include stdlib.

2007-08-12 20:55:01 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/elements/bpwsinc.c: Make one test constraint a bit stricter.
	  Original commit message from CVS:
	  * tests/check/elements/bpwsinc.c: (GST_START_TEST):
	  Make one test constraint a bit stricter.

2007-08-12 20:53:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/: Add unit tests for bpwsinc, testing fundamental functionality again.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/bpwsinc.c: (setup_bpwsinc),
	  (cleanup_bpwsinc), (GST_START_TEST), (bpwsinc_suite), (main):
	  Add unit tests for bpwsinc, testing fundamental functionality again.

2007-08-12 20:19:37 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/: Add unit tests for lpwsinc, testing fundamental functionality.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/lpwsinc.c: (setup_lpwsinc),
	  (cleanup_lpwsinc), (GST_START_TEST), (lpwsinc_suite), (main):
	  Add unit tests for lpwsinc, testing fundamental functionality.

2007-08-12 15:41:57 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: Improve debugging a bit.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel):
	  * gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel):
	  Improve debugging a bit.

2007-08-12 12:46:20 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: Reset the residue in BaseTransform::start to get a clean residue on stream changes.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init),
	  (bpwsinc_start):
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init),
	  (lpwsinc_start):
	  Reset the residue in BaseTransform::start to get a clean residue
	  on stream changes.

2007-08-11 21:30:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	* ChangeLog:
	  Changelog surgery
	  Original commit message from CVS:
	  Changelog surgery

2007-08-11 15:58:30 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: Fix processing with buffer sizes that are larger than the filter kernel size.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (process_32), (process_64):
	  * gst/filter/gstlpwsinc.c: (process_32), (process_64):
	  Fix processing with buffer sizes that are larger than the filter
	  kernel size.

2007-08-10 17:16:53 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Remove complicated async queue and replace with more simple jitterbuffer code while also fixing some...
	  Original commit message from CVS:
	  * gst/rtpmanager/Makefile.am:
	  * gst/rtpmanager/async_jitter_queue.c:
	  * gst/rtpmanager/async_jitter_queue.h:
	  * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_class_init),
	  (rtp_jitter_buffer_init), (rtp_jitter_buffer_finalize),
	  (rtp_jitter_buffer_new), (compare_seqnum),
	  (rtp_jitter_buffer_insert), (rtp_jitter_buffer_pop),
	  (rtp_jitter_buffer_flush), (rtp_jitter_buffer_num_packets),
	  (rtp_jitter_buffer_get_ts_diff):
	  * gst/rtpmanager/rtpjitterbuffer.h:
	  Remove complicated async queue and replace with more simple jitterbuffer
	  code while also fixing some bugs.
	  * gst/rtpmanager/gstrtpbin-marshal.list:
	  * gst/rtpmanager/gstrtpbin.c: (on_new_ssrc), (on_ssrc_collision),
	  (on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout),
	  (create_session), (gst_rtp_bin_class_init), (create_recv_rtp),
	  (create_send_rtp):
	  * gst/rtpmanager/gstrtpbin.h:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_dispose),
	  (gst_jitter_buffer_sink_parse_caps),
	  (gst_rtp_jitter_buffer_flush_start),
	  (gst_rtp_jitter_buffer_flush_stop),
	  (gst_rtp_jitter_buffer_change_state),
	  (gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain),
	  (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property):
	  * gst/rtpmanager/gstrtpsession.c: (on_new_ssrc),
	  (on_ssrc_collision), (on_ssrc_validated), (on_bye_ssrc),
	  (on_bye_timeout), (on_timeout), (gst_rtp_session_class_init),
	  (gst_rtp_session_init):
	  * gst/rtpmanager/gstrtpsession.h:
	  * gst/rtpmanager/rtpsession.c: (on_bye_ssrc), (session_cleanup):
	  Use new jitterbuffer code.
	  Expose some new signals in preparation for handling EOS.

2007-08-10 05:51:40 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstbpwsinc.c: Fix a segfault with more than one channel and don't rebuild the kernel & residue with every ...
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel):
	  Fix a segfault with more than one channel and don't rebuild
	  the kernel & residue with every buffer.

2007-08-10 05:35:25 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstbpwsinc.*: Add support for a bandreject mode and allow specifying the window function that should be used.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_mode_get_type),
	  (gst_bpwsinc_window_get_type), (gst_bpwsinc_class_init),
	  (gst_bpwsinc_init), (bpwsinc_build_kernel), (bpwsinc_set_property),
	  (bpwsinc_get_property):
	  * gst/filter/gstbpwsinc.h:
	  Add support for a bandreject mode and allow specifying the window
	  function that should be used.
	  * gst/filter/gstlpwsinc.c:
	  And another small formatting fix.

2007-08-10 05:20:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstbpwsinc.*: Apply the same changes to the bandpass filter:
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init),
	  (gst_bpwsinc_init), (process_32), (process_64),
	  (bpwsinc_build_kernel), (bpwsinc_setup), (bpwsinc_get_unit_size),
	  (bpwsinc_transform), (bpwsinc_set_property),
	  (bpwsinc_get_property):
	  * gst/filter/gstbpwsinc.h:
	  Apply the same changes to the bandpass filter:
	  - Support double input
	  - Fix processing for input with >1 channels
	  - Specify frequency in Hz
	  - Specify actual filter kernel length
	  - Use transform instead of transform_ip as we're working
	  out of place anyway
	  - Factor out filter kernel generation and update the filter
	  kernel when the properties are set
	  Fix bandpass filter kernel generation to actually generate
	  a bandpass filter by creating a highpass instead of a second
	  lowpass.
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init):
	  Small formatting fix.

2007-08-10 04:44:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstlpwsinc.*: Specify the actual filter length instead of a weird 2N+1. Setting the property will round to...
	  Original commit message from CVS:
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init),
	  (gst_lpwsinc_init), (process_32), (process_64),
	  (lpwsinc_build_kernel), (lpwsinc_set_property),
	  (lpwsinc_get_property):
	  * gst/filter/gstlpwsinc.h:
	  Specify the actual filter length instead of a weird
	  2N+1. Setting the property will round to the next odd number.
	  Also remove now obsolete FIXMEs.

2007-08-10 04:32:47 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstlpwsinc.*: Allow choosing between hamming and blackman window. The blackman window provides a better st...
	  Original commit message from CVS:
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_window_get_type),
	  (gst_lpwsinc_class_init), (gst_lpwsinc_init),
	  (lpwsinc_build_kernel), (lpwsinc_set_property),
	  (lpwsinc_get_property):
	  * gst/filter/gstlpwsinc.h:
	  Allow choosing between hamming and blackman window. The blackman
	  window provides a better stopband attenuation but a bit slower
	  rolloff.

2007-08-10 04:21:39 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstlpwsinc.*: Add a highpass mode.
	  Original commit message from CVS:
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_mode_get_type),
	  (gst_lpwsinc_class_init), (process_32), (process_64),
	  (lpwsinc_build_kernel), (lpwsinc_set_property),
	  (lpwsinc_get_property):
	  * gst/filter/gstlpwsinc.h:
	  Add a highpass mode.

2007-08-10 04:06:53 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstlpwsinc.c: Fix processing if the input has more than one channel.
	  Original commit message from CVS:
	  * gst/filter/gstlpwsinc.c: (process_32), (process_64),
	  (lpwsinc_build_kernel):
	  Fix processing if the input has more than one channel.

2007-08-09 19:23:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstbpwsinc.c: "this" is a C++ keyword, use "self" instead.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose),
	  (gst_bpwsinc_init), (bpwsinc_setup), (bpwsinc_transform_ip),
	  (bpwsinc_set_property), (bpwsinc_get_property):
	  "this" is a C++ keyword, use "self" instead.
	  Add TODOs and FIXMEs and remove two wrong FIXMEs.
	  * gst/filter/gstlpwsinc.c:
	  Add FIXMEs and a new TODO.

2007-08-09 18:08:05 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/gstlpwsinc.*: Add double support, replace "this" with "self" as the former is a C++ keyword.
	  Original commit message from CVS:
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose),
	  (gst_lpwsinc_class_init), (gst_lpwsinc_init), (process_32),
	  (process_64), (lpwsinc_build_kernel), (lpwsinc_setup),
	  (lpwsinc_get_unit_size), (lpwsinc_transform),
	  (lpwsinc_set_property), (lpwsinc_get_property):
	  * gst/filter/gstlpwsinc.h:
	  Add double support, replace "this" with "self" as the former
	  is a C++ keyword.
	  Implement the frequency property in Hz instead of fraction
	  of sampling frequency.
	  Remove some unecessary FIXMEs and add some TODOs, add some
	  required locking and refactor the kernel generation into a
	  separate function that is also called when the properties
	  change now.
	  And use BaseTransform::transform instead of transform_ip
	  as the convolution is done out of place anyway. Should
	  be done in place later.

2007-08-09 17:39:47 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Port the stereo element to GStreamer 0.10.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/stereo/Makefile.am:
	  * gst/stereo/gststereo.c: (gst_stereo_base_init),
	  (gst_stereo_class_init), (gst_stereo_init),
	  (gst_stereo_transform_ip), (gst_stereo_set_property),
	  (gst_stereo_get_property):
	  * gst/stereo/gststereo.h:
	  Port the stereo element to GStreamer 0.10.

2007-08-09 11:01:14 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Added Portuguese (Brazilian) translation.
	  Original commit message from CVS:
	  submitted by: Raphael Higino <phhigino@gmail.com>
	  * po/LINGUAS:
	  * po/pt_BR.po:
	  Added Portuguese (Brazilian) translation.

2007-08-09 11:00:03 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Updated translations.
	  Original commit message from CVS:
	  * po/uk.po:
	  * po/vi.po:
	  Updated translations.

2007-08-08 20:47:33 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  gst/filter/: Use GstAudioFilter as base class and don't leak the memory of the filter kernel and residue.
	  Original commit message from CVS:
	  * gst/filter/Makefile.am:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose),
	  (gst_bpwsinc_base_init), (gst_bpwsinc_class_init),
	  (gst_bpwsinc_init), (bpwsinc_setup):
	  * gst/filter/gstbpwsinc.h:
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose),
	  (gst_lpwsinc_base_init), (gst_lpwsinc_class_init),
	  (gst_lpwsinc_init), (lpwsinc_setup):
	  * gst/filter/gstlpwsinc.h:
	  Use GstAudioFilter as base class and don't leak the memory
	  of the filter kernel and residue.

2007-08-08 15:15:56 +0000  Josep Torre Valles <josep@fluendo.com>

	  Add connection speed property to libmms. Fixes #464678.
	  Original commit message from CVS:
	  Patch by: Josep Torre Valles <josep@fluendo.com>
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * ext/libmms/gstmms.c: (gst_mms_class_init), (gst_mms_init),
	  (gst_mms_start), (gst_mms_set_property), (gst_mms_get_property):
	  * ext/libmms/gstmms.h:
	  Add connection speed property to libmms. Fixes #464678.

2007-08-07 15:21:17 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/real/gstrealvideodec.*: Remove some old unused vars.
	  Original commit message from CVS:
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	  (gst_real_video_dec_activate_push), (open_library),
	  (gst_real_video_dec_init), (gst_real_video_dec_finalize):
	  * gst/real/gstrealvideodec.h:
	  Remove some old unused vars.

2007-08-07 10:51:59 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/real/gstrealaudiodec.c: Small cleanups.
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
	  Small cleanups.
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	  (open_library):
	  Remove fragment and timestamp correction code from the decoder to make
	  the caps and buffer contents compatible with matroska/ffdec_rvx0/...

2007-07-30 12:43:12 +0000  Tim-Philipp Müller <tim@centricular.net>

	  po/POTFILES.skip: Add POTFILES.skip with list of source files that aren't disted at the moment but contain translatab...
	  Original commit message from CVS:
	  * po/POTFILES.skip:
	  Add POTFILES.skip with list of source files that aren't disted at the
	  moment but contain translatable strings. Should hopefully pacify
	  broken tools and make it clearer that these files are left out
	  intentionally (#461601 and others).

2007-07-30 09:52:36 +0000  Ian Munro <imunro@netspace.net.au>

	  gst/bayer/gstbayer2rgb.c: Include our own "_stdint.h" instead of <stdint.h> (which may not be available).
	  Original commit message from CVS:
	  Patch by: Ian Munro  <imunro at netspace net au>
	  * gst/bayer/gstbayer2rgb.c:
	  Include our own "_stdint.h" instead of <stdint.h> (which may not
	  be available).
	  * gst/speed/gstspeed.h:
	  Native HP-UX compiler dosn't seem to like enum typedefs before the
	  actual enum was defined.
	  * gst/vmnc/vmncdec.c:
	  Fix wrong usage of GST_ELEMENT_ERROR macro (#461373).

2007-07-26 16:16:01 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/real/gstrealaudiodec.c: Use the proper context variable when setting the password !
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
	  Use the proper context variable when setting the password !
	  LOG => WARNING for errors.
	  Give proper path when opening the codec (needs a '/' at the end).

2007-07-25 18:10:04 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/real/Makefile.am: And dist the new header file too.
	  Original commit message from CVS:
	  * gst/real/Makefile.am:
	  And dist the new header file too.

2007-07-25 14:36:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/real/gstreal.h: Add missing header file.
	  Original commit message from CVS:
	  * gst/real/gstreal.h:
	  Add missing header file.

2007-07-25 13:29:04 +0000  Julien Moutte <julien@moutte.net>

	  gst/flv/: Handle not linked pads, try to make it reusable, more safety checks.
	  Original commit message from CVS:
	  2007-07-25  Julien MOUTTE  <julien@moutte.net>
	  (gst_flv_demux_chain), (gst_flv_demux_pull_tag),
	  (gst_flv_demux_change_state), (gst_flv_demux_dispose),
	  (gst_flv_demux_init):
	  * gst/flv/gstflvdemux.h:
	  * gst/flv/gstflvparse.c: (FLV_GET_STRING),
	  (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	  (gst_flv_parse_header):
	  * gst/flv/gstflvparse.h: Handle not linked pads, try to make it
	  reusable, more safety checks.

2007-07-25 05:55:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/timidity/gsttimidity.*: Don't initialize timidity in plugin_init for similar reason as below.
	  Original commit message from CVS:
	  * ext/timidity/gsttimidity.c: (gst_timidity_init),
	  (gst_timidity_change_state), (plugin_init):
	  * ext/timidity/gsttimidity.h:
	  Don't initialize timidity in plugin_init for similar reason as below.

2007-07-24 15:13:44 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/timidity/gstwildmidi.*: Don't initialize wildmidi in plugin_init as it also setups audio filters which is slow.
	  Original commit message from CVS:
	  * ext/timidity/gstwildmidi.c: (wildmidi_open_config),
	  (gst_wildmidi_init), (gst_wildmidi_change_state), (plugin_init):
	  * ext/timidity/gstwildmidi.h:
	  Don't initialize wildmidi in plugin_init as it also setups audio
	  filters which is slow.

2007-07-24 14:36:54 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/real/: Improved search algorithm for location of real .so files.
	  Original commit message from CVS:
	  reviewed by: Edward Hervey  <bilboed@bilboed.com>
	  * gst/real/gstreal.c: (plugin_init):
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps),
	  (gst_real_audio_dec_finalize), (gst_real_audio_dec_set_property),
	  (gst_real_audio_dec_get_property), (gst_real_audio_dec_class_init):
	  * gst/real/gstrealvideodec.c: (open_library),
	  (gst_real_video_dec_finalize), (gst_real_video_dec_set_property),
	  (gst_real_video_dec_get_property), (gst_real_video_dec_class_init):
	  * gst/real/gstrealvideodec.h:
	  Improved search algorithm for location of real .so files.
	  Fixes #393461

2007-07-24 05:15:41 +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/faad/gstfaad.c: (gst_faad_chain), (gst_faad_change_state):
	  Use the new buffer clipping function from gstaudio here and
	  require gst-plugins-base CVS.

2007-07-23 09:13:42 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Sync liboil check with plugins-base.
	  Original commit message from CVS:
	  * configure.ac:
	  Sync liboil check with plugins-base.

2007-07-20 11:37:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/equalizer/: Better algorith for the center frequencies. Subtract band filters from input for negative gains. Rewo...
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c:
	  (gst_iir_equalizer_band_set_property),
	  (gst_iir_equalizer_child_proxy_get_child_by_index),
	  (gst_iir_equalizer_child_proxy_get_children_count),
	  (gst_iir_equalizer_child_proxy_interface_init),
	  (gst_iir_equalizer_class_init), (arg_to_scale), (setup_filter),
	  (gst_iir_equalizer_compute_frequencies):
	  * gst/equalizer/gstiirequalizer10bands.c:
	  (gst_iir_equalizer_10bands_class_init):
	  * gst/equalizer/gstiirequalizer3bands.c:
	  (gst_iir_equalizer_3bands_class_init):
	  * gst/equalizer/gstiirequalizernbands.c:
	  Better algorith for the center frequencies. Subtract band filters from
	  input for negative gains. Rework the gain mapping.

2007-07-20 11:03:39 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/dirac/Makefile.am: Also include stdlib here.
	  Original commit message from CVS:
	  * ext/dirac/Makefile.am:
	  Also include stdlib here.

2007-07-19 15:29:52 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  tests/check/elements/.cvsignore: Fix the buildbot with the cvsignore it wants.
	  Original commit message from CVS:
	  * tests/check/elements/.cvsignore:
	  Fix the buildbot with the cvsignore it wants.

2007-07-19 15:05:30 +0000  Julien Moutte <julien@moutte.net>

	  Adds a first draft of an FLV demuxer.
	  Original commit message from CVS:
	  2007-07-19  Julien MOUTTE  <julien@moutte.net>
	  * configure.ac:
	  * gst/flv/Makefile.am:
	  * gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
	  (gst_flv_demux_cleanup), (gst_flv_demux_chain),
	  (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header),
	  (gst_flv_demux_seek_to_prev_keyframe), (gst_flv_demux_loop),
	  (gst_flv_demux_sink_activate),
	  (gst_flv_demux_sink_activate_push),
	  (gst_flv_demux_sink_activate_pull), (gst_flv_demux_sink_event),
	  (gst_flv_demux_change_state), (gst_flv_demux_dispose),
	  (gst_flv_demux_base_init), (gst_flv_demux_class_init),
	  (gst_flv_demux_init), (plugin_init):
	  * gst/flv/gstflvdemux.h:
	  * gst/flv/gstflvparse.c: (FLV_GET_BEUI24), (FLV_GET_STRING),
	  (gst_flv_demux_query_types), (gst_flv_demux_query),
	  (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
	  (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	  (gst_flv_parse_tag_type), (gst_flv_parse_header):
	  * gst/flv/gstflvparse.h: Adds a first draft of an FLV demuxer.
	  It does not do seeking yet, it supports pull and push mode so
	  YES
	  you can use it to play youtube videos directly from an HTTP uri.
	  Not so much testing done yet but it parses metadata, reply to
	  duration queries, etc...

2007-07-19 09:08:30 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/Makefile.am: tests/check/elements/timidity.c (GST_START_TEST, timidity_suite, main):
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/timidity.c (GST_START_TEST, timidity_suite,
	  main):
	  Add typefind test for midi.

2007-07-18 20:56:22 +0000  Michael Smith <msmith@xiph.org>

	  ext/soundtouch/gstpitch.cc: If we receive a new segment event, don't try to push buffers out in response (without fir...
	  Original commit message from CVS:
	  * ext/soundtouch/gstpitch.cc:
	  If we receive a new segment event, don't try to push buffers out
	  in response (without first sending it on!).
	  Instead, flush internal buffers on receiving flush events.
	  Fixes playback after seeking.

2007-07-18 08:00:06 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/bayer/gstbayer2rgb.c: Add basic docs. Use glibs mem routines.
	  Original commit message from CVS:
	  * gst/bayer/gstbayer2rgb.c: (gst_bayer2rgb_set_caps),
	  (gst_bayer2rgb_reset):
	  Add basic docs. Use glibs mem routines.

2007-07-18 07:51:11 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/multifile/gstmultifilesrc.c: Add example to the docs. Fix buffer-offset-end and add some debug.
	  Original commit message from CVS:
	  * gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create):
	  Add example to the docs. Fix buffer-offset-end and add some debug.

2007-07-18 07:42:47 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/jack/gstjackaudiosink.c: Add stdlib include here too.
	  Original commit message from CVS:
	  * ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_open_device),
	  (gst_jack_ring_buffer_acquire):
	  Add stdlib include here too.

2007-07-18 07:35:32 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  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-07-16 09:19:14 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/faad/gstfaad.c: Fix buffer clipping to correctly clip to the segment stop.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (clip_outgoing_buffer):
	  Fix buffer clipping to correctly clip to the segment stop.

2007-07-14 18:48:25 +0000  Hans de Goede <j.w.r.degoede@hhs.nl>

	  gst/modplug/gstmodplug.cc: add several missing supported mime-types to the modplug plugin.
	  Original commit message from CVS:
	  Patch by: Hans de Goede <j.w.r.degoede at hhs dot nl>
	  * gst/modplug/gstmodplug.cc:
	  add several missing supported mime-types to the modplug plugin.
	  Fixes #456901.

2007-07-13 16:46:00 +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 there, and...
	  Original commit message from CVS:
	  * configure.ac:
	  * tests/Makefile.am:
	  Remove bogus check for libcheck, since we check for
	  gstreamer-check and it pulls in the required info from there, and we
	  weren't actually _using_ the information for libcheck ourselves
	  anyway.

2007-07-12 11:55:10 +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:43:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/: Fix build against core CVS.
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c: (gst_deinterleave_process):
	  * gst/vmnc/vmncdec.c: (vmnc_make_buffer):
	  Fix build against core CVS.

2007-07-09 06:05:45 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  REQUIREMENTS: Sync with changes in -ugly.
	  Original commit message from CVS:
	  * REQUIREMENTS:
	  Sync with changes in -ugly.

2007-07-08 19:06:48 +0000  Tim-Philipp Müller <tim@centricular.net>

	  REQUIREMENTS: Add download location of libamrwb.
	  Original commit message from CVS:
	  * REQUIREMENTS:
	  Add download location of libamrwb.

2007-07-06 21:07:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/inspect/: Add missing inspect files. Fixes build (#454313).
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-amrwb.xml:
	  * docs/plugins/inspect/plugin-equalizer.xml:
	  * docs/plugins/inspect/plugin-multifile.xml:
	  * docs/plugins/inspect/plugin-timidity.xml:
	  * docs/plugins/inspect/plugin-wildmidi.xml:
	  Add missing inspect files. Fixes build (#454313).
	  * ext/timidity/gstwildmidi.c: (wildmidi_open_config):
	  Scream a bit louder when initialisation fails.
	  * gst-libs/README:
	  * gst-libs/ext/.cvsignore:
	  Remove some cruft.

2007-07-05 22:28:04 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/ivorbis/Makefile.am: Dist header files. Fixes #454078.
	  Original commit message from CVS:
	  * ext/ivorbis/Makefile.am:
	  Dist header files. Fixes #454078.

2007-07-05 08:45:32 +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.
	  * ext/amrwb/gstamrwbenc.c:
	  Fix comment start.

2007-07-04 11:56:55 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c (dvbsrc_details, ARG_DVBSRC_ADAPTER,
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c (dvbsrc_details, ARG_DVBSRC_ADAPTER,
	  ARG_DVBSRC_FRONTEND, ARG_DVBSRC_DISEQC_SRC, ARG_DVBSRC_FREQUENCY,
	  ARG_DVBSRC_POLARITY, gst_dvbsrc_class_init, gst_dvbsrc_init,
	  gst_dvbsrc_set_property, gst_dvbsrc_get_property,
	  gst_dvbsrc_open_frontend, gst_dvbsrc_open_dvr, read_device,
	  gst_dvbsrc_create, gst_dvbsrc_set_pes_filters):
	  * sys/dvb/gstdvbsrc.h (adapter_number, frontend_number):
	  Removed property "device". Added properties "adapter" and "frontend".
	  Fixes #453636.
	  Rename freq property to frequency.

2007-07-03 17:09:24 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/videosignal/gstvideodetect.c: Fix property descriptions.
	  Original commit message from CVS:
	  * gst/videosignal/gstvideodetect.c: (gst_video_detect_class_init):
	  Fix property descriptions.

2007-07-03 09:18:22 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Also document AMR-WB elements.
	  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/amrwb/gstamrwbdec.c:
	  * ext/amrwb/gstamrwbenc.c:
	  * ext/amrwb/gstamrwbparse.c:
	  Also document AMR-WB elements.

2007-07-03 08:16:15 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Cleanup the section file so that -unused is empty again (and useful to spot new docs). Add not yet add...
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  Cleanup the section file so that -unused is empty again (and useful to
	  spot new docs). Add not yet added docs to sgml file. Add more header
	  to Makefile.am to make them introspectable.
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gdp.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  Update the doc blobs.

2007-07-03 08:01:18 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/multifile/: Add .h files to be able to add it to the docs.
	  Original commit message from CVS:
	  * gst/multifile/Makefile.am:
	  * gst/multifile/gstmultifile.c:
	  * gst/multifile/gstmultifilesink.c:
	  * gst/multifile/gstmultifilesink.h:
	  * gst/multifile/gstmultifilesrc.c:
	  * gst/multifile/gstmultifilesrc.h:
	  Add .h files to be able to add it to the docs.

2007-07-03 07:52:52 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/modplug/gstmodplug.cc: Activate doc section.
	  Original commit message from CVS:
	  * gst/modplug/gstmodplug.cc:
	  Activate doc section.

2007-07-03 07:41:34 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/timidity/: Fix licence (both are GPL). Add element docs.
	  Original commit message from CVS:
	  * ext/timidity/gsttimidity.c:
	  * ext/timidity/gstwildmidi.c:
	  * ext/timidity/gstwildmidi.h:
	  Fix licence (both are GPL). Add element docs.

2007-07-03 07:30:47 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/musicbrainz/gsttrm.h: Fix _get_type signature.
	  Original commit message from CVS:
	  * ext/musicbrainz/gsttrm.h:
	  Fix _get_type signature.

2007-07-03 07:16:26 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/replaygain/gstrgvolume.h: Fix GObject macros.
	  Original commit message from CVS:
	  * gst/replaygain/gstrgvolume.h:
	  Fix GObject macros.

2007-06-29 15:23:34 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/dc1394/gstdc1394.c: Make a bunch of functions static, and move variable declarations to the start of blocks to av...
	  Original commit message from CVS:
	  * ext/dc1394/gstdc1394.c: (gst_dc1394_src_fixate),
	  (gst_dc1394_create), (gst_dc1394_caps_set_format_vmode_caps),
	  (gst_dc1394_set_caps_framesize_range),
	  (gst_dc1394_caps_set_framerate_list), (gst_dc1394_get_cam_caps),
	  (gst_dc1394_framerate_frac_to_const),
	  (gst_dc1394_open_cam_with_best_caps):
	  Make a bunch of functions static, and move variable declarations
	  to the start of blocks to avoid problems on older gcc.
	  Make sure to unset value types.

2007-06-29 14:48:59 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/dc1394/gstdc1394.c: The correct fourcc for the 4:1:1 packed format is 'IYU1'.
	  Original commit message from CVS:
	  * ext/dc1394/gstdc1394.c: (gst_dc1394_set_caps_color):
	  The correct fourcc for the 4:1:1 packed format is 'IYU1'.
	  With CVS of ffmpegcolorspace from plugins-base, I can now
	  get 30 fps from the iSight.

2007-06-29 14:11:24 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/dc1394/gstdc1394.c: Change a g_print to a GST_DEBUG message.
	  Original commit message from CVS:
	  * ext/dc1394/gstdc1394.c: (gst_dc1394_set_caps_color):
	  Change a g_print to a GST_DEBUG message.

2007-06-29 13:09:19 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	  Oops, add an attribution for Antoine Tremblay too - the original patch author.
	  Original commit message from CVS:
	  Oops, add an attribution for Antoine Tremblay too - the original patch author.

2007-06-29 13:03:27 +0000  Eric Jonas <jonas@mit.edu>

	  Commit new dc1394src element.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/dc1394/Makefile.am:
	  * ext/dc1394/gstdc1394.c: (gst_dc1394_base_init),
	  (gst_dc1394_class_init), (gst_dc1394_init),
	  (gst_dc1394_src_fixate), (gst_dc1394_set_property),
	  (gst_dc1394_get_property), (gst_dc1394_getcaps),
	  (gst_dc1394_setcaps), (gst_dc1394_get_times), (gst_dc1394_create),
	  (gst_dc1394_parse_caps), (gst_dc1394_change_state),
	  (gst_dc1394_caps_set_format_vmode_caps),
	  (gst_dc1394_set_caps_color), (gst_dc1394_set_caps_framesize),
	  (gst_dc1394_set_caps_framesize_range),
	  (gst_dc1394_caps_set_framerate_list),
	  (gst_dc1394_framerate_const_to_frac),
	  (gst_dc1394_get_all_dc1394_caps), (gst_dc1394_get_cam_caps),
	  (gst_dc1394_framerate_frac_to_const),
	  (gst_dc1394_open_cam_with_best_caps),
	  (gst_dc1394_change_camera_transmission), (plugin_init):
	  * ext/dc1394/gstdc1394.h:
	  Commit new dc1394src element.
	  Patch By: Eric Jonas < jonas at mit dot edu >
	  Close: #387251

2007-06-28 10:40:16 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/videosignal/gstvideodetect.c: Register new property as well.
	  Original commit message from CVS:
	  * gst/videosignal/gstvideodetect.c: (gst_video_detect_class_init):
	  Register new property as well.

2007-06-28 09:36:20 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/videosignal/gstvideodetect.*: Add property to adjust the center, sensitivity is now the distance from this center.
	  Original commit message from CVS:
	  * gst/videosignal/gstvideodetect.c: (gst_video_detect_420),
	  (gst_video_detect_set_property), (gst_video_detect_get_property):
	  * gst/videosignal/gstvideodetect.h:
	  Add property to adjust the center, sensitivity is now the distance from
	  this center.

2007-06-27 15:33:26 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/videosignal/: Add left and bottom offset properties to control the position of the pattern.
	  Original commit message from CVS:
	  * gst/videosignal/gstvideodetect.c: (gst_video_detect_420),
	  (gst_video_detect_set_property), (gst_video_detect_get_property),
	  (gst_video_detect_class_init):
	  * gst/videosignal/gstvideodetect.h:
	  * gst/videosignal/gstvideomark.c: (gst_video_mark_draw_box),
	  (gst_video_mark_420), (gst_video_mark_set_property),
	  (gst_video_mark_get_property), (gst_video_mark_class_init):
	  * gst/videosignal/gstvideomark.h:
	  Add left and bottom offset properties to control the position of the
	  pattern.

2007-06-25 12:47:43 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  docs/plugins/: Update docs with caps info.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-gdp.xml:
	  * docs/plugins/inspect/plugin-glimagesink.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-jack.xml:
	  * docs/plugins/inspect/plugin-mms.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-neon.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  Update docs with caps info.

2007-06-25 11:02:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gconf/: Remove dysfunctional directory (this stuff is in -good).
	  Original commit message from CVS:
	  * gconf/.cvsignore:
	  * gconf/Makefile.am:
	  * gconf/gstreamer.schemas.in:
	  Remove dysfunctional directory (this stuff is in -good).
	  * ext/sndfile/gstsf.c: (plugin_init):
	  * sys/dvb/gstdvbsrc.c: (plugin_init):
	  Add i18n bindtextdomain stuff.
	  * gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_class_init),
	  (plugin_init):
	  Post an error message when returning GST_FLOW_ERROR; minor cleanups.
	  * po/POTFILES.in:
	  Add more source files with translatable strings (fixes #450605).

2007-06-23 11:24:44 +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 20:23:18 +0000  Jens Granseuer <jensgr@gmx.net>

	  gst/: Build fixes for gcc-2.9x (no mid-block variable declarations etc.).
	  Original commit message from CVS:
	  Patch by: Jens Granseuer  <jensgr at gmx net>
	  * gst/equalizer/gstiirequalizer.c:
	  * gst/equalizer/gstiirequalizer10bands.c:
	  * gst/equalizer/gstiirequalizer3bands.c:
	  * gst/equalizer/gstiirequalizernbands.c:
	  * gst/rtpmanager/async_jitter_queue.c:
	  (async_jitter_queue_push_sorted):
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_chain):
	  * gst/switch/gstswitch.c: (gst_switch_chain):
	  Build fixes for gcc-2.9x (no mid-block variable declarations etc.).
	  Fixes #450185.

2007-06-22 15:30:00 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* ChangeLog:
	* examples/switch/switcher.c:
	* gst/switch/gstswitch.c:
	* gst/switch/gstswitch.h:
	  examples/switch/switcher.c (my_bus_callback, switch_timer, last_message_received, main): gst/switch/gstswitch.c (gst_...
	  Original commit message from CVS:
	  * examples/switch/switcher.c (my_bus_callback, switch_timer,
	  last_message_received, main):
	  * gst/switch/gstswitch.c (gst_switch_release_pad,
	  gst_switch_request_new_pad, gst_switch_chain, gst_switch_event,
	  gst_switch_set_property, gst_switch_get_property,
	  gst_switch_get_linked_pad, gst_switch_getcaps,
	  gst_switch_bufferalloc, gst_switch_dispose, gst_switch_init):
	  * gst/switch/gstswitch.h (switch_mutex, GST_SWITCH_LOCK,
	  GST_SWITCH_UNLOCK):
	  Add an extra lock to protect against certain variables instead of
	  using the object lock. Fix case where caps are different in the
	  sink pads causes deadlock. Update example to use different caps
	  on each sink pad.

2007-06-22 14:27:40 +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:46:33 +0000  Edward Hervey <bilboed@bilboed.com>

	  Fix leaks.
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_init):
	  * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_init):
	  * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_init):
	  * ext/audioresample/gstaudioresample.c:
	  * ext/bz2/gstbz2dec.c: (gst_bz2dec_init):
	  * ext/bz2/gstbz2enc.c: (gst_bz2enc_init):
	  * ext/divx/gstdivxdec.c: (gst_divxdec_init):
	  * ext/divx/gstdivxenc.c: (gst_divxenc_init):
	  * ext/faac/gstfaac.c: (gst_faac_init):
	  * ext/gsm/gstgsmdec.c: (gst_gsmdec_init):
	  * ext/gsm/gstgsmenc.c: (gst_gsmenc_init):
	  * ext/hermes/gsthermescolorspace.c: (gst_hermes_colorspace_init):
	  * ext/lcs/gstcolorspace.c: (gst_colorspace_init):
	  * ext/libfame/gstlibfame.c: (gst_fameenc_init):
	  * ext/snapshot/gstsnapshot.c: (gst_snapshot_init):
	  * ext/spc/gstspc.c: (gst_spc_dec_init):
	  * ext/swfdec/gstswfdec.c: (gst_swfdec_init):
	  * ext/xvid/gstxvidenc.c: (gst_xvidenc_init):
	  * gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_init):
	  * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_init):
	  * gst/chart/gstchart.c: (gst_chart_init):
	  * gst/colorspace/gstcolorspace.c: (gst_colorspace_init):
	  * gst/festival/gstfestival.c: (gst_festival_init):
	  * gst/freeze/gstfreeze.c: (gst_freeze_init):
	  * gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_request_new_pad):
	  * gst/mpeg1sys/gstmpeg1systemencode.c: (gst_system_encode_init):
	  * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
	  * gst/nsf/gstnsf.c: (gst_nsfdec_init):
	  * gst/overlay/gstoverlay.c: (gst_overlay_init):
	  * gst/passthrough/gstpassthrough.c: (passthrough_init):
	  * gst/playondemand/gstplayondemand.c: (play_on_demand_init):
	  * gst/smooth/gstsmooth.c: (gst_smooth_init):
	  * gst/smoothwave/gstsmoothwave.c: (gst_smoothwave_init):
	  * gst/speed/gstspeed.c: (speed_init):
	  * gst/vbidec/gstvbidec.c: (gst_vbidec_init):
	  * gst/videodrop/gstvideodrop.c: (gst_videodrop_init):
	  * sys/dxr3/dxr3spusink.c: (dxr3spusink_init):
	  * sys/dxr3/dxr3videosink.c: (dxr3videosink_init):
	  * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_init):
	  Fix leaks.

2007-06-21 18:41:17 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Re-enable VCD source and fix up release notes.
	  Original commit message from CVS:
	  * RELEASE:
	  * sys/Makefile.am:
	  Re-enable VCD source and fix up release notes.

2007-06-20 10:15:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/equalizer/gstiirequalizer.c: Document parameter mapping.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c:
	  Document parameter mapping.

2007-06-20 08:56:17 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/gstspectrum.c: Fix leaking buffers.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_event),
	  (gst_spectrum_transform_ip):
	  Fix leaking buffers.
	  * tests/check/Makefile.am:
	  * tests/check/elements/spectrum.c: (setup_spectrum),
	  (cleanup_spectrum), (GST_START_TEST), (spectrum_suite), (main):
	  Add simple test for spectrum element.

2007-06-20 08:42:17 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/amrwb/: Add newsegment and discont handling. Some code cleanups. Don't leak the adapter, unref it in a new finali...
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_base_init),
	  (gst_amrwbdec_class_init), (gst_amrwbdec_finalize),
	  (gst_amrwbdec_event), (gst_amrwbdec_chain),
	  (gst_amrwbdec_state_change):
	  * ext/amrwb/gstamrwbdec.h:
	  * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_base_init),
	  (gst_amrwbparse_pull_header), (gst_amrwbparse_loop):
	  Add newsegment and discont handling. Some code cleanups. Don't leak
	  the adapter, unref it in a new finalize method instead. Sync the
	  parser with the amr-nb changes.

2007-06-19 10:45:29 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to CVS.
	  Original commit message from CVS:
	  * configure.ac:
	  Back to CVS.
	  * gst-plugins-bad.doap:
	  Add 0.10.5 to the doap file.

=== release 0.10.5 ===

2007-06-19 10:32:38 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-swfdec.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  Release 0.10.5
	  Original commit message from CVS:
	  Release 0.10.5

2007-06-19 09:37:46 +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:27:52 +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_bad.dsw:
	  * win32/vs6/libdshowsrcwrapper.dsp:
	  * win32/vs6/libgstdshow.dsp:
	  * win32/vs6/libgstmpegvideoparse.dsp:
	  * win32/vs6/libgstneon.dsp:
	  Convert line endings to CRLF and mark as binary files.

2007-06-13 11:48:07 +0000  Wim Taymans <wim.taymans@gmail.com>

	  sys/Makefile.am: Disable VCD build because we're frozen..
	  Original commit message from CVS:
	  * sys/Makefile.am:
	  Disable VCD build because we're frozen..

2007-06-13 11:37:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Port VCD element.
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/vcd/Makefile.am:
	  * sys/vcd/vcdsrc.c: (gst_vcdsrc_setup_interfaces),
	  (gst_vcdsrc_base_init), (gst_vcdsrc_class_init), (gst_vcdsrc_init),
	  (gst_vcdsrc_msf), (gst_vcdsrc_recalculate),
	  (gst_vcdsrc_set_property), (gst_vcdsrc_get_property),
	  (gst_vcdsrc_create), (gst_vcdsrc_start), (gst_vcdsrc_stop),
	  (gst_vcdsrc_uri_set_uri):
	  * sys/vcd/vcdsrc.h:
	  Port VCD element.

2007-06-12 21:28:12 +0000  Sébastien Moutte <sebastien@moutte.net>

	  win32/MANIFEST: Add megvideoparse, libdshow and dshowsrcwrapper to win32
	  Original commit message from CVS:
	  * win32/MANIFEST:
	  Add megvideoparse, libdshow and dshowsrcwrapper to win32
	  MANIFEST.
	  * win32/vs6/gst_plugins_bad.dsw:
	  Remove qtdemux, directdraw, directsound and waveform project files
	  from the workspace as they have been moved to -good.

2007-06-12 20:22:23 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  po/POTFILES.in: Remove qtdemux from the translation list.
	  Original commit message from CVS:
	  * po/POTFILES.in:
	  Remove qtdemux from the translation list.

2007-06-12 20:15:14 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Move videocrop and osxvideo to -good.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-osxvideo.xml:
	  * docs/plugins/inspect/plugin-videocrop.xml:
	  * gst-plugins-bad.spec.in:
	  * gst/videocrop/Makefile.am:
	  * gst/videocrop/gstvideocrop.c:
	  * gst/videocrop/gstvideocrop.h:
	  * gst/videocrop/videocrop.vcproj:
	  * sys/Makefile.am:
	  * sys/osxvideo/Makefile.am:
	  * sys/osxvideo/cocoawindow.h:
	  * sys/osxvideo/cocoawindow.m:
	  * sys/osxvideo/osxvideosink.h:
	  * sys/osxvideo/osxvideosink.m:
	  * tests/check/Makefile.am:
	  * tests/check/elements/videocrop.c:
	  * tests/icles/Makefile.am:
	  * tests/icles/videocrop-test.c:
	  Move videocrop and osxvideo to -good.

2007-06-12 19:36:11 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Move qtdemux to -good.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * gst/qtdemux/Makefile.am:
	  * gst/qtdemux/gstrtpxqtdepay.c:
	  * gst/qtdemux/gstrtpxqtdepay.h:
	  * gst/qtdemux/qtdemux.c:
	  * gst/qtdemux/qtdemux.h:
	  * gst/qtdemux/qtdemux.vcproj:
	  * gst/qtdemux/qtdemux_dump.c:
	  * gst/qtdemux/qtdemux_dump.h:
	  * gst/qtdemux/qtdemux_fourcc.h:
	  * gst/qtdemux/qtdemux_types.c:
	  * gst/qtdemux/qtdemux_types.h:
	  * gst/qtdemux/qtpalette.h:
	  * gst/qtdemux/quicktime.c:
	  * win32/MANIFEST:
	  * win32/vs6/libgstqtdemux.dsp:
	  Move qtdemux to -good.
	  * gst-plugins-bad.spec.in:
	  Update spec file to reflect wavpack & qtdemux moving to -good.

2007-06-12 18:53:03 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove the waveform plugin now that it is in -good.
	  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:
	  * docs/plugins/inspect/plugin-waveform.xml:
	  * sys/waveform/gstwaveformplugin.c:
	  * sys/waveform/gstwaveformsink.c:
	  * sys/waveform/gstwaveformsink.h:
	  * win32/MANIFEST:
	  * win32/vs6/libgstwaveform.dsp:
	  Remove the waveform plugin now that it is in -good.

2007-06-08 20:20:34 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  Move wavpack to good.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/inspect/plugin-wavpack.xml:
	  * ext/Makefile.am:
	  * ext/wavpack/Makefile.am:
	  * ext/wavpack/gstwavpack.c:
	  * ext/wavpack/gstwavpackcommon.c:
	  * ext/wavpack/gstwavpackcommon.h:
	  * ext/wavpack/gstwavpackdec.c:
	  * ext/wavpack/gstwavpackdec.h:
	  * ext/wavpack/gstwavpackenc.c:
	  * ext/wavpack/gstwavpackenc.h:
	  * ext/wavpack/gstwavpackparse.c:
	  * ext/wavpack/gstwavpackparse.h:
	  * ext/wavpack/gstwavpackstreamreader.c:
	  * ext/wavpack/gstwavpackstreamreader.h:
	  * ext/wavpack/md5.c:
	  * ext/wavpack/md5.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/wavpackdec.c:
	  * tests/check/elements/wavpackenc.c:
	  * tests/check/elements/wavpackparse.c:
	  Move wavpack to good.

2007-06-08 17:36:46 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Remove DirectDraw & DirectSound plugins, as they've moved to Good
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/inspect/plugin-directdraw.xml:
	  * docs/plugins/inspect/plugin-directsound.xml:
	  * sys/Makefile.am:
	  * sys/directdraw/Makefile.am:
	  * sys/directdraw/gstdirectdrawplugin.c:
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directdraw/gstdirectdrawsink.h:
	  * sys/directsound/Makefile.am:
	  * sys/directsound/gstdirectsoundplugin.c:
	  * sys/directsound/gstdirectsoundsink.c:
	  * sys/directsound/gstdirectsoundsink.h:
	  * win32/MANIFEST:
	  * win32/gst.sln:
	  * win32/vs6/libgstdirectdraw.dsp:
	  * win32/vs6/libgstdirectsound.dsp:
	  * win32/vs7/libgstdirectdraw.vcproj:
	  * win32/vs7/libgstdirectsound.vcproj:
	  * win32/vs8/libgstdirectdraw.vcproj:
	  * win32/vs8/libgstdirectsound.vcproj:
	  Remove DirectDraw & DirectSound plugins, as they've moved to Good

2007-06-08 16:49:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  When driving the pipeline, also post an error when we get a not-linked flow return from downstream.
	  Original commit message from CVS:
	  * ext/timidity/gsttimidity.c: (gst_timidity_loop):
	  * ext/timidity/gstwildmidi.c: (gst_wildmidi_loop):
	  * gst/tta/gstttaparse.c: (gst_tta_parse_loop):
	  When driving the pipeline, also post an error when we get a
	  not-linked flow return from downstream.

2007-06-08 16:31:15 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Rename the keep-aspect-ratio property to force-aspect-ratio to make it consistent with xvimagesink and ximagesink.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdraw_sink_class_init):
	  Rename the keep-aspect-ratio property to force-aspect-ratio to make
	  it consistent with xvimagesink and ximagesink.

2007-06-08 08:12:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/icles/videocrop-test.c: Default to xvimagesink instead of autovideosink while autovideosink/ghostpads/whatever ...
	  Original commit message from CVS:
	  * tests/icles/videocrop-test.c: (main):
	  Default to xvimagesink instead of autovideosink while
	  autovideosink/ghostpads/whatever don't handle the way we use it in
	  the way we expect it to.

2007-06-06 18:30:22 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Bump requirements to released versions of core and -base, and remove special-casing for equalizer and r...
	  Original commit message from CVS:
	  * configure.ac:
	  Bump requirements to released versions of core and -base, and remove
	  special-casing for equalizer and rtpmanager as it's not needed any
	  longer.

2007-06-06 15:58:31 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  sys/glsink/glimagesink.c: Sprinkle in some XSync calls to avoid raciness with broken drivers (ATI) when re-using a si...
	  Original commit message from CVS:
	  * sys/glsink/glimagesink.c: (gst_glimage_sink_stop),
	  (gst_glimage_sink_create_window), (gst_glimage_sink_init_display):
	  Sprinkle in some XSync calls to avoid raciness with broken
	  drivers (ATI) when re-using a single glimagesink.

2007-06-06 11:03:24 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegvideoparse/: Fix some silly bugs with calculating the guard sizes.
	  Original commit message from CVS:
	  * gst/mpegvideoparse/mpegpacketiser.c:
	  (mpeg_util_parse_extension_packet), (mpeg_util_parse_sequence_hdr),
	  (mpeg_util_parse_picture_hdr):
	  * gst/mpegvideoparse/mpegvideoparse.c:
	  (mpegvideoparse_handle_sequence), (mpegvideoparse_drain_avail):
	  Fix some silly bugs with calculating the guard sizes.
	  Properly compare the old sequence header structure with the new one.
	  Don't error out on an invalid sequence - just ignore it.

2007-06-06 09:11:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/real/gstrealvideodec.c: Printf fix in debug statement; also print the right number there.
	  Original commit message from CVS:
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_decode):
	  Printf fix in debug statement; also print the right number there.

2007-06-06 08:06:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/sdl/: Add GST_CFLAGS, which apparently somehow fixes the build somewhere (#444499); initialise variable to avoid ...
	  Original commit message from CVS:
	  * ext/sdl/Makefile.am:
	  * ext/sdl/sdlvideosink.c: (gst_sdlv_process_events):
	  Add GST_CFLAGS, which apparently somehow fixes the build somewhere
	  (#444499); initialise variable to avoid false compiler warning.

2007-06-05 14:17:36 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  fix up spec file
	  Original commit message from CVS:
	  fix up spec file

2007-06-01 14:36:04 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Add plugin to generate a pattern detectable by videodetect.
	  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:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * gst/videosignal/Makefile.am:
	  * gst/videosignal/gstvideomark.c: (gst_video_mark_set_caps),
	  (gst_video_mark_draw_box), (gst_video_mark_420),
	  (gst_video_mark_transform_ip), (gst_video_mark_set_property),
	  (gst_video_mark_get_property), (gst_video_mark_base_init),
	  (gst_video_mark_class_init), (gst_video_mark_init),
	  (gst_video_mark_get_type):
	  * gst/videosignal/gstvideomark.h:
	  * gst/videosignal/gstvideosignal.c: (plugin_init):
	  Add plugin to generate a pattern detectable by videodetect.

2007-06-01 11:59:52 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/neon/gstneonhttpsrc.c: Don't leak buffer when returning an error.
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create):
	  Don't leak buffer when returning an error.

2007-06-01 09:58:01 +0000  René Stadler <mail@renestadler.de>

	  ext/neon/gstneonhttpsrc.*: Deprecated "uri" property.  Clean up property descriptions.
	  Original commit message from CVS:
	  Patch by René Stadler <mail at renestadler dot de>:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	  (gst_neonhttp_src_init), (gst_neonhttp_src_dispose),
	  (gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property),
	  (gst_neonhttp_src_start), (gst_neonhttp_src_do_seek),
	  (gst_neonhttp_src_set_location),
	  (gst_neonhttp_src_send_request_and_redirect),
	  (gst_neonhttp_src_uri_get_uri), (gst_neonhttp_src_uri_set_uri):
	  * ext/neon/gstneonhttpsrc.h:
	  Deprecated "uri" property.  Clean up property descriptions.
	  Change default User-Agent to the slightly more descriptive
	  "GStreamer neonhttpsrc".
	  Various other small cleanups, mostly property related.

2007-05-31 19:12:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/libmms/gstmms.h: No reason to use gpointers instead of typed pointes here as far as I can see.
	  Original commit message from CVS:
	  * ext/libmms/gstmms.h:
	  No reason to use gpointers instead of typed pointes here as far as I
	  can see.
	  * ext/mythtv/gstmythtvsrc.c:
	  * ext/neon/gstneonhttpsrc.c:
	  * gst/switch/gstswitch.c:
	  Don't use gtk-doc magic markers for things that aren't meant to be
	  parsed by gtk-doc. Makes gtk-doc complain a bit less.

2007-05-30 14:52:07 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Added videosignal plugin with two plugins to analyse video frames.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-videosignal.xml:
	  * gst/videosignal/Makefile.am:
	  * gst/videosignal/gstvideoanalyse.c: (gst_video_analyse_set_caps),
	  (gst_video_analyse_post_message), (gst_video_analyse_420),
	  (gst_video_analyse_transform_ip), (gst_video_analyse_set_property),
	  (gst_video_analyse_get_property), (gst_video_analyse_base_init),
	  (gst_video_analyse_class_init), (gst_video_analyse_init),
	  (gst_video_analyse_get_type):
	  * gst/videosignal/gstvideoanalyse.h:
	  * gst/videosignal/gstvideodetect.c: (gst_video_detect_set_caps),
	  (gst_video_detect_post_message),
	  (gst_video_detect_calc_brightness), (gst_video_detect_420),
	  (gst_video_detect_transform_ip), (gst_video_detect_set_property),
	  (gst_video_detect_get_property), (gst_video_detect_base_init),
	  (gst_video_detect_class_init), (gst_video_detect_init),
	  (gst_video_detect_get_type):
	  * gst/videosignal/gstvideodetect.h:
	  * gst/videosignal/gstvideosignal.c: (plugin_init):
	  * gst/videosignal/gstvideosignal.h:
	  Added videosignal plugin with two plugins to analyse video frames.
	  Added videoanalyse to report about brightness and variance in video
	  frames.
	  Added videodetect to detect predefined patterns in a video signal.

2007-05-30 09:30:52 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/gst-plugins-bad-plugins.*: More updates.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  More updates.

2007-05-30 09:08:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/: Updates; update inspect info for rtpmanager => gstrtpmanager rename, hopefully that makes the build bo...
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-gstrtpmanager.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-rtpmanager.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-swfdec.xml:
	  Updates; update inspect info for rtpmanager => gstrtpmanager rename,
	  hopefully that makes the build bots happy again.

2007-05-28 16:37:47 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Rename elements to avoid conflict with farsight elements with the same name. Fixes #430664.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * gst/rtpmanager/gstrtpbin.c: (create_session), (create_stream),
	  (gst_rtp_bin_class_init), (create_recv_rtp), (create_recv_rtcp),
	  (create_send_rtp), (create_rtcp), (gst_rtp_bin_request_new_pad):
	  * gst/rtpmanager/gstrtpclient.c: (create_stream),
	  (gst_rtp_client_request_new_pad):
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_clear_pt_map), (gst_rtp_jitter_buffer_loop):
	  * gst/rtpmanager/gstrtpmanager.c: (plugin_init):
	  * gst/rtpmanager/gstrtpptdemux.c:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (gst_rtp_session_request_new_pad):
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  Rename elements to avoid conflict with farsight elements with the same
	  name. Fixes #430664.

2007-05-24 08:35:23 +0000  Vincent Torri <vtorri@univ-evry.fr>

	  sys/directdraw/gstdirectdrawsink.*: Fix more warnings when compiling with MingW (#439914).
	  Original commit message from CVS:
	  Patch by: Vincent Torri  <vtorri at univ-evry fr>
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdraw_sink_buffer_alloc),
	  (gst_directdraw_sink_show_frame),
	  (gst_directdraw_sink_check_primary_surface),
	  (gst_directdraw_sink_check_offscreen_surface),
	  (EnumModesCallback2), (gst_directdraw_sink_get_ddrawcaps),
	  (gst_directdraw_sink_surface_create):
	  * sys/directdraw/gstdirectdrawsink.h:
	  Fix more warnings when compiling with MingW (#439914).

2007-05-23 22:44:12 +0000  Sébastien Moutte <sebastien@moutte.net>

	  docs/plugins/gst-plugins-bad-plugins.args: Remove directsoundsink property doc as this sink use the mixer interface now.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  Remove directsoundsink property doc as this sink use the mixer
	  interface now.
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  Add interfaces implemented by Windows sinks.
	  * sys/directsound/gstdirectsoundsink.c:
	  * sys/directsound/gstdirectsoundsink.h:
	  Remove directsoundsink property  and implement the mixer interface.
	  * win32/vs6/gst_plugins_bad.dsw:
	  * win32/vs6/libgstdirectsound.dsp:
	  Update project files.
	  * gst-libs/gst/dshow/gstdshow.cpp:
	  * gst-libs/gst/dshow/gstdshow.h:
	  * gst-libs/gst/dshow/gstdshowfakesink.cpp:
	  * gst-libs/gst/dshow/gstdshowfakesink.h:
	  * gst-libs/gst/dshow/gstdshowfakesrc.cpp:
	  * gst-libs/gst/dshow/gstdshowfakesrc.h:
	  * gst-libs/gst/dshow/gstdshowinterface.cpp:
	  * gst-libs/gst/dshow/gstdshowinterface.h:
	  * win32/common/libgstdshow.def:
	  * win32/vs6/libgstdshow.dsp:
	  Add a new gst library which allow to create internal Direct Show
	  graph (pipelines) to wrap Windows sources, decoders or encoders.
	  It includes a DirectShow fake source and sink and utility functions.
	  * sys/dshowsrcwrapper/gstdshowaudiosrc.c:
	  * sys/dshowsrcwrapper/gstdshowaudiosrc.h:
	  * sys/dshowsrcwrapper/gstdshowsrcwrapper.c:
	  * sys/dshowsrcwrapper/gstdshowsrcwrapper.h:
	  * sys/dshowsrcwrapper/gstdshowvideosrc.c:
	  * sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  * win32/vs6/libdshowsrcwrapper.dsp:
	  Add a new plugin to wrap DirectShow sources on Windows.
	  It gets data from any webcam, dv cam, micro. We could add
	  tv tunner card later.

2007-05-23 18:00:15 +0000  René Stadler <mail@renestadler.de>

	  ext/sdl/sdlvideosink.c: Separate the authors by newlines instead of nothing. Fixes #440774.
	  Original commit message from CVS:
	  Patch by René Stadler <mail at renestadler dot de>:
	  * ext/sdl/sdlvideosink.c:
	  Separate the authors by newlines instead of nothing. Fixes #440774.

2007-05-23 16:14:13 +0000  Wim Taymans <wim.taymans@gmail.com>

	  docs/plugins/inspect/plugin-rtpmanager.xml: Add doc xml file.
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-rtpmanager.xml:
	  Add doc xml file.

2007-05-23 13:08:52 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Document stuff.
	  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/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
	  * gst/rtpmanager/gstrtpbin.h:
	  * gst/rtpmanager/gstrtpclient.c:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init),
	  (gst_rtp_jitter_buffer_clear_pt_map), (gst_rtp_jitter_buffer_loop):
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init),
	  (gst_rtp_pt_demux_clear_pt_map):
	  * gst/rtpmanager/gstrtpptdemux.h:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (rtcp_thread), (gst_rtp_session_clear_pt_map):
	  * gst/rtpmanager/gstrtpsession.h:
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  (gst_rtp_ssrc_demux_class_init):
	  Document stuff.
	  Add clear-pt-map action signal where needed.

2007-05-22 11:14:13 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Depend on gstreamer-0.10.12.1. gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN, _Gs...
	  Original commit message from CVS:
	  * configure.ac:
	  Depend on gstreamer-0.10.12.1.
	  * gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN,
	  _GstIirEqualizerBand, object, _GstIirEqualizerBandClass,
	  parent_class, gst_iir_equalizer_band_set_property,
	  gst_iir_equalizer_band_class_init, gst_iir_equalizer_band_get_type,
	  gst_iir_equalizer_child_proxy_get_child_by_index,
	  gst_iir_equalizer_child_proxy_get_children_count,
	  gst_iir_equalizer_child_proxy_interface_init, setup_filter,
	  gst_iir_equalizer_compute_frequencies,
	  gst_iir_equalizer_set_property, gst_iir_equalizer_get_property,
	  plugin_init):
	  * gst/equalizer/gstiirequalizer.h (audiofilter):
	  * gst/equalizer/gstiirequalizernbands.c (ARG_NUM_BANDS,
	  gst_iir_equalizer_nbands_base_init, gst_iir_equalizer_nbands_init,
	  gst_iir_equalizer_nbands_set_property):
	  Use new locking macros.
	  * gst/filter/gstbpwsinc.c (bpwsinc_set_caps):
	  Add fixme.
	  * gst/spectrum/gstspectrum.c (SPECTRUM_WINDOW_BASE,
	  SPECTRUM_WINDOW_LEN, gst_spectrum_init, gst_spectrum_set_property,
	  gst_spectrum_event, gst_spectrum_transform_ip):
	  Use new locking macros. Turn two fixed values into #defines.

2007-05-22 11:03:30 +0000  Edward Hervey <bilboed@bilboed.com>

	  docs/plugins/Makefile.am: Also look for .m (objectivec) files.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  Also look for .m (objectivec) files.
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * sys/osxvideo/osxvideosink.m:
	  Add documentation for element and properties.

2007-05-21 14:01:16 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ChangeLog: ChangeLog surgery. gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN, _GstIirEqualizerBa...
	  Original commit message from CVS:
	  * ChangeLog:
	  ChangeLog surgery.
	  * gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN,
	  _GstIirEqualizerBand, object, _GstIirEqualizerBandClass,
	  parent_class, gst_iir_equalizer_band_set_property,
	  gst_iir_equalizer_band_class_init, gst_iir_equalizer_band_get_type,
	  gst_iir_equalizer_child_proxy_get_child_by_index,
	  gst_iir_equalizer_child_proxy_get_children_count,
	  gst_iir_equalizer_child_proxy_interface_init, setup_filter,
	  gst_iir_equalizer_compute_frequencies, plugin_init):
	  * tests/icles/equalizer-test.c:
	  Add fixme and comment for example.

2007-05-21 12:43:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	* ChangeLog:
	* gst/spectrum/gstspectrum.c:
	  gst/spectrum/gstspectrum.c (gst_spectrum_set_property, gst_spectrum_event, gst_spectrum_transform_ip):
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c (gst_spectrum_set_property,
	  gst_spectrum_event, gst_spectrum_transform_ip):
	  Use lock to protect from concurrent access.

2007-05-21 11:37:16 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackenc.c: Specify and use properties as unsigned int that are an unsigned int.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	  (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	  Specify and use properties as unsigned int that are an unsigned int.

2007-05-21 11:17:21 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackenc.*: Fixup docs, make the bitrate property an int as it should be and allow to set the differ...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	  (gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config),
	  (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	  * ext/wavpack/gstwavpackenc.h:
	  Fixup docs, make the bitrate property an int as it should be and
	  allow to set the different extra processing modes instead of only
	  allowing none and the default one.

2007-05-20 21:31:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackenc.c: Add missing audioconverts in the example pipelines of wavpackenc. As the wavpack stuff n...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c:
	  Add missing audioconverts in the example pipelines of wavpackenc. As
	  the wavpack stuff now needs input with 32 bit width (and random depth)
	  this is needed now. The example pipelines for the parser and decoder
	  are still fine.

2007-05-20 15:12:31 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/: Fix docs build and hierarchy.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  Fix docs build and hierarchy.

2007-05-20 14:59:46 +0000  Tim-Philipp Müller <tim@centricular.net>

	  sys/directdraw/gstdirectdrawsink.c: Bunch of small fixes: remove static function that doesn't exist; declare another ...
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c: (gst_ddrawsurface_finalize),
	  (gst_directdraw_sink_buffer_alloc),
	  (gst_directdraw_sink_get_ddrawcaps),
	  (gst_directdraw_sink_surface_create):
	  Bunch of small fixes: remove static function that doesn't exist;
	  declare another one that does; printf format fix; use right macro
	  when specifying debug category; remove a bunch of unused variables;
	  #if 0 out an unused chunk of code (partially fixes #439914).

2007-05-20 14:14:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/: Printf format fixes (#439910, #439911).
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample):
	  * gst/switch/gstswitch.c: (gst_switch_chain):
	  Printf format fixes (#439910, #439911).

2007-05-19 10:06:02 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/Makefile.am: Remove bits for deinterleave check which isn't in CVS yet.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Remove bits for deinterleave check which isn't in CVS yet.

2007-05-19 10:01:45 +0000  René Stadler <mail@renestadler.de>

	  Add replaygain playback elements (#412710).
	  Original commit message from CVS:
	  Patch by: René Stadler <mail at renestadler de>
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * gst/replaygain/Makefile.am:
	  * gst/replaygain/gstrganalysis.c: (gst_rg_analysis_class_init),
	  (gst_rg_analysis_start), (gst_rg_analysis_set_caps),
	  (gst_rg_analysis_transform_ip), (gst_rg_analysis_event),
	  (gst_rg_analysis_stop), (gst_rg_analysis_handle_tags),
	  (gst_rg_analysis_handle_eos), (gst_rg_analysis_track_result),
	  (gst_rg_analysis_album_result):
	  * gst/replaygain/gstrganalysis.h:
	  * gst/replaygain/gstrglimiter.c: (gst_rg_limiter_base_init),
	  (gst_rg_limiter_class_init), (gst_rg_limiter_init),
	  (gst_rg_limiter_set_property), (gst_rg_limiter_get_property),
	  (gst_rg_limiter_transform_ip):
	  * gst/replaygain/gstrglimiter.h:
	  * gst/replaygain/gstrgvolume.c: (gst_rg_volume_base_init),
	  (gst_rg_volume_class_init), (gst_rg_volume_init),
	  (gst_rg_volume_set_property), (gst_rg_volume_get_property),
	  (gst_rg_volume_dispose), (gst_rg_volume_change_state),
	  (gst_rg_volume_sink_event), (gst_rg_volume_tag_event),
	  (gst_rg_volume_reset), (gst_rg_volume_update_gain),
	  (gst_rg_volume_determine_gain):
	  * gst/replaygain/gstrgvolume.h:
	  * gst/replaygain/replaygain.c: (plugin_init):
	  * gst/replaygain/replaygain.h:
	  * gst/replaygain/rganalysis.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/rganalysis.c: (send_eos_event),
	  (GST_START_TEST):
	  * tests/check/elements/rglimiter.c: (setup_rglimiter),
	  (cleanup_rglimiter), (set_playing_state), (create_test_buffer),
	  (verify_test_buffer), (GST_START_TEST), (rglimiter_suite), (main):
	  * tests/check/elements/rgvolume.c: (event_func), (setup_rgvolume),
	  (cleanup_rgvolume), (set_playing_state), (set_null_state),
	  (send_eos_event), (send_tag_event), (test_buffer_new),
	  (fail_unless_target_gain), (fail_unless_result_gain),
	  (fail_unless_gain), (GST_START_TEST), (rgvolume_suite), (main):
	  Add replaygain playback elements (#412710).

2007-05-18 16:45:54 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update
	  Original commit message from CVS:
	  update

2007-05-18 12:39:49 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  sys/glsink/glimagesink.c: Update the cached caps after opening the display so that we report only the supported caps ...
	  Original commit message from CVS:
	  * sys/glsink/glimagesink.c: (gst_glimage_sink_init_display):
	  Update the cached caps after opening the display so that we report
	  only the supported caps formats, not just the template caps.
	  Fixes: #439405

2007-05-18 09:35:28 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	* ChangeLog:
	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbenc.c:
	* ext/amrwb/gstamrwbparse.c:
	  ext/amrwb/gstamrwbdec.c (gst_amrwbdec_debug, GST_CAT_DEFAULT, _do_init, gst_amrwbdec_base_init, gst_amrwbdec_class_in...
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbdec.c (gst_amrwbdec_debug, GST_CAT_DEFAULT,
	  _do_init, gst_amrwbdec_base_init, gst_amrwbdec_class_init):
	  * ext/amrwb/gstamrwbenc.c (gst_amrwbenc_debug, GST_CAT_DEFAULT,
	  _do_init, gst_amrwbenc_base_init, gst_amrwbenc_class_init):
	  * ext/amrwb/gstamrwbparse.c (gst_amrwbparse_debug, GST_CAT_DEFAULT,
	  _do_init, gst_amrwbparse_base_init, gst_amrwbparse_class_init):
	  First round of cleanups, that use GST_BOILERPLATE, GST_ELEMENT_DETAILS,
	  GST_DEBUG_FUNCPTR and add log-category.

2007-05-17 10:59:00 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/osxvideo/osxvideosink.*: Remove the event-loop-in-separate-thread modifications, because MacOSX is $#@(*%$# ! For...
	  Original commit message from CVS:
	  * sys/osxvideo/osxvideosink.h:
	  * sys/osxvideo/osxvideosink.m:
	  Remove the event-loop-in-separate-thread modifications, because MacOSX
	  is $#@(*%$# ! For those wondering, the event handling needs to be done
	  in the main thread after all..

2007-05-17 10:08:24 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* ChangeLog:
	* gst/switch/gstswitch.c:
	* gst/switch/gstswitch.h:
	  gst/switch/gstswitch.c (ARG_0, ARG_NB_SOURCES, ARG_ACTIVE_SOURCE,
	  Original commit message from CVS:
	  * gst/switch/gstswitch.c (ARG_0, ARG_NB_SOURCES, ARG_ACTIVE_SOURCE,
	  ARG_START_VALUE, ARG_STOP_VALUE, ARG_LAST_TS, ARG_QUEUE_BUFFERS,
	  parent_class, gst_switch_release_pad, gst_switch_request_new_pad,
	  gst_switch_chain, gst_switch_event, gst_switch_set_property,
	  gst_switch_get_property, gst_switch_getcaps, gst_switch_dispose,
	  unref_buffer, unref_buffers_and_destroy_list, gst_switch_init,
	  gst_switch_base_init, gst_switch_class_init):
	  * gst/switch/gstswitch.h (need_to_send_newsegment, queue_buffers,
	  stop_value, start_value, current_start, last_ts, stored_buffers):
	  Add handling of application provided stop and start values, allowing
	  A/V sync across 2 switch elements.

2007-05-17 09:41:48 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/osxvideo/osxvideosink.*: Fix a stupid #if vs #ifdef bug. Should use the proper colorspace now.
	  Original commit message from CVS:
	  * sys/osxvideo/osxvideosink.h:
	  * sys/osxvideo/osxvideosink.m:
	  Fix a stupid #if vs #ifdef bug. Should use the proper colorspace now.
	  Use a separate thread/task for the cocoa event_loop, else it wouldn't
	  stop.

2007-05-16 17:14:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/real/: Don't crash when we get a buffer and our input caps haven't been set yet; also, don't leak all the input b...
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain),
	  (gst_real_audio_dec_setcaps):
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain):
	  Don't crash when we get a buffer and our input caps haven't been set
	  yet; also, don't leak all the input buffers (realaudiodec only).

2007-05-16 13:50:51 +0000  Stanislav Brabec <sbrabec@suse.cz>

	  Use external shared libamrwb. Fixes #423741 (with lots of cleanup).
	  Original commit message from CVS:
	  patch by: Stanislav Brabec <sbrabec@suse.cz>
	  * configure.ac:
	  * ext/amrwb/Makefile.am:
	  * ext/amrwb/amrwb-code/Makefile.am:
	  * ext/amrwb/amrwb-code/amrwb/Makefile.am:
	  * ext/amrwb/amrwb-code/amrwb/README:
	  * ext/amrwb/gstamrwbdec.c:
	  * ext/amrwb/gstamrwbdec.h (__GST_AMRWBDEC_H__):
	  * ext/amrwb/gstamrwbenc.h (__GST_AMRWBENC_H__):
	  * ext/amrwb/gstamrwbparse.c:
	  * ext/amrwb/gstamrwbparse.h (__GST_AMRWBPARSE_H__):
	  * gst-libs/Makefile.am:
	  * gst-libs/ext/Makefile.am:
	  * gst-libs/ext/amrwb/Makefile.am:
	  * gst-libs/ext/amrwb/README:
	  Use external shared libamrwb. Fixes #423741 (with lots of cleanup).

2007-05-15 21:23:53 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  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-05-15 17:22:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save and restore the various flags in the directdraw/dir...
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/directdraw/Makefile.am:
	  * sys/directsound/Makefile.am:
	  Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save
	  and restore the various flags in the directdraw/directsound
	  detection section. Apparently improves cross-compiling for win32
	  with mingw32 under some circumstances (#437539).

2007-05-15 13:29:53 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpptdemux.c: We always use fixed caps.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	  We always use fixed caps.

2007-05-15 03:45:45 +0000  David Schleef <ds@schleef.org>

	  gst/rtpmanager/gstrtpbin.c: g_hash_table_remove_all() only exists in 2.12.  Work around.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c:
	  g_hash_table_remove_all() only exists in 2.12.  Work around.

2007-05-15 02:54:52 +0000  David Schleef <ds@schleef.org>

	  Add a Bayer-to-RGB converter.  You know you want one, uh-huh.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/bayer/Makefile.am:
	  * gst/bayer/gstbayer.c:
	  * gst/bayer/gstbayer2rgb.c:
	  Add a Bayer-to-RGB converter.  You know you want one, uh-huh.
	  Partial fix for #314160.

2007-05-14 18:03:58 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* ChangeLog:
	* gst/switch/gstswitch.c:
	* gst/switch/gstswitch.h:
	  gst/switch/gstswitch.c (ARG_ACTIVE_SOURCE, ARG_STOP_VALUE,
	  Original commit message from CVS:
	  * gst/switch/gstswitch.c (ARG_ACTIVE_SOURCE, ARG_STOP_VALUE,
	  ARG_LAST_TS, parent_class, gst_switch_release_pad,
	  gst_switch_request_new_pad, gst_switch_chain, gst_switch_event,
	  gst_switch_set_property, gst_switch_get_property, gst_switch_getcaps,
	  gst_switch_dispose, gst_switch_init, gst_switch_class_init):
	  * gst/switch/gstswitch.h (previous_sinkpad, nb_sinkpads, stop_value,
	  current_start, last_ts):
	  Allow application to provide a stop timestamp, so a new segment
	  update can be sent before switching.

2007-05-14 15:28:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/async_jitter_queue.c: Fix leak when flushing.
	  Original commit message from CVS:
	  * gst/rtpmanager/async_jitter_queue.c:
	  (async_jitter_queue_set_flushing_unlocked):
	  Fix leak when flushing.
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_clear_pt_map),
	  (gst_rtp_bin_class_init):
	  * gst/rtpmanager/gstrtpbin.h:
	  Add clear-pt-map signal.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_flush_stop),
	  (gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_loop):
	  Init clock-rate to -1 to mark unknow clock rate.
	  Fix flushing.

2007-05-13 19:57:45 +0000  David Schleef <ds@schleef.org>

	  gst/replaygain/rganalysis.c: Fix wrong ifdef for visual C++.  Fixes: #437403.
	  Original commit message from CVS:
	  * gst/replaygain/rganalysis.c:
	  Fix wrong ifdef for visual C++.  Fixes: #437403.
	  By Ali Sabil <ali.sabil@gmail.com>.

2007-05-13 07:08:06 +0000  David Schleef <ds@schleef.org>

	  ext/neon/gstneonhttpsrc.c: Make redirection the default behavior.  Fixes #413818.
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c:
	  Make redirection the default behavior.  Fixes #413818.

2007-05-11 11:20:33 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add latest plugin
	  Original commit message from CVS:
	  add latest plugin

2007-05-10 14:02:07 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/qtdemux/qtdemux.c (gst_qtdemux_move_stream, gst_qtdemux_loop_state_header, gst_qtdemux_activate_segment, gst_qtde...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c (gst_qtdemux_move_stream,
	  gst_qtdemux_loop_state_header, gst_qtdemux_activate_segment,
	  gst_qtdemux_prepare_current_sample, gst_qtdemux_combine_flows,
	  gst_qtdemux_loop_state_movie, gst_qtdemux_loop,
	  qtdemux_parse_segments, qtdemux_parse_trak):
	  * gst/rtpmanager/rtpsession.c (rtp_session_get_bandwidth,
	  rtp_session_get_rtcp_bandwidth, rtp_session_get_cname,
	  rtp_session_get_name, rtp_session_get_email, rtp_session_get_phone,
	  rtp_session_get_location, rtp_session_get_tool,
	  rtp_session_process_bye, session_report_blocks):
	  * gst/rtpmanager/rtpsource.c (rtp_source_process_rtp,
	  rtp_source_send_rtp, rtp_source_process_sr, rtp_source_process_rb):
	  More format arg fixing (spotted by Ali Sabil <ali.sabil@gmail.com>).
	  * gst/switch/Makefile.am:
	  Add require libraries(spotted by Ali Sabil <ali.sabil@gmail.com>).

2007-05-10 12:38:49 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	* ChangeLog:
	* common:
	* gst/rtpmanager/async_jitter_queue.c:
	  gst/rtpmanager/async_jitter_queue.c (tail_buffer_duration, async_jitter_queue_ref, async_jitter_queue_ref_unlocked, a...
	  Original commit message from CVS:
	  * gst/rtpmanager/async_jitter_queue.c (tail_buffer_duration,
	  async_jitter_queue_ref, async_jitter_queue_ref_unlocked,
	  async_jitter_queue_set_low_threshold,
	  async_jitter_queue_length_ts_units_unlocked,
	  async_jitter_queue_unref_and_unlock, async_jitter_queue_unref,
	  async_jitter_queue_lock, async_jitter_queue_push,
	  async_jitter_queue_push_unlocked, async_jitter_queue_push_sorted,
	  async_jitter_queue_pop_intern_unlocked, async_jitter_queue_pop,
	  async_jitter_queue_pop_unlocked, async_jitter_queue_length_unlocked,
	  async_jitter_queue_set_flushing_unlocked,
	  async_jitter_queue_unset_flushing_unlocked):
	  Format arg fix (spotted by Ali Sabil <ali.sabil@gmail.com>)

2007-05-10 07:41:47 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  common/m4/gst-x11.m4: Restore CFLAGS and LIBS.
	  Original commit message from CVS:
	  * common/m4/gst-x11.m4:
	  Restore CFLAGS and LIBS.
	  * configure.ac:
	  Revert previous patch.

2007-05-10 06:35:31 +0000  Ali Sabil <ali.sabil@gmail.com>

	  configure.ac: Save and restore CFLAGS for OpenGL check. Fixes #437260.
	  Original commit message from CVS:
	  Patch by: Ali Sabil <ali.sabil@gmail.com>
	  * configure.ac:
	  Save and restore CFLAGS for OpenGL check. Fixes #437260.

2007-05-09 20:01:21 +0000  Sébastien Moutte <sebastien@moutte.net>

	  docs/plugins/gst-plugins-bad-plugins.args: Add directraw and directsound sinks properties.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  Add directraw and directsound sinks properties.

2007-05-09 17:58:07 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Fix --disable-external (hopefully).
	  Original commit message from CVS:
	  * configure.ac:
	  Fix --disable-external (hopefully).

2007-05-09 11:24:22 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Pass queries upstream.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_query):
	  Pass queries upstream.

2007-05-06 15:25:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/real/: Use GModule instead of using dlsym() directly. Fixes #430598.
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps),
	  (gst_real_audio_dec_finalize):
	  * gst/real/gstrealaudiodec.h:
	  * gst/real/gstrealvideodec.c: (open_library), (close_library):
	  * gst/real/gstrealvideodec.h:
	  Use GModule instead of using dlsym() directly. Fixes #430598.

2007-05-04 21:02:58 +0000  Sébastien Moutte <sebastien@moutte.net>

	  docs/plugins/: Add docs for Windows sinks.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  Add docs for Windows sinks.

2007-05-04 17:20:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/speed/gstspeed.c: Fix event handling a bit by replacing completely dubious code written by someone else with comp...
	  Original commit message from CVS:
	  * gst/speed/gstspeed.c: (speed_src_event), (speed_sink_event),
	  (speed_chain), (speed_change_state):
	  Fix event handling a bit by replacing completely dubious code
	  written by someone else with completely dubious code written
	  by me. Should at least fix #412077 though.

2007-05-04 16:11:46 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/speed/gstspeed.c: Add debug category; use gst_pad_query_peer_*() utility functions; use gst_util_scale*(); add gt...
	  Original commit message from CVS:
	  * gst/speed/gstspeed.c: (speed_src_query), (speed_chain),
	  (plugin_init):
	  Add debug category; use gst_pad_query_peer_*() utility functions;
	  use gst_util_scale*(); add gtk-doc blurb.

2007-05-04 12:32:27 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Add some debug info.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_query):
	  Add some debug info.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_init),
	  (rtp_session_send_rtp):
	  Store real user name in the session.

2007-05-03 16:49:05 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  examples/switch/switcher.c (loop, my_bus_callback, switch_timer, last_message_received, main): gst/switch/gstswitch.c...
	  Original commit message from CVS:
	  * configure.ac:
	  * examples/Makefile.am:
	  * examples/switch/switcher.c (loop, my_bus_callback, switch_timer,
	  last_message_received, main):
	  * gst/switch/gstswitch.c (GST_CAT_DEFAULT, gst_switch_details,
	  gst_switch_src_factory, parent_class, gst_switch_release_pad,
	  gst_switch_request_new_pad, gst_switch_chain, gst_switch_event,
	  gst_switch_set_property, gst_switch_get_property,
	  gst_switch_get_linked_pad, gst_switch_getcaps,
	  gst_switch_bufferalloc, gst_switch_get_linked_pads,
	  gst_switch_dispose, gst_switch_init, gst_switch_base_init,
	  gst_switch_class_init):
	  * gst/switch/gstswitch.h (GstSwitch, GstSwitchClass, _GstSwitch,
	  element, active_sinkpad, srcpad, nb_sinkpads, newsegment_events,
	  need_to_send_newsegment):
	  Port switch element and example program to 0.10.

2007-05-02 18:31:16 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpack.c: Call bindtextdomain() to get localized strings.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpack.c: (plugin_init):
	  Call bindtextdomain() to get localized strings.
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
	  (gst_wavpack_parse_handle_seek_event),
	  (gst_wavpack_parse_push_buffer), (gst_wavpack_parse_chain):
	  * ext/wavpack/gstwavpackparse.h:
	  Handle DISCONT buffers by correctly setting the DISCONT flag
	  on outgoing buffers when necessary.
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_handle_seek_event)
	  Send newsegment from the streaming thread.

2007-05-02 16:58:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.c: Remove old workaround that was needed when seeking after the last sample. With the fix...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackparse.c:
	  (gst_wavpack_parse_handle_seek_event):
	  Remove old workaround that was needed when seeking after the last
	  sample. With the fixed error handling this works now as expected
	  without pushing the last sample although it wasn't requested.

2007-05-02 16:45:43 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.c: Handle segment seeks in the seek event handler, correctly work with stop position == -...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackparse.c:
	  (gst_wavpack_parse_handle_seek_event):
	  Handle segment seeks in the seek event handler, correctly work with
	  stop position == -1 and instead of stopping the task on seek just
	  pause it.

2007-05-02 16:19:58 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.c: Add handling for segment seeks.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_loop):
	  Add handling for segment seeks.

2007-05-02 15:13:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.c: Correctly handle errors, especially in the loop function. Before it was easy to get th...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_pull_buffer),
	  (gst_wavpack_parse_create_src_pad),
	  (gst_wavpack_parse_resync_loop), (gst_wavpack_parse_loop),
	  (gst_wavpack_parse_chain):
	  Correctly handle errors, especially in the loop function. Before it
	  was easy to get the task paused but no error being posted on the bus.

2007-04-30 15:39:09 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec
	  Original commit message from CVS:
	  update spec

2007-04-30 13:41:30 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/async_jitter_queue.c: Fix the case where the buffer underruns and does not block.
	  Original commit message from CVS:
	  * gst/rtpmanager/async_jitter_queue.c: (signal_waiting_threads),
	  (async_jitter_queue_pop_intern_unlocked):
	  Fix the case where the buffer underruns and does not block.
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init),
	  (create_recv_rtcp), (create_send_rtp), (create_rtcp),
	  (gst_rtp_bin_request_new_pad):
	  Rename RTCP send pad, like in the session manager.
	  Allow getting an RTCP pad for receiving even if we don't receive RTP.
	  fix handling of send_rtp_src pad.
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	  When no pt map could be found, fall back to the sinkpad caps.
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp),
	  (gst_rtp_session_send_rtp), (create_recv_rtp_sink),
	  (create_recv_rtcp_sink), (create_send_rtp_sink),
	  (create_send_rtcp_src):
	  Fix pad names.
	  * gst/rtpmanager/rtpsession.c: (source_push_rtp),
	  (rtp_session_create_source), (rtp_session_process_sr),
	  (rtp_session_send_rtp), (session_start_rtcp):
	  * gst/rtpmanager/rtpsession.h:
	  Unlock session when performing a callback.
	  Add callbacks for the internal session object.
	  Fix sending of RTP packets.
	  first attempt at adding NTP times in the SR packets.
	  Small debug and doc improvements.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp):
	  Update stats for SR reports.

2007-04-29 14:46:27 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Remove debug.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_send_rtcp):
	  Remove debug.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_process_sr),
	  (rtp_session_process_sdes), (calculate_rtcp_interval),
	  (rtp_session_next_timeout), (session_report_blocks):
	  * gst/rtpmanager/rtpstats.c: (rtp_stats_calculate_rtcp_interval):
	  Improve debugging
	  Fix interval for BYE/RTCP packets.

2007-04-29 14:01:05 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/gst-plugins-bad-plugins.*: Commit result of running scanobj-update
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  Commit result of running scanobj-update

2007-04-29 13:56:18 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* sys/directdraw/gstdirectdrawsink.c:
	* sys/osxvideo/osxvideosink.m:
	  80 char police
	  Original commit message from CVS:
	  80 char police

2007-04-29 13:53:17 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  autogen.sh: Require automake 1.7
	  Original commit message from CVS:
	  * autogen.sh:
	  Require automake 1.7
	  * ext/alsaspdif/Makefile.am:
	  * ext/divx/Makefile.am:
	  * ext/ivorbis/Makefile.am:
	  * ext/musicbrainz/Makefile.am:
	  * ext/neon/Makefile.am:
	  * ext/sdl/Makefile.am:
	  * ext/swfdec/Makefile.am:
	  * ext/theora/Makefile.am:
	  * ext/wavpack/Makefile.am:
	  * ext/xvid/Makefile.am:
	  * gst/modplug/Makefile.am:
	  Fix up Makefile.am accordingly.

2007-04-29 13:49:02 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/inspect/: Add jack and update.
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-dfbvideosink.xml:
	  * docs/plugins/inspect/plugin-faac.xml:
	  * docs/plugins/inspect/plugin-faad.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-glimagesink.xml:
	  * docs/plugins/inspect/plugin-gsm.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-jack.xml:
	  * docs/plugins/inspect/plugin-mms.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * docs/plugins/inspect/plugin-neon.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-tta.xml:
	  * docs/plugins/inspect/plugin-videocrop.xml:
	  * docs/plugins/inspect/plugin-wavpack.xml:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  * docs/plugins/inspect/plugin-xvid.xml:
	  Add jack and update.

2007-04-28 12:46:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Don't build equalizer unless we have core from CVS (it won't work with earlier versions due to GstChild...
	  Original commit message from CVS:
	  * configure.ac:
	  Don't build equalizer unless we have core from CVS (it won't
	  work with earlier versions due to GstChildProxy brokeness).
	  Also up requirements to last released core/base.

2007-04-27 15:33:46 +0000  Julien Moutte <julien@moutte.net>

	  ext/theora/theoradec.c: Calculate buffer duration correctly to generate a perfect stream (#433888).
	  Original commit message from CVS:
	  2007-04-27  Julien MOUTTE  <julien@moutte.net>
	  * ext/theora/theoradec.c: (_theora_granule_time),
	  (theora_dec_push_forward), (theora_handle_data_packet),
	  (theora_dec_decode_buffer): Calculate buffer duration correctly
	  to generate a perfect stream (#433888).
	  * gst/audioresample/gstaudioresample.c:
	  (audioresample_check_discont): Glib provides ABS.

2007-04-27 15:09:12 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Move reconsideration code to the rtpsession object.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (rtcp_thread),
	  (gst_rtp_session_send_rtcp), (gst_rtp_session_reconsider):
	  Move reconsideration code to the rtpsession object.
	  Simplify timout handling and add reconsideration.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (rtp_session_init), (rtp_session_finalize), (on_bye_ssrc),
	  (on_bye_timeout), (on_timeout), (rtp_session_set_callbacks),
	  (obtain_source), (rtp_session_create_source),
	  (update_arrival_stats), (rtp_session_process_rtp),
	  (rtp_session_process_sr), (rtp_session_process_rr),
	  (rtp_session_process_bye), (rtp_session_process_rtcp),
	  (calculate_rtcp_interval), (rtp_session_send_bye),
	  (rtp_session_next_timeout), (session_start_rtcp),
	  (session_report_blocks), (session_cleanup), (session_sdes),
	  (session_bye), (is_rtcp_time), (rtp_session_on_timeout):
	  * gst/rtpmanager/rtpsession.h:
	  Handle timeout of inactive sources and senders.
	  Implement BYE scheduling.
	  * gst/rtpmanager/rtpsource.c: (calculate_jitter),
	  (rtp_source_process_sr), (rtp_source_get_last_sr),
	  (rtp_source_get_last_rb):
	  * gst/rtpmanager/rtpsource.h:
	  Add members to check for timeouts.
	  * gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults),
	  (rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter),
	  (rtp_stats_calculate_bye_interval):
	  * gst/rtpmanager/rtpstats.h:
	  Use RFC algorithm for calculating the reporting interval.

2007-04-26 14:31:32 +0000  Edward Hervey <bilboed@bilboed.com>

	  docs/plugins/: Add documentation for osxvideo
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/inspect/plugin-osxvideo.xml:
	  Add documentation for osxvideo

2007-04-25 16:38:03 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpsession.c: Implement forward and reverse reconsideration.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpsession.c: (rtcp_thread):
	  Implement forward and reverse reconsideration.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_get_num_sources),
	  (rtp_session_get_num_active_sources), (rtp_session_process_sr),
	  (session_report_blocks):
	  * gst/rtpmanager/rtpsession.h:
	  Small cleanups.

2007-04-25 15:48:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.*: Make default jitterbuffer latency configurable.
	  Original commit message from CVS:
	  reviewed by: <delete if not using a buddy>
	  * gst/rtpmanager/gstrtpbin.c: (create_stream),
	  (gst_rtp_bin_class_init), (gst_rtp_bin_set_property),
	  (gst_rtp_bin_get_property):
	  * gst/rtpmanager/gstrtpbin.h:
	  Make default jitterbuffer latency configurable.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init),
	  (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_loop),
	  (gst_rtp_jitter_buffer_set_property),
	  (gst_rtp_jitter_buffer_get_property):
	  Debuging cleanups.

2007-04-25 13:19:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Report NO_PREROLL when going to PAUSED.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_change_state):
	  Report NO_PREROLL when going to PAUSED.
	  * gst/rtpmanager/gstrtpsession.c: (rtcp_thread):
	  Don't send RTCP right before we are shutting down.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_process_rtp),
	  (rtp_session_process_sr), (session_report_blocks),
	  (rtp_session_perform_reporting):
	  Improve report blocks.
	  * gst/rtpmanager/rtpsource.c: (calculate_jitter), (init_seq),
	  (rtp_source_process_rtp), (rtp_source_process_sr),
	  (rtp_source_process_rb), (rtp_source_get_last_sr),
	  (rtp_source_get_last_rb):
	  * gst/rtpmanager/rtpsource.h:
	  * gst/rtpmanager/rtpstats.h:
	  Cleanups, add methods to access stats.

2007-04-25 08:30:48 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: fix for pad name change
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_rtcp):
	  fix for pad name change
	  * gst/rtpmanager/gstrtpsession.c: (rtcp_thread),
	  (gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate):
	  Fix for renamed methods.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_init),
	  (rtp_session_finalize), (rtp_session_set_cname),
	  (rtp_session_get_cname), (rtp_session_set_name),
	  (rtp_session_get_name), (rtp_session_set_email),
	  (rtp_session_get_email), (rtp_session_set_phone),
	  (rtp_session_get_phone), (rtp_session_set_location),
	  (rtp_session_get_location), (rtp_session_set_tool),
	  (rtp_session_get_tool), (rtp_session_set_note),
	  (rtp_session_get_note), (source_push_rtp), (obtain_source),
	  (rtp_session_add_source), (rtp_session_get_source_by_ssrc),
	  (rtp_session_create_source), (rtp_session_process_rtp),
	  (rtp_session_process_sr), (rtp_session_process_sdes),
	  (rtp_session_process_rtcp), (rtp_session_send_rtp),
	  (rtp_session_get_reporting_interval), (session_report_blocks),
	  (session_sdes), (rtp_session_perform_reporting):
	  * gst/rtpmanager/rtpsession.h:
	  Prepare for implementing SSRC sampling.
	  Create SSRC for the session.
	  Add methods to set the SDES entries.
	  fix accounting of senders/receivers.
	  Implement SR/RR/SDES RTCP reporting.
	  * gst/rtpmanager/rtpsource.c: (rtp_source_init), (init_seq),
	  (rtp_source_process_rtp), (rtp_source_process_sr):
	  * gst/rtpmanager/rtpsource.h:
	  Implement extended sequence number.
	  * gst/rtpmanager/rtpstats.c: (rtp_stats_calculate_rtcp_interval):
	  * gst/rtpmanager/rtpstats.h:
	  Rename some fields.

2007-04-24 15:49:18 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Plug some leaks; try to make build bot happy again.
	  Original commit message from CVS:
	  * gst/y4m/gsty4mencode.c: (gst_y4m_encode_init),
	  (gst_y4m_encode_setcaps):
	  * tests/check/elements/y4menc.c: (GST_START_TEST):
	  Plug some leaks; try to make build bot happy again.

2007-04-21 19:39:03 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/Makefile.am: Fix distcheck, hopefully (rtpmanager is already in GST_PLUGINS_ALL).
	  Original commit message from CVS:
	  * gst/Makefile.am:
	  Fix distcheck, hopefully (rtpmanager is already in GST_PLUGINS_ALL).

2007-04-21 19:21:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/rtpmanager/rtpsession.c: Don't use GLib-2.10 API, we only require GLib 2.8 at the moment.
	  Original commit message from CVS:
	  * gst/rtpmanager/rtpsession.c: (rtp_session_finalize):
	  Don't use GLib-2.10 API, we only require GLib 2.8 at the moment.

2007-04-21 14:14:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/audioresample/gstaudioresample.c: Make more functions static, just because we can.
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c:
	  Make more functions static, just because we can.

2007-04-21 13:54:39 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/elements/audioresample.c: Add unit test for audioresample shutdown crasher (#420106).
	  Original commit message from CVS:
	  * tests/check/elements/audioresample.c:
	  Add unit test for audioresample shutdown crasher (#420106).

2007-04-20 15:31:32 +0000  Michael Smith <msmith@xiph.org>

	  ext/faad/gstfaad.c: FAAD fails to decode low (e.g. 8 kHz) sample rate AAC data in quicktime because of sample rate mi...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_open_decoder):
	  FAAD fails to decode low (e.g. 8 kHz) sample rate AAC data in
	  quicktime because of sample rate mismatches.
	  Reenable overriding the implicit SBR behaviour (accidently changed?)
	  to allow playback of these files.

2007-04-19 15:43:26 +0000  David Schleef <ds@schleef.org>

	  configure.ac: Change rtpmanager disabling to keep -bad releasable.
	  Original commit message from CVS:
	  * configure.ac:
	  Change rtpmanager disabling to keep -bad releasable.

2007-04-18 19:45:32 +0000  David Schleef <ds@schleef.org>

	  Fix wtay's hack.  rtpmanager is disabled in configure.ac on line 268.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/Makefile.am:
	  Fix wtay's hack.  rtpmanager is disabled in configure.ac on
	  line 268.

2007-04-18 19:26:52 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/Makefile.am: Add rtpmanager dir to dist.
	  Original commit message from CVS:
	  * gst/Makefile.am:
	  Add rtpmanager dir to dist.

2007-04-18 18:58:53 +0000  Wim Taymans <wim.taymans@gmail.com>

	  configure.ac: Disable rtpmanager for now because it depends on CVS -base.
	  Original commit message from CVS:
	  * configure.ac:
	  Disable rtpmanager for now because it depends on CVS -base.
	  * gst/rtpmanager/Makefile.am:
	  Added new files for session manager.
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	  (create_stream), (pt_map_requested), (new_ssrc_pad_found):
	  Some cleanups.
	  the session manager can now also request a pt-map.
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init),
	  (gst_rtp_session_class_init), (gst_rtp_session_init),
	  (gst_rtp_session_finalize), (rtcp_thread), (start_rtcp_thread),
	  (stop_rtcp_thread), (gst_rtp_session_change_state),
	  (gst_rtp_session_process_rtp), (gst_rtp_session_send_rtp),
	  (gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate),
	  (gst_rtp_session_get_time), (gst_rtp_session_event_recv_rtp_sink),
	  (gst_rtp_session_chain_recv_rtp),
	  (gst_rtp_session_event_recv_rtcp_sink),
	  (gst_rtp_session_chain_recv_rtcp),
	  (gst_rtp_session_event_send_rtp_sink),
	  (gst_rtp_session_chain_send_rtp), (create_send_rtcp_src),
	  (gst_rtp_session_request_new_pad):
	  * gst/rtpmanager/gstrtpsession.h:
	  We can ask for pt-map now too when the session manager needs it.
	  Hook up to the new session manager, implement the needed callbacks for
	  pushing data, getting clock time and requesting clock-rates.
	  Rename rtcp_src to send_rtcp_src to make it clear that this RTCP is to
	  be send to clients.
	  Add code to start and stop the thread that will schedule RTCP through
	  the session manager.
	  * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	  (rtp_session_init), (rtp_session_finalize),
	  (rtp_session_set_property), (rtp_session_get_property),
	  (on_new_ssrc), (on_ssrc_collision), (on_ssrc_validated),
	  (on_bye_ssrc), (rtp_session_new), (rtp_session_set_callbacks),
	  (rtp_session_set_bandwidth), (rtp_session_get_bandwidth),
	  (rtp_session_set_rtcp_bandwidth), (rtp_session_get_rtcp_bandwidth),
	  (source_push_rtp), (source_clock_rate), (check_collision),
	  (obtain_source), (rtp_session_add_source),
	  (rtp_session_get_num_sources),
	  (rtp_session_get_num_active_sources),
	  (rtp_session_get_source_by_ssrc),
	  (rtp_session_get_source_by_cname), (rtp_session_create_source),
	  (update_arrival_stats), (rtp_session_process_rtp),
	  (rtp_session_process_sr), (rtp_session_process_rr),
	  (rtp_session_process_sdes), (rtp_session_process_bye),
	  (rtp_session_process_app), (rtp_session_process_rtcp),
	  (rtp_session_send_rtp), (rtp_session_get_rtcp_interval),
	  (rtp_session_produce_rtcp):
	  * gst/rtpmanager/rtpsession.h:
	  The advanced beginnings of the main session manager that handles the
	  participant database of RTPSources, SSRC probation, SSRC collisions,
	  parse RTCP to update source stats. etc..
	  * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	  (rtp_source_init), (rtp_source_finalize), (rtp_source_new),
	  (rtp_source_set_callbacks), (rtp_source_set_as_csrc),
	  (rtp_source_set_rtp_from), (rtp_source_set_rtcp_from),
	  (push_packet), (get_clock_rate), (calculate_jitter),
	  (rtp_source_process_rtp), (rtp_source_process_bye),
	  (rtp_source_send_rtp), (rtp_source_process_sr),
	  (rtp_source_process_rb):
	  * gst/rtpmanager/rtpsource.h:
	  Object that encapsulates an SSRC and its state in the database.
	  Calculates the jitter and transit times of data packets.
	  * gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults),
	  (rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter):
	  * gst/rtpmanager/rtpstats.h:
	  Various stats regarding the session and sources.
	  Used to calculate the RTCP interval.

2007-04-17 10:56:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/app/Makefile.am: Fix CFLAGS and hopefully #430594.
	  Original commit message from CVS:
	  * gst/app/Makefile.am:
	  Fix CFLAGS and hopefully #430594.

2007-04-17 08:48:34 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/nsf/types.h: Rename #ifndef header guard symbol to something less generic, so types.h doesn't get skipped over wh...
	  Original commit message from CVS:
	  * gst/nsf/types.h:
	  Rename #ifndef header guard symbol to something less generic, so
	  types.h doesn't get skipped over when compiling on MingW. Include
	  GLib headers and use those to set the endianness and the basic
	  types so that this isn't entirely broken for non-x86 architectures.

2007-04-17 08:04:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mve/gstmvedemux.c: Use G_LITTLE_ENDIAN instead of LITTLE_ENDIAN, so stuff compiles on
	  Original commit message from CVS:
	  * gst/mve/gstmvedemux.c: (gst_mve_audio_init):
	  Use G_LITTLE_ENDIAN instead of LITTLE_ENDIAN, so stuff compiles on
	  MingW (no idea though why we add a BYTE_ORDER endianness field if
	  the audio is compressed).

2007-04-16 22:20:03 +0000  Vincent Torri <vtorri@univ-evry.fr>

	  ext/pango/gstclockoverlay.c: Fix unused variable warning if HAVE_LOCALTIME_R is undefinied
	  Original commit message from CVS:
	  Patch by: Vincent Torri <vtorri at univ-evry dot fr>
	  * ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time):
	  Fix unused variable warning if HAVE_LOCALTIME_R is undefinied
	  * gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  * gst/audioresample/gstaudioresample.c: (audioresample_do_output):
	  Use the correct format strings for integer formats.

2007-04-14 17:18:14 +0000  Sébastien Moutte <sebastien@moutte.net>

	  docs/plugins/inspect/: Add xml doc files for Windows sinks
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-directdraw.xml:
	  * docs/plugins/inspect/plugin-directsound.xml:
	  * docs/plugins/inspect/plugin-waveform.xml:
	  Add xml doc files for Windows sinks
	  * win32/vs6/libgstqtdemux.dsp:
	  * win32/vs6/libgstmpegvideoparse.dsp:
	  * win32/vs6/gst_plugins_bad.dsw:
	  Update projects files.

2007-04-13 09:20:55 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Protect lists and structures with locks.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	  (gst_rtp_bin_init), (gst_rtp_bin_finalize), (new_ssrc_pad_found),
	  (create_recv_rtp), (gst_rtp_bin_request_new_pad):
	  * gst/rtpmanager/gstrtpbin.h:
	  * gst/rtpmanager/gstrtpclient.c:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (gst_rtp_session_init), (gst_rtp_session_finalize),
	  (gst_rtp_session_event_recv_rtp_sink),
	  (gst_rtp_session_event_recv_rtcp_sink),
	  (gst_rtp_session_chain_recv_rtcp),
	  (gst_rtp_session_request_new_pad):
	  Protect lists and structures with locks.
	  Return FLOW_OK from RTCP messages for now.

2007-04-12 10:52:02 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Make timescale 32 bits again so we don't screw up the pts_offset calculations.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c:
	  Make timescale 32 bits again so we don't screw up the pts_offset
	  calculations.

2007-04-12 08:18:32 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Emit pt map requests and cache results.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	  (create_stream), (gst_rtp_bin_class_init), (pt_map_requested):
	  Emit pt map requests and cache results.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init),
	  (gst_jitter_buffer_sink_parse_caps),
	  (gst_jitter_buffer_sink_setcaps),
	  (gst_rtp_jitter_buffer_get_clock_rate),
	  (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	  Emit request-pt-map signals.

2007-04-11 13:49:54 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin-marshal.list: Some more custom marshallers.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin-marshal.list:
	  Some more custom marshallers.
	  * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	  (clock_rate_request), (create_stream), (gst_rtp_bin_class_init),
	  (pt_map_requested), (new_ssrc_pad_found), (create_recv_rtp):
	  * gst/rtpmanager/gstrtpbin.h:
	  Prepare for caching pt maps.
	  Connect to signals to collect pt maps.
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_class_init),
	  (gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_loop):
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  Add request_clock_rate signal.
	  Use scale insteat of scale_int because the later does not deal with
	  negative numbers.
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init),
	  (gst_rtp_pt_demux_chain):
	  * gst/rtpmanager/gstrtpptdemux.h:
	  Implement request-pt-map signal.

2007-04-11 09:53:38 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/: Handle version 1 mdhd atoms to get extended precision durations.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	  (qtdemux_parse_samples), (qtdemux_parse_segments),
	  (qtdemux_parse_trak), (qtdemux_parse_tree):
	  * gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_mdhd):
	  Handle version 1 mdhd atoms to get extended precision durations.
	  Fixes #426972.

2007-04-10 09:14:07 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Added custom marshallers for signals.
	  Original commit message from CVS:
	  * gst/rtpmanager/.cvsignore:
	  * gst/rtpmanager/Makefile.am:
	  * gst/rtpmanager/gstrtpbin-marshal.list:
	  Added custom marshallers for signals.
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
	  * gst/rtpmanager/gstrtpbin.h:
	  Prepare for emiting pt map signals.
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init):
	  * gst/rtpmanager/gstrtpssrcdemux.c:
	  (gst_rtp_ssrc_demux_class_init):
	  Fix signals.

2007-04-06 12:28:29 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.*: Provide a clock.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init),
	  (gst_rtp_bin_init), (gst_rtp_bin_provide_clock):
	  * gst/rtpmanager/gstrtpbin.h:
	  Provide a clock.

2007-04-06 12:07:30 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.c: Fix pad template name parsing.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (create_rtcp):
	  Fix pad template name parsing.

2007-04-05 16:10:24 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpjitterbuffer.c: Add some debug and comments.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_chain),
	  (gst_rtp_jitter_buffer_loop):
	  Add some debug and comments.
	  Fix double unref() in error cases.

2007-04-05 15:05:24 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/gstrtpxqtdepay.*: Try to recover from packet loss a little better.
	  Original commit message from CVS:
	  * gst/qtdemux/gstrtpxqtdepay.c: (gst_rtp_xqt_depay_process),
	  (gst_rtp_xqt_depay_change_state):
	  * gst/qtdemux/gstrtpxqtdepay.h:
	  Try to recover from packet loss a little better.

2007-04-05 13:54:23 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/gstrtpbin.*: Add debugging category.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (find_session_by_id),
	  (create_session), (find_stream_by_ssrc), (create_stream),
	  (gst_rtp_bin_class_init), (new_payload_found),
	  (new_ssrc_pad_found), (create_recv_rtp), (create_recv_rtcp),
	  (create_send_rtp), (create_rtcp):
	  * gst/rtpmanager/gstrtpbin.h:
	  Add debugging category.
	  Added RTPStream to manage stream per SSRC, each with its own
	  jitterbuffer and ptdemux.
	  Added SSRCDemux.
	  Connect to various SSRC and PT signals and create ghostpads, link stuff.
	  * gst/rtpmanager/gstrtpmanager.c: (plugin_init):
	  Added rtpbin to elements.
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	  Fix caps and forward GstFlowReturn
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	  (gst_rtp_session_event_recv_rtp_sink),
	  (gst_rtp_session_chain_recv_rtp),
	  (gst_rtp_session_event_recv_rtcp_sink),
	  (gst_rtp_session_chain_recv_rtcp),
	  (gst_rtp_session_event_send_rtp_sink),
	  (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
	  (create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src),
	  (gst_rtp_session_request_new_pad):
	  Add debug category.
	  Add event handling
	  * gst/rtpmanager/gstrtpssrcdemux.c: (find_rtp_pad_for_ssrc),
	  (create_rtp_pad_for_ssrc), (gst_rtp_ssrc_demux_class_init),
	  (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_chain),
	  (gst_rtp_ssrc_demux_change_state):
	  * gst/rtpmanager/gstrtpssrcdemux.h:
	  Add debug category.
	  Add new-pt-pad signal.

2007-04-05 13:49:21 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* po/nl.po:
	  update dutch
	  Original commit message from CVS:
	  update dutch

2007-04-05 13:45:15 +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-04-04 10:23:15 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Added simple SSRC demuxer.
	  Original commit message from CVS:
	  * gst/rtpmanager/Makefile.am:
	  * gst/rtpmanager/gstrtpmanager.c: (plugin_init):
	  * gst/rtpmanager/gstrtpssrcdemux.c: (find_pad_for_ssrc),
	  (create_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init),
	  (gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_init),
	  (gst_rtp_ssrc_demux_finalize), (gst_rtp_ssrc_demux_sink_event),
	  (gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_src_event),
	  (gst_rtp_ssrc_demux_change_state):
	  * gst/rtpmanager/gstrtpssrcdemux.h:
	  Added simple SSRC demuxer.

2007-04-04 07:36:28 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/jack/gstjackaudiosink.c: Try t better name clients. properly handle return codes when re- establishing links.
	  Original commit message from CVS:
	  * ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_open_device),
	  (gst_jack_ring_buffer_acquire):
	  Try t better name clients. properly handle return codes when re-
	  establishing links.

2007-04-03 22:36:47 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/glimagesink.c: Fix handling of video/x-raw-yuv.  Add overlay handling.
	  Original commit message from CVS:
	  * sys/glsink/glimagesink.c:
	  Fix handling of video/x-raw-yuv.  Add overlay handling.

2007-04-03 13:27:21 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update with rtp plugin
	  Original commit message from CVS:
	  update with rtp plugin

2007-04-03 11:35:39 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/: Some more ghostpad magic.
	  Original commit message from CVS:
	  * gst/rtpmanager/gstrtpbin.c: (find_session_by_id),
	  (create_session), (gst_rtp_bin_base_init), (create_recv_rtp),
	  (create_recv_rtcp), (create_send_rtp), (create_rtcp),
	  (gst_rtp_bin_request_new_pad):
	  * gst/rtpmanager/gstrtpbin.h:
	  * gst/rtpmanager/gstrtpclient.c:
	  Some more ghostpad magic.

2007-04-03 09:51:13 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/rtpmanager/Makefile.am: Add .h file so it can be disted properly.
	  Original commit message from CVS:
	  * gst/rtpmanager/Makefile.am:
	  Add .h file so it can be disted properly.

2007-04-03 09:13:17 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Add RTP session management elements. Still in progress.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/rtpmanager/Makefile.am:
	  * gst/rtpmanager/async_jitter_queue.c: (async_jitter_queue_new),
	  (signal_waiting_threads), (async_jitter_queue_ref),
	  (async_jitter_queue_ref_unlocked),
	  (async_jitter_queue_set_low_threshold),
	  (async_jitter_queue_set_high_threshold),
	  (async_jitter_queue_set_max_queue_length),
	  (async_jitter_queue_get_g_queue), (calculate_ts_diff),
	  (async_jitter_queue_length_ts_units_unlocked),
	  (async_jitter_queue_unref_and_unlock), (async_jitter_queue_unref),
	  (async_jitter_queue_lock), (async_jitter_queue_unlock),
	  (async_jitter_queue_push), (async_jitter_queue_push_unlocked),
	  (async_jitter_queue_push_sorted),
	  (async_jitter_queue_push_sorted_unlocked),
	  (async_jitter_queue_insert_after_unlocked),
	  (async_jitter_queue_pop_intern_unlocked), (async_jitter_queue_pop),
	  (async_jitter_queue_pop_unlocked), (async_jitter_queue_length),
	  (async_jitter_queue_length_unlocked),
	  (async_jitter_queue_set_flushing_unlocked),
	  (async_jitter_queue_unset_flushing_unlocked),
	  (async_jitter_queue_set_blocking_unlocked):
	  * gst/rtpmanager/async_jitter_queue.h:
	  * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init),
	  (gst_rtp_bin_class_init), (gst_rtp_bin_init),
	  (gst_rtp_bin_finalize), (gst_rtp_bin_set_property),
	  (gst_rtp_bin_get_property), (gst_rtp_bin_change_state),
	  (gst_rtp_bin_request_new_pad), (gst_rtp_bin_release_pad):
	  * gst/rtpmanager/gstrtpbin.h:
	  * gst/rtpmanager/gstrtpclient.c: (new_pad), (create_stream),
	  (free_stream), (find_stream_by_ssrc), (gst_rtp_client_base_init),
	  (gst_rtp_client_class_init), (gst_rtp_client_init),
	  (gst_rtp_client_finalize), (gst_rtp_client_set_property),
	  (gst_rtp_client_get_property), (gst_rtp_client_change_state),
	  (gst_rtp_client_request_new_pad), (gst_rtp_client_release_pad):
	  * gst/rtpmanager/gstrtpclient.h:
	  * gst/rtpmanager/gstrtpjitterbuffer.c:
	  (gst_rtp_jitter_buffer_base_init),
	  (gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init),
	  (gst_rtp_jitter_buffer_dispose), (gst_rtp_jitter_buffer_getcaps),
	  (gst_jitter_buffer_sink_setcaps), (free_func),
	  (gst_rtp_jitter_buffer_flush_start),
	  (gst_rtp_jitter_buffer_flush_stop),
	  (gst_rtp_jitter_buffer_src_activate_push),
	  (gst_rtp_jitter_buffer_change_state), (priv_compare_rtp_seq_lt),
	  (compare_rtp_buffers_seq_num), (gst_rtp_jitter_buffer_sink_event),
	  (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
	  (gst_rtp_jitter_buffer_query),
	  (gst_rtp_jitter_buffer_set_property),
	  (gst_rtp_jitter_buffer_get_property):
	  * gst/rtpmanager/gstrtpjitterbuffer.h:
	  * gst/rtpmanager/gstrtpmanager.c: (plugin_init):
	  * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_base_init),
	  (gst_rtp_pt_demux_class_init), (gst_rtp_pt_demux_init),
	  (gst_rtp_pt_demux_finalize), (gst_rtp_pt_demux_chain),
	  (gst_rtp_pt_demux_getcaps), (find_pad_for_pt),
	  (gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release),
	  (gst_rtp_pt_demux_change_state):
	  * gst/rtpmanager/gstrtpptdemux.h:
	  * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init),
	  (gst_rtp_session_class_init), (gst_rtp_session_init),
	  (gst_rtp_session_finalize), (gst_rtp_session_set_property),
	  (gst_rtp_session_get_property), (gst_rtp_session_change_state),
	  (gst_rtp_session_chain_recv_rtp),
	  (gst_rtp_session_chain_recv_rtcp),
	  (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
	  (create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src),
	  (gst_rtp_session_request_new_pad), (gst_rtp_session_release_pad):
	  * gst/rtpmanager/gstrtpsession.h:
	  Add RTP session management elements. Still in progress.

2007-03-30 04:50:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/: Don't play audioconvert. As wavpack wants/outputs all samples with width==32 and depth=[1,32] accept th...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
	  (gst_wavpack_dec_init), (gst_wavpack_dec_sink_set_caps),
	  (gst_wavpack_dec_clip_outgoing_buffer),
	  (gst_wavpack_dec_post_tags), (gst_wavpack_dec_chain):
	  * ext/wavpack/gstwavpackdec.h:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset),
	  (gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config),
	  (gst_wavpack_enc_chain):
	  * ext/wavpack/gstwavpackenc.h:
	  * ext/wavpack/gstwavpackparse.c:
	  Don't play audioconvert. As wavpack wants/outputs all samples with
	  width==32 and depth=[1,32] accept this and let audioconvert convert
	  to accepted formats instead of doing it in the element for n*8 depths.
	  This also adds support for non-n*8 depths and prevents some useless
	  memory allocations. Fixes #421598
	  Also add a workaround for bug #421542 in wavpackenc for now...
	  * tests/check/elements/wavpackdec.c: (GST_START_TEST):
	  * tests/check/elements/wavpackenc.c: (GST_START_TEST):
	  * tests/check/elements/wavpackparse.c: (GST_START_TEST):
	  Consider the change above in the unit tests and test if the correct
	  caps are accepted and set. Also check for GST_BUFFER_OFFSET_END in
	  the wavpackparse unit test.
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init),
	  (gst_wavpack_dec_sink_set_caps):
	  Set caps on the src pad as soon as possible.
	  * ext/wavpack/gstwavpackdec.h:
	  * ext/wavpack/gstwavpackcommon.h:
	  * ext/wavpack/gstwavpackenc.h:
	  * ext/wavpack/gstwavpackparse.h:
	  Fix indention. gst-indent is now called by cicl.

2007-03-28 15:17:27 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/: Process 'ctts' atoms, which are present in AVC ISO files (.mov files with h264 video).
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample),
	  (gst_qtdemux_chain), (qtdemux_parse_samples):
	  * gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_ctts):
	  * gst/qtdemux/qtdemux_dump.h:
	  * gst/qtdemux/qtdemux_fourcc.h:
	  * gst/qtdemux/qtdemux_types.c:
	  Process 'ctts' atoms, which are present in AVC ISO files (.mov files
	  with h264 video).
	  Use the offset present in 'ctts' to calculate the PTS for each packet
	  and set the PTS on outgoing buffers.
	  Fixes #423283

2007-03-27 18:00:56 +0000  Julien Moutte <julien@moutte.net>

	  ext/xvid/gstxviddec.c: Add some debug log and fix a stupid output buffer duration bug.
	  Original commit message from CVS:
	  2007-03-27  Julien MOUTTE  <julien@moutte.net>
	  * ext/xvid/gstxviddec.c: (gst_xviddec_chain): Add some
	  debug log and fix a stupid output buffer duration bug.

2007-03-26 14:49:47 +0000  Christian Schaller <uraeus@gnome.org>

	* common:
	* gst-plugins-bad.spec.in:
	  update spec file for x264 encoder
	  Original commit message from CVS:
	  update spec file for x264 encoder

2007-03-25 13:06:26 +0000  Michal Benes <michal.benes@itonis.tv>

	  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.

2007-03-24 19:46:59 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/interleave/deinterleave.c: Remove 'channel-positions' field when munging input caps into 1-channel output caps (I...
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c: (gst_deinterleave_sink_setcaps):
	  Remove 'channel-positions' field when munging input caps into
	  1-channel output caps (I guess technically we should set the
	  position for each channel on the output caps if it's non-NONE,
	  but I'll save that as a task for another day).

2007-03-23 18:41:52 +0000  Michael Smith <msmith@xiph.org>

	  gst/vmnc/vmncdec.c: Redesign to include a parser for raw files (no timestamps in that mode yet, though).
	  Original commit message from CVS:
	  * gst/vmnc/vmncdec.c: (gst_vmnc_dec_class_init),
	  (gst_vmnc_dec_init), (vmnc_dec_finalize), (gst_vmnc_dec_reset),
	  (vmnc_handle_wmvi_rectangle), (render_colour_cursor),
	  (render_cursor), (vmnc_make_buffer), (vmnc_handle_wmvd_rectangle),
	  (vmnc_handle_wmve_rectangle), (vmnc_handle_wmvf_rectangle),
	  (vmnc_handle_wmvg_rectangle), (vmnc_handle_wmvh_rectangle),
	  (vmnc_handle_wmvj_rectangle), (render_raw_tile), (render_subrect),
	  (vmnc_handle_raw_rectangle), (vmnc_handle_copy_rectangle),
	  (vmnc_handle_hextile_rectangle), (vmnc_handle_packet),
	  (vmnc_dec_setcaps), (vmnc_dec_chain_frame), (vmnc_dec_chain),
	  (vmnc_dec_set_property), (vmnc_dec_get_property):
	  Redesign to include a parser for raw files (no timestamps in that
	  mode yet, though).

2007-03-22 22:14:29 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/interleave/deinterleave.c: Don't leak input buffer in chain function; maintain our own list of source pads - ther...
	  Original commit message from CVS:
	  * gst/interleave/deinterleave.c: (gst_deinterleave_add_new_pads),
	  (gst_deinterleave_remove_pads), (gst_deinterleave_process),
	  (gst_deinterleave_chain):
	  Don't leak input buffer in chain function; maintain our own list of
	  source pads - there are no guarantees about the order of the list
	  in the GstElement struct, and we want a very specific order; lastly,
	  some more debugging.

2007-03-22 21:07:02 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/neon/gstneonhttpsrc.c: Alloc user agent string only once.
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_init):
	  Alloc user agent string only once.

2007-03-22 16:25:56 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.c: Revert last commit, preventing infinite plugging loops with ranks is no clean solution...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
	  Revert last commit, preventing infinite plugging loops with ranks
	  is no clean solution and in general there's no reason why one wants
	  to parse framed wavpack data again.

2007-03-22 15:52:51 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackenc.c: Send the new segment event in time format instead of bytes. This allows "wavpackenc ! wa...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block):
	  Send the new segment event in time format instead of bytes. This
	  allows "wavpackenc ! wavpackdec ! someaudiosink" pipelines.
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
	  Accept framed and non-framed input, wavpackparse doesn't care. To
	  prevent "wavpackparse ! wavpackparse ! ..." pipelines lower the
	  rank of wavpackparse by one. This allows "wavpackenc ! wavpackparse !
	  ..." pipelines.

2007-03-22 14:37:08 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst-libs/gst/app/Makefile.am: Use GST_ALL_LDFLAGS, which actually exists, but maybe David can confirm that was what h...
	  Original commit message from CVS:
	  * gst-libs/gst/app/Makefile.am:
	  Use GST_ALL_LDFLAGS, which actually exists, but maybe David
	  can confirm that was what he wanted.

2007-03-22 11:08:03 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackdec.c: Revert to use gst_pad_alloc_buffer() here. We can and should use it.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
	  Revert to use gst_pad_alloc_buffer() here. We can and should use it.
	  Thanks to Jan and Mike for noticing my mistake.

2007-03-22 00:17:41 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackenc.*: Put the write helpers into the GstWavpackEnc struct directly and not as a pointer to sav...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	  (gst_wavpack_enc_init), (gst_wavpack_enc_chain),
	  (gst_wavpack_enc_rewrite_first_block):
	  * ext/wavpack/gstwavpackenc.h:
	  Put the write helpers into the GstWavpackEnc struct directly and not
	  as a pointer to save two small, but useless mallocs. This also makes
	  it possible to drop the finalize method.
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_push_buffer):
	  For consistency reasons also set GST_BUFFER_OFFSET_END on the outgoing
	  buffers the same way wavpackenc does it.

2007-03-21 23:50:09 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackdec.c: Don't use gst_pad_alloc_buffer() as we might clip the buffer later and
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
	  Don't use gst_pad_alloc_buffer() as we might clip the buffer later and
	  BaseTransform-based elements will likely break because of wrong
	  unit-size. Also plug a possible memleak that happens when decoding
	  fails for some reason.

2007-03-18 17:57:48 +0000  Paul Davis <paul@linuxaudiosystems.com>

	  ext/jack/gstjackaudioclient.c: Don't need to take the connection lock, it will not be used and could cause deadlocks.
	  Original commit message from CVS:
	  Based on patch by: Paul Davis <paul at linuxaudiosystems dot com>
	  * ext/jack/gstjackaudioclient.c: (gst_jack_audio_unref_connection):
	  Don't need to take the connection lock, it will not be used and could
	  cause deadlocks.

2007-03-16 18:38:18 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/osxvideo/osxvideosink.m: Fix previous commit, we want to pass the NSView in the message.
	  Original commit message from CVS:
	  * sys/osxvideo/osxvideosink.m:
	  Fix previous commit, we want to pass the NSView in the message.

2007-03-16 16:27:20 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/osxvideo/osxvideosink.m: Emit 'have-ns-view' message when working in embedded mode. The message will contain a po...
	  Original commit message from CVS:
	  * sys/osxvideo/osxvideosink.m:
	  Emit 'have-ns-view' message when working in embedded mode. The message
	  will contain a pointer to the newly created NSView.

2007-03-16 11:22:47 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegvideoparse/: Move the MPEG specific byte parsing into the mpegpacketiser code.
	  Original commit message from CVS:
	  * gst/mpegvideoparse/mpegpacketiser.c: (mpeg_util_find_start_code),
	  (collect_packets), (set_par_from_dar), (set_fps_from_code),
	  (mpeg_util_parse_extension_packet), (mpeg_util_parse_sequence_hdr),
	  (mpeg_util_parse_picture_hdr):
	  * gst/mpegvideoparse/mpegpacketiser.h:
	  * gst/mpegvideoparse/mpegvideoparse.c:
	  (mpegvideoparse_handle_sequence), (mpegvideoparse_handle_picture),
	  (mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain),
	  (mpv_parse_sink_event), (plugin_init):
	  * gst/mpegvideoparse/mpegvideoparse.h:
	  Move the MPEG specific byte parsing into the mpegpacketiser code.
	  Add parsing of picture types, that just feeds into a debug message
	  for now.
	  Fix some 64-bit format strings.

2007-03-16 10:15:48 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	* ChangeLog:
	  Changelog surgery
	  Original commit message from CVS:
	  Changelog surgery

2007-03-16 09:57:40 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/equalizer/gstiirequalizer10bands.c: A 10 band EQ should be initialized to 1 bands and not to 3.
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer10bands.c:
	  (gst_iir_equalizer_10bands_init):
	  A 10 band EQ should be initialized to 1 bands and not to 3.

2007-03-15 20:48:08 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Port mpeg1videoparse to 0.10 and give it rank SECONDARY-1, so that it's below existing decoders.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/mpeg1videoparse/Makefile.am:
	  * gst/mpeg1videoparse/gstmp1videoparse.c:
	  * gst/mpeg1videoparse/gstmp1videoparse.h:
	  * gst/mpeg1videoparse/mp1videoparse.vcproj:
	  * gst/mpegvideoparse/Makefile.am:
	  * gst/mpegvideoparse/mpegpacketiser.c: (mpeg_packetiser_init),
	  (mpeg_packetiser_free), (mpeg_packetiser_add_buf),
	  (mpeg_packetiser_flush), (mpeg_find_start_code),
	  (get_next_free_block), (complete_current_block),
	  (append_to_current_block), (start_new_block), (handle_packet),
	  (collect_packets), (mpeg_packetiser_handle_eos),
	  (mpeg_packetiser_get_block), (mpeg_packetiser_next_block):
	  * gst/mpegvideoparse/mpegpacketiser.h:
	  * gst/mpegvideoparse/mpegvideoparse.c: (mpegvideoparse_get_type),
	  (gst_mpegvideoparse_base_init), (gst_mpegvideoparse_class_init),
	  (mpv_parse_reset), (gst_mpegvideoparse_init),
	  (gst_mpegvideoparse_dispose), (set_par_from_dar),
	  (set_fps_from_code), (mpegvideoparse_parse_seq),
	  (gst_mpegvideoparse_time_code), (gst_mpegvideoparse_flush),
	  (mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain),
	  (mpv_parse_sink_event), (gst_mpegvideoparse_change_state),
	  (plugin_init):
	  * gst/mpegvideoparse/mpegvideoparse.h:
	  * gst/mpegvideoparse/mpegvideoparse.vcproj:
	  Port mpeg1videoparse to 0.10 and give it rank SECONDARY-1, so
	  that it's below existing decoders.
	  Rename it to mpegvideoparse to reflect that it handles MPEG-1 and
	  MPEG-2 now.
	  Re-write the parsing code so that it collects packets differently
	  and timestamps Picture packets correctly.
	  Add a list of FIXME's at the top.

2007-03-15 10:52:21 +0000  Michael Smith <msmith@xiph.org>

	  gst/audioresample/gstaudioresample.c: Don't trigger discontinuities for very small imperfections; a filter flush will...
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c:
	  (audioresample_check_discont), (audioresample_transform):
	  Don't trigger discontinuities for very small imperfections; a filter
	  flush will sound bad, and many plugins have rounding errors leading
	  to these.

2007-03-14 17:16:30 +0000  Julien Moutte <julien@moutte.net>

	  gst/audioresample/gstaudioresample.c: Handle discontinuous streams.
	  Original commit message from CVS:
	  2007-03-14  Julien MOUTTE  <julien@moutte.net>
	  * gst/audioresample/gstaudioresample.c: (gst_audioresample_init),
	  (audioresample_transform_size), (audioresample_do_output),
	  (audioresample_transform), (audioresample_pushthrough): Handle
	  discontinuous streams.
	  * gst/audioresample/gstaudioresample.h:
	  * tests/check/elements/audioresample.c:
	  (test_discont_stream_instance), (GST_START_TEST),
	  (audioresample_suite): Add a test for discontinuous streams.
	  * win32/common/config.h: Updated.

2007-03-14 16:33:03 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/icles/equalizer-test.c: Port the example to new equalizer api.
	  Original commit message from CVS:
	  * tests/icles/equalizer-test.c: (equalizer_set_band_value),
	  (equalizer_set_all_band_values),
	  (equalizer_set_band_value_and_wait),
	  (equalizer_set_all_band_values_and_wait), (do_slider_fiddling),
	  (main):
	  Port the example to new equalizer api.

2007-03-14 16:30:19 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/osxvideo/: Fix leaks when running a NSApp.
	  Original commit message from CVS:
	  * sys/osxvideo/cocoawindow.h:
	  * sys/osxvideo/cocoawindow.m:
	  * sys/osxvideo/osxvideosink.h:
	  * sys/osxvideo/osxvideosink.m:
	  Fix leaks when running a NSApp.
	  Accept any kind of resolutions.
	  Works in fullscreen. Can maximize.
	  Only thing left before being able to move this to -good is documentation
	  and embedded window support.

2007-03-14 15:33:25 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/: Updated translations.
	  Original commit message from CVS:
	  * po/hu.po:
	  * po/it.po:
	  * po/sv.po:
	  Updated translations.

2007-03-14 14:48:12 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst/audioresample/: Since I really am not interested in a debug line for each sample being processed, move the librar...
	  Original commit message from CVS:
	  * gst/audioresample/debug.h:
	  * gst/audioresample/resample.c: (resample_init):
	  Since I really am not interested in a debug line for each sample
	  being processed, move the library's debugging to its own category,
	  libaudioresample

2007-03-14 14:48:08 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/equalizer/: Add 3 and 10 band version and add missing gst_object_sync_values.
	  Original commit message from CVS:
	  * gst/equalizer/Makefile.am:
	  * gst/equalizer/gstiirequalizer.c: (_do_init),
	  (gst_iir_equalizer_band_set_property),
	  (gst_iir_equalizer_band_class_init),
	  (gst_iir_equalizer_band_get_type),
	  (gst_iir_equalizer_child_proxy_get_child_by_index),
	  (gst_iir_equalizer_child_proxy_get_children_count),
	  (gst_iir_equalizer_child_proxy_interface_init), (setup_filter),
	  (gst_iir_equalizer_compute_frequencies),
	  (gst_iir_equalizer_transform_ip), (plugin_init):
	  * gst/equalizer/gstiirequalizer10bands.c:
	  (gst_iir_equalizer_10bands_base_init),
	  (gst_iir_equalizer_10bands_class_init),
	  (gst_iir_equalizer_10bands_init),
	  (gst_iir_equalizer_10bands_set_property),
	  (gst_iir_equalizer_10bands_get_property):
	  * gst/equalizer/gstiirequalizer10bands.h:
	  * gst/equalizer/gstiirequalizer3bands.c:
	  (gst_iir_equalizer_3bands_base_init),
	  (gst_iir_equalizer_3bands_class_init),
	  (gst_iir_equalizer_3bands_init),
	  (gst_iir_equalizer_3bands_set_property),
	  (gst_iir_equalizer_3bands_get_property):
	  * gst/equalizer/gstiirequalizer3bands.h:
	  * gst/equalizer/gstiirequalizernbands.c:
	  (gst_iir_equalizer_nbands_base_init),
	  (gst_iir_equalizer_nbands_init):
	  Add 3 and 10 band version and add missing gst_object_sync_values.
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_event),
	  (gst_spectrum_transform_ip):
	  Add some comments about float support.

2007-03-14 14:09:21 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/audioresample/gstaudioresample.c:
	  add debugging and reformat docs
	  Original commit message from CVS:
	  add debugging and reformat docs

2007-03-13 18:01:47 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/mpegaudioparse/: Remove bogus 2nd copy of mp3parse - it's actually in -ugly.
	  Original commit message from CVS:
	  * gst/mpegaudioparse/Makefile.am:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  * gst/mpegaudioparse/gstmpegaudioparse.h:
	  * gst/mpegaudioparse/mpegaudioparse.vcproj:
	  Remove bogus 2nd copy of mp3parse - it's actually
	  in -ugly.

2007-03-12 11:47:42 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  examples/app/.cvsignore: The buildbot demands .cvsignore files, and I comply.
	  Original commit message from CVS:
	  * examples/app/.cvsignore:
	  The buildbot demands .cvsignore files, and I comply.

2007-03-11 22:23:04 +0000  Sébastien Moutte <sebastien@moutte.net>

	  sys/directdraw/gstdirectdrawsink.*: Handle display mode changes during playback.
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directdraw/gstdirectdrawsink.h:
	  Handle display mode changes during playback.

2007-03-11 00:48:26 +0000  David Schleef <ds@schleef.org>

	  Add appsrc/appsink example.
	  Original commit message from CVS:
	  * configure.ac:
	  * examples/Makefile.am:
	  * examples/app/Makefile.am:
	  * examples/app/appsrc_ex.c:
	  Add appsrc/appsink example.
	  * gst-libs/gst/app/Makefile.am:
	  * gst-libs/gst/app/gstapp.c:
	  * gst-libs/gst/app/gstappsink.c:
	  * gst-libs/gst/app/gstappsink.h:
	  * gst/app/gstapp.c:
	  Add appsink.

2007-03-10 20:10:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/: Printf format string fixes.
	  Original commit message from CVS:
	  * ext/nas/nassink.c: (NAS_createFlow):
	  * ext/sndfile/gstsfsrc.c: (gst_sf_src_create):
	  Printf format string fixes.

2007-03-09 08:58:26 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/equalizer/: Refactor plugin into a base class and a first subclass (nband eq). The nband eq uses GstChildProxy an...
	  Original commit message from CVS:
	  * gst/equalizer/Makefile.am:
	  * gst/equalizer/gstiirequalizer.c: (_do_init),
	  (gst_iir_equalizer_band_set_property),
	  (gst_iir_equalizer_band_get_property),
	  (gst_iir_equalizer_band_class_init),
	  (gst_iir_equalizer_band_get_type),
	  (gst_iir_equalizer_child_proxy_get_child_by_index),
	  (gst_iir_equalizer_child_proxy_get_children_count),
	  (gst_iir_equalizer_child_proxy_interface_init),
	  (gst_iir_equalizer_base_init), (gst_iir_equalizer_class_init),
	  (gst_iir_equalizer_finalize), (setup_filter),
	  (gst_iir_equalizer_compute_frequencies),
	  (gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property),
	  (gst_iir_equalizer_setup), (plugin_init):
	  * gst/equalizer/gstiirequalizer.h:
	  * gst/equalizer/gstiirequalizernbands.c:
	  (gst_iir_equalizer_nbands_base_init),
	  (gst_iir_equalizer_nbands_class_init),
	  (gst_iir_equalizer_nbands_init),
	  (gst_iir_equalizer_nbands_set_property),
	  (gst_iir_equalizer_nbands_get_property):
	  * gst/equalizer/gstiirequalizernbands.h:
	  Refactor plugin into a base class and a first subclass (nband eq). The
	  nband eq uses GstChildProxy and is controlable. More subclasses will
	  follow.

2007-03-08 15:24:52 +0000  Paul Davis <paul@linuxaudiosystems.com>

	  ext/jack/: Make an object to manage client connections to the jack server which we will use in the future to run sele...
	  Original commit message from CVS:
	  Includes patch by: Paul Davis <paul at linuxaudiosystems dot com>
	  * ext/jack/Makefile.am:
	  * ext/jack/gstjackaudioclient.c: (gst_jack_audio_client_init),
	  (jack_process_cb), (jack_sample_rate_cb), (jack_buffer_size_cb),
	  (jack_shutdown_cb), (connection_find),
	  (gst_jack_audio_make_connection), (gst_jack_audio_get_connection),
	  (gst_jack_audio_unref_connection),
	  (gst_jack_audio_connection_add_client),
	  (gst_jack_audio_connection_remove_client),
	  (gst_jack_audio_client_new), (gst_jack_audio_client_free),
	  (gst_jack_audio_client_get_client),
	  (gst_jack_audio_client_set_active):
	  * ext/jack/gstjackaudioclient.h:
	  Make an object to manage client connections to the jack server which we
	  will use in the future to run selected jack elements with the same jack
	  connection.
	  Make some stuff a bit more threadsafe.
	  Activate the jack client ASAP.
	  * ext/jack/gstjackaudiosink.c:
	  (gst_jack_audio_sink_allocate_channels),
	  (gst_jack_audio_sink_free_channels), (jack_process_cb),
	  (gst_jack_ring_buffer_open_device),
	  (gst_jack_ring_buffer_close_device),
	  (gst_jack_ring_buffer_acquire), (gst_jack_ring_buffer_release),
	  (gst_jack_audio_sink_class_init), (gst_jack_audio_sink_init),
	  (gst_jack_audio_sink_getcaps):
	  * ext/jack/gstjackaudiosink.h:
	  Use new client object to manage connections.
	  Don't remove and recreate all ports, try to reuse them.

2007-03-07 12:07:07 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/: Use a general wavpack debug category for common code.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpack.c: (plugin_init):
	  * ext/wavpack/gstwavpackcommon.c:
	  Use a general wavpack debug category for common code.
	  * ext/wavpack/gstwavpackstreamreader.c:
	  (gst_wavpack_stream_reader_set_pos_abs),
	  (gst_wavpack_stream_reader_set_pos_rel),
	  (gst_wavpack_stream_reader_write_bytes):
	  Use the general wavpack debug category here too and add debug
	  output to the functions that should not be called at all by
	  the wavpack library.
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_plugin_init):
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_plugin_init):
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
	  Change debugging category names to conform to the conventions.

2007-03-07 11:37:23 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.*: Share qtdemux debug category across all files, otherwise all debugging in files other than qtd...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c:
	  * gst/qtdemux/qtdemux.h:
	  Share qtdemux debug category across all files, otherwise all debugging
	  in files other than qtdemux.c would end up in the default category.

2007-03-07 11:23:20 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/gstspectrum.*: One FIXME less, by resolving message timestamps against the playback segment.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_start),
	  (gst_spectrum_event), (gst_spectrum_transform_ip):
	  * gst/spectrum/gstspectrum.h:
	  One FIXME less, by resolving message timestamps against the playback
	  segment.

2007-03-06 13:57:55 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/spectrum/gstspectrum.c: Fix and cleanup default property values.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	  (gst_spectrum_init), (gst_spectrum_set_property),
	  (gst_spectrum_transform_ip):
	  Fix and cleanup default property values.
	  Add FIXMEs for stuff that looks rather wrong.

2007-03-05 08:30:52 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/: Remove two obsolete and confusing comments.
	  Original commit message from CVS:
	  * gst/spectrum/demo-audiotest.c: (message_handler):
	  * gst/spectrum/demo-osssrc.c: (message_handler):
	  Remove two obsolete and confusing comments.

2007-03-04 21:36:50 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/nas/nassink.c: Some more cleanups/changes; use boilerplate macro.
	  Original commit message from CVS:
	  * ext/nas/nassink.c: (gst_nas_sink_class_init),
	  (gst_nas_sink_init), (gst_nas_sink_getcaps),
	  (gst_nas_sink_unprepare):
	  Some more cleanups/changes; use boilerplate macro.

2007-03-04 20:35:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/nas/: Bunch of nassink clean-ups: make build by adding the right CFLAGS and LIBS to Makefile.am; rename structure...
	  Original commit message from CVS:
	  * ext/nas/Makefile.am:
	  * ext/nas/README:
	  * ext/nas/nassink.c: (gst_nas_sink_get_type),
	  (gst_nas_sink_base_init), (gst_nas_sink_class_init),
	  (gst_nas_sink_init), (gst_nas_sink_finalize),
	  (gst_nas_sink_getcaps), (gst_nas_sink_prepare),
	  (gst_nas_sink_unprepare), (gst_nas_sink_delay),
	  (gst_nas_sink_reset), (gst_nas_sink_write),
	  (gst_nas_sink_set_property), (gst_nas_sink_get_property),
	  (gst_nas_sink_open), (gst_nas_sink_close), (NAS_flush),
	  (NAS_sendData), (NAS_EventHandler), (gst_nas_sink_sink_get_format),
	  (NAS_createFlow), (plugin_init):
	  * ext/nas/nassink.h:
	  Bunch of nassink clean-ups: make build by adding the right CFLAGS
	  and LIBS to Makefile.am; rename structure, macros and functions
	  according to canonical naming scheme; move some things around a bit;
	  use GST_CAT_DEFAULT instead of GST_CAT_* everywhere; remove README
	  file that didn't really contain any useful information anyway (the
	  useful bits have been moved into the 'host' property description).

2007-03-04 16:38:39 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/directfb/dfbvideosink.c: Chain up in finalize.
	  Original commit message from CVS:
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_finalize):
	  Chain up in finalize.

2007-03-03 22:28:03 +0000  Michael Smith <msmith@xiph.org>

	  Fix up dist.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/vmnc/Makefile.am:
	  Fix up dist.

2007-03-03 22:13:22 +0000  Michael Smith <msmith@xiph.org>

	  Add VMnc decoder.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/vmnc/Makefile.am:
	  * gst/vmnc/vmncdec.c: (gst_vmnc_dec_base_init),
	  (gst_vmnc_dec_class_init), (gst_vmnc_dec_init),
	  (gst_vmnc_dec_reset), (vmnc_handle_wmvi_rectangle),
	  (render_colour_cursor), (render_cursor), (vmnc_make_buffer),
	  (vmnc_handle_wmvd_rectangle), (vmnc_handle_wmve_rectangle),
	  (vmnc_handle_wmvf_rectangle), (vmnc_handle_wmvg_rectangle),
	  (vmnc_handle_wmvh_rectangle), (vmnc_handle_wmvj_rectangle),
	  (render_raw_tile), (render_subrect), (vmnc_handle_raw_rectangle),
	  (vmnc_handle_hextile_rectangle), (vmnc_handle_packet),
	  (vmnc_dec_setcaps), (vmnc_dec_chain), (vmnc_dec_change_state),
	  (vmnc_dec_set_property), (vmnc_dec_get_property), (plugin_init):
	  Add VMnc decoder.
	  Still missing support for:
	  - rectangle types I didn't find in my samples (e.g. copy, RRE,
	  ZRLE)
	  - alpha-composited cursors

2007-03-03 10:23:03 +0000  David Schleef <ds@schleef.org>

	  gst-libs/gst/app/Makefile.am: Install the headers.
	  Original commit message from CVS:
	  * gst-libs/gst/app/Makefile.am:
	  Install the headers.

2007-03-03 10:10:30 +0000  David Schleef <ds@schleef.org>

	  gst-libs/gst/app/: Add GstAppBuffer that includes a callback and closure for proper handling of data chunks.
	  Original commit message from CVS:
	  * gst-libs/gst/app/Makefile.am:
	  * gst-libs/gst/app/gstappbuffer.c:
	  * gst-libs/gst/app/gstappbuffer.h:
	  * gst-libs/gst/app/gstappsrc.c:
	  Add GstAppBuffer that includes a callback and closure for
	  proper handling of data chunks.

2007-03-03 09:06:06 +0000  David Schleef <ds@schleef.org>

	  gst-libs/gst/app/gstappsrc.*: Hacking to address issues in 413418.
	  Original commit message from CVS:
	  * gst-libs/gst/app/gstappsrc.c:
	  * gst-libs/gst/app/gstappsrc.h:
	  Hacking to address issues in 413418.

2007-03-03 08:16:57 +0000  David Schleef <ds@schleef.org>

	  Move the app library to gst-libs/gst/app (duh!)
	  Original commit message from CVS:
	  * Makefile.am:
	  * configure.ac:
	  * ext/Makefile.am:
	  * gst-libs/gst/Makefile.am:
	  * gst-libs/gst/app/Makefile.am:
	  * gst-libs/gst/app/gstapp.c:
	  * gst-libs/gst/app/gstappsrc.c:
	  * gst-libs/gst/app/gstappsrc.h:
	  * gst/app/Makefile.am:
	  * gst/app/gstapp.c:
	  * gst/app/gstappsrc.c:
	  * gst/app/gstappsrc.h:
	  Move the app library to gst-libs/gst/app (duh!)

2007-03-02 19:43:48 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* configure.ac:
	* ext/Makefile.am:
	* ext/nas/nassink.c:
	* ext/nas/nassink.h:
	  Commit NAS Sink, closed bugzilla 345633
	  Original commit message from CVS:
	  Commit NAS Sink, closed bugzilla 345633

2007-03-02 18:24:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dts/gstdtsdec.c: A few small clean-ups.
	  Original commit message from CVS:
	  * ext/dts/gstdtsdec.c: (gst_dtsdec_init), (gst_dtsdec_sink_event):
	  A few small clean-ups.
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
	  More debug output for failure cases.

2007-03-02 18:10:06 +0000  Young-Ho Cha <ganadist@chollian.net>

	  ext/dts/gstdtsdec.c: Don't do forced downmixing to stereo, but check what downstream can do and let libdts do the dow...
	  Original commit message from CVS:
	  Patch by: Young-Ho Cha  <ganadist at chollian net>
	  * ext/dts/gstdtsdec.c: (gst_dtsdec_handle_frame),
	  (gst_dtsdec_change_state):
	  Don't do forced downmixing to stereo, but check what downstream
	  can do and let libdts do the downmixing based on that (#400555).

2007-03-02 13:33:39 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	  Remove spurious conflict marker
	  Original commit message from CVS:
	  Remove spurious conflict marker

2007-03-02 12:04:02 +0000  Lutz Mueller <lutz@topfrose.de>

	  ext/neon/gstneonhttpsrc.*: Simplify _set_uri() and _set_proxy() and remove the unused ishttp member (#388050).
	  Original commit message from CVS:
	  Patch by: Lutz Mueller  <lutz topfrose de>
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	  (gst_neonhttp_src_init), (gst_neonhttp_src_set_property),
	  (gst_neonhttp_src_set_uri), (gst_neonhttp_src_set_proxy),
	  (gst_neonhttp_src_send_request_and_redirect),
	  (gst_neonhttp_src_uri_set_uri):
	  * ext/neon/gstneonhttpsrc.h:
	  Simplify _set_uri() and _set_proxy() and remove the unused ishttp
	  member (#388050).
	  * tests/check/elements/neonhttpsrc.c: (GST_START_TEST):
	  Fix bogus URI to something that actually exists, otherwise we just
	  bypass the test (and also to something that doesn't redirect, since
	  neonhttpsrc doesn't seem to handle this very gracefully yet)

2007-03-02 11:14:33 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* configure.ac:
	* ext/ivorbis/Makefile.am:
	* ext/ivorbis/vorbis.c:
	* ext/ivorbis/vorbisdec.c:
	* ext/ivorbis/vorbisdec.h:
	  Add patch from Bug 357055 from Chris Lord, adding support for Vorbis streams
	  Original commit message from CVS:
	  Add patch from Bug 357055 from Chris Lord, adding support for Vorbis streams

2007-03-01 17:27:34 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  tests/check/Makefile.am: Draw plugins in from the build tree sys/ dir, rather than picking up the already installed v...
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Draw plugins in from the build tree sys/ dir, rather than
	  picking up the already installed versions.

2007-02-28 19:31:12 +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-27 12:02:03 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* sys/directdraw/gstdirectdrawplugin.c:
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	* sys/directsound/gstdirectsoundplugin.c:
	* sys/directsound/gstdirectsoundsink.c:
	* sys/directsound/gstdirectsoundsink.h:
	* sys/osxvideo/cocoawindow.h:
	* sys/osxvideo/cocoawindow.m:
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	  update copyright statements
	  Original commit message from CVS:
	  update copyright statements

2007-02-27 11:30:19 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/osxvideo/: Disable the cocoa event loop since it's a huge memory leak. Should only matter if the sink isn't used ...
	  Original commit message from CVS:
	  * sys/osxvideo/cocoawindow.h:
	  * sys/osxvideo/cocoawindow.m:
	  * sys/osxvideo/osxvideosink.h:
	  * sys/osxvideo/osxvideosink.m:
	  Disable the cocoa event loop since it's a huge memory leak. Should only
	  matter if the sink isn't used within an NSApp (which has already got
	  a coca event loop).
	  Remove all unused code.

2007-02-26 21:01:03 +0000  David Schleef <ds@schleef.org>

	  Add a new plugin/library to make it easy for apps to shove data into a pipeline.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/app/Makefile.am:
	  * gst/app/gstapp.c:
	  * gst/app/gstappsrc.c:
	  * gst/app/gstappsrc.h:
	  Add a new plugin/library to make it easy for apps to shove
	  data into a pipeline.

2007-02-26 10:32:30 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/real/: Use gst_pad_use_fixed_caps() on source pads, to avoid negotiation errors in certain situations (e.g. dec !...
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_init):
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_init):
	  Use gst_pad_use_fixed_caps() on source pads, to avoid negotiation
	  errors in certain situations (e.g. dec ! cs ! ximagesink and the
	  imagesink window is resized); also, some minor clean-ups.

2007-02-24 22:52:48 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Fix build with LDFLAGS='-Wl,-z,defs'.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/gsm/Makefile.am:
	  * ext/ladspa/Makefile.am:
	  * ext/wavpack/Makefile.am:
	  * gst/equalizer/Makefile.am:
	  * gst/filter/Makefile.am:
	  * gst/mve/Makefile.am:
	  * gst/nsf/Makefile.am:
	  * gst/replaygain/Makefile.am:
	  * gst/speed/Makefile.am:
	  Fix build with LDFLAGS='-Wl,-z,defs'.

2007-02-20 21:34:00 +0000  Sébastien Moutte <sebastien@moutte.net>

	  sys/directsound/gstdirectsoundsink.*: Remove include of unused headers.
	  Original commit message from CVS:
	  * sys/directsound/gstdirectsoundsink.c:
	  * sys/directsound/gstdirectsoundsink.h:
	  Remove include of unused headers.
	  * sys/waveform/gstwaveformplugin.c:
	  * sys/waveform/gstwaveformsink.c:
	  * sys/waveform/gstwaveformsink.h:
	  * win32/vs6/libgstwaveform.dsp:
	  Add a new waveform plugin which includes an audio sink
	  element using the WaveForm win32 API.
	  * win32/MANIFEST:
	  Add the new project file form waveform plugin.

2007-02-18 18:00:51 +0000  Sébastien Moutte <sebastien@moutte.net>

	  sys/directdraw/: Prepare the plugin to move to good:
	  Original commit message from CVS:
	  * sys/directdraw/gstdirectdrawplugin.c:
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directdraw/gstdirectdrawsink.h:
	  Prepare the plugin to move to good:
	  Remove unused/untested code (rendering to an extern surface,
	  yuv format rendering).Use GST_(DEBUG/*)_OBJECT macros
	  Rename all functions from gst_directdrawsink to gst_directdraw_sink.
	  Add gtk doc section
	  Fix a bug in gst_directdraw_sink_show_frame, memcpy line by line
	  respecting destination surface stride.
	  * sys/directsound/gstdirectsoundplugin.c:
	  * sys/directsound/gstdirectsoundsink.c:
	  * sys/directsound/gstdirectsoundsink.h:
	  Prepare the plugin to move to good:
	  Rename all functions from gst_directsoundsink to gst_directsound_sink.
	  Add gtk doc section
	  * win32/common/config.h.in:
	  * win32/MANIFEST:
	  Add config.h.in

2007-02-16 16:26:31 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add equalizer plugin
	  Original commit message from CVS:
	  add equalizer plugin

2007-02-13 14:22:53 +0000  Christian Schaller <uraeus@gnome.org>

	* ext/Makefile.am:
	  add missing \ in Makefile.am
	  Original commit message from CVS:
	  add missing \ in Makefile.am

2007-02-13 09:44:20 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Add crossreferences to glib/gobject/gstream docs. Also fix typo in timidity.cfg check.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  Add crossreferences to glib/gobject/gstream docs. Also fix typo in
	  timidity.cfg check.
	  * ext/timidity/gsttimidity.c: (plugin_init):
	  Also build if no config was detected at configure time.

2007-02-11 15:46:24 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Add second midi renderer. Fix some double frees and leaks. Clean up logging.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/timidity/Makefile.am:
	  * ext/timidity/gsttimidity.c: (plugin_init):
	  * ext/timidity/gstwildmidi.c: (gst_wildmidi_base_init),
	  (gst_wildmidi_class_init), (gst_wildmidi_init),
	  (gst_wildmidi_src_convert), (gst_wildmidi_src_query),
	  (gst_wildmidi_get_upstream_size), (gst_wildmidi_get_segment),
	  (gst_wildmidi_get_new_segment_event), (gst_wildmidi_src_event),
	  (gst_wildmidi_activate), (gst_wildmidi_activatepull),
	  (gst_wildmidi_allocate_buffer), (gst_wildmidi_clip_buffer),
	  (gst_wildmidi_fill_buffer), (gst_wildmidi_get_buffer),
	  (gst_wildmidi_loop), (gst_wildmidi_change_state),
	  (gst_wildmidi_set_property), (gst_wildmidi_get_property),
	  (gst_wildmidi_typefind), (wildmidi_open_config), (plugin_init):
	  * ext/timidity/gstwildmidi.h:
	  Add second midi renderer. Fix some double frees and leaks. Clean up
	  logging.

2007-02-11 15:26:49 +0000  Sébastien Moutte <sebastien@moutte.net>

	  Makefile.am: Add win32 MANIFEST
	  Original commit message from CVS:
	  * Makefile.am:
	  Add win32 MANIFEST
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directdraw/gstdirectdrawsink.h:
	  Clear unused code and add comments.
	  Remove yuv from template caps, it only supports RGB
	  actually.
	  Implement XOverlay interface and remove window and fullscreen
	  properties.
	  Add debug logs.
	  Test for blit capabilities to return only the current colorspace if
	  the hardware can't blit for one colorspace to another.
	  * sys/directsound/gstdirectsoundsink.c:
	  Add some debugs.
	  * win32/MANIFEST:
	  Add VS7 project files and solution.
	  * win32/vs6/gst_plugins_bad.dsw:
	  * win32/vs6/libgstdirectdraw.dsp:
	  * win32/vs6/libgstdirectsound.dsp:
	  * win32/vs6/libgstqtdemux.dsp:
	  Update project files.

2007-02-11 11:59:49 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/faad/gstfaad.c: Also update the comment that describes the hack.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c:
	  Also update the comment that describes the hack.

2007-02-11 11:35:47 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Tell the code which faad it is, so that we can adjust the hacks needed.
	  Original commit message from CVS:
	  * configure.ac:
	  Tell the code which faad it is, so that we can adjust the hacks
	  needed.
	  * ext/faad/gstfaad.c:
	  Make our hacks dependent on the fadd lib in use.

2007-02-11 10:58:14 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Fix faad detection to support also fadd with new symbol prefix.
	  Original commit message from CVS:
	  * configure.ac:
	  Fix faad detection to support also fadd with new symbol prefix.
	  ChangeLog surgery.

2007-02-08 15:00:00 +0000  Wouter Paesen <wouter@blue-gate.be>

	  Add timitity midi render plugin (#403992)
	  Original commit message from CVS:
	  Patch by: Wouter Paesen <wouter@blue-gate.be>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/timidity/Makefile.am:
	  * ext/timidity/gsttimidity.c: (gst_timidity_base_init),
	  (gst_timidity_class_init), (gst_timidity_init),
	  (gst_timidity_set_song_options), (gst_timidity_src_convert),
	  (gst_timidity_src_query), (gst_timidity_get_upstream_size),
	  (gst_timidity_get_segment), (gst_timidity_get_new_segment_event),
	  (gst_timidity_src_event), (gst_timidity_activate),
	  (gst_timidity_activatepull), (gst_timidity_allocate_buffer),
	  (gst_timidity_clip_buffer), (gst_timidity_fill_buffer),
	  (gst_timidity_get_buffer), (gst_timidity_loop),
	  (gst_timidity_change_state), (gst_timidity_typefind),
	  (plugin_init):
	  * ext/timidity/gsttimidity.h:
	  Add timitity midi render plugin (#403992)

2007-02-07 12:29:03 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/amrwb/gstamrwbparse.c: GST_PAD_PARENT doesn't return a GstObject with an incremented refcount.
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_query):
	  GST_PAD_PARENT doesn't return a GstObject with an incremented refcount.
	  Switched to using gst_pad_get_parent().

2007-02-06 16:00:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/modplug/gstmodplug.cc: Remove superfluous gst_caps_get_structure() call.
	  Original commit message from CVS:
	  * gst/modplug/gstmodplug.cc:
	  Remove superfluous gst_caps_get_structure() call.

2007-02-06 10:16:52 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Increase required libsndfile version to a version that's known to have the function sf_write_sync() to ...
	  Original commit message from CVS:
	  * configure.ac:
	  Increase required libsndfile version to a version that's known to
	  have the function sf_write_sync() to make the build bots happy.

2007-02-06 09:39:16 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/sndfile/gstsfsrc.c: Fix build (installed setup).
	  Original commit message from CVS:
	  * ext/sndfile/gstsfsrc.c:
	  Fix build (installed setup).

2007-02-05 18:42:45 +0000  Andy Wingo <wingo@pobox.com>

	  ext/sndfile/: Port sfsrc to 0.10, pull or push, with random access woo.
	  Original commit message from CVS:
	  2007-02-05  Andy Wingo  <wingo@pobox.com>
	  * ext/sndfile/Makefile.am:
	  * ext/sndfile/gstsfsrc.h:
	  * ext/sndfile/gstsfsrc.c: Port sfsrc to 0.10, pull or push, with
	  random access woo.

2007-02-03 23:35:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Fix up to use the newly ported (actually working) GstAudioFilter.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/equalizer/Makefile.am:
	  * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init),
	  (gst_iir_equalizer_class_init), (gst_iir_equalizer_init),
	  (setup_filter), (gst_iir_equalizer_compute_frequencies),
	  (gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property),
	  (gst_iir_equalizer_transform_ip), (gst_iir_equalizer_setup),
	  (plugin_init):
	  * gst/equalizer/gstiirequalizer.h:
	  Fix up to use the newly ported (actually working) GstAudioFilter.
	  Bump core/base requirements to CVS for this.
	  * tests/icles/.cvsignore:
	  * tests/icles/Makefile.am:
	  * tests/icles/equalizer-test.c: (check_bus),
	  (equalizer_set_band_value), (equalizer_set_all_band_values),
	  (equalizer_set_band_value_and_wait),
	  (equalizer_set_all_band_values_and_wait), (do_slider_fiddling),
	  (main):
	  Add brain-dead interactive test for equalizer.

2007-02-02 18:36:28 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/equalizer/gstiirequalizer.c: Rename "values" property to "band-values" and change type into a
	  Original commit message from CVS:
	  * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_class_init),
	  (gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property),
	  (gst_iir_equalizer_filter_inplace):
	  Rename "values" property to "band-values" and change type into a
	  GValueArray, so it's more easily bindable and the range of the
	  values passed in is defined and checked etc.; also do some
	  locking.

2007-02-02 17:39:21 +0000  James Doc Livingston <doclivingston@gmail.com>

	  Port equalizer plugin to 0.10 (#403572).
	  Original commit message from CVS:
	  Patch by: James "Doc" Livingston  <doclivingston at gmail com>
	  * configure.ac:
	  * gst/equalizer/Makefile.am:
	  * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_get_type),
	  (gst_iir_equalizer_base_init), (gst_iir_equalizer_class_init),
	  (gst_iir_equalizer_compute_frequencies),
	  (gst_iir_equalizer_set_property),
	  (gst_iir_equalizer_filter_inplace), (gst_iir_equalizer_setup),
	  (plugin_init):
	  Port equalizer plugin to 0.10 (#403572).

2007-02-02 13:28:05 +0000  Andy Wingo <wingo@pobox.com>

	  configure.ac: ext/Makefile.am
	  Original commit message from CVS:
	  2007-02-02  Andy Wingo  <wingo@pobox.com>
	  * configure.ac:
	  * ext/Makefile.am
	  * ext/sndfile/Makefile.am:
	  * ext/sndfile/gstsf.c:
	  * ext/sndfile/gstsf.h:
	  * ext/sndfile/gstsfsink.c:
	  * ext/sndfile/gstsfsink.h: Port sfsink to 0.10. Works in pull or
	  push mode with interleaved float or int data.

2007-02-02 11:09:50 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/alsaspdif/alsaspdifsink.c: Set rank to NONE so that it doesn't get autoplugged by autoaudiosink (which didn't hap...
	  Original commit message from CVS:
	  * ext/alsaspdif/alsaspdifsink.c: (plugin_init):
	  Set rank to NONE so that it doesn't get autoplugged by autoaudiosink
	  (which didn't happen previously because the klass string didn't
	  contain anything autoaudiosink was looking for).

2007-01-31 10:02:05 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/real/: Fix classification in GstElementDetails.
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c:
	  * gst/real/gstrealvideodec.c:
	  Fix classification in GstElementDetails.

2007-01-31 08:32:59 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.c: Fix a off by one that leads to the duration reported as one sample less than it is
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query),
	  (gst_wavpack_parse_handle_seek_event),
	  (gst_wavpack_parse_create_src_pad):
	  Fix a off by one that leads to the duration reported as one
	  sample less than it is

2007-01-31 08:16:59 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix classification in GstElementDetails.
	  Original commit message from CVS:
	  * ext/alsaspdif/alsaspdifsink.c:
	  * gst/nsf/gstnsf.c:
	  Fix classification in GstElementDetails.
	  * ext/ladspa/gstladspa.c: (gst_ladspa_base_init),
	  (gst_ladspa_class_init):
	  Improve Klassification and reduce code slighly.

2007-01-30 17:19:33 +0000  Edward Hervey <bilboed@bilboed.com>

	  configure.ac: Check for an Objective C compiler
	  Original commit message from CVS:
	  * configure.ac:
	  Check for an Objective C compiler
	  * sys/Makefile.am:
	  * sys/osxvideo/Makefile.am:
	  * sys/osxvideo/cocoawindow.h:
	  * sys/osxvideo/cocoawindow.m:
	  * sys/osxvideo/osxvideosink.h:
	  * sys/osxvideo/osxvideosink.m:
	  Port of osxvideo plugin to 0.10. Do NOT consider 100% stable !
	  Fixes #402470

2007-01-29 20:51:02 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec file
	  Original commit message from CVS:
	  update spec file

2007-01-28 18:28:33 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/videocrop/gstvideocrop.c: Fix cropping for packed 4:2:2 formats YUYV/YUY2 and UYVY.
	  Original commit message from CVS:
	  * gst/videocrop/gstvideocrop.c:
	  (gst_video_crop_get_image_details_from_caps),
	  (gst_video_crop_transform_packed_complex):
	  Fix cropping for packed 4:2:2 formats YUYV/YUY2 and UYVY.
	  * tests/icles/videocrop-test.c: (check_bus_for_errors),
	  (test_with_caps), (main):
	  Block streaming thread before changing filter caps while the
	  pipeline is running so that we don't get random not-negotiated
	  errors just because GStreamer can't handle that yet.

2007-01-28 17:35:13 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/ladspa/: add GstController support to ladspa
	  Original commit message from CVS:
	  * ext/ladspa/Makefile.am:
	  * ext/ladspa/gstladspa.c: (gst_ladspa_class_get_param_spec):
	  add GstController support to ladspa

2007-01-28 13:01:02 +0000  Rosfran Borges <rosfran.borges@idnt.org.br>

	  ext/mythtv/gstmythtvsrc.c: Remove sleep calls, they've been moved into the library now ... (#354451).
	  Original commit message from CVS:
	  Patch by: Rosfran Borges <rosfran dot borges at idnt org br>
	  * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_start),
	  (gst_mythtv_src_next_program_chain):
	  Remove sleep calls, they've been moved into the library now ...
	  (#354451).

2007-01-27 16:08:15 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/icles/videocrop-test.c: Catch errors while the test is running.
	  Original commit message from CVS:
	  * tests/icles/videocrop-test.c: (test_with_caps):
	  Catch errors while the test is running.

2007-01-25 23:27:59 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.c: Fix the SEEKING query. We can seek if we are in pull mode, not the other way around. A...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query):
	  Fix the SEEKING query. We can seek if we are in pull mode, not the
	  other way around. Also set the correct format in the seeking query and
	  handle the case where the headers are not read yet and we can't say
	  anything about our seeking capabilities.

2007-01-25 21:55:49 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/: Fix spelling in 2 places: It's called Wavpack, not WavePack.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
	  Fix spelling in 2 places: It's called Wavpack, not WavePack.

2007-01-25 12:05:11 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/: Use proper print statements.
	  Original commit message from CVS:
	  * gst/multifile/gstmultifilesink.c:
	  (gst_multi_file_sink_class_init):
	  * gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_class_init):
	  * gst/mve/gstmvedemux.c: (gst_mve_video_create_buffer),
	  (gst_mve_video_palette), (gst_mve_video_code_map),
	  (gst_mve_audio_init), (gst_mve_audio_data), (gst_mve_timer_create),
	  (gst_mve_demux_chain):
	  * gst/mve/gstmvemux.c: (gst_mve_mux_push_chunk):
	  * gst/mve/mveaudioenc.c: (mve_compress_audio):
	  * gst/mve/mvevideodec16.c: (ipvideo_copy_block):
	  * gst/mve/mvevideodec8.c: (ipvideo_copy_block):
	  * gst/mve/mvevideoenc16.c: (mve_encode_frame16):
	  * gst/mve/mvevideoenc8.c: (mve_encode_frame8):
	  Use proper print statements.
	  Fixes build on mac os x.
	  <wingo> oo look at me my name is edward i'm hacking on macos wooo

2007-01-24 11:29:00 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/gstrtpxqtdepay.c: Fix caps on the depayloader.
	  Original commit message from CVS:
	  * gst/qtdemux/gstrtpxqtdepay.c:
	  Fix caps on the depayloader.

2007-01-23 14:54:01 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst-libs/ext/amrwb/Makefile.am:
	  work if it's already there too
	  Original commit message from CVS:
	  work if it's already there too

2007-01-17 17:29:04 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mythtv/gstmythtvsrc.c: Use break here instead of goto.
	  Original commit message from CVS:
	  * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_set_property):
	  Use break here instead of goto.

2007-01-13 19:12:32 +0000  Andy Wingo <wingo@pobox.com>

	  gst/interleave/deinterleave.c (gst_deinterleave_add_new_pads): Use fixed caps on src pads.
	  Original commit message from CVS:
	  2007-01-13  Andy Wingo  <wingo@pobox.com>
	  * gst/interleave/deinterleave.c (gst_deinterleave_add_new_pads):
	  Use fixed caps on src pads.
	  (gst_deinterleave_remove_pads): Remove src pads, not sink pads. I
	  seem to have reverse midas disease!
	  (gst_deinterleave_process): Proxy timestamps, offsets, durations,
	  and set caps on outgoing buffers. Fixes #395597, I think.

2007-01-13 18:01:41 +0000  Andy Wingo <wingo@pobox.com>

	  gst/interleave/interleave.c (gst_interleave_init): Init the activation mode properly.
	  Original commit message from CVS:
	  2007-01-13  Andy Wingo  <wingo@pobox.com>
	  * gst/interleave/interleave.c (gst_interleave_init): Init the
	  activation mode properly.
	  (gst_interleave_src_setcaps, gst_interleave_src_getcaps)
	  (gst_interleave_init): Set a setcaps and getcaps function on the
	  src pad, so that we can implement pull-mode negotiation.
	  (gst_interleave_sink_setcaps): Renamed from
	  gst_interleave_setcaps, as it only does the sink logic now.
	  Implement both for pull-mode and push-mode.
	  (gst_interleave_process): Set caps on our outgoing buffer.
	  (gst_interleave_src_activate_pull): Fix some more bogus casts.
	  What is up with this.

2007-01-13 12:37:55 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/mythtv/gstmythtvsrc.c: Clean up a bit, mostly the debug statements; fix deadlock in _set_property() in the error ...
	  Original commit message from CVS:
	  * ext/mythtv/gstmythtvsrc.c: (do_read_request_response),
	  (gst_mythtv_src_create), (gst_mythtv_src_get_position),
	  (gst_mythtv_src_do_seek), (gst_mythtv_src_start),
	  (gst_mythtv_src_next_program_chain), (gst_mythtv_src_get_size),
	  (gst_mythtv_src_handle_event), (gst_mythtv_src_handle_query),
	  (gst_mythtv_src_change_state), (gst_mythtv_src_set_property),
	  (gst_mythtv_src_uri_get_type):
	  Clean up a bit, mostly the debug statements; fix deadlock in
	  _set_property() in the error cases; fix up query function.

2007-01-12 21:58:43 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* ext/ladspa/gstsignalprocessor.c:
	  ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate)
	  Original commit message from CVS:
	  2007-01-12  Andy Wingo  <wingo@pobox.com>
	  * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate)
	  (gst_signal_processor_ouija_caps, gst_signal_processor_prepare):
	  Remove fixate/ouija stuff, thankfully, due to the new
	  part-negotiation.txt pull-mode negotiation scheme.
	  (gst_signal_processor_setcaps_pull)
	  (gst_signal_processor_setcaps): Implement upstream set_caps pull
	  proxying for pull mode. Now this works: ladspa-sine-fcac !
	  audioconvert ! alsasink.

2007-01-12 19:02:37 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/Makefile.am:
	* ext/mythtv/Makefile.am:
	* ext/mythtv/gstmythtvsrc.c:
	* ext/mythtv/gstmythtvsrc.h:
	* gst-plugins-bad.spec.in:
	  MythTV client source plugin created.
	  Original commit message from CVS:
	  MythTV client source plugin created.

2007-01-12 17:16:51 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/: Add X-QT depayloader that will eventually share code with the demuxer.
	  Original commit message from CVS:
	  * gst/qtdemux/Makefile.am:
	  * gst/qtdemux/gstrtpxqtdepay.c: (gst_rtp_xqt_depay_base_init),
	  (gst_rtp_xqt_depay_class_init), (gst_rtp_xqt_depay_init),
	  (gst_rtp_xqt_depay_finalize), (gst_rtp_quicktime_parse_sd),
	  (gst_rtp_xqt_depay_setcaps), (gst_rtp_xqt_depay_process),
	  (gst_rtp_xqt_depay_set_property), (gst_rtp_xqt_depay_get_property),
	  (gst_rtp_xqt_depay_change_state), (gst_rtp_xqt_depay_plugin_init):
	  * gst/qtdemux/gstrtpxqtdepay.h:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_base_init),
	  (gst_qtdemux_loop_state_header), (gst_qtdemux_loop),
	  (qtdemux_parse_moov), (qtdemux_parse_container),
	  (qtdemux_parse_node), (gst_qtdemux_add_stream),
	  (qtdemux_parse_trak), (qtdemux_audio_caps):
	  * gst/qtdemux/qtdemux.h:
	  * gst/qtdemux/quicktime.c: (plugin_init):
	  Add X-QT depayloader that will eventually share code with the demuxer.
	  Make new plugin entry point with quicktime releated stuff.

2007-01-12 12:10:19 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/Makefile.am: Dist all new files.
	  Original commit message from CVS:
	  * gst/qtdemux/Makefile.am:
	  Dist all new files.

2007-01-12 10:27:25 +0000  Wim Taymans <wim.taymans@gmail.com>

	  docs/plugins/: Activate docs for jack, sdl and qtdemux.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-qtdemux.xml:
	  Activate docs for jack, sdl and qtdemux.

2007-01-12 10:25:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/jack/gstjackaudiosink.*: Improve docs.
	  Original commit message from CVS:
	  * ext/jack/gstjackaudiosink.c: (jack_sample_rate_cb),
	  (jack_buffer_size_cb), (jack_shutdown_cb),
	  (gst_jack_ring_buffer_acquire):
	  * ext/jack/gstjackaudiosink.h:
	  Improve docs.

2007-01-12 10:24:29 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/gsm/gstgsmenc.c: Fix typo in docs.
	  Original commit message from CVS:
	  * ext/gsm/gstgsmenc.c: (gst_gsmenc_init):
	  Fix typo in docs.

2007-01-12 10:22:16 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/: Cleanup and refactor to make the code more readable.
	  Original commit message from CVS:
	  * gst/qtdemux/Makefile.am:
	  * gst/qtdemux/qtdemux.c: (extract_initial_length_and_fourcc),
	  (gst_qtdemux_loop_state_header), (gst_qtdemux_combine_flows),
	  (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
	  (gst_qtdemux_chain), (qtdemux_sink_activate_pull),
	  (qtdemux_inflate), (qtdemux_parse_moov), (qtdemux_parse_container),
	  (qtdemux_parse_node), (qtdemux_tree_get_child_by_type),
	  (qtdemux_tree_get_sibling_by_type), (gst_qtdemux_add_stream),
	  (qtdemux_parse_samples), (qtdemux_parse_segments),
	  (qtdemux_parse_trak), (qtdemux_tag_add_str), (qtdemux_tag_add_num),
	  (qtdemux_tag_add_date), (qtdemux_tag_add_gnre),
	  (qtdemux_parse_udta), (qtdemux_redirects_sort_func),
	  (qtdemux_process_redirects), (qtdemux_parse_redirects),
	  (qtdemux_parse_tree), (gst_qtdemux_handle_esds),
	  (qtdemux_video_caps), (qtdemux_audio_caps):
	  * gst/qtdemux/qtdemux.h:
	  * gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_mvhd),
	  (qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd),
	  (qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref),
	  (qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss),
	  (qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco),
	  (qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd),
	  (qtdemux_dump_unknown), (qtdemux_node_dump_foreach),
	  (qtdemux_node_dump):
	  * gst/qtdemux/qtdemux_dump.h:
	  * gst/qtdemux/qtdemux_fourcc.h:
	  * gst/qtdemux/qtdemux_types.c: (qtdemux_type_get):
	  * gst/qtdemux/qtdemux_types.h:
	  * gst/qtdemux/qtpalette.h:
	  Cleanup and refactor to make the code more readable.
	  Move debugging/tables into separate files.
	  Add 2/4/16 color palletee support.
	  Fix raw 15 bit RGB handling.
	  Use more FOURCC constants.
	  Add some docs.

2007-01-11 19:51:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackenc.c: Minor clean-up: use enum values instead of hardcoded constants (#395536).
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge  <slomo@circular-chaos.org>
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type),
	  (gst_wavpack_enc_correction_mode_get_type),
	  (gst_wavpack_enc_joint_stereo_mode_get_type):
	  Minor clean-up: use enum values instead of hardcoded constants (#395536).

2007-01-11 12:28:56 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/mve/gstmvedemux.c: Support SEEKING query (bad news now delivered properly!); add event function to source pads to...
	  Original commit message from CVS:
	  * gst/mve/gstmvedemux.c: (gst_mve_demux_get_src_query_types),
	  (gst_mve_demux_handle_src_query), (gst_mve_demux_handle_src_event),
	  (gst_mve_add_stream):
	  Support SEEKING query (bad news now delivered properly!); add event
	  function to source pads to make sure seeks aren't propagated
	  upstream, even if they aren't handled.

2007-01-11 11:39:56 +0000  Jens Granseuer <jensgr@gmx.net>

	  Add Interplay MVE format demuxer/decoder and muxer/encoder. Demuxer doesn't support seeking yet, but seems to work fi...
	  Original commit message from CVS:
	  Patch by: Jens Granseuer  <jensgr at gmx net>
	  * configure.ac:
	  * gst/mve/Makefile.am:
	  * gst/mve/TODO:
	  * gst/mve/gstmve.c:
	  * gst/mve/gstmvedemux.c:
	  * gst/mve/gstmvedemux.h:
	  * gst/mve/gstmvemux.c:
	  * gst/mve/gstmvemux.h:
	  * gst/mve/mve.h:
	  * gst/mve/mveaudiodec.c:
	  * gst/mve/mveaudioenc.c:
	  * gst/mve/mvevideodec16.c:
	  * gst/mve/mvevideodec8.c:
	  * gst/mve/mvevideoenc16.c:
	  * gst/mve/mvevideoenc8.c:
	  Add Interplay MVE format demuxer/decoder and muxer/encoder. Demuxer
	  doesn't support seeking yet, but seems to work fine otherwise.
	  Closes #348973.

2007-01-09 10:06:28 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/real/Makefile.am: Fix build (add LIBS and CFLAGS for gst-plugins-base stuff).
	  Original commit message from CVS:
	  * gst/real/Makefile.am:
	  Fix build (add LIBS and CFLAGS for gst-plugins-base stuff).

2007-01-07 22:03:54 +0000  Andy Wingo <wingo@pobox.com>

	  New elements interleave and deinterleave, implement channel interleaving and deinterleaving.
	  Original commit message from CVS:
	  2007-01-07  Andy Wingo  <wingo@pobox.com>
	  * configure.ac:
	  * gst/interleave/Makefile.am:
	  * gst/interleave/plugin.h:
	  * gst/interleave/plugin.c:
	  * gst/interleave/interleave.c:
	  * gst/interleave/deinterleave.c: New elements interleave and
	  deinterleave, implement channel interleaving and deinterleaving.
	  The interleaver can operate in pull or push mode but the
	  deinterleaver is more like a demuxer and can only operate in push
	  mode.

2007-01-06 19:23:40 +0000  Edward Hervey <bilboed@bilboed.com>

	  configure.ac: Properly detect the two architectures on which the real plugin can be built.
	  Original commit message from CVS:
	  * configure.ac:
	  Properly detect the two architectures on which the real plugin can be
	  built.
	  Fixes #393622

2007-01-06 17:22:12 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* ext/ladspa/gstsignalprocessor.c:
	  ext/ladspa/gstsignalprocessor.c
	  Original commit message from CVS:
	  2007-01-06  Andy Wingo  <wingo@pobox.com>
	  * ext/ladspa/gstsignalprocessor.c
	  (gst_signal_processor_ouija_caps): Move around in the source
	  file...
	  (gst_signal_processor_prepare, gst_signal_processor_do_pulls):
	  Call ouija_caps in prepare() instead of do_pulls(), a bit earlier.
	  This allows us to have caps when we do the pad_alloc_buffer().
	  (gst_pad_alloc_buffer_and_set_caps): Use self->caps instead of the
	  pad caps, which might not be set yet.

2007-01-06 15:56:55 +0000  Andy Wingo <wingo@pobox.com>

	  ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_add_pad_from_template)
	  Original commit message from CVS:
	  2007-01-06  Andy Wingo  <wingo@pobox.com>
	  * ext/ladspa/gstsignalprocessor.c:
	  (gst_signal_processor_add_pad_from_template)
	  (gst_signal_processor_fixate): Add a fixate function, to assist in
	  pathological ladspa-sine-fcac ! fakesink can-activate-pull=true
	  cases.
	  (gst_signal_processor_prepare, gst_signal_processor_process): Add
	  nframes args so that getrange can tell ladspa how many frames to
	  process.
	  (gst_signal_processor_ouija_caps): setcaps needs to be called
	  before processing, which normally happens when chaining a buffer
	  to a pad. However in getrange mode with no sinks we need to check
	  explicitly for this condition, guess some caps to use, and use
	  those to setcaps(). Hence this mystical function.
	  (gst_signal_processor_do_pulls): Pull in bytes, not samples.
	  Divine the caps if necessary.
	  (gst_signal_processor_getrange): Interpret the length as bytes,
	  not samples.
	  (gst_signal_processor_chain): nframes=G_MAXUINT, will be limited
	  by incoming buffer sizes.

2007-01-06 14:08:26 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/real/gstrealaudiodec.c: Don't call the RAFreeDecoder since it randomly causes segfaults.
	  Original commit message from CVS:
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_finalize):
	  Don't call the RAFreeDecoder since it randomly causes segfaults.
	  * gst/real/gstrealaudiodec.h:
	  indent properly.

2007-01-06 10:58:13 +0000  Lutz Mueller <lutz@topfrose.de>

	  gst/real/gstrealvideodec.*: Implement error recovery on setcaps failure.
	  Original commit message from CVS:
	  Patch by: Lutz Mueller <lutz@topfrose.de>
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_decode),
	  (gst_real_video_dec_setcaps), (open_library), (close_library),
	  (gst_real_video_dec_finalize):
	  * gst/real/gstrealvideodec.h:
	  Implement error recovery on setcaps failure.

2007-01-06 10:41:46 +0000  Lutz Mueller <lutz@topfrose.de>

	  gst/real/: Added RealAudio wrapper elementfactory.
	  Original commit message from CVS:
	  Patch by: Lutz Mueller <lutz@topfrose.de>
	  * gst/real/Makefile.am:
	  * gst/real/gstreal.c: (plugin_init):
	  * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain),
	  (gst_real_audio_dec_setcaps), (gst_real_audio_dec_init),
	  (gst_real_audio_dec_base_init), (gst_real_audio_dec_change_state),
	  (gst_real_audio_dec_finalize), (gst_real_audio_dec_set_property),
	  (gst_real_audio_dec_get_property), (gst_real_audio_dec_class_init):
	  * gst/real/gstrealaudiodec.h:
	  Added RealAudio wrapper elementfactory.
	  Modified structures so it can also work on x86_64 using the
	  adequate .so .

2007-01-05 18:32:03 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Check for zlib and if available pass it explicitly to the linker when linking qtdemux. If not available (or --disable...
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/qtdemux/Makefile.am:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_moov):
	  Check for zlib and if available pass it explicitly to the linker
	  when linking qtdemux. If not available (or --disable-external has
	  been specified!), disable the bits in qtdemux that use it. Fixes
	  build on MingW (#392856).

2007-01-05 18:15:52 +0000  Edward Hervey <bilboed@bilboed.com>

	  configure.ac: Real video .so are now also available for x86_64, so we can build the
	  Original commit message from CVS:
	  * configure.ac:
	  Real video .so are now also available for x86_64, so we can build the
	  Real plugin on i386 AND x86_64.
	  * gst/real/Makefile.am:
	  * gst/real/gstreal.c: (plugin_init):
	  New plugin file for real .so wrapper plugins.
	  * gst/real/gstrealvideodec.c: (gst_real_video_dec_alloc_buffer),
	  (gst_real_video_dec_decode), (gst_real_video_dec_chain),
	  (gst_real_video_dec_activate_push), (gst_real_video_dec_setcaps),
	  (open_library), (close_library), (gst_real_video_dec_init),
	  (gst_real_video_dec_base_init), (gst_real_video_dec_finalize),
	  (gst_real_video_dec_set_property),
	  (gst_real_video_dec_get_property), (gst_real_video_dec_class_init):
	  * gst/real/gstrealvideodec.h:
	  Moved RealVideo element to separate file
	  Cleaned up code some more.
	  Make it work on x86_64.
	  Try several possible locations for .so
	  Separate opening/closing libraries in separate functions.

2007-01-05 16:07:12 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/icles/videocrop-test.c: Call g_thread_init() right at the beginning. Remove superfluous gst_init() - we've alre...
	  Original commit message from CVS:
	  * tests/icles/videocrop-test.c: (main):
	  Call g_thread_init() right at the beginning. Remove superfluous
	  gst_init() - we've already been inited via the GOption stuff.

2007-01-05 14:02:33 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Don't compile rfbsource if we don't have sys/socket.h.
	  Original commit message from CVS:
	  * configure.ac:
	  Don't compile rfbsource if we don't have sys/socket.h.
	  Should fix compilation on MingW.

2007-01-04 16:39:38 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst-libs/ext/Makefile.am:
	* gst-libs/ext/amrwb/Makefile.am:
	* gst-libs/ext/amrwb/README:
	  add directories in the right place
	  Original commit message from CVS:
	  add directories in the right place

2007-01-04 16:32:43 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	* ext/amrwb/Makefile.am:
	* ext/amrwb/amrwb-code/Makefile.am:
	* ext/amrwb/amrwb-code/amrwb/Makefile.am:
	* ext/amrwb/amrwb-code/amrwb/README:
	* ext/amrwb/amrwb-code/run.sh:
	* gst-libs/Makefile.am:
	  move amrwb code
	  Original commit message from CVS:
	  move amrwb code

2007-01-04 16:32:43 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/amrwb/amrwb-code/Makefile.am:
	  move amrwb code
	  Original commit message from CVS:
	  move amrwb code

2007-01-04 12:49:47 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  configure.ac: split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS so that GST_BASE_CFLAGS can go inbetwe...
	  Original commit message from CVS:
	  * configure.ac:
	  split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS
	  so that GST_BASE_CFLAGS can go inbetween them, making sure
	  we use uninstalled gst-libs headers
	  * docs/libs/Makefile.am:
	  * ext/alsa/Makefile.am:
	  * ext/cdparanoia/Makefile.am:
	  * ext/gnomevfs/Makefile.am:
	  * ext/libvisual/Makefile.am:
	  * ext/ogg/Makefile.am:
	  * ext/theora/Makefile.am:
	  * ext/vorbis/Makefile.am:
	  * gst-libs/gst/audio/Makefile.am:
	  * gst-libs/gst/cdda/Makefile.am:
	  * gst-libs/gst/interfaces/Makefile.am:
	  * gst-libs/gst/riff/Makefile.am:
	  * gst-libs/gst/rtp/Makefile.am:
	  * gst-libs/gst/tag/Makefile.am:
	  * gst/adder/Makefile.am:
	  * gst/audioconvert/Makefile.am:
	  * gst/audiorate/Makefile.am:
	  * gst/audioresample/Makefile.am:
	  * gst/playback/Makefile.am:
	  * gst/tcp/Makefile.am:
	  * gst/videoscale/Makefile.am:
	  * gst/volume/Makefile.am:
	  * sys/ximage/Makefile.am:
	  * sys/xvimage/Makefile.am:
	  * tests/icles/Makefile.am:
	  adapt

2007-01-04 09:51:56 +0000  Julien Moutte <julien@moutte.net>

	  ext/: Fix various compiler warnings that reveal potential bugs.
	  Original commit message from CVS:
	  2007-01-04  Julien MOUTTE  <julien@moutte.net>
	  * ext/directfb/dfbvideosink.c:
	  (gst_dfbvideosink_navigation_send_event),
	  (gst_dfbvideosink_get_type):
	  * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_open):
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_setcaps),
	  (gst_sdlvideosink_show_frame),
	  (gst_sdlvideosink_navigation_send_event):
	  * ext/sdl/sdlvideosink.h: Fix various compiler warnings that
	  reveal potential bugs.

2007-01-04 09:44:57 +0000  Vincent Torri <vtorri@univ-evry.fr>

	  Add directsoundsink to build and dist it, so it gets built when compiling with MingW on win32 and the required header...
	  Original commit message from CVS:
	  Patch by: Vincent Torri  <vtorri at univ-evry fr>
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/directsound/Makefile.am:
	  * sys/directsound/gstdirectsoundsink.c:
	  (gst_directsoundsink_reset):
	  Add directsoundsink to build and dist it, so it gets built when
	  compiling with MingW on win32 and the required headers and libraries
	  are available (fixes: #392638). Also simplify DirectDraw check a bit.
	  * tests/check/elements/.cvsignore:
	  Fix CVS ignore for neonhttpsrc test binary.

2007-01-03 19:54:33 +0000  Vincent Torri <vtorri@univ-evry.fr>

	  Add directdrawsink to build and dist it, so it gets built when compiling with MingW on win32 and the required headers...
	  Original commit message from CVS:
	  Patch by: Vincent Torri  <vtorri at univ-evry fr>
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/directdraw/Makefile.am:
	  Add directdrawsink to build and dist it, so it gets built when
	  compiling with MingW on win32 and the required headers and libraries
	  are available (fixes: #392313).
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdrawsink_center_rect), (gst_directdrawsink_show_frame),
	  (gst_directdrawsink_setup_ddraw),
	  (gst_directdrawsink_surface_create):
	  Comment out some unused things and fix some printf format issues in
	  order to avoid warnings when buildling with MingW (#392313).

2007-01-03 16:41:10 +0000  Jens Granseuer <jensgr@gmx.net>

	  Fix build with gcc-2.x (declare variables at the beginning of a block etc.). Fixes #391971.
	  Original commit message from CVS:
	  Patch by: Jens Granseuer  <jensgr at gmx net>
	  * ext/xvid/gstxvidenc.c: (gst_xvidenc_encode),
	  (gst_xvidenc_get_property):
	  * gst/filter/gstbpwsinc.c: (bpwsinc_transform_ip):
	  * gst/filter/gstfilter.c: (plugin_init):
	  * gst/filter/gstiir.c: (iir_transform_ip):
	  * gst/filter/gstlpwsinc.c: (lpwsinc_transform_ip):
	  * gst/modplug/gstmodplug.cc:
	  * gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_header_load),
	  (gst_nuv_demux_stream_extend_header):
	  Fix build with gcc-2.x (declare variables at the beginning of a
	  block etc.). Fixes #391971.

2007-01-02 11:06:48 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/real/gstreal.c: Use codec_data supplied in caps.
	  Original commit message from CVS:
	  reviewed by: Edward Hervey  <edward@fluendo.com>
	  * gst/real/gstreal.c:
	  (gst_realdec_setcaps): Use codec_data supplied in caps.
	  (gst_realdec_get_property): Correctly return default path.
	  (gst_realdec_class_init): Remove unused state_change method.

2007-01-01 18:06:01 +0000  Edward Hervey <bilboed@bilboed.com>

	  configure.ac: Only build the plugin on 32bit x86 architectures.
	  Original commit message from CVS:
	  * configure.ac:
	  Only build the plugin on 32bit x86 architectures.

2007-01-01 17:47:53 +0000  Edward Hervey <bilboed@bilboed.com>

	  New plugin for decoding RealVideo Streams using the x86 32bit shared libraries.
	  Original commit message from CVS:
	  reviewed by: Edward Hervey  <edward@fluendo.com>
	  * configure.ac:
	  * gst/real/Makefile.am:
	  * gst/real/gstreal.c: (gst_realdec_alloc_buffer),
	  (gst_realdec_decode), (gst_realdec_chain),
	  (gst_realdec_activate_push), (gst_realdec_setcaps),
	  (gst_realdec_init), (gst_realdec_base_init),
	  (gst_realdec_change_state), (gst_realdec_finalize),
	  (gst_realdec_set_property), (gst_realdec_get_property),
	  (gst_realdec_class_init), (plugin_init):
	  New plugin for decoding RealVideo Streams using the x86 32bit
	  shared libraries.
	  Closes #354174

2006-12-30 12:44:01 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/elements/videocrop.c: When we can't create an element needed for the test, print a message detailing whic...
	  Original commit message from CVS:
	  * tests/check/elements/videocrop.c: (GST_START_TEST),
	  (videocrop_test_cropping_init_context):
	  When we can't create an element needed for the test, print a message
	  detailing which element it actually is that's missing (#390673).

2006-12-22 16:23:32 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  Added seek support.
	  Original commit message from CVS:
	  Added seek support.

2006-12-22 10:15:24 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/: reapply consistent pad (de)activation
	  Original commit message from CVS:
	  * tests/check/elements/mpeg2enc.c: (setup_mpeg2enc),
	  (cleanup_mpeg2enc):
	  * tests/check/elements/rganalysis.c: (cleanup_rganalysis):
	  * tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	  (cleanup_wavpackdec):
	  * tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	  (cleanup_wavpackenc):
	  * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc):
	  reapply consistent pad (de)activation

2006-12-21 17:05:44 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to CVS
	  Original commit message from CVS:
	  * configure.ac:
	  Back to CVS
	  * gst-plugins-bad.doap:
	  Add release section for 0.10.4

=== release 0.10.4 ===

2006-12-21 15:45:02 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: releasing 0.10.4, "Black Bugs"
	  Original commit message from CVS:
	  === release 0.10.4 ===
	  2006-12-21  Jan Schmidt <thaytan@mad.scientist.com>
	  * configure.ac:
	  releasing 0.10.4, "Black Bugs"

2006-12-21 15:40:31 +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-12-21 14:07:02 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	  Remove duplicate changelog entry about reverting a previous commit
	  Original commit message from CVS:
	  Remove duplicate changelog entry about reverting a previous commit

2006-12-21 14:03:42 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/mpeg2enc.c: (setup_mpeg2enc)
	  Original commit message from CVS:
	  * tests/check/elements/mpeg2enc.c: (setup_mpeg2enc)
	  (cleanup_mpeg2enc):
	  * tests/check/elements/rganalysis.c: (cleanup_rganalysis):
	  * tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	  (cleanup_wavpackdec):
	  * tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	  (cleanup_wavpackenc):
	  * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc):
	  revert my freeze breakage

2006-12-21 12:58:41 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/: revert my freeze breakage
	  Original commit message from CVS:
	  * tests/check/elements/mpeg2enc.c: (setup_mpeg2enc),
	  (cleanup_mpeg2enc):
	  * tests/check/elements/rganalysis.c: (cleanup_rganalysis):
	  * tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	  (cleanup_wavpackdec):
	  * tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	  (cleanup_wavpackenc):
	  * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc):
	  revert my freeze breakage

2006-12-21 08:20:10 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/: consistent pad (de)activation
	  Original commit message from CVS:
	  * tests/check/elements/mpeg2enc.c: (setup_mpeg2enc),
	  (cleanup_mpeg2enc):
	  * tests/check/elements/rganalysis.c: (cleanup_rganalysis):
	  * tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	  (cleanup_wavpackdec):
	  * tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	  (cleanup_wavpackenc):
	  * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc):
	  consistent pad (de)activation

2006-12-21 08:12:26 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/elements/: consistent pad (de)activation
	  Original commit message from CVS:
	  * tests/check/elements/audioresample.c: (cleanup_audioresample):
	  * tests/check/elements/audiotestsrc.c: (cleanup_audiotestsrc):
	  * tests/check/elements/gdpdepay.c: (setup_gdpdepay),
	  (cleanup_gdpdepay):
	  * tests/check/elements/gdppay.c: (setup_gdppay), (cleanup_gdppay):
	  * tests/check/elements/subparse.c: (teardown_subparse):
	  * tests/check/elements/textoverlay.c: (cleanup_textoverlay):
	  * tests/check/elements/videorate.c: (cleanup_videorate):
	  * tests/check/elements/videotestsrc.c: (cleanup_videotestsrc):
	  * tests/check/elements/volume.c: (cleanup_volume):
	  * tests/check/elements/vorbisdec.c: (setup_vorbisdec),
	  (cleanup_vorbisdec):
	  * tests/check/elements/vorbistag.c: (setup_vorbistag),
	  (cleanup_vorbistag):
	  consistent pad (de)activation

2006-12-18 17:11:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Don't post BUFFERING messages in streaming mode if the stream headers are behind the movie dat...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_post_progress),
	  (gst_qtdemux_chain):
	  Don't post BUFFERING messages in streaming mode if the stream
	  headers are behind the movie data; instead, post "progress" element
	  messages as a temporary solution. Apps might get confused and do
	  silly things to the pipeline state if they see buffering messages
	  from different sources and don't realize they come from different
	  sources (#387160).

2006-12-18 16:47:23 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Move LADPSA plugin from -good for the release, as it's not quite ready to be enabled by default in the -good module yet.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/ladspa/*:
	  Move LADPSA plugin from -good for the release, as it's not quite
	  ready to be enabled by default in the -good module yet.

2006-12-18 15:51:54 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/ladspa/gstsignalprocessor.c: Reset flow_state back to _OK after a flush stop so that we exit our error state afte...
	  Original commit message from CVS:
	  * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps),
	  (gst_signal_processor_event):
	  Reset flow_state back to _OK after a flush stop so that we exit our
	  error state after the flush. Fixes #374213

2006-12-18 13:40:34 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/qtdemux/qtdemux.c: Don't output g_warning for an unsupported format, just send a
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_chain),
	  (gst_qtdemux_add_stream):
	  Don't output g_warning for an unsupported format, just send a
	  GST_ELEMENT_WARNING and don't add the pad.
	  Fix the case where it doesn't check for a NULL pad in streaming mode.
	  Fixes #387137

2006-12-18 12:27:32 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Fix crash dereferencing NULL pointer if there's no stco atom.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Fix crash dereferencing NULL pointer if there's no stco atom.
	  Fixes #387122.

2006-12-18 10:02:56 +0000  Sebastian Dröge <slomo@ubuntu.com>

	  ext/wavpack/gstwavpackenc.h: Use local copy of md5.h, as it disappeared in recent wavpack installs.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.h:
	  Use local copy of md5.h, as it disappeared in recent wavpack
	  installs.
	  Patch by: Sebastian Dröge <slomo at ubuntu dot com>
	  Fixes: #387076

2006-12-17 20:19:43 +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-12-17 20:19:34 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	  Replace some email addresses with names+email addresses
	  Original commit message from CVS:
	  Replace some email addresses with names+email addresses

2006-12-16 15:25:23 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: We don't support seeking in streaming mode, so don't even try.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_query_types),
	  (gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event):
	  We don't support seeking in streaming mode, so don't even try.
	  Implement seeking query so apps can query seekability properly
	  (see #365414). Fix duration query.

2006-12-15 12:18:21 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  add doap file
	  Original commit message from CVS:
	  * Makefile.am:
	  * gst-plugins-bad.doap:
	  * gst-plugins-bad.spec.in:
	  add doap file

2006-12-15 09:34:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/libmms/gstmms.c: These debug statements should be using LOG level.
	  Original commit message from CVS:
	  * ext/libmms/gstmms.c: (gst_mms_create):
	  These debug statements should be using LOG level.

2006-12-14 15:45:56 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/modplug/libmodplug/sndfile.cpp: Fix potential buffer overflow (CVE-2006-4192) (#385788).
	  Original commit message from CVS:
	  * gst/modplug/libmodplug/sndfile.cpp:
	  Fix potential buffer overflow (CVE-2006-4192) (#385788).

2006-12-13 17:12:22 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Add AMR-WB to the list of supported formats.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	  (gst_qtdemux_handle_src_query), (qtdemux_parse_trak),
	  (qtdemux_audio_caps):
	  Add AMR-WB to the list of supported formats.

2006-12-12 16:10:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/neon/gstneonhttpsrc.c: Fix minor mem leak in redirect code.
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create),
	  (send_request_and_redirect):
	  Fix minor mem leak in redirect code.
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/neonhttpsrc.c: (handoff_cb),
	  (GST_START_TEST), (neonhttpsrc_suite):
	  * tests/check/gst-plugins-bad.supp:
	  Add super-basic unit test for #384140.

2006-12-12 12:46:23 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/neon/gstneonhttpsrc.c: Set offset on buffers pushed out (id3demux gets confused if the first buffer does not have...
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create),
	  (send_request_and_redirect):
	  Set offset on buffers pushed out (id3demux gets confused if the
	  first buffer does not have an offset of 0). Fixes #384140.

2006-12-12 11:46:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/neon/gstneonhttpsrc.c: Minor clean-ups; remove newlines at end of debug statements.
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	  (gst_neonhttp_src_create), (send_request_and_redirect),
	  (gst_neonhttp_src_start), (oom_callback):
	  Minor clean-ups; remove newlines at end of debug statements.

2006-12-11 17:33:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Fix non-working redirects from inetfilm.com (handle 'alis' reference data type as well). Fixes...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_tree):
	  Fix non-working redirects from inetfilm.com (handle 'alis' reference
	  data type as well). Fixes #378613.

2006-12-11 09:51:17 +0000  Jonathan Matthew <jonathan@kaolin.wh9.net>

	  gst/modplug/gstmodplug.cc: Fix modplug duration query. Fixes #384294.
	  Original commit message from CVS:
	  Patch by: Jonathan Matthew <jonathan at kaolin wh9 net>).
	  * gst/modplug/gstmodplug.cc:
	  Fix modplug duration query. Fixes #384294.

2006-12-08 17:06:43 +0000  René Stadler <mail@renestadler.de>

	  gst/qtdemux/qtdemux.c: Fix caps for 24 bit raw PCM audio (2).
	  Original commit message from CVS:
	  Patch by: René Stadler  <mail at renestadler de>
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	  (gst_qtdemux_handle_src_query), (qtdemux_parse_trak),
	  (qtdemux_audio_caps):
	  Fix caps for 24 bit raw PCM audio (2).
	  Fixes #383471.

2006-12-07 11:35:41 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Handle more H263 variants.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	  (gst_qtdemux_handle_src_query), (qtdemux_parse_trak),
	  (qtdemux_video_caps):
	  Handle more H263 variants.

2006-12-06 16:57:17 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/jack/.cvsignore: Ignore old files as requested by the build slave.
	  Original commit message from CVS:
	  * ext/jack/.cvsignore:
	  Ignore old files as requested by the build slave.

2006-12-06 16:14:35 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Update the Jack requirement to the version where I think options_t appeared
	  Original commit message from CVS:
	  * configure.ac:
	  Update the Jack requirement to the version where I think options_t
	  appeared

2006-12-01 10:35:39 +0000  Sergey Scobich <sergey.scobich@gmail.com>

	  win32/MANIFEST: Fix compilation on win32 under VS8
	  Original commit message from CVS:
	  * win32/MANIFEST:
	  Fix compilation on win32 under VS8
	  Patch by: Sergey Scobich <sergey dot scobich at gmail dot com>
	  Partially fixes #381175

2006-11-30 15:08:08 +0000  René Stadler <mail@renestadler.de>

	  gst/replaygain/gstrganalysis.c: Call the base class handler.  Fixes #380610.
	  Original commit message from CVS:
	  Patch by: René Stadler  <mail at renestadler de>
	  * gst/replaygain/gstrganalysis.c: (gst_rg_analysis_event):
	  Call the base class handler.  Fixes #380610.

2006-11-30 11:59:04 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/Makefile.am: Fix build.
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Fix build.
	  * ext/jack/gstjackaudiosink.c: (jack_process_cb),
	  (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb),
	  (gst_jack_ring_buffer_acquire):
	  Small cleanups.

2006-11-30 11:49:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Added fully functional jackaudiosink.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/jack/Makefile.am:
	  * ext/jack/gstjack.c: (plugin_init):
	  * ext/jack/gstjack.h:
	  * ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_get_type),
	  (gst_jack_ring_buffer_class_init), (jack_process_cb),
	  (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb),
	  (gst_jack_ring_buffer_init), (gst_jack_ring_buffer_dispose),
	  (gst_jack_ring_buffer_finalize),
	  (gst_jack_ring_buffer_open_device),
	  (gst_jack_ring_buffer_close_device),
	  (gst_jack_ring_buffer_acquire), (gst_jack_ring_buffer_release),
	  (gst_jack_ring_buffer_start), (gst_jack_ring_buffer_pause),
	  (gst_jack_ring_buffer_stop), (gst_jack_ring_buffer_delay),
	  (gst_jack_connect_get_type), (gst_jack_audio_sink_base_init),
	  (gst_jack_audio_sink_class_init), (gst_jack_audio_sink_init),
	  (gst_jack_audio_sink_set_property),
	  (gst_jack_audio_sink_get_property), (gst_jack_audio_sink_getcaps),
	  (gst_jack_audio_sink_create_ringbuffer):
	  * ext/jack/gstjackaudiosink.h:
	  Added fully functional jackaudiosink.

2006-11-27 17:16:26 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Remove some asserts and replace them with a proper error message. Fixes #379261.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	  (gst_qtdemux_handle_src_query), (qtdemux_parse_trak):
	  Remove some asserts and replace them with a proper error
	  message. Fixes #379261.

2006-11-26 17:23:14 +0000  Michael Smith <msmith@xiph.org>

	  ext/theora/theoradec.c: Send events on the right pads, since they don't work very well if you send them in the wrong ...
	  Original commit message from CVS:
	  * ext/theora/theoradec.c: (theora_dec_src_query),
	  (theora_dec_src_event), (theora_handle_data_packet),
	  (theora_dec_chain):
	  Send events on the right pads, since they don't work very well if
	  you send them in the wrong direction.

2006-11-24 09:05:39 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  remove obsolete _factory_init protos and functions
	  Original commit message from CVS:
	  * ext/audiofile/gstafsink.c:
	  * ext/polyp/plugin.c: (plugin_init):
	  * ext/polyp/polypsink.c:
	  * ext/polyp/polypsink.h:
	  * sys/dxr3/dxr3audiosink.h:
	  * sys/dxr3/dxr3spusink.h:
	  * sys/dxr3/dxr3videosink.h:
	  remove obsolete _factory_init protos and functions

2006-11-21 13:00:08 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add rfbsrc plugin
	  Original commit message from CVS:
	  add rfbsrc plugin

2006-11-19 12:02:13 +0000  Michael Smith <msmith@xiph.org>

	  gst/librfb/Makefile.am: Compile with appropriate cflags. Fixes build.
	  Original commit message from CVS:
	  * gst/librfb/Makefile.am:
	  Compile with appropriate cflags. Fixes build.

2006-11-17 18:51:58 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Actually set the TONE parameter for DVB-S when we should.
	  Original commit message from CVS:
	  2006-11-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_tune):
	  Actually set the TONE parameter for DVB-S when we should.

2006-11-17 03:51:04 +0000  David Schleef <ds@schleef.org>

	  gst/librfb/rfbdecoder.c: Fixes for 64-bit architectures.
	  Original commit message from CVS:
	  * gst/librfb/rfbdecoder.c: Fixes for 64-bit architectures.

2006-11-17 03:29:32 +0000  David Schleef <ds@schleef.org>

	  gst/librfb/gstrfbsrc.h: Oops, add this file.
	  Original commit message from CVS:
	  * gst/librfb/gstrfbsrc.h:  Oops, add this file.

2006-11-17 03:15:40 +0000  Andre Moreira Magalhaes <andrunko@gmail.com>

	  Port librfb to 0.10 (#376106).
	  Original commit message from CVS:
	  Patch by: Andre Moreira Magalhaes <andrunko@gmail.com>
	  * configure.ac:
	  * gst/librfb/Makefile.am:
	  * gst/librfb/gstrfbsrc.c:
	  * gst/librfb/rfb.c:
	  * gst/librfb/rfb.h:
	  * gst/librfb/rfbbuffer.c:
	  * gst/librfb/rfbbuffer.h:
	  * gst/librfb/rfbbytestream.c:
	  * gst/librfb/rfbbytestream.h:
	  * gst/librfb/rfbcontext.h:
	  * gst/librfb/rfbdecoder.c:
	  * gst/librfb/rfbdecoder.h:
	  * gst/librfb/rfbutil.h:
	  Port librfb to 0.10 (#376106).

2006-11-16 18:22:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/spc/gstspc.c: Fix build with disabled gst-debug.
	  Original commit message from CVS:
	  * ext/spc/gstspc.c: (spc_play):
	  Fix build with disabled gst-debug.

2006-11-15 16:19:56 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec file with latest changes
	  Original commit message from CVS:
	  update spec file with latest changes

2006-11-15 12:35:46 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/: Some small clean-ups: use enums instead of hard-coded numbers, const-ify element details, re-factor som...
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge  <slomo@circular-chaos.org>
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
	  (gst_wavpack_dec_init), (gst_wavpack_dec_change_state):
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init),
	  (gst_wavpack_enc_class_init), (gst_wavpack_enc_reset),
	  (gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config),
	  (gst_wavpack_enc_change_state):
	  * ext/wavpack/gstwavpackparse.c:
	  Some small clean-ups: use enums instead of hard-coded numbers,
	  const-ify element details, re-factor some code into _reset()
	  functions (#352605).

2006-11-14 15:04:52 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add missing files from SPEC
	  Original commit message from CVS:
	  add missing files from SPEC

2006-11-14 12:33:33 +0000  Tim-Philipp Müller <tim@centricular.net>

	  sys/dvb/gstdvbsrc.*: Fix minor printf format issue; remove overly paranoid checks in create function; fix GObject boi...
	  Original commit message from CVS:
	  * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_create):
	  * sys/dvb/gstdvbsrc.h:
	  Fix minor printf format issue; remove overly paranoid checks in
	  create function; fix GObject boilerplate macros.

2006-11-14 11:43:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Don't parse extra sample params for raw pcm. Fixes #374914.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	  (gst_qtdemux_handle_src_query), (qtdemux_parse_trak):
	  Don't parse extra sample params for raw pcm. Fixes #374914.

2006-11-14 11:39:39 +0000  Wim Taymans <wim.taymans@gmail.com>

	  tests/check/elements/.cvsignore: Add cdaudio to ignore.
	  Original commit message from CVS:
	  * tests/check/elements/.cvsignore:
	  Add cdaudio to ignore.

2006-11-14 10:52:52 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/Makefile.am: dist cdaudio dir.
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  dist cdaudio dir.

2006-11-14 10:42:19 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Fix cdaudio build.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  Fix cdaudio build.

2006-11-14 10:31:29 +0000  Wim Taymans <wim.taymans@gmail.com>

	* ChangeLog:
	  give credit
	  Original commit message from CVS:
	  give credit

2006-11-14 10:25:16 +0000  Wim Taymans <wim.taymans@gmail.com>

	  tests/check/: Added y4m test. Fixes #372243.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc),
	  (GST_START_TEST), (y4menc_suite), (main):
	  Added y4m test. Fixes #372243.

2006-11-13 18:55:57 +0000  Mark Nauwelaerts <manauw@skynet.be>

	  configure.ac: Enable cdaudio and y4m.
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <manauw at skynet be>
	  * configure.ac:
	  Enable cdaudio and y4m.
	  * gst/y4m/Makefile.am:
	  * gst/y4m/gsty4mencode.c: (gst_y4m_encode_base_init),
	  (gst_y4m_encode_class_init), (gst_y4m_encode_init),
	  (gst_y4m_encode_reset), (gst_y4m_encode_setcaps),
	  (gst_y4m_encode_get_stream_header),
	  (gst_y4m_encode_get_frame_header), (gst_y4m_encode_chain),
	  (gst_y4m_encode_set_property), (gst_y4m_encode_get_property),
	  (gst_y4m_encode_change_state), (plugin_init):
	  * gst/y4m/gsty4mencode.h:
	  Port of y4mencode to 0.10.

2006-11-11 00:22:24 +0000  David Schleef <ds@schleef.org>

	  A little pluggy to make sense out of the random chunks we get from multifilesrc.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/videoparse/Makefile.am:
	  * gst/videoparse/gstvideoparse.c:
	  A little pluggy to make sense out of the random chunks we get
	  from multifilesrc.

2006-11-10 19:18:33 +0000  David Schleef <ds@schleef.org>

	  gst/multifile/Makefile.am: Let's not depend on a file that doesn't exist.
	  Original commit message from CVS:
	  * gst/multifile/Makefile.am:
	  Let's not depend on a file that doesn't exist.

2006-11-10 19:07:43 +0000  David Schleef <ds@schleef.org>

	  gst/multifilesink/: Remove the old one.
	  Original commit message from CVS:
	  * gst/multifilesink/Makefile.am:
	  * gst/multifilesink/gstmultifilesink.c:
	  * gst/multifilesink/gstmultifilesink.h:
	  * gst/multifilesink/multifilesink.vcproj:
	  Remove the old one.

2006-11-10 18:51:10 +0000  David Schleef <ds@schleef.org>

	  Revive multifile[src|sink].
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/multifile/Makefile.am:
	  * gst/multifile/gstmultifile.c:
	  * gst/multifile/gstmultifilesink.c:
	  * gst/multifile/gstmultifilesrc.c:
	  * gst/multifile/multifile.vproj:
	  Revive multifile[src|sink].

2006-11-09 14:00:34 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: (gst_dvbsrc_set_property)
	  Original commit message from CVS:
	  2006-11-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_set_property)
	  (gst_dvbsrc_create), (gst_dvbsrc_output_frontend_stats),
	  (gst_dvbsrc_tune), (gst_dvbsrc_set_pes_filters):
	  Rename set_pes_filter to set_pes_filters for consistency.
	  Do run-time pid filtering.

2006-11-08 11:27:16 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.c: Do not call output_frontend_stats from a method that does not have the gstdvbsrc object.
	  Original commit message from CVS:
	  2006-11-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/dvb/gstdvbsrc.c: (read_device):
	  Do not call output_frontend_stats from a method that does not
	  have the gstdvbsrc object.
	  This fixes the build, sorry guys!

2006-11-07 14:46:56 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/gstdvbsrc.*: Force PAT to always be in the filter.
	  Original commit message from CVS:
	  2006-11-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/dvb/gstdvbsrc.c: (read_device), (gst_dvbsrc_create),
	  (gst_dvbsrc_output_frontend_stats), (gst_dvbsrc_tune),
	  (gst_dvbsrc_set_pes_filter):
	  * sys/dvb/gstdvbsrc.h:
	  Force PAT to always be in the filter.
	  Try to continue reading after failing 10 times.

2006-11-04 13:26:41 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  po/POTFILES.in: add dvbsrc
	  Original commit message from CVS:
	  * po/POTFILES.in:
	  add dvbsrc
	  * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_class_init), (gst_dvbsrc_init),
	  (gst_dvbsrc_set_property), (gst_dvbsrc_get_property),
	  (gst_dvbsrc_open_frontend), (gst_dvbsrc_open_dvr),
	  (gst_dvbsrc_finalize), (read_device), (gst_dvbsrc_create),
	  (gst_dvbsrc_start), (gst_dvbsrc_frontend_status),
	  (gst_dvbsrc_tune), (gst_dvbsrc_unset_pes_filters),
	  (gst_dvbsrc_set_pes_filter):
	  * sys/dvb/gstdvbsrc.h:
	  adapter-prefix is a terrible name for a device, so replace it.
	  strerror should be used immediately after the syscall related to it.
	  Actually throw a reasonable GST_ELEMENT_ERROR if we fail to open
	  (pretty easy to trigger by opening the same device twice).
	  Use _OBJECT macros where it makes sense.
	  This element is going to need some work before it moves.

2006-11-02 20:13:26 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Fix enum nicks; only emit no-more-pads once; add support for very fast encoding mode in upcoming 4.40.0 release (#369...
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge <slomo at circular-chaos.org>
	  * configure.ac:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type),
	  (gst_wavpack_enc_correction_mode_get_type),
	  (gst_wavpack_enc_joint_stereo_mode_get_type),
	  (gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config):
	  Fix enum nicks; only emit no-more-pads once; add support for very
	  fast encoding mode in upcoming 4.40.0 release (#369539).

2006-11-01 10:19:18 +0000  Sergey Scobich <sergey.scobich@gmail.com>

	  sys/: Wait until the window is created before using it; guard unistd.h includes with HAVE_UNISTD_H. (#366523)
	  Original commit message from CVS:
	  Patch by: Sergey Scobich  <sergey dot scobich at gmail com>
	  * sys/directdraw/gstdirectdrawsink.c:
	  (gst_directdrawsink_window_thread),
	  (gst_directdrawsink_create_default_window):
	  * sys/directdraw/gstdirectdrawsink.h:
	  * sys/directsound/gstdirectsoundsink.c:
	  Wait until the window is created before using it; guard unistd.h
	  includes with HAVE_UNISTD_H. (#366523)
	  * win32/vs8/libgstdirectdraw.vcproj:
	  * win32/vs8/libgstdirectsound.vcproj:
	  Update project files.

2006-10-31 10:31:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Handle unbounded length streams a bit better. Fixes #367696.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	  (gst_qtdemux_handle_src_query), (qtdemux_parse_tree),
	  (qtdemux_parse_trak):
	  Handle unbounded length streams a bit better. Fixes #367696.

2006-10-29 19:08:01 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/dts/gstdtsdec.c: Fix flow handling and buffer refcounting (gst_pad_push() takes ownership of the buffer passed to...
	  Original commit message from CVS:
	  * ext/dts/gstdtsdec.c: (gst_dtsdec_handle_frame):
	  Fix flow handling and buffer refcounting (gst_pad_push() takes
	  ownership of the buffer passed to it, the buffer does not have
	  to be unreffed no matter what flow value gst_pad_push() returns).

2006-10-28 16:00:51 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/audioresample/gstaudioresample.c: Another typo fix (#366212).
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c: (gst_audioresample_init):
	  Another typo fix (#366212).

2006-10-26 14:07:08 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* gst/nuvdemux/gstnuvdemux.c:
	* gst/nuvdemux/gstnuvdemux.h:
	  Fixed bug for files with timestamps less than 0.
	  Original commit message from CVS:
	  Fixed bug for files with timestamps less than 0.

2006-10-21 22:56:03 +0000  David Schleef <ds@schleef.org>

	  I copied over filesink a while ago and modified it to work as multifilesink.  Might as well check it in.  This could ...
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/multifilesink/Makefile.am:
	  * gst/multifilesink/gstmultifilesink.c:
	  * gst/multifilesink/gstmultifilesink.h:
	  I copied over filesink a while ago and modified it to work
	  as multifilesink.  Might as well check it in.  This could
	  use some work before being declared useful.

2006-10-17 15:16:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Activate pads before adding them to running element.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_set_wp_config):
	  * ext/wavpack/gstwavpackparse.c:
	  (gst_wavpack_parse_create_src_pad):
	  * gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_create_pads):
	  * tests/check/elements/wavpackparse.c: (wavpackparse_found_pad):
	  Activate pads before adding them to running element.

2006-10-17 14:57:17 +0000  Josep Torra Valles <josep@fluendo.com>

	  gst/qtdemux/qtdemux.c: Make compile with Forte compiler, mostly don't do pointer arithmetic with void pointers (#3626...
	  Original commit message from CVS:
	  Patch by: Josep Torra Valles  <josep at fluendo com>
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	  (next_entry_size), (qtdemux_inflate), (qtdemux_parse_moov),
	  (qtdemux_parse_tree), (qtdemux_parse_trak), (qtdemux_tag_add_str),
	  (qtdemux_tag_add_num), (qtdemux_tag_add_date),
	  (qtdemux_tag_add_gnre):
	  Make compile with Forte compiler, mostly don't do pointer arithmetic
	  with void pointers (#362626).

2006-10-17 14:40:20 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* gst/nuvdemux/gstnuvdemux.c:
	  Just a cast to make it compile oos big_endian systems.
	  Original commit message from CVS:
	  Just a cast to make it compile oos big_endian systems.

2006-10-17 14:24:18 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* gst/nuvdemux/Makefile.am:
	* gst/nuvdemux/gstnuvdemux.c:
	* gst/nuvdemux/gstnuvdemux.h:
	  Created new element nuvdemux.
	  Original commit message from CVS:
	  Created new element nuvdemux.

2006-10-17 11:04:14 +0000  Josep Torra Valles <josep@fluendo.com>

	  gst/nsf/: Fix some things the Forte compiler warns about (#362626).
	  Original commit message from CVS:
	  Patch by: Josep Torra Valles  <josep at fluendo com>
	  * gst/nsf/fds_snd.c:
	  * gst/nsf/mmc5_snd.c:
	  * gst/nsf/nsf.c:
	  * gst/nsf/vrc7_snd.c:
	  * gst/nsf/vrcvisnd.c:
	  Fix some things the Forte compiler warns about (#362626).

2006-10-17 10:59:55 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.*: Avoid void pointer usage, better use guint8 * instead.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_moov), (qtdemux_parse),
	  (qtdemux_node_dump_foreach), (qtdemux_dump_mvhd),
	  (qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd),
	  (qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref),
	  (qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss),
	  (qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco),
	  (qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd),
	  (qtdemux_dump_unknown), (qtdemux_tree_get_child_by_type),
	  (qtdemux_tree_get_sibling_by_type):
	  * gst/qtdemux/qtdemux.h:
	  Avoid void pointer usage, better use guint8 * instead.

2006-10-11 20:33:48 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Port simple deinterlacer from 0.8. Use at your own risk, don't blame me for anything it does or does not do to your p...
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/deinterlace/Makefile.am:
	  * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_base_init),
	  (gst_deinterlace_class_init), (gst_deinterlace_init),
	  (gst_deinterlace_stop), (gst_deinterlace_transform_caps),
	  (gst_deinterlace_set_caps), (gst_deinterlace_transform_ip),
	  (gst_deinterlace_set_property), (gst_deinterlace_get_property):
	  * gst/deinterlace/gstdeinterlace.h:
	  Port simple deinterlacer from 0.8. Use at your own risk, don't blame
	  me for anything it does or does not do to your precious pictures.

2006-10-11 13:49:26 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Add some fourcc for DV format.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add some fourcc for DV format.

2006-10-10 18:54:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Printf format fixes.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (extract_initial_length_and_fourcc),
	  (gst_qtdemux_loop_state_header):
	  Printf format fixes.
	  * sys/dvb/gstdvbsrc.c:
	  Use "_stdint.h".

2006-10-10 16:09:58 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/dvb/: Remove these files, not needed use system files.
	  Original commit message from CVS:
	  2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/dvb/Makefile.am:
	  * sys/dvb/dvb-api/Makefile.am:
	  * sys/dvb/dvb-api/audio.h:
	  * sys/dvb/dvb-api/ca.h:
	  * sys/dvb/dvb-api/dmx.h:
	  * sys/dvb/dvb-api/frontend.h:
	  * sys/dvb/dvb-api/net.h:
	  * sys/dvb/dvb-api/osd.h:
	  * sys/dvb/dvb-api/version.h:
	  * sys/dvb/dvb-api/video.h:
	  Remove these files, not needed use system files.
	  * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_set_property),
	  (gst_dvbsrc_create), (gst_dvbsrc_output_frontend_stats),
	  (gst_dvbsrc_tune):
	  Fix warnings, uint16_t etc. is in stdint.h.
	  Use system includes not our local ones.

2006-10-10 15:55:25 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* po/.gitignore:
	  Buildbot, I do as you command. http://build.fluendo.com:8080/gen64-bad-full/builds/475/cvs%20ignore/1
	  Original commit message from CVS:
	  Buildbot, I do as you command.
	  http://build.fluendo.com:8080/gen64-bad-full/builds/475/cvs%20ignore/1

2006-10-10 15:47:49 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Add dvb detection and allow dvbsrc to be built.
	  Original commit message from CVS:
	  2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * configure.ac:
	  * sys/Makefile.am:
	  Add dvb detection and allow dvbsrc to be built.

2006-10-10 15:05:32 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Initial import of dvbsrc.
	  Original commit message from CVS:
	  2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/dvb/AUTHORS:
	  * sys/dvb/Makefile.am:
	  * sys/dvb/README:
	  * sys/dvb/dvb-api/Makefile.am:
	  * sys/dvb/dvb-api/audio.h:
	  * sys/dvb/dvb-api/ca.h:
	  * sys/dvb/dvb-api/dmx.h:
	  * sys/dvb/dvb-api/frontend.h:
	  * sys/dvb/dvb-api/net.h:
	  * sys/dvb/dvb-api/osd.h:
	  * sys/dvb/dvb-api/version.h:
	  * sys/dvb/dvb-api/video.h:
	  * sys/dvb/gstdvbsrc.c:
	  * sys/dvb/gstdvbsrc.h:
	  Initial import of dvbsrc.
	  Currently won't be built.

2006-10-10 12:49:02 +0000  Josep Torre Valles <josep@fluendo.com>

	  ext/gnomevfs/: Fix URI interface implementation return type.
	  Original commit message from CVS:
	  2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  Patch by: Josep Torre Valles <josep@fluendo.com>
	  * ext/gnomevfs/gstgnomevfssink.c:
	  * ext/gnomevfs/gstgnomevfssrc.c:
	  Fix URI interface implementation return type.
	  * ext/pango/gsttextoverlay.c: (gst_text_overlay_set_property):
	  Fix what looks like a copy/paste issue when assigning values.
	  * gst-libs/gst/audio/gstaudiofiltertemplate.c:
	  (gst_audio_filter_template_get_type):
	  Cast to prevent Forte warnings.
	  * gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create):
	  Fix URI interface implementation return type.
	  gst_pad_query_position requires a signed integer pointer as
	  3rd parameter, GstClockTime is unsigned.
	  * gst/audioconvert/audioconvert.c:
	  Fix integer overflow when treated as signed.
	  * gst/audioresample/resample.c: (resample_add_input_data):
	  Cast to prevent warnings on Forte.
	  * gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette):
	  Fix integer overflow when treated as signed.
	  * gst/ffmpegcolorspace/imgconvert_template.h:
	  Fix integer overflow when treated as signed. RGBA_OUT shifts bits.
	  * gst/playback/gstdecodebin.c: (queue_filled_cb),
	  (cleanup_decodebin):
	  Who initialises a guint to -1!
	  Cast function pointers to prevent warnings on Forte.
	  * gst/playback/gstplaybasebin.c: (queue_deadlock_check),
	  (queue_threshold_reached):
	  Cast function pointers correctly to prevent warnings on Forte.
	  * gst/playback/gststreaminfo.c: (gst_stream_info_dispose):
	  Cast function pointers correctly to prevent warnings on Forte.
	  * gst/subparse/gstssaparse.c: (gst_ssa_parse_setcaps):
	  Obvious change to unsigned, 0xEF > max signed char.
	  * gst/tcp/gstmultifdsink.c: (get_buffers_max), (count_burst_unit):
	  GstClockTime is unsigned, initialise correctly.
	  * gst/tcp/gsttcp.c: (gst_tcp_socket_write):
	  Cast so pointer arithemetic doesn't cause warnings on Forte.
	  * gst/videorate/gstvideorate.c:
	  Use correct return value.
	  * tests/examples/seek/scrubby.c:
	  GstClockTime is unsigned, initialise correctly.

2006-10-10 09:57:19 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Reorganise some stuff.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	  (gst_qtdemux_push_event), (gst_qtdemux_do_seek),
	  (gst_qtdemux_change_state), (extract_initial_length_and_fourcc),
	  (gst_qtdemux_loop_state_header), (gst_qtdemux_activate_segment),
	  (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
	  (gst_qtdemux_post_buffering), (gst_qtdemux_chain),
	  (gst_qtdemux_add_stream), (qtdemux_process_redirects),
	  (qtdemux_parse_tree), (qtdemux_parse_trak):
	  Reorganise some stuff.
	  Parse RTSP redirection URLS.

2006-10-07 11:37:59 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/: Add/update docs stuff.
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/inspect/plugin-dtsdec.xml:
	  * docs/plugins/inspect/plugin-mms.xml:
	  * docs/plugins/inspect/plugin-mpeg2enc.xml:
	  * docs/plugins/inspect/plugin-neon.xml:
	  * docs/plugins/inspect/plugin-replaygain.xml:
	  * docs/plugins/inspect/plugin-soundtouch.xml:
	  * docs/plugins/inspect/plugin-spcdec.xml:
	  * docs/plugins/inspect/plugin-swfdec.xml:
	  * docs/plugins/inspect/plugin-videocrop.xml:
	  * docs/plugins/inspect/plugin-wavpack.xml:
	  Add/update docs stuff.

2006-10-06 15:56:01 +0000  René Stadler <mail@renestadler.de>

	  Add ReplayGain analysis element (#357069).
	  Original commit message from CVS:
	  Patch by: René Stadler  <mail at renestadler de>
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * gst/replaygain/Makefile.am:
	  * gst/replaygain/gstrganalysis.c: (gst_rg_analysis_base_init),
	  (gst_rg_analysis_class_init), (gst_rg_analysis_init),
	  (gst_rg_analysis_set_property), (gst_rg_analysis_get_property),
	  (gst_rg_analysis_start), (gst_rg_analysis_set_caps),
	  (gst_rg_analysis_transform_ip), (gst_rg_analysis_event),
	  (gst_rg_analysis_stop), (gst_rg_analysis_handle_tags),
	  (gst_rg_analysis_handle_eos), (gst_rg_analysis_track_result),
	  (gst_rg_analysis_album_result), (plugin_init):
	  * gst/replaygain/gstrganalysis.h:
	  * gst/replaygain/rganalysis.c: (yule_filter), (butter_filter),
	  (apply_filters), (reset_filters), (accumulator_add),
	  (accumulator_clear), (accumulator_result), (rg_analysis_new),
	  (rg_analysis_set_sample_rate), (rg_analysis_destroy),
	  (rg_analysis_analyze_mono_float),
	  (rg_analysis_analyze_stereo_float),
	  (rg_analysis_analyze_mono_int16),
	  (rg_analysis_analyze_stereo_int16), (rg_analysis_analyze),
	  (rg_analysis_track_result), (rg_analysis_album_result),
	  (rg_analysis_reset_album), (rg_analysis_reset):
	  * gst/replaygain/rganalysis.h:
	  Add ReplayGain analysis element (#357069).
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/rganalysis.c: (get_expected_gain),
	  (setup_rganalysis), (cleanup_rganalysis), (set_playing_state),
	  (send_eos_event), (send_tag_event), (poll_eos), (poll_tags),
	  (fail_unless_track_gain), (fail_unless_track_peak),
	  (fail_unless_album_gain), (fail_unless_album_peak),
	  (fail_if_track_tags), (fail_if_album_tags),
	  (fail_unless_num_tracks), (test_buffer_const_float_mono),
	  (test_buffer_const_float_stereo), (test_buffer_const_int16_mono),
	  (test_buffer_const_int16_stereo), (test_buffer_square_float_mono),
	  (test_buffer_square_float_stereo), (test_buffer_square_int16_mono),
	  (test_buffer_square_int16_stereo), (push_buffer), (GST_START_TEST),
	  (rganalysis_suite), (main):
	  Unit tests for the new replaygain element.

2006-10-06 15:49:39 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faad/gstfaad.c: Some cleanups.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain),
	  (gst_faad_close_decoder):
	  Some cleanups.
	  Added some more debugging.
	  Don't ever ignore unlinked, we're not a demuxer.
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream):
	  Activate pad before adding it to the element.

2006-10-06 12:02:09 +0000  Michael Smith <msmith@xiph.org>

	  ext/theora/theoradec.*: Port lots of changes from theoradec to theoraexpdec.
	  Original commit message from CVS:
	  * ext/theora/theoradec.c: (gst_theoradec_reset),
	  (theora_get_query_types), (theora_dec_src_query),
	  (theora_dec_src_event), (theora_dec_sink_event),
	  (theora_handle_comment_packet), (theora_handle_type_packet),
	  (theora_handle_header_packet), (clip_buffer), (theora_dec_push),
	  (theora_handle_422_image), (theora_handle_420_image),
	  (theora_handle_data_packet), (theora_dec_chain),
	  (theora_dec_change_state):
	  * ext/theora/theoradec.h:
	  Port lots of changes from theoradec to theoraexpdec.
	  This catches this plugin up to theoradec. Note that duplicate frames
	  are broken in theoradec at the moment.

2006-10-06 11:31:11 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/spectrum/gstspectrum.c: Fix mem leak, avoid unnecessary memcpy.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_transform_ip):
	  Fix mem leak, avoid unnecessary memcpy.

2006-10-06 02:29:35 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/gstspectrum.c: Removed cruft code that was just commented out. Removed some obsolete debug logs statements.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_init),
	  (gst_spectrum_transform_ip):
	  Removed cruft code that was just commented out. Removed some obsolete
	  debug logs statements.

2006-10-05 18:14:46 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Another batch of printf format fixes.
	  Original commit message from CVS:
	  * ext/dts/gstdtsdec.c: (gst_dtsdec_chain):
	  * ext/musicbrainz/gsttrm.c: (gst_trm_setcaps):
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_sink_set_caps):
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_chain), (qtdemux_parse),
	  (qtdemux_parse_trak):
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_transform_ip):
	  Another batch of printf format fixes.

2006-10-05 15:55:20 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Printf format fixes.
	  Original commit message from CVS:
	  * ext/alsa/gstalsadeviceprobe.c:
	  (gst_alsa_device_property_probe_get_values):
	  * ext/alsa/gstalsasink.c: (set_hwparams):
	  * ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_elem_pad),
	  (gst_ogg_chain_new_stream), (gst_ogg_demux_read_chain):
	  * ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers),
	  (gst_ogg_mux_process_best_pad):
	  * ext/ogg/gstoggparse.c: (gst_ogg_parse_new_stream),
	  (gst_ogg_parse_chain):
	  * ext/ogg/gstogmparse.c: (gst_ogm_parse_stream_header):
	  * ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	  * ext/vorbis/vorbisenc.c: (gst_vorbis_enc_setup),
	  (gst_vorbis_enc_buffer_check_discontinuous):
	  * ext/vorbis/vorbisparse.c: (vorbis_parse_src_query):
	  * gst-libs/gst/audio/gstbaseaudiosink.c:
	  (gst_base_audio_sink_render):
	  * gst-libs/gst/cdda/gstcddabasesrc.c:
	  (gst_cdda_base_src_handle_track_seek):
	  * gst-libs/gst/rtp/gstbasertpdepayload.c:
	  (gst_base_rtp_depayload_push_full):
	  * gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push):
	  * gst/audioresample/resample.c: (resample_input_pushthrough):
	  * gst/playback/gstplaybasebin.c: (queue_out_of_data):
	  * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_handle_clients):
	  * gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
	  (wavpack_type_find):
	  * gst/videotestsrc/gstvideotestsrc.c: (gst_video_test_src_create):
	  * sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	  (gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new):
	  * tests/check/elements/volume.c: (GST_START_TEST):
	  Printf format fixes.

2006-10-04 22:37:07 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/videocrop/gstvideocrop.*: Handle packed YUV formats (UYVY, YUY2, YUYV) separately; also, fix passthrough mode; la...
	  Original commit message from CVS:
	  * gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init),
	  (gst_video_crop_init),
	  (gst_video_crop_get_image_details_from_caps),
	  (gst_video_crop_transform_packed_complex),
	  (gst_video_crop_transform_packed_simple),
	  (gst_video_crop_transform), (gst_video_crop_transform_caps),
	  (gst_video_crop_set_caps),
	  (gst_videocrop_clear_negotiated_caps_locked),
	  (gst_video_crop_set_property):
	  * gst/videocrop/gstvideocrop.h:
	  Handle packed YUV formats (UYVY, YUY2, YUYV) separately; also, fix
	  passthrough mode; lastly, clear negotiated basetransform caps when
	  the cropping changes in order to force renegotiation.

2006-10-04 20:05:07 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/icles/: Visual test for videocrop, shows that packed yuv doesn't work right yet. --with-ffmpegcolorspace option...
	  Original commit message from CVS:
	  * tests/icles/.cvsignore:
	  * tests/icles/Makefile.am:
	  * tests/icles/videocrop-test.c: (quit_mainloop), (tick_cb),
	  (test_with_caps), (video_crop_get_test_caps), (main):
	  Visual test for videocrop, shows that packed yuv doesn't work right
	  yet. --with-ffmpegcolorspace option doesn't work yet for unknown
	  reasons (another basetransform issue?)

2006-10-04 10:55:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Remove more v4l2 stuff, hopefully fixing 'make distcheck' again.
	  Original commit message from CVS:
	  * po/POTFILES.in:
	  * sys/v4l2/.cvsignore:
	  Remove more v4l2 stuff, hopefully fixing 'make distcheck' again.

2006-10-04 10:29:22 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  removed v4l2
	  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:
	  * docs/plugins/inspect/plugin-video4linux2.xml:
	  * gst-plugins-bad.spec.in:
	  removed v4l2

2006-10-03 18:32:31 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/icles/Makefile.am:
	* tests/icles/v4l2src-test.c:
	  removing icle for v4l2
	  Original commit message from CVS:
	  removing icle for v4l2

2006-10-03 18:27:57 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  remove last cond
	  Original commit message from CVS:
	  remove last cond

2006-10-03 18:23:21 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  moved to gst-plugins-good
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/v4l2/Makefile.am:
	  * sys/v4l2/README:
	  * sys/v4l2/gstv4l2.c:
	  * sys/v4l2/gstv4l2colorbalance.c:
	  * sys/v4l2/gstv4l2colorbalance.h:
	  * sys/v4l2/gstv4l2object.c:
	  * sys/v4l2/gstv4l2object.h:
	  * sys/v4l2/gstv4l2src.c:
	  * sys/v4l2/gstv4l2src.h:
	  * sys/v4l2/gstv4l2tuner.c:
	  * sys/v4l2/gstv4l2tuner.h:
	  * sys/v4l2/gstv4l2vidorient.c:
	  * sys/v4l2/gstv4l2vidorient.h:
	  * sys/v4l2/gstv4l2xoverlay.c:
	  * sys/v4l2/gstv4l2xoverlay.h:
	  * sys/v4l2/v4l2_calls.c:
	  * sys/v4l2/v4l2_calls.h:
	  * sys/v4l2/v4l2src_calls.c:
	  * sys/v4l2/v4l2src_calls.h:
	  moved to gst-plugins-good

2006-10-03 13:47:10 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* sys/v4l2/gstv4l2object.c:
	  comment out the notifies for removed properties
	  Original commit message from CVS:
	  comment out the notifies for removed properties

2006-10-03 13:30:48 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  sys/v4l2/gstv4l2object.c: comment out the properties that are already part of the tuner interface.
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2object.c:
	  (gst_v4l2_object_install_properties_helper):
	  comment out the properties that are already part of the tuner
	  interface.

2006-10-03 13:18:59 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/v4l2/gstv4l2src.c: Improve docs.
	  Original commit message from CVS:
	  2006-10-03  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/v4l2/gstv4l2src.c:
	  Improve docs.

2006-10-02 13:28:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/xvid/gstxvid.c: Set rank of xviddec to NONE until someone fixes it (too many crasher bug reports against totem, p...
	  Original commit message from CVS:
	  * ext/xvid/gstxvid.c: (plugin_init):
	  Set rank of xviddec to NONE until someone fixes it (too many crasher
	  bug reports against totem, people should use gst-ffmpeg).

2006-09-28 17:08:47 +0000  Wim Taymans <wim.taymans@gmail.com>

	  sys/v4l2/: Framerate can be 0/1 too.
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_all_caps),
	  (gst_v4l2src_get_caps):
	  * sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists):
	  Framerate can be 0/1 too.
	  Init framerate to 0/1 before querying it so that we can detect
	  devices that don't know about a framerate.
	  Add some more debugging info.

2006-09-28 14:31:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Add support for 'yv12' fourcc.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add support for 'yv12' fourcc.

2006-09-27 17:47:57 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* tests/icles/v4l2src-test.c:
	  Removed set-undef-fps.
	  Original commit message from CVS:
	  Removed set-undef-fps.

2006-09-27 17:04:22 +0000  Wim Taymans <wim.taymans@gmail.com>

	  sys/v4l2/: Renamed some properties to match the tuner interface naming.
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2object.c:
	  (gst_v4l2_object_install_properties_helper), (gst_v4l2_object_new),
	  (gst_v4l2_object_set_property_helper),
	  (gst_v4l2_object_get_property_helper), (gst_v4l2_set_defaults):
	  * sys/v4l2/gstv4l2object.h:
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init),
	  (gst_v4l2src_create):
	  * sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_contains_channel),
	  (gst_v4l2_tuner_list_channels),
	  (gst_v4l2_tuner_set_channel_and_notify),
	  (gst_v4l2_tuner_get_channel), (gst_v4l2_tuner_contains_norm),
	  (gst_v4l2_tuner_list_norms), (gst_v4l2_tuner_set_norm_and_notify),
	  (gst_v4l2_tuner_get_norm):
	  * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	  (gst_v4l2_fill_lists), (gst_v4l2_empty_lists):
	  * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_get_fps):
	  Renamed some properties to match the tuner interface naming.

2006-09-27 16:14:18 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Small cleanups.
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2object.c: (gst_v4l2_object_set_property_helper),
	  (gst_v4l2_set_defaults):
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read),
	  (gst_v4l2src_create):
	  * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open):
	  * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	  (gst_v4l2_fill_lists), (gst_v4l2_open), (gst_v4l2_set_norm),
	  (gst_v4l2_get_frequency), (gst_v4l2_set_frequency),
	  (gst_v4l2_signal_strength), (gst_v4l2_get_attribute),
	  (gst_v4l2_set_attribute), (gst_v4l2_get_input),
	  (gst_v4l2_set_input):
	  * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	  (gst_v4l2src_grab_frame), (gst_v4l2src_get_capture),
	  (gst_v4l2src_set_capture), (gst_v4l2src_capture_init),
	  (gst_v4l2src_capture_start), (gst_v4l2src_capture_stop),
	  (gst_v4l2src_buffer_new):
	  * tests/icles/v4l2src-test.c: (my_bus_callback), (main):
	  Small cleanups.
	  Fix error messages.
	  Use locks when getting timestamps.
	  Fix leaks in test.
	  Add licensing header to tests.

2006-09-27 15:14:07 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2src_calls.c:
	* tests/icles/v4l2src-test.c:
	  Some cleanups and comments.
	  Original commit message from CVS:
	  Some cleanups and comments.

2006-09-26 14:17:54 +0000  Wim Taymans <wim.taymans@gmail.com>

	  docs/plugins/: Add v4l2 plugin to the docs.
	  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:
	  Add v4l2 plugin to the docs.
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read),
	  (gst_v4l2src_get_mmap), (gst_v4l2src_create):
	  * sys/v4l2/gstv4l2src.h:
	  * sys/v4l2/gstv4l2vidorient.c:
	  Fix docs.
	  Remove some more externs.

2006-09-26 13:18:06 +0000  Wim Taymans <wim.taymans@gmail.com>

	  sys/v4l2/Makefile.am: Fix makefile, list libs in stack order.
	  Original commit message from CVS:
	  * sys/v4l2/Makefile.am:
	  Fix makefile, list libs in stack order.
	  * sys/v4l2/gstv4l2colorbalance.c:
	  * sys/v4l2/gstv4l2colorbalance.h:
	  * sys/v4l2/gstv4l2object.c: (gst_v4l2_device_get_type),
	  (gst_v4l2_object_install_properties_helper):
	  * sys/v4l2/gstv4l2object.h:
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read),
	  (gst_v4l2src_get_mmap), (gst_v4l2src_create):
	  * sys/v4l2/gstv4l2src.h:
	  * sys/v4l2/gstv4l2tuner.h:
	  * sys/v4l2/gstv4l2vidorient.h:
	  * sys/v4l2/gstv4l2xoverlay.h:
	  * sys/v4l2/v4l2_calls.h:
	  * sys/v4l2/v4l2src_calls.h:
	  Fix coding style:
	  - Remove extern from functions.
	  - Fix header indentation.
	  Fix Flags, add defaults for properties.
	  Remove unused enums.
	  Fix TOO_LAZY in error messages.

2006-09-26 11:06:17 +0000  Wim Taymans <wim.taymans@gmail.com>

	  sys/v4l2/: Fix pass at code cleanups, move errors cases out of the normal flow for additional code clarity.
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2object.c: (gst_v4l2_class_probe_devices),
	  (gst_v4l2_probe_needs_probe),
	  (gst_v4l2_object_install_properties_helper), (gst_v4l2_object_new),
	  (gst_v4l2_object_destroy), (gst_v4l2_object_set_property_helper),
	  (gst_v4l2_object_get_property_helper), (gst_v4l2_set_defaults),
	  (gst_v4l2_object_start), (gst_v4l2_object_stop):
	  * sys/v4l2/gstv4l2object.h:
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init),
	  (gst_v4l2src_init), (gst_v4l2src_dispose),
	  (gst_v4l2src_set_property), (gst_v4l2src_get_property),
	  (gst_v4l2src_fixate), (gst_v4l2src_get_caps),
	  (gst_v4l2src_set_caps), (gst_v4l2src_get_read),
	  (gst_v4l2src_get_mmap), (gst_v4l2src_create):
	  * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	  (gst_v4l2_open), (gst_v4l2_close), (gst_v4l2_get_norm),
	  (gst_v4l2_set_norm), (gst_v4l2_get_frequency),
	  (gst_v4l2_set_frequency), (gst_v4l2_signal_strength),
	  (gst_v4l2_get_attribute), (gst_v4l2_set_attribute),
	  (gst_v4l2_get_input), (gst_v4l2_set_input):
	  * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	  (gst_v4l2src_queue_frame), (gst_v4l2src_grab_frame),
	  (gst_v4l2src_get_capture), (gst_v4l2src_set_capture),
	  (gst_v4l2src_capture_init), (gst_v4l2src_capture_start),
	  (gst_v4l2src_capture_stop), (gst_v4l2src_capture_deinit),
	  (gst_v4l2src_get_size_limits), (gst_v4l2src_set_fps),
	  (gst_v4l2src_get_fps), (gst_v4l2src_buffer_finalize),
	  (gst_v4l2src_buffer_new):
	  Fix pass at code cleanups, move errors cases out of the normal
	  flow for additional code clarity.

2006-09-23 13:21:43 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/cdaudio/gstcdaudio.c: Port to 0.10.
	  Original commit message from CVS:
	  * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init),
	  (gst_cdaudio_init), (gst_cdaudio_set_property),
	  (gst_cdaudio_get_property), (gst_cdaudio_change_state),
	  (gst_cdaudio_send_event), (gst_cdaudio_get_query_types),
	  (gst_cdaudio_query), (cdaudio_uri_set_uri):
	  Port to 0.10.

2006-09-23 00:28:35 +0000  David Schleef <ds@schleef.org>

	  sys/glsink/glimagesink.c: Fix problems when the element cannot open the display. (fixes #357212)
	  Original commit message from CVS:
	  * sys/glsink/glimagesink.c:
	  Fix problems when the element cannot open the display.
	  (fixes #357212)

2006-09-22 16:08:38 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Up requirements to -base CVS and core CVS (the format for the video orientation interface used by v4l2s...
	  Original commit message from CVS:
	  * configure.ac:
	  Up requirements to -base CVS and core CVS (the format for the
	  video orientation interface used by v4l2src and the latter
	  since that's what -base CVS requires).

2006-09-22 15:59:59 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/directfb/dfbvideosink.c: Lower rank from SECONDARY to MARGINAL. Plugins in -bad that might be autoplugged shouldn...
	  Original commit message from CVS:
	  * ext/directfb/dfbvideosink.c: (plugin_init):
	  Lower rank from SECONDARY to MARGINAL. Plugins in -bad that might
	  be autoplugged shouldn't trump plugins in -base, -good or -ugly
	  (in this case ximagesink).
	  * sys/glsink/glimagesink.c: (plugin_init):
	  Set rank to NONE to prevent it from being autoplugged until
	  errors are handled properly (see #357212).

2006-09-21 14:01:18 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/neon/Makefile.am:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  Reverted previous commit (2006-09-19 - Allow internal codes from last.fm). As dicussed on #gstreamer it should be don...
	  Original commit message from CVS:
	  Reverted previous commit (2006-09-19 - Allow internal codes from last.fm). As dicussed on #gstreamer it should be done in separete element.

2006-09-21 13:41:42 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faac/gstfaac.c: Add decoder specific info on the caps.
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_configure_source_pad),
	  (gst_faac_chain):
	  Add decoder specific info on the caps.
	  Some cleanups here and there.

2006-09-19 21:49:52 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/neon/Makefile.am:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  Allow internal codes from last.fm
	  Original commit message from CVS:
	  Allow internal codes from last.fm

2006-09-19 16:24:10 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* tests/icles/v4l2src-test.c:
	  Just a small fix to the app options.
	  Original commit message from CVS:
	  Just a small fix to the app options.

2006-09-19 13:08:35 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2vidorient.c:
	* sys/v4l2/gstv4l2vidorient.h:
	* tests/icles/v4l2src-test.c:
	  Add Video Orientation interface support to v4l2src.
	  Original commit message from CVS:
	  Add Video Orientation interface support to v4l2src.

2006-09-19 10:10:12 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/gsm/gstgsmdec.*: Handle WAV49 variant (GSM in WAV).
	  Original commit message from CVS:
	  * ext/gsm/gstgsmdec.c: (gst_gsmdec_init),
	  (gst_gsmdec_sink_setcaps), (gst_gsmdec_sink_event),
	  (gst_gsmdec_chain):
	  * ext/gsm/gstgsmdec.h:
	  Handle WAV49 variant (GSM in WAV).
	  Some small cleanups.

2006-09-18 15:36:14 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/v4l2src_calls.c:
	  Fix GST_BUFFER_DURATION.
	  Original commit message from CVS:
	  Fix GST_BUFFER_DURATION.

2006-09-16 22:30:50 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  tests/check/: Fix big batch of compiler warnings.
	  Original commit message from CVS:
	  * tests/check/elements/audioresample.c: (GST_START_TEST):
	  * tests/check/elements/videotestsrc.c: (check_rgb_buf):
	  * tests/check/elements/volume.c: (GST_START_TEST):
	  * tests/check/elements/vorbisdec.c: (GST_START_TEST):
	  * tests/check/pipelines/oggmux.c: (validate_ogg_page), (eos_watch),
	  (test_pipeline), (GST_START_TEST):
	  * tests/check/pipelines/theoraenc.c: (GST_START_TEST):
	  * tests/check/pipelines/vorbisenc.c: (GST_START_TEST):
	  Fix big batch of compiler warnings.

2006-09-16 22:14:36 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  More G_OBJECT macro fixing.
	  Original commit message from CVS:
	  * ext/hermes/gsthermescolorspace.c:
	  * ext/ivorbis/vorbisfile.c:
	  * ext/lcs/gstcolorspace.c:
	  * ext/wavpack/gstwavpackenc.h:
	  * ext/xine/xineaudiodec.c:
	  * ext/xine/xineaudiosink.c:
	  * ext/xine/xineinput.c:
	  * gst/chart/gstchart.c:
	  * gst/equalizer/gstiirequalizer.c:
	  * gst/games/gstpuzzle.c:
	  * gst/librfb/gstrfbsrc.c:
	  * gst/mixmatrix/mixmatrix.c:
	  * gst/nsf/gstnsf.h:
	  * gst/vbidec/gstvbidec.c:
	  * gst/virtualdub/gstxsharpen.c:
	  More G_OBJECT macro fixing.

2006-09-15 19:11:00 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2src_calls.c:
	* tests/icles/v4l2src-test.c:
	  The test application and the plgind error messages has been improved.
	  Original commit message from CVS:
	  The test application and the plgind error messages has been improved.

2006-09-12 20:18:55 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/gstspectrum.c: Implements stop() to clear the adapter and event() to clear the adapter on FLUSH_STOP and...
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	  (gst_spectrum_start), (gst_spectrum_stop), (gst_spectrum_event):
	  Implements stop() to clear the adapter and event() to clear the
	  adapter on FLUSH_STOP and EOS.

2006-09-11 18:23:59 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/gstspectrum.*: Fix type mixup in spectrum->interval (gdouble<->guint64). Spotted by
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_init),
	  (gst_spectrum_set_property):
	  * gst/spectrum/gstspectrum.h:
	  Fix type mixup in spectrum->interval (gdouble<->guint64). Spotted by
	  René Stadler

2006-09-11 18:02:39 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/demo-osssrc.c: Use more defines
	  Original commit message from CVS:
	  * gst/spectrum/demo-osssrc.c: (draw_spectrum), (main):
	  Use more defines
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_init),
	  (gst_spectrum_dispose), (gst_spectrum_set_caps),
	  (gst_spectrum_transform_ip):
	  * gst/spectrum/gstspectrum.h:
	  Apply some of the spectrum cleanup changes suggested in #348085.

2006-09-08 16:47:46 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Bump requirements of -base (videocrop test case needs this).
	  Original commit message from CVS:
	  * configure.ac:
	  Bump requirements of -base (videocrop test case needs this).
	  * gst/videocrop/gstvideocrop.c:
	  Document sloppy handling of subsampled chroma planes if
	  left/top cropping is an odd number.
	  * tests/check/elements/videocrop.c: (handoff_cb),
	  (videocrop_test_cropping_init_context),
	  (videocrop_test_cropping_deinit_context),
	  (videocrop_test_cropping), (check_1x1_buffer), (GST_START_TEST),
	  (videocrop_suite), (main):
	  Add another unit test that crops the input to 1x1 (and checks
	  that that pixel has the expected values in a number of formats).

2006-09-08 11:04:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/videocrop/: Some quick tests indicate that it doesn't make a great deal of sense to use liboil here, at least not...
	  Original commit message from CVS:
	  * gst/videocrop/Makefile.am:
	  * gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init),
	  (gst_video_crop_transform_packed),
	  (gst_video_crop_transform_planar):
	  Some quick tests indicate that it doesn't make a great deal
	  of sense to use liboil here, at least not for the memcpy()s
	  we do, so remove liboil usage until there is clear evidence
	  it actually makes a positive difference somewhere.

2006-09-03 21:12:36 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/soundtouch/Makefile.am:
	  higher up first
	  Original commit message from CVS:
	  higher up first

2006-09-03 10:46:17 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/elements/videocrop.c: More tests: check passthrough mode and caps transform in both directions with fixed...
	  Original commit message from CVS:
	  * tests/check/elements/videocrop.c: (handoff_cb),
	  (buffer_probe_cb), (test_caps_transform), (test_passthrough),
	  (notgst_value_list_get_nth_int), (videocrop_suite):
	  More tests: check passthrough mode and caps transform in
	  both directions with fixed values, ranges and lists.

2006-09-02 18:49:01 +0000  Tim-Philipp Müller <tim@centricular.net>

	  docs/plugins/: Add videocrop to docs.
	  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:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  Add videocrop to docs.
	  * gst/videocrop/Makefile.am:
	  * gst/videocrop/gstvideocrop.c:
	  * gst/videocrop/gstvideocrop.h:
	  Move boilerplate stuff and structures into a header file.
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/videocrop.c: (video_crop_get_test_caps),
	  (test_unit_sizes), (videocrop_test_cropping_init_context),
	  (videocrop_test_cropping_deinit_context),
	  (videocrop_test_cropping), (test_cropping), (videocrop_suite):
	  Add unit tests for videocrop.

2006-09-02 15:30:45 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Port/rewrite videocrop from scratch for GStreamer-0.10, and make it support all formats videoscale supports (#345653).
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/videocrop/Makefile.am:
	  * gst/videocrop/gstvideocrop.c: (gst_video_crop_base_init),
	  (gst_video_crop_class_init), (gst_video_crop_init),
	  (gst_video_crop_get_image_details_from_caps),
	  (gst_video_crop_get_unit_size), (gst_video_crop_transform_packed),
	  (gst_video_crop_transform_planar), (gst_video_crop_transform),
	  (gst_video_crop_transform_dimension),
	  (gst_video_crop_transform_dimension_value),
	  (gst_video_crop_transform_caps), (gst_video_crop_set_caps),
	  (gst_video_crop_set_property), (gst_video_crop_get_property),
	  (plugin_init):
	  Port/rewrite videocrop from scratch for GStreamer-0.10, and make
	  it support all formats videoscale supports (#345653).

2006-09-02 14:45:04 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  sys/v4l2/: Whitespace cleanups, dashify property-names.
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2.c:
	  * sys/v4l2/gstv4l2colorbalance.c:
	  * sys/v4l2/gstv4l2object.c:
	  (gst_v4l2_object_install_properties_helper):
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init):
	  * sys/v4l2/gstv4l2src.h:
	  Whitespace cleanups, dashify property-names.

2006-09-02 14:28:55 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  sys/v4l2/: Cleanup error messages and unify header comments
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2.c:
	  * sys/v4l2/gstv4l2colorbalance.c:
	  * sys/v4l2/gstv4l2colorbalance.h:
	  * sys/v4l2/gstv4l2object.c:
	  * sys/v4l2/gstv4l2object.h:
	  * sys/v4l2/gstv4l2src.c:
	  * sys/v4l2/gstv4l2src.h:
	  * sys/v4l2/gstv4l2tuner.c:
	  * sys/v4l2/gstv4l2tuner.h:
	  * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open):
	  * sys/v4l2/gstv4l2xoverlay.h:
	  * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	  (gst_v4l2_open):
	  * sys/v4l2/v4l2_calls.h:
	  * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_queue_frame),
	  (gst_v4l2src_capture_init):
	  * sys/v4l2/v4l2src_calls.h:
	  Cleanup error messages and unify header comments

2006-08-31 13:01:15 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/nsf/Makefile.am: Add missing GST_LIBS
	  Original commit message from CVS:
	  * gst/nsf/Makefile.am:
	  Add missing GST_LIBS

2006-08-30 18:01:52 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	  Another small fix to set_caps function.
	  Original commit message from CVS:
	  Another small fix to set_caps function.

2006-08-30 13:30:13 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	  Send new_segment in GST_FORMAT_TIME instead of in GST_FORMAT_BYTES.
	  Original commit message from CVS:
	  Send new_segment in GST_FORMAT_TIME instead of in GST_FORMAT_BYTES.

2006-08-30 11:36:06 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	  A small fix to set_caps function.
	  Original commit message from CVS:
	  A small fix to set_caps function.

2006-08-30 11:27:40 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Reset each streams last_flow to GST_FLOW_OK.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c:
	  (gst_qtdemux_do_seek):
	  Reset each streams last_flow to GST_FLOW_OK.
	  (gst_qtdemux_activate_segment):
	  Removing mystic modifications for good.

2006-08-30 11:07:37 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/qtdemux/qtdemux.c: put back 'segment start<=stop' change that was mystically reverted by the last commit
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
	  (qtdemux_parse_tree):
	  put back 'segment start<=stop' change that was mystically reverted by
	  the last commit

2006-08-30 10:43:53 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/qtdemux/qtdemux.c: Fix the build for disabled debug
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
	  (qtdemux_parse_tree):
	  Fix the build for disabled debug

2006-08-29 20:59:47 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	  Fixed framerate negotiation.
	  Original commit message from CVS:
	  Fixed framerate negotiation.

2006-08-29 12:07:38 +0000  Andrew Andkjar <enki@goodship.net>

	  ext/sdl/: Only de-init the subsystem we previously initialised. Avoids borkage when both sdlvideosink and sdlaudiosin...
	  Original commit message from CVS:
	  Patch by: Andrew Andkjar  <enki at goodship net>
	  * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_close):
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported),
	  (gst_sdlvideosink_deinitsdl):
	  Only de-init the subsystem we previously initialised. Avoids
	  borkage when both sdlvideosink and sdlaudiosink are used
	  at the same time and one is shut down.

2006-08-28 17:47:29 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Make sure segment start<=stop in weird quicktime files.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
	  (gst_qtdemux_add_stream), (qtdemux_parse_trak),
	  (qtdemux_video_caps):
	  Make sure segment start<=stop in weird quicktime files.

2006-08-28 14:59:05 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  sys/v4l2/v4l2_calls.c: add comments and more debug logging
	  Original commit message from CVS:
	  * sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists):
	  add comments and more debug logging

2006-08-24 09:24:11 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackdec.c: Post audio codec and average bitrate tags on bus (#344472).
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge <slomo at circular-chaos.org>
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_post_tags),
	  (gst_wavpack_dec_chain):
	  Post audio codec and average bitrate tags on bus (#344472).
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init),
	  (gst_wavpack_parse_src_query):
	  Forward queries in other formats (BYTE format in particular)
	  upstream; add Sebastian to authors.

2006-08-24 00:40:07 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	  Fix set_caps to set width and height to the values the driver is really working with.
	  Original commit message from CVS:
	  Fix set_caps to set width and height to the values the driver is really working with.

2006-08-23 10:30:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/wavpack/gstwavpackenc.c: Fix mem leak, send newsegment event on correction pad as well (#352476).
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block):
	  Fix mem leak, send newsegment event on correction pad
	  as well (#352476).
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
	  Restore original author (on Sebastian's request).
	  * tests/check/Makefile.am:
	  * tests/check/gst-plugins-bad.supp:
	  Add (so far empty) suppression file for -bad. Remove
	  wavpackenc test from VALGRIND_TO_FIX now that the leak
	  is fixed.

2006-08-23 09:22:07 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  tests/check/: Add unit tests for wavpack elements (#352476).
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge <slomo at circular-chaos.org>
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	  (cleanup_wavpackdec), (GST_START_TEST), (wavpackdec_suite), (main):
	  * tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	  (cleanup_wavpackenc), (GST_START_TEST), (wavpackenc_suite), (main):
	  * tests/check/elements/wavpackparse.c: (wavpackparse_found_pad),
	  (setup_wavpackparse), (cleanup_wavpackparse), (GST_START_TEST),
	  (wavpackparse_suite), (main):
	  Add unit tests for wavpack elements (#352476).

2006-08-23 08:52:50 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  Add docs for wavpack elements (#352476).
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge <slomo at circular-chaos.org>
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/inspect/plugin-wavpack.xml:
	  * ext/wavpack/gstwavpackdec.c:
	  * ext/wavpack/gstwavpackdec.h:
	  * ext/wavpack/gstwavpackenc.c:
	  * ext/wavpack/gstwavpackenc.h:
	  * ext/wavpack/gstwavpackparse.c:
	  * ext/wavpack/gstwavpackparse.h:
	  Add docs for wavpack elements (#352476).

2006-08-22 20:39:26 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2src_calls.c:
	  Fixed query size to work with drivers that uses intermediate step like "width * height" to find closest size.
	  Original commit message from CVS:
	  Fixed query size to work with drivers that uses intermediate step like "width * height" to find closest size.

2006-08-21 19:02:13 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  move gdp plugin to good.
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * gst/gdp/Makefile.am:
	  * gst/gdp/gstgdp.c:
	  * gst/gdp/gstgdpdepay.c:
	  * gst/gdp/gstgdpdepay.h:
	  * gst/gdp/gstgdppay.c:
	  * gst/gdp/gstgdppay.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/gdpdepay.c:
	  * tests/check/elements/gdppay.c:
	  move gdp plugin to good.

2006-08-21 16:24:28 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Some more constification.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), (qtdemux_parse),
	  (qtdemux_node_dump_foreach), (qtdemux_parse_trak),
	  (qtdemux_video_caps), (qtdemux_audio_caps):
	  Some more constification.
	  Fix some paletted data formats again.
	  Fix ulaw/alaw in qt.
	  Set correct caps for raw RGB.
	  Add support for yuv2, which is like Yuv2.
	  Add support for raw audio with the NONE fourcc, which is like raw.

2006-08-21 16:21:03 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/gsm/gstgsm.c: Make rank PRIMARY now that GSM seems to work fine.
	  Original commit message from CVS:
	  * ext/gsm/gstgsm.c: (plugin_init):
	  Make rank PRIMARY now that GSM seems to work fine.

2006-08-21 13:59:52 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/wavpack/: More clean-ups: use shorter variable names to make code easier to read; prefix structures we define wit...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_init),
	  (gst_wavpack_enc_finalize), (gst_wavpack_enc_sink_set_caps),
	  (gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_format_samples),
	  (gst_wavpack_enc_push_block), (gst_wavpack_enc_chain),
	  (gst_wavpack_enc_rewrite_first_block),
	  (gst_wavpack_enc_sink_event), (gst_wavpack_enc_change_state),
	  (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	  * ext/wavpack/gstwavpackenc.h:
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
	  (gst_wavpack_parse_src_query), (gst_wavpack_parse_src_event),
	  (gst_wavpack_parse_init), (gst_wavpack_parse_get_upstream_length),
	  (gst_wavpack_parse_loop):
	  More clean-ups: use shorter variable names to make code easier to
	  read; prefix structures we define with 'Gst' to make it clearer
	  where they come from.

2006-08-21 13:26:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/wavpack/gstwavpackenc.c: Fix caps set on buffers and template caps (output is framed) and make them match (#35166...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_init),
	  (gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_push_block),
	  (gst_wavpack_enc_chain), (gst_wavpack_enc_rewrite_first_block),
	  (gst_wavpack_enc_sink_event):
	  Fix caps set on buffers and template caps (output is framed)
	  and make them match (#351663); use GST_WARNING_OBJECT instead of
	  GST_ELEMENT_WARNING; simplify push_block(); do some small
	  clean-ups here and there; fix memleak (#351663).

2006-08-20 13:05:43 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/audioconvert/gstaudioconvert.c: Lower debug, use g_assert in _get_unit_size
	  Original commit message from CVS:
	  * gst/audioconvert/gstaudioconvert.c:
	  (gst_audio_convert_get_unit_size), (set_structure_widths):
	  Lower debug, use g_assert in _get_unit_size
	  * gst/audioresample/gstaudioresample.c:
	  (audioresample_get_unit_size):
	  * gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	  (gst_ffmpegcsp_get_unit_size):
	  * gst/videoscale/gstvideoscale.c: (gst_video_scale_get_unit_size):
	  use g_assert in _get_unit_size

2006-08-18 21:39:00 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.c: Fix resyncing in push mode not stopping re-syncing at embedded zeroes; skip garbage be...
	  Original commit message from CVS:
	  Based on patch by: Sebastian Dröge <slomo at circular-chaos.org>
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_sink_event),
	  (gst_wavpack_parse_get_upstream_length),
	  (gst_wavpack_parse_find_marker), (gst_wavpack_parse_resync_loop),
	  (gst_wavpack_parse_loop), (gst_wavpack_parse_resync_adapter):
	  Fix resyncing in push mode not stopping re-syncing at embedded
	  zeroes; skip garbage between frames in pull mode as well if
	  necessary; use gst_pad_query_peer_duration(); push EOS and
	  NEWSEGMENT event in right direction (#351659).

2006-08-16 16:50:00 +0000  Andy Wingo <wingo@pobox.com>

	  ext/ladspa/gstsignalprocessor.c: Make ladspa elements reusable. Fixes #350006.
	  Original commit message from CVS:
	  Patch by: Andy Wingo <wingo at pobox dot com>
	  * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setup),
	  (gst_signal_processor_start), (gst_signal_processor_stop),
	  (gst_signal_processor_cleanup), (gst_signal_processor_setcaps),
	  (gst_signal_processor_pen_buffer), (gst_signal_processor_flush),
	  (gst_signal_processor_do_pulls), (gst_signal_processor_do_pushes),
	  (gst_signal_processor_change_state):
	  Make ladspa elements reusable. Fixes #350006.

2006-08-16 15:33:12 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/ladspa/gstladspa.c: Convert ' ' into '_'. Try to keep as many characters in the padtemplate names as possible.
	  Original commit message from CVS:
	  * ext/ladspa/gstladspa.c: (gst_ladspa_base_init):
	  Convert ' ' into '_'. Try to keep as many characters in the padtemplate
	  names as possible.

2006-08-16 14:47:50 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/ladspa/gstsignalprocessor.c: A push() gives away our refcount so we should not use the buffer on the pen anymore.
	  Original commit message from CVS:
	  * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_flush),
	  (gst_signal_processor_do_pushes):
	  A push() gives away our refcount so we should not use the buffer on the
	  pen anymore.

2006-08-16 10:40:04 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/: In push mode, re-sync to next wavpack header if sync is lost (#351557). Also use hyphens instead of und...
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge <slomo at circular-chaos.org>
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init):
	  * ext/wavpack/gstwavpackparse.c:
	  (gst_wavpack_parse_resync_adapter), (gst_wavpack_parse_chain):
	  In push mode, re-sync to next wavpack header if sync is lost
	  (#351557). Also use hyphens instead of underscores in
	  GObject property names.

2006-08-15 20:29:45 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackparse.*: Make wavpackparse also work in push-mode (not seekable yet though); some small clean-u...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_class_init),
	  (gst_wavpack_parse_reset), (gst_wavpack_parse_get_src_query_types),
	  (gst_wavpack_parse_src_query),
	  (gst_wavpack_parse_handle_seek_event),
	  (gst_wavpack_parse_sink_event), (gst_wavpack_parse_init),
	  (gst_wavpack_parse_create_src_pad),
	  (gst_wavpack_parse_push_buffer), (gst_wavpack_parse_loop),
	  (gst_wavpack_parse_chain), (gst_wavpack_parse_sink_activate),
	  (gst_wavpack_parse_sink_activate_pull):
	  * ext/wavpack/gstwavpackparse.h:
	  Patch by: Sebastian Dröge <slomo at circular-chaos.org>
	  Make wavpackparse also work in push-mode (not seekable yet though);
	  some small clean-ups along the way; add support for SEEKING query
	  and query types function. (#351495).

2006-08-15 19:29:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Fix leaks (#351502).
	  Original commit message from CVS:
	  * ext/libfame/gstlibfame.c: (gst_fameenc_get_property):
	  * sys/glsink/glimagesink.c: (gst_glimage_sink_get_property):
	  Fix leaks (#351502).

2006-08-14 10:06:55 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Extract all references/redirections if there is more than one and sort them; also extract mini...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_redirects_sort_func),
	  (qtdemux_process_redirects), (qtdemux_parse_tree):
	  Extract all references/redirections if there is more
	  than one and sort them; also extract minimum required
	  bitrate information if available. (#350399)

2006-08-10 17:09:10 +0000  Michal Benes <michal.benes@itonis.tv>

	  ext/faac/gstfaac.c: Bitrate in the faac structure is per output channel, not total bitrate (#350741).
	  Original commit message from CVS:
	  Patch by: Michal Benes  <michal.benes at itonis tv>
	  * ext/faac/gstfaac.c: (gst_faac_configure_source_pad):
	  Bitrate in the faac structure is per output channel,
	  not total bitrate (#350741).

2006-08-09 17:41:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/xvid/gstxvidenc.c: Fix GST_ELEMENT_ERROR usage.
	  Original commit message from CVS:
	  * ext/xvid/gstxvidenc.c: (gst_xvidenc_chain):
	  Fix GST_ELEMENT_ERROR usage.

2006-08-09 10:45:32 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  fixed up and cleaned up the -bad spec file to have proper tests for whats installed and items put in correct categories.
	  Original commit message from CVS:
	  fixed up and cleaned up the -bad spec file to have proper tests for whats installed and items put in correct categories.

2006-08-08 14:55:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Fix silly typo.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_tree):
	  Fix silly typo.

2006-08-08 13:57:29 +0000  Edward Hervey <bilboed@bilboed.com>

	  tests/check/elements/gdpdepay.c: I forgot to include the file containing the #define :)
	  Original commit message from CVS:
	  * tests/check/elements/gdpdepay.c: (gdpdepay_suite):
	  I forgot to include the file containing the #define :)
	  Now includes "config.h"

2006-08-08 13:45:44 +0000  Edward Hervey <bilboed@bilboed.com>

	  tests/check/elements/gdpdepay.c: Ignore test known to fail on PPC64. See #348114.
	  Original commit message from CVS:
	  * tests/check/elements/gdpdepay.c: (gdpdepay_suite):
	  Ignore test known to fail on PPC64. See #348114.

2006-08-04 21:04:55 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  Allow HTTP redirect (HTTP status code 302).
	  Original commit message from CVS:
	  Allow HTTP redirect (HTTP status code 302).

2006-08-04 13:20:23 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/gdp/gstgdpdepay.c: Fix event parsing by gdpdepay.  Fixes #349916.
	  Original commit message from CVS:
	  2006-08-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain):
	  Fix event parsing by gdpdepay.  Fixes #349916.

2006-08-04 11:38:54 +0000  Andy Wingo <wingo@pobox.com>

	  ext/ladspa/gstsignalprocessor.h: Add infrastructure for storing whether a processor can work in place or not, and for...
	  Original commit message from CVS:
	  2006-08-04  Andy Wingo  <wingo@pobox.com>
	  * ext/ladspa/gstsignalprocessor.h: Add infrastructure for storing
	  whether a processor can work in place or not, and for keeping
	  track of its state. Change the FlowReturn instance variable from
	  "state" to "flow_state", all callers changed.
	  * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setup)
	  (gst_signal_processor_start, gst_signal_processor_stop)
	  (gst_signal_processor_cleanup): New functions to manage the
	  processor's state.
	  (gst_signal_processor_setcaps): start() as well as setup() here.
	  (gst_signal_processor_prepare): Respect CAN_PROCESS_IN_PLACE.
	  (gst_signal_processor_change_state): Stop and cleanup the
	  processor as we go to NULL.
	  * ext/ladspa/gstladspa.c (gst_ladspa_base_init): Reuse buffers if
	  INPLACE_BROKEN is not set.
	  * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_prepare):
	  Do the alloc_buffer in bytes, not frames.

2006-08-04 09:20:26 +0000  Andy Wingo <wingo@pobox.com>

	* ext/ladspa/gstsignalprocessor.c:
	  BPB
	  Original commit message from CVS:
	  (gst_signal_processor_src_activate_pull): BPB

2006-08-04 09:05:53 +0000  Andy Wingo <wingo@pobox.com>

	* ext/ladspa/gstsignalprocessor.c:
	  ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setcaps) (gst_signal_processor_prepare) (gst_signal_processor_u...
	  Original commit message from CVS:
	  2006-08-04  Andy Wingo  <wingo@pobox.com>
	  * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setcaps)
	  (gst_signal_processor_prepare)
	  (gst_signal_processor_update_inputs)
	  (gst_signal_processor_process, gst_signal_processor_pen_buffer)
	  (gst_signal_processor_flush)
	  (gst_signal_processor_sink_activate_push)
	  (gst_signal_processor_src_activate_pull)
	  (gst_signal_processor_change_state): Remove the last of the code
	  that assumes that we process whole buffers at a time. Fix some
	  debugging. Seems to work now in some cases.

2006-08-03 14:48:22 +0000  cascardo at holoscopio dot com <cascardo@holoscopio.com>

	  ext/Makefile.am: Use right variables when USE_SPC is defined.
	  Original commit message from CVS:
	  Patch by:  cascardo at holoscopio dot com
	  * ext/Makefile.am:
	  Use right variables when USE_SPC is defined.

2006-08-02 16:56:19 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/gdp/gstgdpdepay.c: Disable seeking.
	  Original commit message from CVS:
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init),
	  (gst_gdp_depay_finalize), (gst_gdp_depay_sink_event),
	  (gst_gdp_depay_src_event), (gst_gdp_depay_chain),
	  (gst_gdp_depay_change_state):
	  Disable seeking.
	  Small cleanups.
	  Clear adapter on disconts.
	  Clear caps when going to READY instead of NULL
	  * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init),
	  (gst_gdp_pay_init), (gst_gdp_pay_finalize), (gst_gdp_pay_reset),
	  (gst_gdp_buffer_from_caps), (gst_gdp_pay_buffer_from_buffer),
	  (gst_gdp_buffer_from_event), (gst_gdp_pay_reset_streamheader),
	  (gst_gdp_queue_buffer), (gst_gdp_pay_chain),
	  (gst_gdp_pay_sink_event), (gst_gdp_pay_src_event),
	  (gst_gdp_pay_change_state):
	  * gst/gdp/gstgdppay.h:
	  Reset payloader when going to READY.
	  Fix leaked buffers in ->queue on push errors.
	  Disable seeking.
	  Code cleanups.
	  Create packetizer in _init, free in _finalize.

2006-07-31 22:27:22 +0000  Andy Wingo <wingo@pobox.com>

	  ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process): Fix nframes-choosing.
	  Original commit message from CVS:
	  2006-08-01  Andy Wingo  <wingo@pobox.com>
	  * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process):
	  Fix nframes-choosing.
	  (gst_signal_processor_init): Init pending_in and pending_out.

2006-07-31 22:03:09 +0000  Andy Wingo <wingo@pobox.com>

	  ext/ladspa/gstsignalprocessor.c (gst_signal_processor_init): No more default sample rate, although we never check tha...
	  Original commit message from CVS:
	  2006-08-01  Andy Wingo  <wingo@pobox.com>
	  * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_init): No
	  more default sample rate, although we never check that the sample
	  rate actually gets set. Something for the future.
	  (gst_signal_processor_setcaps): Some refcount fixes, flow fixes.
	  (gst_signal_processor_event): Refcount fixen.
	  (gst_signal_processor_process): Pull the number of frames to
	  process from the sizes of the buffers in the input pens.
	  (gst_signal_processor_pen_buffer): Remove an incorrect FIXME :)
	  (gst_signal_processor_do_pulls): Add an nframes argument, and use
	  it instead of buffer_frames.
	  (gst_signal_processor_getrange): Refcount fixen, pass nframes on
	  to do_pulls.
	  (gst_signal_processor_chain)
	  (gst_signal_processor_sink_activate_push)
	  (gst_signal_processor_src_activate_pull):  Refcount fixen.
	  * ext/ladspa/gstsignalprocessor.h: No more buffer_frames, yay.

2006-07-31 19:44:18 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/ladspa/gstsignalprocessor.c: don't query buffer-frames from caps, add lots of debug-log, try fix for assert (#349...
	  Original commit message from CVS:
	  * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps),
	  (gst_signal_processor_process):
	  don't query buffer-frames from caps, add lots of debug-log,
	  try fix for assert (#349189)

2006-07-31 17:29:22 +0000  Julien Moutte <julien@moutte.net>

	  ext/directfb/dfbvideosink.c: Post an error message.
	  Original commit message from CVS:
	  2006-07-31  Julien MOUTTE  <julien@moutte.net>
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_change_state),
	  (gst_dfbvideosink_buffer_alloc): Post an error message.

2006-07-31 16:50:27 +0000  Julien Moutte <julien@moutte.net>

	  ext/directfb/dfbvideosink.c: Don't try allocating if we are not setup yet. Fail changing state if setup fails.
	  Original commit message from CVS:
	  2006-07-31  Julien MOUTTE  <julien@moutte.net>
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_change_state),
	  (gst_dfbvideosink_buffer_alloc): Don't try allocating if we are
	  not
	  setup yet. Fail changing state if setup fails.

2006-07-31 08:48:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/gdp/gstgdpdepay.c: Consume all events except EOS because we generate events from the gdp payload instead. Fixes #...
	  Original commit message from CVS:
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init),
	  (gst_gdp_depay_sink_event), (gst_gdp_depay_chain):
	  Consume all events except EOS because we generate events from
	  the gdp payload instead. Fixes #349204

2006-07-29 16:32:26 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/ladspa/gstsignalprocessor.c: Add debugs logs here and there, add more error handling, add some
	  Original commit message from CVS:
	  * ext/ladspa/gstsignalprocessor.c:
	  (gst_signal_processor_add_pad_from_template),
	  (gst_signal_processor_init), (gst_signal_processor_setcaps),
	  (gst_signal_processor_process), (gst_signal_processor_pen_buffer),
	  (gst_signal_processor_do_pulls), (gst_signal_processor_getrange),
	  (gst_signal_processor_sink_activate_push),
	  (gst_signal_processor_src_activate_pull),
	  (gst_signal_processor_change_state):
	  Add debugs logs here and there, add more error handling, add some
	  FIXME comments, filed #349189

2006-07-28 17:17:24 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/audioresample/gstaudioresample.c: Don't leak references to the incoming caps. Clean them up when stopping.
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c: (audioresample_stop),
	  (audioresample_set_caps):
	  Don't leak references to the incoming caps. Clean them up when
	  stopping.
	  * gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init),
	  (gst_video_scale_finalize):
	  Don't leak our temporary pixel buffer.
	  * tests/check/Makefile.am:
	  * tests/check/pipelines/simple-launch-lines.c: (run_pipeline),
	  (GST_START_TEST), (simple_launch_lines_suite):
	  Fix leaks and re-enable the test for valgrind checking.

2006-07-28 12:14:06 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/xvid/gstxviddec.*: Clean-ups and code reflows. Pass return value from gst_pad_alloc_buffer() upstream among other...
	  Original commit message from CVS:
	  * ext/xvid/gstxviddec.c: (gst_xviddec_init), (gst_xviddec_reset),
	  (gst_xviddec_unset), (gst_xviddec_handle_sink_event),
	  (gst_xviddec_setup), (gst_xviddec_negotiate), (gst_xviddec_chain),
	  (gst_xviddec_flush_buffers), (gst_xviddec_src_getcaps),
	  (gst_xviddec_setcaps), (gst_xviddec_change_state):
	  * ext/xvid/gstxviddec.h:
	  Clean-ups and code reflows. Pass return value from
	  gst_pad_alloc_buffer() upstream among other things. Also check
	  for NULL GValue before using GST_VALUE_TYPE macro (#348976).
	  Mass rename of xviddec -> dec variable for better
	  code readability.

2006-07-28 10:19:02 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/xvid/gstxvid.c: Fix size calculation for I420/YV12. Fixes #348976.
	  Original commit message from CVS:
	  * ext/xvid/gstxvid.c: (gst_xvid_image_fill):
	  Fix size calculation for I420/YV12. Fixes #348976.

2006-07-27 10:50:39 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/gsm/: Fix negotiation.
	  Original commit message from CVS:
	  * ext/gsm/gstgsmdec.c: (gst_gsmdec_init),
	  (gst_gsmdec_sink_setcaps), (gst_gsmdec_sink_event):
	  * ext/gsm/gstgsmenc.c: (gst_gsmenc_init), (gst_gsmenc_setcaps):
	  Fix negotiation.

2006-07-26 10:52:05 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst/gdp/gstgdpdepay.c: proxying get/set caps is the wrong thing to do, since we really do change caps quite fundament...
	  Original commit message from CVS:
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init):
	  proxying get/set caps is the wrong thing to do, since we really
	  do change caps quite fundamentally
	  * tests/check/elements/gdpdepay.c:
	  * tests/check/elements/gdppay.c:
	  remove declaration of buffers, it's already done in gstcheck.h

2006-07-24 21:43:06 +0000  Sébastien Moutte <sebastien@moutte.net>

	  sys/directsound/gstdirectsoundsink.*: Add an attenuation property that will directly attenuate the directsound buffer.
	  Original commit message from CVS:
	  * sys/directsound/gstdirectsoundsink.h:
	  * sys/directsound/gstdirectsoundsink.c:
	  Add an attenuation property that will directly attenuate the
	  directsound buffer.
	  Change the size of the directsound secondary buffer to a half second.
	  Add more debug logs.
	  Add a lock to protect dsound buffer write access.
	  Fix a bad implementation of reset.
	  * sys/directsound/gstdirectdrawsink.c:
	  * sys/directsound/gstdirectdrawsink.h:
	  Add a keep_aspect_ratio property.
	  Do not use overlay if not supported.
	  Add more debug logs.
	  Remove overwrite of WM_ERASEBKGND message handling. It was not
	  redrawing border when keep_aspect_ratio was enabled.
	  * win32/common/config.h:
	  update version waiting an auto-generated config.h

2006-07-23 11:52:34 +0000  Chris Lee <clee@kde.org>

	  Add libopenspc-based SPC decoder element (#348220).
	  Original commit message from CVS:
	  Patch by: Chris Lee  <clee at kde org>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/spc/Makefile.am:
	  * ext/spc/gstspc.c: (spc_negotiate), (gst_spc_dec_base_init),
	  (gst_spc_dec_class_init), (gst_spc_dec_init), (gst_spc_dec_chain),
	  (gst_spc_dec_sink_event), (gst_spc_dec_src_event),
	  (gst_spc_dec_src_query), (spc_play), (spc_setup),
	  (gst_spc_dec_change_state), (plugin_init):
	  * ext/spc/gstspc.h:
	  Add libopenspc-based SPC decoder element (#348220).

2006-07-19 14:36:00 +0000  Martin Szulecki <compiz@sukimashita.com>

	  sys/v4l2/gstv4l2object.c: If "device-name" is requested and the device is not open, try to temporarily open it to obt...
	  Original commit message from CVS:
	  Patch by: Martin Szulecki
	  * sys/v4l2/gstv4l2object.c: (gst_v4l2_object_get_property_helper):
	  If "device-name" is requested and the device is not
	  open, try to temporarily open it to obtain this
	  information (#342494).

2006-07-19 11:47:20 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec file
	  Original commit message from CVS:
	  update spec file

2006-07-19 11:43:50 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/nsf/nsf.c: Really fix compilation. Apparently it's not enough to just check the return value for errors, but we n...
	  Original commit message from CVS:
	  * gst/nsf/nsf.c: (nsf_load):
	  Really fix compilation. Apparently it's not enough to
	  just check the return value for errors, but we need to
	  check for short reads as well (now if only we handled
	  them too ...). Fixes #347935.

2006-07-18 18:05:15 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/wavpack/gstwavpackdec.c: Fix caps after previous change to byte order endianness.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
	  Fix caps after previous change to byte order endianness.
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
	  (gst_wavpack_parse_sink_event), (gst_wavpack_parse_init),
	  (gst_wavpack_parse_loop):
	  * ext/wavpack/gstwavpackparse.h:
	  Queue incoming events if there's no source pad yet and
	  send them downstream later when the pad is there.

2006-07-18 16:47:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/wavpack/gstwavpackdec.*: Output audio in native byte order (which is also how we get samples from wavpack); outpu...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init),
	  (gst_wavpack_dec_format_samples),
	  (gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
	  (gst_wavpack_dec_change_state):
	  * ext/wavpack/gstwavpackdec.h:
	  Output audio in native byte order (which is also how we get
	  samples from wavpack); output samples with 21-24 bit depth
	  with 32 bit width (makes things easier for us).

2006-07-18 15:53:35 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/wavpack/gstwavpackdec.*: More clean-ups: remove most of the disfunctional correction pad stuff for now, if it eve...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init),
	  (gst_wavpack_dec_class_init), (gst_wavpack_dec_init),
	  (gst_wavpack_dec_finalize), (gst_wavpack_dec_format_samples),
	  (gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
	  (gst_wavpack_dec_sink_event), (gst_wavpack_dec_change_state):
	  * ext/wavpack/gstwavpackdec.h:
	  More clean-ups: remove most of the disfunctional correction
	  pad stuff for now, if it ever gets implemented a lot of stuff
	  will have to be rewritten anyway; redo chain function, move
	  errors to end, error out instead of g_assert()ing. Also rename
	  overly long variable 'wavpackdec' to just 'dec'; miscellaneous
	  other small stuff.

2006-07-18 14:08:06 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  configure.ac: Check for wavpack version and define WAVPACK_OLD_API if necessary.
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge <slomo at circular-chaos.org>
	  * configure.ac:
	  Check for wavpack version and define WAVPACK_OLD_API if
	  necessary.
	  * ext/wavpack/Makefile.am:
	  * ext/wavpack/gstwavpackcommon.c: (gst_wavpack_read_header),
	  (gst_wavpack_read_metadata):
	  * ext/wavpack/gstwavpackcommon.h:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init),
	  (gst_wavpack_dec_class_init), (gst_wavpack_dec_init),
	  (gst_wavpack_dec_finalize), (gst_wavpack_dec_format_samples),
	  (gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
	  (gst_wavpack_dec_sink_event), (gst_wavpack_dec_change_state),
	  (gst_wavpack_dec_request_new_pad), (gst_wavpack_dec_plugin_init):
	  * ext/wavpack/gstwavpackdec.h:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	  (gst_wavpack_enc_init), (gst_wavpack_enc_finalize),
	  (gst_wavpack_enc_set_wp_config):
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init),
	  (gst_wavpack_parse_finalize), (gst_wavpack_parse_class_init),
	  (gst_wavpack_parse_index_get_entry_from_sample),
	  (gst_wavpack_parse_scan_to_find_sample),
	  (gst_wavpack_parse_handle_seek_event),
	  (gst_wavpack_parse_create_src_pad):
	  * ext/wavpack/gstwavpackstreamreader.c:
	  * ext/wavpack/gstwavpackstreamreader.h:
	  Port to new/official wavpack API, don't use API that was exported
	  in wavpack header files and in the lib but meant to be private, at
	  least not for recent wavpack versions; misc. 'cleanups' (#347443).

2006-07-18 09:36:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/nsf/nsf.c: Fix compilation by not ignoring return values of fread.
	  Original commit message from CVS:
	  * gst/nsf/nsf.c: (nsf_load):
	  Fix compilation by not ignoring return values of fread.

2006-07-17 15:09:31 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/inspect/: adding more inspect docs
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-alsaspdif.xml:
	  * docs/plugins/inspect/plugin-filter.xml:
	  * docs/plugins/inspect/plugin-h264parse.xml:
	  * docs/plugins/inspect/plugin-musepack.xml:
	  * docs/plugins/inspect/plugin-nsfdec.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-spectrum.xml:
	  adding more inspect docs

2006-07-17 14:43:55 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/inspect/plugin-gdp.xml: actually commit inspectation of gdp element
	  Original commit message from CVS:
	  * docs/plugins/inspect/plugin-gdp.xml:
	  actually commit inspectation of gdp element

2006-07-17 14:17:45 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst/gdp/: remove parent_class setting, BOILERPLATE does this fix typo in comment
	  Original commit message from CVS:
	  2006-07-17  Thomas Vander Stichele  <thomas at apestaart dot org>
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_class_init):
	  * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init),
	  remove parent_class setting, BOILERPLATE does this
	  (gst_gdp_pay_reset_streamheader):
	  fix typo in comment

2006-07-17 10:25:57 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Store duration in uint64 too instead of clipping.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
	  (gst_qtdemux_prepare_current_sample),
	  (gst_qtdemux_loop_state_movie):
	  Store duration in uint64 too instead of clipping.
	  When we do a keyframe seek and the requested time is at the
	  keyframe, don't seek back to the beginning of the keyframe.
	  Fixes #347439.

2006-07-16 14:46:02 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/faad/gstfaad.c: Don't crash on small buffers.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_sync):
	  Don't crash on small buffers.

2006-07-15 11:57:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ext/ivorbis/vorbisfile.c: Reset adapter.
	  Original commit message from CVS:
	  * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_sink_activate):
	  Reset adapter.

2006-07-15 11:50:25 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/: Do not use deprecated gtk functions.
	  Original commit message from CVS:
	  * gst/spectrum/demo-audiotest.c: (main):
	  * gst/spectrum/demo-osssrc.c: (main):
	  Do not use deprecated gtk functions.

2006-07-14 10:34:36 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/gdp/Makefile.am:
	  build as a plugin, not a lib
	  Original commit message from CVS:
	  build as a plugin, not a lib

2006-07-14 09:11:11 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/nsf/: Remove crack malloc/free replacement.
	  Original commit message from CVS:
	  * gst/nsf/Makefile.am:
	  * gst/nsf/memguard.c:
	  * gst/nsf/memguard.h:
	  * gst/nsf/types.h:
	  Remove crack malloc/free replacement.

2006-07-13 15:25:58 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/: add more plugins and elements to docs
	  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:
	  add more plugins and elements to docs
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain):
	  fix segfaults due to wrong g_free
	  add example
	  * gst/gdp/gstgdppay.c:
	  add example

2006-07-13 15:22:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/nsf/Makefile.am: Fix build.
	  Original commit message from CVS:
	  * gst/nsf/Makefile.am:
	  Fix build.

2006-07-13 15:22:20 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdlvideosink.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-video4linux2.xml:
	* docs/plugins/inspect/plugin-wavpack.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  remove sdlvideosink plugin and update the rest
	  Original commit message from CVS:
	  remove sdlvideosink plugin and update the rest

2006-07-13 15:07:28 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Added NSF decoder plugin. Fixes 151192.
	  Original commit message from CVS:
	  Based on patches by: Johan Dahlin <johan at gnome dot org>
	  Ronald Bultje <rbultje at ronald dot bitfreak dot net>
	  * configure.ac:
	  * gst/nsf/Makefile.am:
	  * gst/nsf/dis6502.h:
	  * gst/nsf/fds_snd.c:
	  * gst/nsf/fds_snd.h:
	  * gst/nsf/fmopl.c:
	  * gst/nsf/fmopl.h:
	  * gst/nsf/gstnsf.c:
	  * gst/nsf/gstnsf.h:
	  * gst/nsf/log.c:
	  * gst/nsf/log.h:
	  * gst/nsf/memguard.c:
	  * gst/nsf/memguard.h:
	  * gst/nsf/mmc5_snd.c:
	  * gst/nsf/mmc5_snd.h:
	  * gst/nsf/nes6502.c:
	  * gst/nsf/nes6502.h:
	  * gst/nsf/nes_apu.c:
	  * gst/nsf/nes_apu.h:
	  * gst/nsf/nsf.c:
	  * gst/nsf/nsf.h:
	  * gst/nsf/osd.h:
	  * gst/nsf/types.h:
	  * gst/nsf/vrc7_snd.c:
	  * gst/nsf/vrc7_snd.h:
	  * gst/nsf/vrcvisnd.c:
	  * gst/nsf/vrcvisnd.h:
	  Added NSF decoder plugin. Fixes 151192.

2006-07-13 12:42:29 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/Makefile.am: Only run mpeg2enc unit test if we built the mpeg2enc plugin.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Only run mpeg2enc unit test if we built the mpeg2enc plugin.

2006-07-13 12:24:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Don't error out in configure if mjpegtools dev is not there.
	  Original commit message from CVS:
	  * configure.ac:
	  Don't error out in configure if mjpegtools dev is not there.

2006-07-13 11:06:45 +0000  Mark Nauwelaerts <manauw@skynet.be>

	  Port mpeg2enc to 0.10 (#343184).
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <manauw at skynet be>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/mpeg2enc/Makefile.am:
	  * ext/mpeg2enc/gstmpeg2enc.cc:
	  * ext/mpeg2enc/gstmpeg2enc.hh:
	  * ext/mpeg2enc/gstmpeg2encoder.cc:
	  * ext/mpeg2enc/gstmpeg2encoder.hh:
	  * ext/mpeg2enc/gstmpeg2encoptions.cc:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  * ext/mpeg2enc/gstmpeg2encpicturereader.hh:
	  * ext/mpeg2enc/gstmpeg2encstreamwriter.cc:
	  * ext/mpeg2enc/gstmpeg2encstreamwriter.hh:
	  Port mpeg2enc to 0.10 (#343184).
	  * tests/check/Makefile.am:
	  * tests/check/elements/.cvsignore:
	  * tests/check/elements/mpeg2enc.c:
	  Add unit test for mpeg2enc.
	  * tests/icles/.cvsignore:
	  Ignore pitch-test.

2006-07-12 09:28:46 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/spectrum/gstspectrum.c: Fix typo in property nick.
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init):
	  Fix typo in property nick.

2006-07-10 14:49:46 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/filter/: Don't forget new files.
	  Original commit message from CVS:
	  * gst/filter/gstbpwsinc.h:
	  * gst/filter/gstiir.h:
	  * gst/filter/gstlpwsinc.h:
	  Don't forget new files.

2006-07-10 14:43:35 +0000  Wim Taymans <wim.taymans@gmail.com>

	* ChangeLog:
	  I'm too lazy to comment this
	  Original commit message from CVS:
	  *** empty log message ***

2006-07-10 14:42:15 +0000  Mathis Hofer <mathis.hofer@dreamlab.net>

	  Ported the gstfilter plugin to GStreamer 0.10.
	  Original commit message from CVS:
	  Patch by: Mathis Hofer <mathis dot hofer at dreamlab dot net>
	  * configure.ac:
	  * gst/filter/Makefile.am:
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose),
	  (gst_bpwsinc_base_init), (gst_bpwsinc_class_init),
	  (gst_bpwsinc_init), (bpwsinc_set_caps), (bpwsinc_transform_ip),
	  (bpwsinc_set_property), (bpwsinc_get_property):
	  * gst/filter/gstfilter.c: (plugin_init):
	  * gst/filter/gstfilter.h:
	  * gst/filter/gstiir.c: (gst_iir_dispose), (gst_iir_base_init),
	  (gst_iir_class_init), (gst_iir_init), (iir_set_caps),
	  (iir_transform_ip), (iir_set_property), (iir_get_property):
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose),
	  (gst_lpwsinc_base_init), (gst_lpwsinc_class_init),
	  (gst_lpwsinc_init), (lpwsinc_set_caps), (lpwsinc_transform_ip),
	  (lpwsinc_set_property), (lpwsinc_get_property):
	  Ported the gstfilter plugin to GStreamer 0.10.

2006-07-10 09:57:26 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Extract comment information!!
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta):
	  Extract comment information!!

2006-07-10 09:46:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Extract year/date information (fixes #347079).
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta),
	  (qtdemux_tag_add_date):
	  Extract year/date information (fixes #347079).

2006-07-07 14:30:26 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Don't crash on twos/sowt/raw audio. #345830.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Don't crash on twos/sowt/raw audio. #345830.

2006-07-07 11:44:05 +0000  Lutz Mueller <lutz@topfrose.de>

	  ext/neon/gstneonhttpsrc.*: Remove unlock function. start/stop will do everything needed
	  Original commit message from CVS:
	  Patch by: Lutz Mueller <lutz at topfrose dot de>
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	  (gst_neonhttp_src_init), (gst_neonhttp_src_finalize),
	  (request_dispatch), (gst_neonhttp_src_create),
	  (gst_neonhttp_src_start), (gst_neonhttp_src_get_size),
	  (gst_neonhttp_src_stop), (set_proxy), (set_uri),
	  (gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property),
	  (gst_neonhttp_src_uri_set_uri), (size_header_handler):
	  * ext/neon/gstneonhttpsrc.h:
	  Remove unlock function. start/stop will do everything needed
	  Removed code that was never called.
	  Use gst_pad_alloc_buffer. Don't send EOS - parent class does that for us.
	  Do not escape path. Fixes #346723.
	  Additional code cleanups.

2006-07-03 20:02:56 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Fix silly crasher in state change function; add
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	  (gst_qtdemux_loop_state_header), (qtdemux_video_caps):
	  Fix silly crasher in state change function; add
	  IV41 fourcc (see bug #171111); don't output confusing
	  debug message when skipping atoms.

2006-06-23 09:09:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Use GST_DEBUG_CATEGORY_STATIC where possible (#342503) and fix one GObject boilerplate macro.
	  Original commit message from CVS:
	  * ext/directfb/dfbvideosink.c:
	  * ext/gsm/gstgsmdec.c:
	  * ext/gsm/gstgsmenc.c:
	  * ext/libmms/gstmms.c:
	  * ext/neon/gstneonhttpsrc.c:
	  * ext/theora/theoradec.c:
	  * gst/freeze/gstfreeze.c:
	  * gst/gdp/gstgdpdepay.c:
	  * gst/gdp/gstgdppay.c:
	  * sys/glsink/glimagesink.c:
	  Use GST_DEBUG_CATEGORY_STATIC where possible (#342503)
	  and fix one GObject boilerplate macro.

2006-06-22 10:10:51 +0000  Cody Russell <bratsche@gnome.org>

	  gst/: Avoid unnecessary class cast check in class_init functions (#337747).
	  Original commit message from CVS:
	  Patch by: Cody Russell <bratsche at gnome org>
	  * gst/audioresample/gstaudioresample.c:
	  (gst_audioresample_class_init):
	  * gst/playback/gststreamselector.c:
	  (gst_stream_selector_class_init):
	  * gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
	  * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
	  * gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
	  * gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
	  * gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
	  * gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
	  * gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
	  * gst/videotestsrc/gstvideotestsrc.c:
	  (gst_video_test_src_class_init):
	  * gst/volume/gstvolume.c: (gst_volume_class_init):
	  Avoid unnecessary class cast check in class_init
	  functions (#337747).

2006-06-20 11:07:02 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/modplug/libmodplug/stdafx.h: Fix modplug on AMD64. Fixes #345336.
	  Original commit message from CVS:
	  * gst/modplug/libmodplug/stdafx.h:
	  Fix modplug on AMD64. Fixes #345336.

2006-06-19 14:07:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Fix check so that future libneon API changes won't break the build.
	  Original commit message from CVS:
	  * configure.ac:
	  Fix check so that future libneon API changes won't break the build.
	  * ext/neon/gstneonhttpsrc.c:
	  Fix build with libneon-0.26.x (#345182).

2006-06-19 13:17:57 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add latest plugins
	  Original commit message from CVS:
	  add latest plugins

2006-06-17 15:09:39 +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-16 15:43:23 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/elements/audioresample.c: Add test case for bug #342789 fixed below.
	  Original commit message from CVS:
	  * tests/check/elements/audioresample.c: (test_reuse),
	  (audioresample_suite):
	  Add test case for bug #342789 fixed below.

2006-06-16 15:17:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/audioresample/gstaudioresample.c: Implement GstBaseTransform::start and ::stop so that audioresample can clear it...
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c:
	  (gst_audioresample_class_init), (gst_audioresample_init),
	  (audioresample_start), (audioresample_stop),
	  (gst_audioresample_set_property), (gst_audioresample_get_property):
	  Implement GstBaseTransform::start and ::stop so that audioresample
	  can clear its internal state properly and be reused insted of
	  causing non-negotiated errors with playbin under some circumstances
	  (#342789).
	  * tests/check/elements/audioresample.c: (setup_audioresample),
	  (cleanup_audioresample):
	  Need to set element state here so that ::start and ::stop are
	  called.

2006-06-16 12:35:08 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  gst/spectrum/Makefile.am: Fix build.
	  Original commit message from CVS:
	  2006-06-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * gst/spectrum/Makefile.am:
	  Fix build.

2006-06-16 09:49:07 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/: port to use message to get results, cleanly exit when closing the window
	  Original commit message from CVS:
	  * gst/spectrum/demo-audiotest.c: (on_window_destroy),
	  (draw_spectrum), (message_handler), (main):
	  * gst/spectrum/demo-osssrc.c: (on_window_destroy), (draw_spectrum),
	  (message_handler), (main):
	  port to use message to get results, cleanly exit when closing the window
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	  (gst_spectrum_init), (gst_spectrum_dispose),
	  (gst_spectrum_set_property), (gst_spectrum_get_property),
	  (gst_spectrum_set_caps), (gst_spectrum_start),
	  (gst_spectrum_message_new), (gst_spectrum_transform_ip):
	  * gst/spectrum/gstspectrum.h:
	  port to derive from basetransform and send results via messages
	  (like level element)

2006-06-15 15:58:09 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Combine return values from src pad pushes.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
	  (gst_qtdemux_combine_flows), (gst_qtdemux_loop_state_movie),
	  (gst_qtdemux_loop), (gst_qtdemux_chain), (qtdemux_parse_trak):
	  Combine return values from src pad pushes.

2006-06-15 08:50:09 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Don't crash on files with 0 samples, EOS immediatly instead.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header),
	  (gst_qtdemux_prepare_current_sample), (gst_qtdemux_advance_sample),
	  (gst_qtdemux_add_stream):
	  Don't crash on files with 0 samples, EOS immediatly instead.
	  Fixes #344944.

2006-06-14 18:07:51 +0000  Wouter Paesen <wouter@kangaroot.net>

	  ext/soundtouch/: Make pitch element controllable via GstController interface (#344821).
	  Original commit message from CVS:
	  Patch by: Wouter Paesen  <wouter at kangaroot net>
	  * ext/soundtouch/Makefile.am:
	  * ext/soundtouch/gstpitch.cc:
	  Make pitch element controllable via GstController interface
	  (#344821).
	  * configure.ac:
	  Up core requirements to 0.10.8.1/CVS because earlier
	  GstControllers can't handle float properties correctly.
	  Check for GstController CFLAGS and LIBS.
	  * tests/icles/Makefile.am:
	  * tests/icles/pitch-test.c: (main):
	  Add small test program for the above (welcome to the 80s!).

2006-06-14 09:32:27 +0000  Sebastian Dröge <slomo@circular-chaos.org>

	  ext/wavpack/gstwavpackenc.*: Use bitrate property solely for bitrates and add new bits-per-sample property for the ot...
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge  <slomo at circular-chaos org>
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init),
	  (gst_wavpack_enc_class_init), (gst_wavpack_enc_set_wp_config),
	  (gst_wavpack_enc_chain), (gst_wavpack_enc_sink_event),
	  (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	  * ext/wavpack/gstwavpackenc.h:
	  Use bitrate property solely for bitrates and add new
	  bits-per-sample property for the other stuff. Set duration
	  to 'unknown' in initial header and resend header with proper
	  duration on EOS; update Sebastian's e-mail address.

2006-06-12 11:30:08 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ex/: #define red green
	  Original commit message from CVS:
	  * examples/directfb/.cvsignore:
	  * ext/directfb/.cvsignore:
	  #define red green

2006-06-12 11:04:59 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/spectrum/.cvsignore: Ignore more.
	  Original commit message from CVS:
	  * gst/spectrum/.cvsignore:
	  Ignore more.

2006-06-12 10:53:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/libmms/gstmms.c: Set caps on outgoing buffers.
	  Original commit message from CVS:
	  * ext/libmms/gstmms.c: (gst_mms_create):
	  Set caps on outgoing buffers.
	  * sys/directdraw/gstdirectdrawsink.c: (gst_directdrawsink_init):
	  Comment out unused global instance variable.

2006-06-11 22:37:07 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* .gitignore:
	* tests/check/elements/.gitignore:
	  moap ignore
	  Original commit message from CVS:
	  moap ignore

2006-06-11 13:57:19 +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-10 15:33:18 +0000  Sebastian Dröge <mail@slomosnail.de>

	  ext/wavpack/: Add wavpack encoder element (#343131).
	  Original commit message from CVS:
	  Patch by: Sebastian Dröge  <mail at slomosnail de>
	  * ext/wavpack/Makefile.am:
	  * ext/wavpack/gstwavpack.c: (plugin_init):
	  * ext/wavpack/gstwavpackcommon.h:
	  * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type),
	  (gst_wavpack_enc_correction_mode_get_type),
	  (gst_wavpack_enc_joint_stereo_mode_get_type),
	  (gst_wavpack_enc_base_init), (gst_wavpack_enc_class_init),
	  (gst_wavpack_enc_init), (gst_wavpack_enc_dispose),
	  (gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config),
	  (gst_wavpack_enc_format_samples), (gst_wavpack_enc_push_block),
	  (gst_wavpack_enc_chain), (gst_wavpack_enc_rewrite_first_block),
	  (gst_wavpack_enc_sink_event), (gst_wavpack_enc_change_state),
	  (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property),
	  (gst_wavpack_enc_plugin_init):
	  * ext/wavpack/gstwavpackenc.h:
	  * ext/wavpack/md5.c:
	  * ext/wavpack/md5.h:
	  Add wavpack encoder element (#343131).

2006-06-09 17:38:20 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Check for X before using X_CFLAGS in the check for opengl (#343866).
	  Original commit message from CVS:
	  * configure.ac:
	  Check for X before using X_CFLAGS in the check for opengl (#343866).
	  * ext/musepack/Makefile.am:
	  * ext/wavpack/Makefile.am:
	  * gst/speed/Makefile.am:
	  Add missing GST_LIBS, fixes build on cygwin (#343866).

2006-06-06 16:26:59 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/gdp/gstgdppay.c:
	  adapt to new api
	  Original commit message from CVS:
	  adapt to new api

2006-06-06 16:14:52 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	* gst/Makefile.am:
	  build gdp plugins
	  Original commit message from CVS:
	  build gdp plugins

2006-06-06 15:16:15 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/icles/.gitignore:
	  ignore more
	  Original commit message from CVS:
	  ignore more

2006-06-06 14:39:15 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  configure.ac: enable building of GDP elements
	  Original commit message from CVS:
	  * configure.ac:
	  enable building of GDP elements
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain):
	  * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init),
	  (gst_gdp_pay_init), (gst_gdp_buffer_from_caps),
	  (gst_gdp_pay_buffer_from_buffer), (gst_gdp_buffer_from_event),
	  (gst_gdp_pay_reset_streamheader), (gst_gdp_pay_sink_event),
	  (gst_gdp_pay_set_property), (gst_gdp_pay_get_property),
	  (gst_gdp_pay_change_state):
	  * gst/gdp/gstgdppay.h:
	  add version 1.0

2006-06-02 17:01:01 +0000  Michael Smith <msmith@xiph.org>

	  tests/check/: Don't busy-wait in tests; this was causing test timeouts very frequently when running under valgrind.
	  Original commit message from CVS:
	  * tests/check/elements/audioconvert.c: (set_channel_positions),
	  (get_float_mc_caps), (get_int_mc_caps):
	  * tests/check/elements/audioresample.c:
	  * tests/check/elements/audiotestsrc.c: (GST_START_TEST):
	  * tests/check/elements/videorate.c:
	  * tests/check/elements/videotestsrc.c: (GST_START_TEST):
	  * tests/check/elements/volume.c:
	  * tests/check/elements/vorbisdec.c:
	  * tests/check/pipelines/vorbisenc.c: (GST_START_TEST):
	  Don't busy-wait in tests; this was causing test timeouts very
	  frequently when running under valgrind.

2006-06-02 16:45:59 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/gdp/gstgdpdepay.c:
	* gst/gdp/gstgdppay.h:
	  small fixes
	  Original commit message from CVS:
	  small fixes

2006-06-02 13:43:24 +0000  Michael Smith <msmith@xiph.org>

	  ext/theora/theoradec.c: Theora 4:4:4 pixel format support.
	  Original commit message from CVS:
	  * ext/theora/theoradec.c: (theora_dec_src_convert),
	  (theora_handle_type_packet), (theora_handle_422_image),
	  (theora_handle_444_image), (theora_handle_420_image),
	  (theora_handle_data_packet):
	  Theora 4:4:4 pixel format support.

2006-06-02 10:28:32 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst/gdp/gstgdppay.c: add crc-header and crc-payload properties don't error out on some things that are recoverable
	  Original commit message from CVS:
	  * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init),
	  (gst_gdp_pay_init), (gst_gdp_buffer_from_caps),
	  (gst_gdp_pay_buffer_from_buffer), (gst_gdp_buffer_from_event),
	  (gst_gdp_pay_reset_streamheader), (gst_gdp_pay_chain),
	  (gst_gdp_pay_sink_event), (gst_gdp_pay_set_property),
	  (gst_gdp_pay_get_property):
	  add crc-header and crc-payload properties
	  don't error out on some things that are recoverable
	  * tests/check/elements/gdppay.c: (GST_START_TEST), (gdppay_suite):
	  add test for crc

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 19:19:50 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
	  Original commit message from CVS:
	  * ext/alsa/gstalsamixerelement.h:
	  * ext/alsa/gstalsamixeroptions.h:
	  * ext/alsa/gstalsamixertrack.h:
	  * ext/gnomevfs/gstgnomevfssink.h:
	  * ext/gnomevfs/gstgnomevfssrc.h:
	  * ext/theora/gsttheoradec.h:
	  * ext/theora/gsttheoraenc.h:
	  * ext/theora/gsttheoraparse.h:
	  * ext/vorbis/vorbisparse.h:
	  * gst-libs/gst/audio/gstaudioclock.h:
	  * gst-libs/gst/audio/gstaudiofilter.h:
	  * gst-libs/gst/rtp/gstbasertpaudiopayload.h:
	  * gst/audioconvert/gstaudioconvert.h:
	  * gst/audioresample/gstaudioresample.h:
	  * gst/audiotestsrc/gstaudiotestsrc.h:
	  * gst/ffmpegcolorspace/gstffmpegcolorspace.h:
	  * gst/playback/gststreamselector.h:
	  * gst/tcp/gstmultifdsink.h:
	  * gst/tcp/gsttcpclientsink.h:
	  * gst/tcp/gsttcpclientsrc.h:
	  * gst/tcp/gsttcpserversink.h:
	  * gst/tcp/gsttcpserversrc.h:
	  * gst/videorate/gstvideorate.h:
	  * gst/videoscale/gstvideoscale.h:
	  * gst/videotestsrc/gstvideotestsrc.h:
	  * gst/volume/gstvolume.h:
	  * sys/v4l/gstv4ljpegsrc.h:
	  * sys/v4l/gstv4lmjpegsink.h:
	  * sys/v4l/gstv4lmjpegsrc.h:
	  * sys/v4l/gstv4lsrc.h:
	  * sys/ximage/ximagesink.h:
	  * sys/xvimage/xvimagesink.h:
	  * tests/old/testsuite/alsa/sinesrc.h:
	  Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass

2006-05-31 19:26:24 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/faad/gstfaad.h: Forgot to commit the header file too.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.h:
	  Forgot to commit the header file too.

2006-05-31 13:37:27 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/faad/gstfaad.c: Added GstSegment to control segments.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_class_init), (gst_faad_init),
	  (gst_faad_dispose), (gst_faad_sink_event), (clip_outgoing_buffer),
	  (gst_faad_chain), (gst_faad_change_state):
	  Added GstSegment to control segments.
	  Added clipping/dropping of outgoing buffers in order to have accurate
	  seeking working properly.

2006-05-28 17:08:17 +0000  Lutz Müller <lutz@topfrose.de>

	  ext/bz2/: Use gst_type_find_helper_* functions for typefinding; use correct caps with gst_pad_alloc_buffer(); add sta...
	  Original commit message from CVS:
	  Patch by: Lutz Müller  <lutz at topfrose de>
	  * ext/bz2/Makefile.am:
	  * ext/bz2/gstbz2dec.c: (gst_bz2dec_chain), (gst_bz2dec_init),
	  (gst_bz2dec_change_state), (gst_bz2dec_class_init):
	  Use gst_type_find_helper_* functions for typefinding; use
	  correct caps with gst_pad_alloc_buffer(); add state change
	  function and reset decoder in it; don't unref buffer if
	  pad_push fails; use fixed caps on source pad. (#341524).

2006-05-26 22:35:00 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/: added another example
	  Original commit message from CVS:
	  * gst/spectrum/Makefile.am:
	  * gst/spectrum/demo-audiotest.c: (on_frequency_changed),
	  (spectrum_chain), (main):
	  * gst/spectrum/demo-osssrc.c:
	  added another example
	  * sys/v4l2/gstv4l2src.c:
	  fix typo

2006-05-26 13:16:54 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Clip the outputed NEWSEGMENT stop time to the configured segment stop time.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment):
	  Clip the outputed NEWSEGMENT stop time to the configured segment stop
	  time.

2006-05-26 11:48:44 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Don't clear the running variable in the seek code.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_do_seek):
	  Don't clear the running variable in the seek code.

2006-05-24 11:56:43 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Detect QCELP in mp4a descriptors.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_esds):
	  Detect QCELP in mp4a descriptors.

2006-05-22 18:00:52 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: po/POTFILES.in:
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak), (plugin_init):
	  po/POTFILES.in:
	  Throw an error when the file is encrypted. Move plugin_init stuff
	  to the end of the file, add stuff for i18n, make debug category
	  static.

2006-05-22 16:24:12 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/check/Makefile.am:
	  sigh, really don't build these
	  Original commit message from CVS:
	  sigh, really don't build these

2006-05-22 16:08:34 +0000  Michal Benes <michal.benes@xeris.cz>

	  New plugin: h264parse (#340638)
	  Original commit message from CVS:
	  Patch by: Michal Benes  <michal dot benes at xeris dot cz>
	  * configure.ac:
	  * gst/h264parse/Makefile.am:
	  * gst/h264parse/gsth264parse.c: (gst_h264_parse_base_init),
	  (gst_h264_parse_finalize), (gst_h264_parse_class_init),
	  (gst_h264_parse_init), (gst_h264_parse_chain),
	  (gst_h264_parse_handle_event), (plugin_init):
	  * gst/h264parse/gsth264parse.h:
	  New plugin: h264parse (#340638)

2006-05-22 15:53:07 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst/gdp/: Handle error cases when calling functions do downwards state change after parent's change_state
	  Original commit message from CVS:
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain),
	  (gst_gdp_depay_change_state):
	  * gst/gdp/gstgdpdepay.h:
	  * gst/gdp/gstgdppay.c: (gst_gdp_pay_reset_streamheader),
	  (gst_gdp_pay_chain), (gst_gdp_pay_sink_event),
	  (gst_gdp_pay_change_state):
	  * gst/gdp/gstgdppay.h:
	  Handle error cases when calling functions
	  do downwards state change after parent's change_state
	  * tests/check/elements/gdpdepay.c: (GST_START_TEST):
	  * tests/check/elements/gdppay.c: (GST_START_TEST):
	  clean up more

2006-05-22 14:37:41 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/check/Makefile.am:
	  don't build these yet
	  Original commit message from CVS:
	  don't build these yet

2006-05-22 13:40:28 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/check/Makefile.am:
	  don't build these yet
	  Original commit message from CVS:
	  don't build these yet

2006-05-22 13:25:52 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  adding GDP payloader and depayloader.  Build integration will follow later when the GDP issues for core are sorted out.
	  Original commit message from CVS:
	  * gst/gdp/Makefile.am:
	  * gst/gdp/gstgdp.c: (plugin_init):
	  * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_base_init),
	  (gst_gdp_depay_class_init), (gst_gdp_depay_init),
	  (gst_gdp_depay_finalize), (gst_gdp_depay_chain),
	  (gst_gdp_depay_change_state), (gst_gdp_depay_plugin_init):
	  * gst/gdp/gstgdpdepay.h:
	  * gst/gdp/gstgdppay.c: (gst_gdp_pay_base_init),
	  (gst_gdp_pay_class_init), (gst_gdp_pay_init),
	  (gst_gdp_pay_dispose), (gst_gdp_stamp_buffer),
	  (gst_gdp_buffer_from_caps), (gst_gdp_pay_buffer_from_buffer),
	  (gst_gdp_buffer_from_event), (gst_gdp_pay_reset_streamheader),
	  (gst_gdp_queue_buffer), (gst_gdp_pay_chain),
	  (gst_gdp_pay_sink_event), (gst_gdp_pay_change_state),
	  (gst_gdp_pay_plugin_init):
	  * gst/gdp/gstgdppay.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/gdpdepay.c: (setup_gdpdepay),
	  (cleanup_gdpdepay), (gdpdepay_push_per_byte), (GST_START_TEST),
	  (setup_gdpdepay_streamheader), (gdpdepay_suite), (main):
	  * tests/check/elements/gdppay.c: (setup_gdppay), (cleanup_gdppay),
	  (GST_START_TEST), (setup_gdppay_streamheader), (gdppay_suite),
	  (main):
	  adding GDP payloader and depayloader.  Build integration will
	  follow later when the GDP issues for core are sorted out.

2006-05-21 16:41:44 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/gstspectrum.c: Use boilerplate macro, fix strings to match plugin-moval-requirements
	  Original commit message from CVS:
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	  (gst_spectrum_init), (gst_spectrum_set_sink_caps),
	  (gst_spectrum_get_sink_caps), (gst_spectrum_chain):
	  Use boilerplate macro, fix strings to match plugin-moval-requirements

2006-05-21 16:23:23 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/spectrum/Makefile.am: Link to base libraries
	  Original commit message from CVS:
	  * gst/spectrum/Makefile.am:
	  Link to base libraries
	  * gst/spectrum/demo-osssrc.c: (main):
	  use new threshhold property
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	  (gst_spectrum_init), (gst_spectrum_dispose),
	  (gst_spectrum_set_property), (gst_spectrum_set_sink_caps),
	  (gst_spectrum_get_sink_caps), (gst_spectrum_chain),
	  (gst_spectrum_change_state):
	  * gst/spectrum/gstspectrum.h:
	  Use gst_adapter, support multiple-channels, add threshold property for
	  result, add docs, fix resulting spectrum range (was including mirrored
	  results)

2006-05-20 22:42:15 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Initial port of the spectrum element
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/spectrum/demo-osssrc.c: (spectrum_chain), (main):
	  * gst/spectrum/fix_fft.c: (gst_spectrum_fix_dot):
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_get_type),
	  (gst_spectrum_base_init), (gst_spectrum_class_init),
	  (gst_spectrum_init), (gst_spectrum_dispose),
	  (gst_spectrum_set_property), (gst_spectrum_chain):
	  * gst/spectrum/gstspectrum.h:
	  Initial port of the spectrum element

2006-05-19 18:58:05 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2xoverlay.c:
	  I forget to add sys/v4l2/gstv4l2xoverlay.c in las commit
	  Original commit message from CVS:
	  I forget to add sys/v4l2/gstv4l2xoverlay.c in las commit

2006-05-19 18:31:25 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c:
	  Some clean-ups requested by wingo in bug #338818.
	  Original commit message from CVS:
	  Some clean-ups requested by wingo in bug #338818.

2006-05-19 14:17:04 +0000  Michael Smith <msmith@xiph.org>

	  ext/alsaspdif/alsaspdifsink.*: Use sampling rate from set_caps. Comment out some more unused code.
	  Original commit message from CVS:
	  * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_base_init),
	  (alsaspdifsink_class_init), (alsaspdifsink_init),
	  (alsaspdifsink_dispose), (alsaspdifsink_set_property),
	  (alsaspdifsink_get_property), (alsaspdifsink_set_caps),
	  (alsaspdifsink_get_time), (alsaspdifsink_open),
	  (alsaspdifsink_close), (alsaspdifsink_find_pcm_device),
	  (alsaspdifsink_write_frame), (alsaspdifsink_event),
	  (alsaspdifsink_get_times), (alsaspdifsink_current_delay),
	  (generate_iec958_zero_frame), (alsaspdifsink_render),
	  (ignore_alsa_err), (alsaspdifsink_change_state), (plugin_init):
	  * ext/alsaspdif/alsaspdifsink.h:
	  Use sampling rate from set_caps. Comment out some more unused code.

2006-05-18 19:34:47 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  configure.ac: Check for X11
	  Original commit message from CVS:
	  * configure.ac:
	  Check for X11
	  * sys/v4l2/gstv4l2object.c: (gst_v4l2_class_probe_devices):
	  * sys/v4l2/gstv4l2object.h:
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_iface_supported):
	  * sys/v4l2/gstv4l2src.h:
	  * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open):
	  * sys/v4l2/gstv4l2xoverlay.h:
	  Code cleanups, fix debug macros

2006-05-18 13:12:19 +0000  Michael Smith <msmith@xiph.org>

	  ext/Makefile.am: Fix distcheck?
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Fix distcheck?

2006-05-18 12:51:01 +0000  Michael Smith <msmith@xiph.org>

	  Add an alsa plugin to output IEC958 frames over S/PDIF
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/alsaspdif/Makefile.am:
	  * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_base_init),
	  (alsaspdifsink_class_init), (alsaspdifsink_init),
	  (alsaspdifsink_dispose), (alsaspdifsink_set_property),
	  (alsaspdifsink_get_property), (alsaspdifsink_provide_clock),
	  (alsaspdifsink_get_time), (alsaspdifsink_open),
	  (alsaspdifsink_close), (alsaspdifsink_find_pcm_device),
	  (alsaspdifsink_write_frame), (alsaspdifsink_event),
	  (alsaspdifsink_get_times), (alsaspdifsink_current_delay),
	  (generate_iec958_zero_frame), (alsaspdifsink_render),
	  (ignore_alsa_err), (alsaspdifsink_change_state), (plugin_init):
	  * ext/alsaspdif/alsaspdifsink.h:
	  Add an alsa plugin to output IEC958 frames over S/PDIF

2006-05-17 09:39:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faad/gstfaad.c: Remove unused caps cruft from chain function altogether.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_update_caps), (gst_faad_chain):
	  Remove unused caps cruft from chain function altogether.

2006-05-17 09:15:55 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/faad/gstfaad.c: There's no guarantee that caps was set to something, and if it did, the function called to fill t...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_chain):
	  There's no guarantee that caps was set to something, and if it did, the
	  function called to fill that variable actually sets the caps on the
	  sourcpad, so we call gst_pad_alloc_buffer_and_set_caps() using
	  GST_PAD_CAPS(faad->srcpad).

2006-05-15 10:10:08 +0000  Christian Schaller <uraeus@gnome.org>

	* common:
	* gst-plugins-bad.spec.in:
	  latest changes with additions and removals
	  Original commit message from CVS:
	  latest changes with additions and removals

2006-05-13 18:39:13 +0000  Young-Ho Cha <ganadist@chollian.net>

	  ext/faad/gstfaad.*: If we encounter a decoding error, don't error out immediately, but try to resync (or see if we ha...
	  Original commit message from CVS:
	  Patch by: Young-Ho Cha  <ganadist chollian net>
	  * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_chain),
	  (gst_faad_change_state):
	  * ext/faad/gstfaad.h:
	  If we encounter a decoding error, don't error out immediately,
	  but try to resync (or see if we have better luck with the next
	  buffer in case of framed input). Only error out after five
	  consecutive errors. Fixes #341563.

2006-05-12 10:43:49 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/xvid/gstxvidenc.c: Compile fixes.
	  Original commit message from CVS:
	  * ext/xvid/gstxvidenc.c: (gst_xvidenc_class_init),
	  (gst_xvidenc_init), (gst_xvidenc_finalize),
	  (gst_xvidenc_handle_sink_event), (gst_xvidenc_setup),
	  (gst_xvidenc_setcaps), (gst_xvidenc_encode), (gst_xvidenc_chain),
	  (gst_xvidenc_flush_buffers), (gst_xvidenc_set_property),
	  (gst_xvidenc_get_property):
	  Compile fixes.

2006-05-12 09:28:15 +0000  Mark Nauwelaerts <manauw@skynet.be>

	  ext/xvid/: xvid plugin to support more capabilities of XviD codec.
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <manauw at skynet dot be>
	  * ext/xvid/gstxvid.c: (gst_xvid_init), (gst_xvid_structure_to_csp),
	  (gst_xvid_csp_to_caps), (gst_xvid_image_get_size),
	  (gst_xvid_image_fill):
	  * ext/xvid/gstxvid.h:
	  * ext/xvid/gstxviddec.c: (gst_xviddec_class_init),
	  (gst_xviddec_init), (gst_xviddec_reset), (gst_xviddec_unset),
	  (gst_xviddec_handle_sink_event), (gst_xviddec_setup),
	  (gst_xviddec_add_par), (gst_xviddec_negotiate),
	  (gst_xviddec_decode), (gst_xviddec_chain),
	  (gst_xviddec_flush_buffers), (gst_xviddec_src_getcaps),
	  (gst_xviddec_src_link), (gst_xviddec_setcaps),
	  (gst_xviddec_change_state):
	  * ext/xvid/gstxviddec.h:
	  * ext/xvid/gstxvidenc.c: (gst_xvidenc_profile_get_type),
	  (gst_xvidenc_quant_type_get_type), (gst_xvidenc_pass_get_type),
	  (gst_xvidenc_get_type), (gst_xvidenc_base_init),
	  (gst_xvidenc_class_init), (gst_xvidenc_init),
	  (gst_xvidenc_finalize), (gst_xvidenc_handle_sink_event),
	  (gst_xvidenc_setup), (gst_xvidenc_setcaps), (gst_xvidenc_encode),
	  (gst_xvidenc_chain), (gst_xvidenc_flush_buffers),
	  (gst_xvidenc_set_property), (gst_xvidenc_get_property),
	  (gst_xvidenc_change_state):
	  * ext/xvid/gstxvidenc.h:
	  xvid plugin to support more capabilities of XviD codec.
	  Fixes #339462.
	  Some more cleanups here and there.

2006-05-11 20:47:50 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  put back -no-undefined
	  Original commit message from CVS:
	  put back -no-undefined

2006-05-11 17:59:59 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	  Changes proposed by Wingo in bug #338818.
	  Original commit message from CVS:
	  Changes proposed by Wingo in bug #338818.

2006-05-11 09:09:49 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Figure out the real audio type in mp4a boxes by parsing the optional descriptors in the option...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak),
	  (gst_qtdemux_handle_esds):
	  Figure out the real audio type in mp4a boxes by parsing the
	  optional descriptors in the optional esds box. Promote the
	  default AAC to mp3 when indicated. Fixes #330632.

2006-05-10 17:44:50 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Parse version 2 sample descriptions.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_dump_unknown),
	  (qtdemux_parse_trak), (gst_qtdemux_handle_esds):
	  Parse version 2 sample descriptions.
	  Don't #define gst_util_dump_mem(), use something more
	  specific instead to avoid confusion.

2006-05-08 19:21:18 +0000  Martin Rubli <martin_rubli@logitech.com>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2src_calls.c:
	  Fix fourcc name printed out. Patch from Martin Rubli.
	  Original commit message from CVS:
	  Fix fourcc name printed out. Patch from Martin Rubli.

2006-05-08 15:20:10 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Don't cause side effects in a debugging function.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query),
	  (qtdemux_dump_mvhd):
	  Don't cause side effects in a debugging function.
	  Also report duration in push mode since we can.

2006-05-08 11:55:02 +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 00:15:59 +0000  Maciej Katafiasz <mathrick@mathrick.org>

	* ChangeLog:
	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbenc.c:
	* ext/sdl/sdlaudiosink.c:
	* ext/sdl/sdlvideosink.c:
	* ext/wavpack/gstwavpackdec.c:
	* ext/xine/xine.c:
	* ext/xine/xineaudiodec.c:
	* ext/xine/xineaudiosink.c:
	* ext/xine/xineinput.c:
	* gst/cdxaparse/gstcdxaparse.c:
	* gst/freeze/gstfreeze.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 20:12:59 +0000  Martin Rubli <martin_rubli@logitech.com>

	* ChangeLog:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	* tests/icles/v4l2src-test.c:
	  Some changes proposed by wingo in bug #338818 (but not everything yet). Patch from Martin Rubli to fix framerate dete...
	  Original commit message from CVS:
	  Some changes proposed by wingo in bug #338818 (but not everything yet). Patch from Martin Rubli to fix framerate detection.

2006-05-05 15:50:10 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/sdl/sdlaudiosink.c: Use (NULL) instead of just NULL in GST_ELEMENT_ERROR macro.
	  Original commit message from CVS:
	  * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_prepare):
	  Use (NULL) instead of just NULL in GST_ELEMENT_ERROR macro.

2006-05-04 15:32:10 +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.3 ===

2006-05-04 15:28:53 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-video4linux2.xml:
	* docs/plugins/inspect/plugin-wavpack.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  Really release 0.10.3 this time
	  Original commit message from CVS:
	  Really release 0.10.3 this time

2006-05-04 15:09:13 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* configure.ac:
	  Perform version number surgery to correctly release tarballs of 0.10.3
	  Original commit message from CVS:
	  Perform version number surgery to correctly release tarballs of 0.10.3

2006-05-04 14:52:55 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to CVS
	  Original commit message from CVS:
	  * configure.ac:
	  Back to CVS

2006-05-04 14:51:06 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-video4linux2.xml:
	* docs/plugins/inspect/plugin-wavpack.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  Release 0.10.3
	  Original commit message from CVS:
	  Release 0.10.3

2006-05-04 09:29:24 +0000  Julien Moutte <julien@moutte.net>

	  tests/icles/Makefile.am: Fix build.
	  Original commit message from CVS:
	  2006-05-04  Julien MOUTTE  <julien@moutte.net>
	  * tests/icles/Makefile.am: Fix build.

2006-05-03 21:48:22 +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-05-03 16:54:32 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/musicbrainz/Makefile.am: Add GST_PLUGINS_BASE_CFLAGS to CFLAGS for gst/tag/tag.h
	  Original commit message from CVS:
	  * ext/musicbrainz/Makefile.am:
	  Add GST_PLUGINS_BASE_CFLAGS to CFLAGS for gst/tag/tag.h

2006-05-03 14:30:21 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/qtdemux/qtdemux.c: Clean up one piece of logic slightly and remove a dead code block.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Clean up one piece of logic slightly and remove a
	  dead code block.

2006-05-03 13:20:41 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Everybody loves docs - add docs for musicbrainz 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:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/inspect/plugin-musicbrainz.xml:
	  * ext/musicbrainz/gsttrm.c:
	  * ext/musicbrainz/gsttrm.h:
	  Everybody loves docs - add docs for musicbrainz plugin.

2006-05-03 12:01:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/Makefile.am: Add musicbrainz dir to DIST_SUBDIRS as well (fixes distcheck).
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Add musicbrainz dir to DIST_SUBDIRS as well (fixes distcheck).

2006-05-03 11:34:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/Makefile.am: Forgot to commit this one.
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Forgot to commit this one.

2006-05-03 11:27:42 +0000  James Doc Livingston <doclivingston@gmail.com>

	  Port MusicBrainz TRM plugin (#336898).
	  Original commit message from CVS:
	  Patch by: James "Doc" Livingston  <doclivingston gmail com>
	  * configure.ac:
	  * ext/musicbrainz/Makefile.am:
	  * ext/musicbrainz/gsttrm.c: (gst_trm_base_init),
	  (gst_trm_class_init), (gst_trm_init), (gst_trm_setcaps),
	  (gst_trm_chain), (gst_trm_emit_signature), (gst_trm_set_property),
	  (gst_trm_get_property), (gst_trm_change_state), (plugin_init):
	  * ext/musicbrainz/gsttrm.h:
	  Port MusicBrainz TRM plugin (#336898).

2006-05-03 10:25:46 +0000  Michael Smith <msmith@xiph.org>

	  ext/faad/gstfaad.c: Fix #334748: use fake_codec_data if the first bytes of the first buffer we process doesn't look l...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_setcaps),
	  (looks_like_valid_header), (gst_faad_chain):
	  Fix #334748: use fake_codec_data if the first bytes of the first
	  buffer we process doesn't look like plausible AAC data (e.g.
	  reserved values for rate, or channels). Fixes playback of Apple's
	  movie trailers.

2006-05-02 21:52:48 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	  Fix get_caps func to work when no framerate is available and the caps isn't simple.
	  Original commit message from CVS:
	  Fix get_caps func to work when no framerate is available and the caps isn't simple.

2006-05-01 21:37:51 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/v4l2_calls.c:
	* tests/icles/Makefile.am:
	* tests/icles/v4l2src-test.c:
	  Few improvements to move to good.
	  Original commit message from CVS:
	  Few improvements to move to good.

2006-05-01 17:58:38 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  moved to good.  Closes #336110
	  Original commit message from CVS:
	  * configure.ac:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/inspect/plugin-taglib.xml:
	  * ext/Makefile.am:
	  * ext/taglib/Makefile.am:
	  * ext/taglib/gstid3v2mux.cc:
	  * ext/taglib/gstid3v2mux.h:
	  * ext/taglib/gsttaglib.cc:
	  * ext/taglib/gsttaglib.h:
	  * tests/check/Makefile.am:
	  * tests/check/elements/tagid3v2mux.c:
	  moved to good.  Closes #336110

2006-04-30 16:16:59 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/taglib/gstid3v2mux.cc:
	* ext/taglib/gsttaglib.cc:
	  small cleanups
	  Original commit message from CVS:
	  small cleanups

2006-04-30 15:32:13 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/taglib/gstid3v2mux.cc:
	  fix docs
	  Original commit message from CVS:
	  fix docs

2006-04-30 15:13:49 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	  updated element properties and signals
	  Original commit message from CVS:
	  updated element properties and signals

2006-04-30 15:11:46 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/.gitignore:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-wavpack.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  ignore more; add new inspect files
	  Original commit message from CVS:
	  ignore more; add new inspect files

2006-04-30 14:59:39 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	  remove files that should not be in cvs
	  Original commit message from CVS:
	  remove files that should not be in cvs

2006-04-30 14:58:29 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/: Fix up docs for taglib plugin
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	  * docs/plugins/gst-plugins-bad-plugins-decl.txt:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	  Fix up docs for taglib plugin
	  Also scan .cc files

2006-04-30 14:55:15 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-taglib.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	  update to latest version
	  Original commit message from CVS:
	  update to latest version

2006-04-29 18:46:36 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/taglib/gsttaglib.cc: Post an error message on the bus in the (extremely unlikely) case of an error.
	  Original commit message from CVS:
	  * ext/taglib/gsttaglib.cc:
	  Post an error message on the bus in the (extremely unlikely)
	  case of an error.

2006-04-29 18:18:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/taglib/: Split the actual ID3v2 tag rendering code into its own subclass.
	  Original commit message from CVS:
	  * ext/taglib/Makefile.am:
	  * ext/taglib/gstid3v2mux.cc:
	  * ext/taglib/gstid3v2mux.h:
	  * ext/taglib/gsttaglib.cc:
	  * ext/taglib/gsttaglib.h:
	  Split the actual ID3v2 tag rendering code into
	  its own subclass.

2006-04-29 15:36:16 +0000  Sébastien Moutte <sebastien@moutte.net>

	  ext/neon/gstneonhttpsrc.*: added iradio-mode support as in gnomevfssrc to enable connections with icydemux that will ...
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c:
	  * ext/neon/gstneonhttpsrc.h:
	  added iradio-mode support as in gnomevfssrc to enable
	  connections with icydemux that will send title tag messages on
	  shoutcast/icecast streams. I've also added iradio properties
	  iradio-name, iradio-genre, iradio-url.
	  added user-agent property because some shoutcast streams don't return
	  data if the GET requests don't have a User-Agent.
	  * win32/common/libgstneon.dsp:
	  use debug version of libneon in debug mode

2006-04-28 21:43:07 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/check/elements/tagid3v2mux.c:
	  element renamed
	  Original commit message from CVS:
	  element renamed

2006-04-28 19:46:36 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  make GstElementDetails const
	  Original commit message from CVS:
	  * ext/alsa/gstalsamixerelement.c:
	  * ext/alsa/gstalsasrc.c:
	  * ext/cdparanoia/gstcdparanoiasrc.c:
	  * ext/gnomevfs/gstgnomevfssink.c:
	  * ext/gnomevfs/gstgnomevfssrc.c:
	  * ext/ogg/gstoggdemux.c:
	  * ext/ogg/gstoggmux.c:
	  * ext/ogg/gstoggparse.c:
	  * ext/ogg/gstogmparse.c:
	  * ext/pango/gstclockoverlay.c:
	  * ext/pango/gsttextoverlay.c:
	  * ext/pango/gsttextrender.c:
	  * ext/pango/gsttimeoverlay.c:
	  * ext/theora/theoradec.c:
	  * ext/theora/theoraenc.c:
	  * ext/vorbis/vorbisdec.c:
	  * ext/vorbis/vorbisenc.c:
	  * gst-libs/gst/audio/gstaudiofilter.c:
	  * gst-libs/gst/audio/gstaudiofiltertemplate.c:
	  * gst/audioconvert/gstaudioconvert.c:
	  * gst/audiorate/gstaudiorate.c:
	  * gst/audioresample/gstaudioresample.c:
	  * gst/audiotestsrc/gstaudiotestsrc.c:
	  * gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	  * gst/playback/gstdecodebin.c:
	  * gst/playback/gstplaybin.c:
	  * gst/playback/gststreamselector.c:
	  * gst/subparse/gstsubparse.c:
	  * gst/tcp/gstmultifdsink.c:
	  * gst/tcp/gsttcpclientsink.c:
	  * gst/tcp/gsttcpclientsrc.c:
	  * gst/tcp/gsttcpserversink.c:
	  * gst/tcp/gsttcpserversrc.c:
	  * gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  * gst/videorate/gstvideorate.c:
	  * gst/videoscale/gstvideoscale.c:
	  * gst/videotestsrc/gstvideotestsrc.c:
	  * gst/volume/gstvolume.c:
	  * sys/v4l/gstv4ljpegsrc.c:
	  * sys/v4l/gstv4lmjpegsink.c:
	  * sys/v4l/gstv4lmjpegsrc.c:
	  * sys/v4l/gstv4lsrc.c:
	  * sys/ximage/ximagesink.c:
	  * sys/xvimage/xvimagesink.c:
	  * tests/check/libs/cddabasesrc.c:
	  make GstElementDetails const

2006-04-28 19:24:40 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/inspect/plugin-ximagesrc.xml:
	  removed plugin doc
	  Original commit message from CVS:
	  removed plugin doc

2006-04-28 19:23:20 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* sys/Makefile.am:
	* sys/ximagesrc/Makefile.am:
	* sys/ximagesrc/ximagesrc.c:
	* sys/ximagesrc/ximagesrc.h:
	* sys/ximagesrc/ximageutil.c:
	* sys/ximagesrc/ximageutil.h:
	* tests/Makefile.am:
	* tests/icles/.gitignore:
	* tests/icles/Makefile.am:
	* tests/icles/ximagesrc-test.c:
	  moved ximagesrc to good
	  Original commit message from CVS:
	  moved ximagesrc to good

2006-04-28 16:51:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* sys/ximagesrc/ximagesrc.c:
	* sys/ximagesrc/ximagesrc.h:
	  borgify naming
	  Original commit message from CVS:
	  borgify naming

2006-04-28 16:46:52 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* sys/ximagesrc/ximagesrc.c:
	  doc tweaks
	  Original commit message from CVS:
	  doc tweaks

2006-04-28 16:15:20 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* sys/ximagesrc/Makefile.am:
	* sys/ximagesrc/ximagesrc.c:
	  clean up Makefile.am
	  Original commit message from CVS:
	  clean up Makefile.am

2006-04-28 15:33:09 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/taglib/gsttaglib.cc:
	* ext/taglib/gsttaglib.h:
	  pedantic cleanups
	  Original commit message from CVS:
	  pedantic cleanups

2006-04-28 14:17:00 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/audioresample/gstaudioresample.c: Add support for other formats audioresample can handle such as 32 bits in and f...
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c: (gst_audioresample_init),
	  (resample_set_state_from_caps):
	  Add support for other formats audioresample can handle such as
	  32 bits in and float and 64 bits float. Fixes #301759

2006-04-28 11:04:12 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faad/gstfaad.*: If we run into a decoding error, try re-opening the decoder with faacDecInit2() using fake codec ...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_init), (aac_rate_idx),
	  (gst_faad_setcaps), (gst_faad_chain), (gst_faad_open_decoder),
	  (gst_faad_close_decoder), (gst_faad_change_state):
	  * ext/faad/gstfaad.h:
	  If we run into a decoding error, try re-opening the decoder
	  with faacDecInit2() using fake codec data created from the
	  data the demuxer gave us. Should fix a whole bunch of
	  GStreamer-faad problems incl. 'channel coupling not
	  implemented', 'maximum number of scalefactor bands exceeded'
	  etc. (#173007, #332892).

2006-04-25 21:56:38 +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-20 18:02:07 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/musepack/gstmusepackdec.c: Add support for segment seeks.
	  Original commit message from CVS:
	  * ext/musepack/gstmusepackdec.c:
	  (gst_musepackdec_handle_seek_event), (gst_musepackdec_loop):
	  Add support for segment seeks.

2006-04-20 17:29:56 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	  Added a couple of ifdefs to make it compile with other kernels.
	  Original commit message from CVS:
	  Added a couple of ifdefs to make it compile with other kernels.

2006-04-20 09:48:05 +0000  j^ <j@bootlab.org>

	  gst/qtdemux/qtdemux.c: Never treat video streams as an audio stream.
	  Original commit message from CVS:
	  Patch by: j^ <j at bootlab dot org>
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
	  (qtdemux_video_caps):
	  Never treat video streams as an audio stream.
	  Add qtdrw mime type.
	  Fixes #339041

2006-04-19 09:27:00 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: For VBR audio, don't try to calculate the samples_per_frame.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  For VBR audio, don't try to calculate the samples_per_frame.
	  Fixes #338935.

2006-04-17 19:43:32 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	  Just added a gtk-doc comment.
	  Original commit message from CVS:
	  Just added a gtk-doc comment.

2006-04-17 18:44:48 +0000  Michael Smith <msmith@xiph.org>

	  ext/theora/theoradec.*: Apply fix from j^ for API change in libtheoradec.
	  Original commit message from CVS:
	  * ext/theora/theoradec.c: (theora_dec_src_convert),
	  (theora_handle_type_packet), (theora_handle_422_image),
	  (theora_handle_420_image), (theora_handle_data_packet):
	  * ext/theora/theoradec.h:
	  Apply fix from j^ for API change in libtheoradec.
	  Implement 4:2:2 pixel format. Untested at the moment.

2006-04-14 13:12:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/musepack/gstmusepackdec.c: Fix track/album peak tag values; use GST_DEBUG_FUNCPTR and gst_pad_new_from_static_tem...
	  Original commit message from CVS:
	  * ext/musepack/gstmusepackdec.c: (gst_musepackdec_init),
	  (gst_musepack_stream_init):
	  Fix track/album peak tag values; use GST_DEBUG_FUNCPTR and
	  gst_pad_new_from_static_template().

2006-04-13 21:45:57 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2src_calls.c:
	  Fixed some memory leaks.
	  Original commit message from CVS:
	  Fixed some memory leaks.

2006-04-12 21:57:02 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/gstv4l2src.c:
	  Fix to work in read mode.
	  Original commit message from CVS:
	  Fix to work in read mode.

2006-04-11 16:18:13 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  fix versioning macro and add translation files
	  Original commit message from CVS:
	  fix versioning macro and add translation files

2006-04-10 17:16:09 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Fix parsing of newer stsd chunks again.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Fix parsing of newer stsd chunks again.

2006-04-10 14:20:41 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Fix framerate calculation.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
	  (qtdemux_parse_trak):
	  Fix framerate calculation.

2006-04-10 13:58:17 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/swfdec/gstswfdec.c: Fix build (class_init declaration/definition mismatch).
	  Original commit message from CVS:
	  * ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_class_init):
	  Fix build (class_init declaration/definition mismatch).

2006-04-10 08:31:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: force mono 8000 Hz on AMR samples.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  force mono 8000 Hz on AMR samples.

2006-04-09 18:30:51 +0000  Sébastien Moutte <sebastien@moutte.net>

	  ext/neon/gstneonhttpsrc.c: remove atoll by using g_ascii_strtoull (atoll is not supported on WIN32)
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start):
	  remove atoll by using g_ascii_strtoull (atoll is not supported on WIN32)
	  * sys/directdraw/gstdirectdrawsink.c:
	  * sys/directsound/gstdirectsoundsink.c:
	  done some cleans in sources
	  * win32/vs6:
	  add project files for neon, qtdemux

2006-04-09 17:14:22 +0000  Sébastien Moutte <sebastien@moutte.net>

	  gst/audioresample/debug.h: replace debug macros with variable number of parameters by a simple alias to gstreamer sta...
	  Original commit message from CVS:
	  * gst/audioresample/debug.h:
	  replace debug macros with variable number of parameters
	  by a simple alias to gstreamer standard debug macros
	  (#define RESAMPLE_ERROR GST_ERROR, __VA_ARGS__ is not
	  supported by MSVC 6.0 and 7.1)
	  * gst/audioresample/resample.h:
	  define M_PI and rint for WIN32
	  * win32/common/libgstaudio.def:
	  * win32/common/libgstriff.def:
	  * win32/common/libgsttag.def:
	  * win32/common/libgstvideo.def:
	  add new exported functions
	  * win32/vs6:
	  update project files

2006-04-08 21:48:01 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
	  Original commit message from CVS:
	  * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_class_init):
	  * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_class_init):
	  * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_class_init):
	  * ext/arts/gst_arts.c: (gst_arts_class_init):
	  * ext/artsd/gstartsdsink.c: (gst_artsdsink_class_init):
	  * ext/audiofile/gstafsink.c: (gst_afsink_class_init):
	  * ext/audiofile/gstafsrc.c: (gst_afsrc_class_init):
	  * ext/audioresample/gstaudioresample.c:
	  * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init):
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_class_init):
	  * ext/divx/gstdivxdec.c: (gst_divxdec_class_init):
	  * ext/hermes/gsthermescolorspace.c:
	  (gst_hermes_colorspace_class_init):
	  * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_class_init):
	  * ext/jack/gstjack.c: (gst_jack_class_init):
	  * ext/jack/gstjackbin.c: (gst_jack_bin_class_init):
	  * ext/lcs/gstcolorspace.c: (gst_colorspace_class_init):
	  * ext/libfame/gstlibfame.c: (gst_fameenc_class_init):
	  * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init):
	  * ext/nas/nassink.c: (gst_nassink_class_init):
	  * ext/shout/gstshout.c: (gst_icecastsend_class_init):
	  * ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init):
	  * ext/sndfile/gstsf.c: (gst_sf_class_init):
	  * ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_class_init),
	  (gst_swfdec_class_init):
	  * ext/tarkin/gsttarkindec.c: (gst_tarkindec_class_init):
	  * ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_class_init):
	  * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_class_init):
	  * gst/chart/gstchart.c: (gst_chart_class_init):
	  * gst/colorspace/gstcolorspace.c: (gst_colorspace_class_init):
	  * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_class_init):
	  * gst/festival/gstfestival.c: (gst_festival_class_init):
	  * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init):
	  * gst/filter/gstiir.c: (gst_iir_class_init):
	  * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init):
	  * gst/librfb/gstrfbsrc.c: (gst_rfbsrc_class_init):
	  * gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_class_init):
	  * gst/mpeg1sys/gstmpeg1systemencode.c:
	  (gst_system_encode_class_init):
	  * gst/mpeg1videoparse/gstmp1videoparse.c:
	  (gst_mp1videoparse_class_init):
	  * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_class_init):
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  (gst_mp3parse_class_init):
	  * gst/overlay/gstoverlay.c: (gst_overlay_class_init):
	  * gst/passthrough/gstpassthrough.c: (passthrough_class_init):
	  * gst/playondemand/gstplayondemand.c: (play_on_demand_class_init):
	  * gst/rtjpeg/gstrtjpegdec.c: (gst_rtjpegdec_class_init):
	  * gst/rtjpeg/gstrtjpegenc.c: (gst_rtjpegenc_class_init):
	  * gst/smooth/gstsmooth.c: (gst_smooth_class_init):
	  * gst/smoothwave/gstsmoothwave.c: (gst_smoothwave_class_init):
	  * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init):
	  * gst/stereo/gststereo.c: (gst_stereo_class_init):
	  * gst/switch/gstswitch.c: (gst_switch_class_init):
	  * gst/tta/gstttadec.c: (gst_tta_dec_class_init):
	  * gst/tta/gstttaparse.c: (gst_tta_parse_class_init):
	  * gst/vbidec/gstvbidec.c: (gst_vbidec_class_init):
	  * gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init):
	  * gst/virtualdub/gstxsharpen.c: (gst_xsharpen_class_init):
	  * gst/y4m/gsty4mencode.c: (gst_y4mencode_class_init):
	  * sys/cdrom/gstcdplayer.c: (cdplayer_class_init):
	  * sys/directsound/gstdirectsoundsink.c:
	  (gst_directsoundsink_class_init):
	  * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_class_init):
	  * sys/dxr3/dxr3spusink.c: (dxr3spusink_class_init):
	  * sys/dxr3/dxr3videosink.c: (dxr3videosink_class_init):
	  * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_class_init):
	  * sys/v4l2/gstv4l2colorbalance.c:
	  (gst_v4l2_color_balance_channel_class_init):
	  * sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_channel_class_init),
	  (gst_v4l2_tuner_norm_class_init):
	  * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_class_init):
	  Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)

2006-04-08 19:04:01 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/: Fix more broken GObject macros
	  Original commit message from CVS:
	  * gst/colorspace/gstcolorspace.h:
	  * gst/deinterlace/gstdeinterlace.h:
	  * gst/passthrough/gstpassthrough.h:
	  * gst/y4m/gsty4mencode.h:
	  Fix more broken GObject macros

2006-04-08 18:41:07 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix broken GObject macros
	  Original commit message from CVS:
	  * ext/xine/gstxine.h:
	  * gst-libs/gst/play/play.h:
	  * sys/v4l2/gstv4l2element.h:
	  * sys/ximagesrc/ximageutil.h:
	  Fix broken GObject macros

2006-04-08 18:25:55 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  Fix broken GObject macros
	  Original commit message from CVS:
	  * ext/annodex/gstcmmldec.h:
	  * ext/annodex/gstcmmlenc.h:
	  * ext/annodex/gstcmmltag.h:
	  * ext/cairo/gsttextoverlay.h:
	  * ext/ladspa/gstsignalprocessor.h:
	  * gst/matroska/ebml-read.h:
	  * gst/matroska/ebml-write.h:
	  * sys/osxaudio/gstosxaudioelement.h:
	  Fix broken GObject macros

2006-04-08 18:23:04 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Don't make rounding errors in timestamp/duration calculations.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample),
	  (gst_qtdemux_chain), (gst_qtdemux_add_stream), (qtdemux_dump_stsz),
	  (qtdemux_dump_stco), (qtdemux_parse_trak):
	  Don't make rounding errors in timestamp/duration calculations.
	  Fix timestamps for AMR and IMA4.  Fixes (#337436).
	  Create a dummy segment even when there is no edit list.

2006-04-07 16:59:15 +0000  Julien Moutte <julien@moutte.net>

	  docs/plugins/gst-plugins-bad-plugins-decl-list.txt: Updates.
	  Original commit message from CVS:
	  2006-04-07  Julien MOUTTE  <julien@moutte.net>
	  * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: Updates.
	  * examples/directfb/Makefile.am: Add example resource files to
	  dist.

2006-04-07 15:53:43 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Typo fix, s/XFree86/X11 and added doc blurb saying that it fixates to 25fps
	  Original commit message from CVS:
	  2006-04-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * ext/amrwb/amrwb-code/Makefile.am:
	  * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_recalc),
	  (gst_ximagesrc_create), (gst_ximagesrc_set_property):
	  Typo fix, s/XFree86/X11 and added doc blurb saying that it fixates to
	  25fps

2006-04-07 15:47:27 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  tests/icles/ximagesrc-test.c: Actually assert that pipeline goes to playing
	  Original commit message from CVS:
	  2006-04-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * tests/icles/ximagesrc-test.c: (main):
	  Actually assert that pipeline goes to playing

2006-04-07 15:27:40 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/ximagesrc/ximagesrc.c: Fix typo, C++ style comments and other small cleanups
	  Original commit message from CVS:
	  2006-04-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_recalc),
	  (composite_pixel), (gst_ximagesrc_ximage_get),
	  (gst_ximagesrc_create), (gst_ximagesrc_set_property):
	  Fix typo, C++ style comments and other small cleanups

2006-04-06 19:16:02 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Added full edit list support.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	  (gst_qtdemux_handle_src_query), (gst_qtdemux_find_index),
	  (gst_qtdemux_find_keyframe), (gst_qtdemux_find_segment),
	  (gst_qtdemux_move_stream), (gst_qtdemux_perform_seek),
	  (gst_qtdemux_do_seek), (gst_qtdemux_change_state),
	  (gst_qtdemux_activate_segment),
	  (gst_qtdemux_prepare_current_sample), (gst_qtdemux_advance_sample),
	  (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
	  (qtdemux_parse_trak):
	  Added full edit list support.
	  Avoid overflows in prologue image detection code.
	  Avoid roundoff errors in timestamp calculations.

2006-04-06 14:20:27 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/Makefile.am:
	* ext/xine/Makefile.am:
	  more distcheck fixes
	  Original commit message from CVS:
	  more distcheck fixes

2006-04-06 14:08:08 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  configure.ac: clean up so report properly on missing stuff fix modplug detection
	  Original commit message from CVS:
	  * configure.ac:
	  clean up so report properly on missing stuff
	  fix modplug detection

2006-04-06 12:52:22 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  ext/: don't dist amr wb source code
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  * ext/amrwb/amrwb-code/Makefile.am:
	  don't dist amr wb source code

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-06 09:37:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/neon/gstneonhttpsrc.c: Add back "uri" property and mark it as deprecated; undoes
	  Original commit message from CVS:
	  * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	  (gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property):
	  Add back "uri" property and mark it as deprecated; undoes
	  API/ABI breakage from 2006-02-24.

2006-04-05 08:36:55 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: Use duration as segment stop position if none is explicitly configured.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
	  (gst_qtdemux_do_seek), (gst_qtdemux_loop_state_movie),
	  (gst_qtdemux_loop):
	  Use duration as segment stop position if none is
	  explicitly configured.
	  Also perform EOS when we run past the segment stop.

2006-04-04 11:20:58 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: More cleanups, added comments.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_go_back),
	  (gst_qtdemux_perform_seek), (gst_qtdemux_do_seek),
	  (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
	  (gst_qtdemux_chain), (qtdemux_parse_tree), (qtdemux_parse_trak):
	  More cleanups, added comments.
	  Mark discontinuities on outgoing buffers.
	  Post better errors when something goes wrong.
	  Handle EOS and segment end properly.

2006-04-04 08:40:52 +0000  Wim Taymans <wim.taymans@gmail.com>

	* ChangeLog:
	  Mark latest change as fixing a bug.
	  Original commit message from CVS:
	  Mark latest change as fixing a bug.

2006-04-04 08:31:10 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.*: Handle stss boxes so we can mark and find keyframes.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	  (gst_qtdemux_push_event), (gst_qtdemux_go_back),
	  (gst_qtdemux_perform_seek), (gst_qtdemux_do_seek),
	  (gst_qtdemux_handle_src_event), (plugin_init),
	  (gst_qtdemux_change_state), (gst_qtdemux_loop_state_movie),
	  (gst_qtdemux_loop), (gst_qtdemux_chain),
	  (qtdemux_sink_activate_pull), (gst_qtdemux_add_stream),
	  (qtdemux_parse), (qtdemux_parse_tree), (qtdemux_parse_trak),
	  (qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num),
	  (qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds):
	  * gst/qtdemux/qtdemux.h:
	  Handle stss boxes so we can mark and find keyframes.
	  Implement correct accurate and keyframe seeking.
	  Use _DEBUG_OBJECT when possible.

2006-04-03 11:08:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  tests/check/Makefile.am: Only run the id3v2mux check if taglib is available and the taglib plugin has been built.
	  Original commit message from CVS:
	  * tests/check/Makefile.am:
	  Only run the id3v2mux check if taglib is available and
	  the taglib plugin has been built.

2006-04-03 10:57:18 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/swfdec/Makefile.am: Don't set plugindir.
	  Original commit message from CVS:
	  * ext/swfdec/Makefile.am:
	  Don't set plugindir.
	  * ext/swfdec/gstswfdec.c:
	  GST_PLUGIN_DEFINE_STATIC isn't a good idea for installed plugins.

2006-04-03 10:51:54 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Add AX_CREATE_STDINT_H to create _stdint.h, needed by the dts plugin.
	  Original commit message from CVS:
	  * configure.ac:
	  Add AX_CREATE_STDINT_H to create _stdint.h, needed by
	  the dts plugin.

2006-04-03 10:34:54 +0000  Tim-Philipp Müller <tim@centricular.net>

	  GST_ORIGIN => GST_PACKAGE_ORIGIN
	  Original commit message from CVS:
	  * ext/soundtouch/gstpitch.cc:
	  * ext/theora/theoradec.c:
	  * gst/modplug/gstmodplug.cc:
	  GST_ORIGIN => GST_PACKAGE_ORIGIN
	  GST_PACKAGE => GST_PACKAGE_NAME

2006-04-02 10:42:32 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  docs/plugins/: add more plugins to docs
	  Original commit message from CVS:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/inspect/plugin-bz2.xml:
	  * docs/plugins/inspect/plugin-cdxaparse.xml:
	  * docs/plugins/inspect/plugin-freeze.xml:
	  * docs/plugins/inspect/plugin-glimagesink.xml:
	  * docs/plugins/inspect/plugin-modplug.xml:
	  * docs/plugins/inspect/plugin-neon.xml:
	  * docs/plugins/inspect/plugin-sdl.xml:
	  * docs/plugins/inspect/plugin-video4linux2.xml:
	  * docs/plugins/inspect/plugin-ximagesrc.xml:
	  * docs/plugins/inspect/plugin-xingheader.xml:
	  add more plugins to docs

2006-04-02 09:33:12 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  the alphabet, a tricky concept
	  Original commit message from CVS:
	  the alphabet, a tricky concept

2006-04-02 09:17:23 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  add liboil check, dts uses it
	  Original commit message from CVS:
	  add liboil check, dts uses it

2006-04-01 16:50:49 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-taglib.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* ext/taglib/gsttaglib.cc:
	* sys/dxr3/ac3_padder.h:
	* tests/Makefile.am:
	* tests/check/.gitignore:
	* tests/check/Makefile.am:
	* tests/check/elements/.gitignore:
	* tests/check/elements/tagid3v2mux.c:
	  add taglib checks and docs
	  Original commit message from CVS:
	  add taglib checks and docs

2006-04-01 15:36:25 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* configure.ac:
	  don't use AS_LIBTOOL_TAGS, it doesn't work
	  Original commit message from CVS:
	  don't use AS_LIBTOOL_TAGS, it doesn't work

2006-04-01 10:16:28 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* .gitignore:
	* docs/.gitignore:
	* docs/plugins/.gitignore:
	  ignore more
	  Original commit message from CVS:
	  ignore more

2006-04-01 10:15:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/icles/ximagesrc-test.c:
	  5 second timeout
	  Original commit message from CVS:
	  5 second timeout

2006-04-01 10:14:26 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* tests/icles/.gitignore:
	* tests/icles/Makefile.am:
	* tests/icles/ximagesrc-test.c:
	  rename test
	  Original commit message from CVS:
	  rename test

2006-04-01 10:09:11 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* Makefile.am:
	* common:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* ext/amrwb/gstamrwb.c:
	* ext/arts/gst_arts.c:
	* ext/artsd/gstartsdsink.c:
	* ext/audiofile/gstaf.c:
	* ext/audioresample/gstaudioresample.c:
	* ext/bz2/gstbz2.c:
	* ext/cdaudio/gstcdaudio.c:
	* ext/directfb/dfbvideosink.c:
	* ext/dts/gstdtsdec.c:
	* ext/faac/gstfaac.c:
	* ext/faad/gstfaad.c:
	* ext/hermes/gsthermescolorspace.c:
	* ext/ivorbis/vorbis.c:
	* ext/jack/gstjack.c:
	* ext/lcs/gstcolorspace.c:
	* ext/musepack/gstmusepackdec.c:
	* ext/musicbrainz/gsttrm.c:
	* ext/nas/nassink.c:
	* ext/sdl/gstsdl.c:
	* ext/snapshot/gstsnapshot.c:
	* ext/sndfile/gstsf.c:
	* ext/swfdec/gstswfdec.c:
	* ext/tarkin/gsttarkin.c:
	* ext/xine/xine.c:
	* ext/xvid/gstxvid.c:
	* gst/cdxaparse/gstcdxaparse.c:
	* gst/chart/gstchart.c:
	* gst/colorspace/gstcolorspace.c:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/equalizer/gstiirequalizer.c:
	* gst/festival/gstfestival.c:
	* gst/filter/gstfilter.c:
	* gst/freeze/gstfreeze.c:
	* gst/games/gstpuzzle.c:
	* 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/gstrtjpeg.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/vbidec/gstvbidec.c:
	* gst/videocrop/gstvideocrop.c:
	* gst/videodrop/gstvideodrop.c:
	* gst/virtualdub/gstvirtualdub.c:
	* gst/xingheader/gstxingmux.c:
	* gst/y4m/gsty4mencode.c:
	* po/POTFILES.in:
	* 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:
	* sys/cdrom/gstcdplayer.c:
	* sys/directdraw/gstdirectdrawplugin.c:
	* sys/directsound/gstdirectsoundplugin.c:
	* sys/dxr3/dxr3init.c:
	* sys/glsink/glimagesink.c:
	* sys/qcam/gstqcamsrc.c:
	* sys/v4l2/gstv4l2.c:
	* sys/vcd/vcdsrc.c:
	* sys/ximagesrc/ximagesrc.c:
	  rework build; add translations for v4l2
	  Original commit message from CVS:
	  rework build; add translations for v4l2

2006-03-31 17:52:36 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  Add tests and fix PAR caps issue to ximagesrc
	  Original commit message from CVS:
	  2006-03-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * Makefile.am:
	  * configure.ac:
	  * sys/ximagesrc/ximagesrc.c:
	  (gst_ximagesrc_ximage_get),
	  (gst_ximagesrc_get_caps), (gst_ximagesrc_class_init):
	  * sys/ximagesrc/ximageutil.c:
	  * tests/Makefile.am:
	  * tests/icles/Makefile.am:
	  * tests/icles/ximagesrc-test.c: (terminate_playback), (main):
	  Add tests and fix PAR caps issue to ximagesrc

2006-03-31 16:32:47 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/ximagesrc/ximagesrc.c: Add docs to ximagesrc
	  Original commit message from CVS:
	  2006-03-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/ximagesrc/ximagesrc.c:
	  Add docs to ximagesrc

2006-03-31 15:21:35 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	  sys/ximagesrc/: Fix ximagesrc so a) the cursor doesnt trail and b) there are no yellow rectangles with the cursor
	  Original commit message from CVS:
	  2006-03-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	  * sys/ximagesrc/ximagesrc.c: (composite_pixel),
	  (gst_ximagesrc_ximage_get), (gst_ximagesrc_set_property),
	  (gst_ximagesrc_get_caps), (gst_ximagesrc_class_init):
	  * sys/ximagesrc/ximagesrc.h:
	  * sys/ximagesrc/ximageutil.c: (ximageutil_xcontext_get):
	  * sys/ximagesrc/ximageutil.h:
	  Fix ximagesrc so a) the cursor doesnt trail and b) there are no
	  yellow rectangles with the cursor

2006-03-31 14:26:05 +0000  Michael Smith <msmith@xiph.org>

	  configure.ac: Add autoconfery for theoradec.
	  Original commit message from CVS:
	  * configure.ac:
	  Add autoconfery for theoradec.
	  * ext/Makefile.am:
	  Add theora directory.
	  * ext/theora/Makefile.am:
	  * ext/theora/theoradec.c: (gst_theoradec_base_init),
	  (gst_theoradec_class_init), (gst_theoradec_init),
	  (gst_theoradec_reset), (inc_granulepos), (theora_get_query_types),
	  (gst_theoradec_granule_clocktime), (theora_dec_src_convert),
	  (theora_dec_sink_convert), (theora_dec_src_query),
	  (theora_dec_sink_query), (theora_dec_src_event),
	  (theora_dec_sink_event), (theora_handle_comment_packet),
	  (theora_handle_type_packet), (theora_handle_header_packet),
	  (theora_dec_push), (theora_handle_data_packet), (theora_dec_chain),
	  (theora_dec_change_state), (plugin_init):
	  * ext/theora/theoradec.h:
	  Add theora plugin for theora-exp decoder. Very heavily based on the
	  existing theora decoder plugin.

2006-03-29 16:54:12 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/gsm/: Cleanups, fix leaks.
	  Original commit message from CVS:
	  * ext/gsm/gstgsmdec.c: (gst_gsmdec_class_init), (gst_gsmdec_init),
	  (gst_gsmdec_finalize), (gst_gsmdec_sink_event), (gst_gsmdec_chain):
	  * ext/gsm/gstgsmdec.h:
	  * ext/gsm/gstgsmenc.c: (gst_gsmenc_class_init), (gst_gsmenc_init),
	  (gst_gsmenc_finalize), (gst_gsmenc_chain):
	  Cleanups, fix leaks.
	  Handle events and DISCONT.
	  Use adapter in the decoder.

2006-03-29 16:50:08 +0000  Renato Araujo Oliveira Filho <renatox@gmail.com>

	  Added new plugin amrwb parse.
	  Original commit message from CVS:
	  Patch by: Renato Araujo Oliveira Filho <renatox at gmail dot com>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/amrwb/Makefile.am:
	  * ext/amrwb/README:
	  * ext/amrwb/amrwb-code/Makefile.am:
	  * ext/amrwb/amrwb-code/run.sh:
	  * ext/amrwb/gstamrwb.c: (plugin_init):
	  * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_base_init),
	  (gst_amrwbdec_class_init), (gst_amrwbdec_init),
	  (gst_amrwbdec_setcaps), (gst_amrwbdec_event), (gst_amrwbdec_chain),
	  (gst_amrwbdec_state_change):
	  * ext/amrwb/gstamrwbdec.h:
	  * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_base_init),
	  (gst_amrwbenc_class_init), (gst_amrwbenc_init),
	  (gst_amrwbenc_finalize), (gst_amrwbenc_setcaps),
	  (gst_amrwbenc_chain), (gst_amrwbenc_state_change):
	  * ext/amrwb/gstamrwbenc.h:
	  * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_base_init),
	  (gst_amrwbparse_class_init), (gst_amrwbparse_init),
	  (gst_amrwbparse_querytypes), (gst_amrwbparse_query),
	  (gst_amrwbparse_chain), (gst_amrwbparse_read_header),
	  (gst_amrwbparse_loop), (gst_amrwbparse_sink_activate),
	  (gst_amrwbparse_sink_activate_pull), (gst_amrwbparse_state_change):
	  * ext/amrwb/gstamrwbparse.h:
	  Added new plugin amrwb parse.
	  Renamed audio/AMR to audio/AMR-WB as per spec.
	  Fixes #333307

2006-03-27 17:06:45 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* sys/v4l2/v4l2src_calls.c:
	  Small fix, now pwc driver can tell about its buffers.
	  Original commit message from CVS:
	  Small fix, now pwc driver can tell about its buffers.

2006-03-27 10:13:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Remove CXX tag from AS_LIBTOOL_TAGS, just like we did for -good and -ugly. Fixes build on some systems ...
	  Original commit message from CVS:
	  * configure.ac:
	  Remove CXX tag from AS_LIBTOOL_TAGS, just like we
	  did for -good and -ugly. Fixes build on some systems
	  and doesn't seem to be required for C++ code.

2006-03-26 19:56:37 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/taglib/gsttaglib.*: Fix newsegment event handling a bit. We need to cache the first newsegment event, because we ...
	  Original commit message from CVS:
	  * ext/taglib/gsttaglib.cc:
	  * ext/taglib/gsttaglib.h:
	  Fix newsegment event handling a bit. We need to
	  cache the first newsegment event, because we can't
	  adjust offsets yet when we get it, as we don't
	  know the size of the tag yet for sure at that point.
	  Also do some minor cleaning up here and there and add
	  some debug statements.

2006-03-25 21:57:24 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/taglib/gsttaglib.cc: We do not want to proxy the caps on the sink pad; our source pad should have application/x-i...
	  Original commit message from CVS:
	  * ext/taglib/gsttaglib.cc:
	  We do not want to proxy the caps on the sink pad; our
	  source pad should have application/x-id3 caps; also,
	  don't use already-freed strings in debug messages;
	  finally, adjust buffer offsets on buffers sent out.

2006-03-25 13:02:55 +0000  Tim-Philipp Müller <tim@centricular.net>

	  sys/v4l2/gstv4l2src.c: Older kernels don't seem to have this particular v4l2 format, so comment out until this gets f...
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2src.c:
	  Older kernels don't seem to have this particular v4l2 format,
	  so comment out until this gets fixed properly (and make
	  buildbots happy).

2006-03-25 05:31:28 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	  Just make few things more robust and also some identation.
	  Original commit message from CVS:
	  Just make few things more robust and also some identation.

2006-03-23 09:15:09 +0000  Mark Nauwelaerts <manauw@skynet.be>

	  ext/xvid/gstxvidenc.c: Patch to mark outgoing encoded buffers as delta-units (or not).
	  Original commit message from CVS:
	  Patch by: Mark Nauwelaerts <manauw at skynet dot be>
	  * ext/xvid/gstxvidenc.c: (gst_xvidenc_init), (gst_xvidenc_setup),
	  (gst_xvidenc_chain):
	  Patch to mark outgoing encoded buffers as delta-units (or not).
	  Note that this patch also patches:
	  - the setting of fincr and fbase in xvid-encoder creation based on
	  caps framerate
	  - makes 0, rather than 2, the default max_b_frames, as the current
	  xvidenc does not seem "fully prepared" to handle b-frame
	  "effects", such as encoder returning 0 encoded bytes, etc.
	  Fixes #335585

2006-03-22 19:51:29 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add latest plugins additions
	  Original commit message from CVS:
	  add latest plugins additions

2006-03-22 17:13:32 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/modplug/libmodplug/: Try that again (not only should it be MODPLUG_ instead of MODFILE, also that define is alrea...
	  Original commit message from CVS:
	  * gst/modplug/libmodplug/Makefile.am:
	  * gst/modplug/libmodplug/load_it.cpp:
	  Try that again (not only should it be MODPLUG_ instead
	  of MODFILE, also that define is already set in stdafx.h;
	  what we really need is some more #ifndefs).

2006-03-22 15:02:58 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/modplug/libmodplug/Makefile.am: More gcc-4.1 fixes (we don't need file saving, so just define MODPLUG_NO_FILESAVE...
	  Original commit message from CVS:
	  * gst/modplug/libmodplug/Makefile.am:
	  More gcc-4.1 fixes (we don't need file saving, so just
	  define MODPLUG_NO_FILESAVE. That way, the compiler won't
	  complain about modplug ignoring the return value of fwrite
	  any longer and we might even save a few bytes as well).

2006-03-22 14:31:47 +0000  Wouter Paeson <wouter@kangaroot.net>

	  Add new libsoundtouch-based pitch plugin (#331335).
	  Original commit message from CVS:
	  Patch by: Wouter Paeson  <wouter at kangaroot dot net>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/soundtouch/Makefile.am:
	  * ext/soundtouch/gstpitch.cc:
	  * ext/soundtouch/gstpitch.hh:
	  Add new libsoundtouch-based pitch plugin (#331335).

2006-03-21 16:02:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/modplug/libmodplug/load_ptm.cpp: Fix compilation with gcc-4.1 and -Werror (#327355).
	  Original commit message from CVS:
	  * gst/modplug/libmodplug/load_ptm.cpp:
	  Fix compilation with gcc-4.1 and -Werror (#327355).

2006-03-20 08:59:29 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/taglib/gsttaglib.h: Fix left-over gst_my_filter_get_type.
	  Original commit message from CVS:
	  * ext/taglib/gsttaglib.h:
	  Fix left-over gst_my_filter_get_type.

2006-03-17 16:34:36 +0000  Zaheer Abbas Merali <zaheerabbas@merali.org>

	* ChangeLog:
	* sys/ximagesrc/ximagesrc.c:
	  Have a show mouse pointer property and use it if we can
	  Original commit message from CVS:
	  Have a show mouse pointer property and use it if we can

2006-03-15 15:08:20 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Let's not forget to chain up to the parent dispose.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_dispose):
	  Let's not forget to chain up to the parent dispose.

2006-03-15 14:39:25 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Series of memleak fixes:
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init),
	  (gst_qtdemux_init), (gst_qtdemux_dispose),
	  (gst_qtdemux_add_stream), (qtdemux_parse_trak):
	  Series of memleak fixes:
	  - Unref the GstAdapter in finalize.
	  - Use gst_pad_new_from_static_template(), shorter and safer.
	  - Free unused QtDemuxStream when not used.

2006-03-14 17:24:03 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/v4l2/gstv4l2src.c: Initialization of the debugging category should be as early as possible, moving it from _class...
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_base_init),
	  (gst_v4l2src_class_init):
	  Initialization of the debugging category should be as early as possible,
	  moving it from _class_init() to beginning of _base_init().

2006-03-13 17:22:19 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/taglib/gsttaglib.cc: Add gtk-doc blurb (unused for the time being); match registered plugin name to the filename ...
	  Original commit message from CVS:
	  * ext/taglib/gsttaglib.cc:
	  Add gtk-doc blurb (unused for the time being); match registered
	  plugin name to the filename of the plugin (taglibmux => taglib)

2006-03-13 12:14:18 +0000  Mikhail Zabaluev <mhz@altlinux.org>

	  autogen.sh: Don't check for file that only exists in CVS but isn't disted (#334417)
	  Original commit message from CVS:
	  Patch by: Mikhail Zabaluev  <mhz altlinux org>
	  * autogen.sh:
	  Don't check for file that only exists in CVS but isn't
	  disted (#334417)

2006-03-13 10:05:09 +0000  Julien Moutte <julien@moutte.net>

	  Fix build of v4l2 (sigh)
	  Original commit message from CVS:
	  2006-03-13  Julien MOUTTE  <julien@moutte.net>
	  * docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	  * sys/v4l2/Makefile.am: Fix build of v4l2 (sigh)

2006-03-12 23:56:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Fix distcheck.
	  Original commit message from CVS:
	  * Makefile.am:
	  * configure.ac:
	  Fix distcheck.

2006-03-12 15:33:00 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/v4l2/v4l2src_calls.c: g_atomic_int_set is only available in glib-0.10, use gst_atomic_int_et instead.
	  Original commit message from CVS:
	  * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_init),
	  (gst_v4l2src_buffer_pool_free):
	  g_atomic_int_set is only available in glib-0.10, use gst_atomic_int_et
	  instead.

2006-03-12 15:25:51 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/v4l2/gstv4l2element.h: Remove tim's addition of "_stdint.h" since it doesn't make the PPC buildbot happy.
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2element.h:
	  Remove tim's addition of "_stdint.h" since it doesn't make the PPC
	  buildbot happy.
	  I will just use the same comment Ronald used when he added these lines:
	  Yet Another Hack (tm) for kernel header borkedness.

2006-03-12 15:02:02 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/taglib/: Add support for writing MusicBrainz IDs.
	  Original commit message from CVS:
	  * ext/taglib/Makefile.am:
	  * ext/taglib/gsttaglib.cc:
	  * ext/taglib/gsttaglib.h:
	  Add support for writing MusicBrainz IDs.

2006-03-12 14:43:57 +0000  Tim-Philipp Müller <tim@centricular.net>

	  sys/v4l2/gstv4l2element.h: Include "_stdint.h" in an attempt to make the
	  Original commit message from CVS:
	  * sys/v4l2/gstv4l2element.h:
	  Include "_stdint.h" in an attempt to make the
	  PPC-buildbot happy.

2006-03-11 22:50:03 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* sys/Makefile.am:
	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	  V4L2 ported to 0.10.
	  Original commit message from CVS:
	  V4L2 ported to 0.10.

2006-03-11 17:08:31 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Only compile the taglib plugin if a C++ compiler is present. Use GST_DEFAULT_ELEMENTS macro from common...
	  Original commit message from CVS:
	  * configure.ac:
	  Only compile the taglib plugin if a C++ compiler is
	  present. Use GST_DEFAULT_ELEMENTS macro from common/
	  for all the defaults stuff.

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-11 10:58:08 +0000  Alex Lancaster <alexlan@fedoraproject.org>

	  ext/taglib/gsttaglib.cc: and add support for TCOP (copyright)
	  Original commit message from CVS:
	  2006-03-11  Christophe Fergeau  <teuf@gnome.org>
	  Patch by: Alex Lancaster
	  * ext/taglib/gsttaglib.cc: fix writing of TPOS tags (album number),
	  and add support for TCOP (copyright)

2006-03-10 22:41:14 +0000  Julien Moutte <julien@moutte.net>

	  gst/modplug/: Fix modplug compilation.
	  Original commit message from CVS:
	  2006-03-10  Julien MOUTTE  <julien@moutte.net>
	  * gst/modplug/Makefile.am:
	  * gst/modplug/gstmodplug.cc: Fix modplug compilation.

2006-03-10 17:10:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	* ChangeLog:
	* configure.ac:
	* gst/modplug/Makefile.am:
	* gst/modplug/gstmodplug.cc:
	* gst/modplug/gstmodplug.h:
	* gst/modplug/libmodplug/sndfile.cpp:
	* gst/modplug/libmodplug/sndfile.h:
	  Original commit message from CVS: * configure.ac: * gst/modplug/Makefile.am: * gst/modplug/gstmodplug.cc: * gst/modplug/gstmodplug.h: * gst/modplug/libmodplug/sndfile.cpp: * gst/modplug/libmodplug/sndfile.h: modplug plugin ported to 0.10 (#332598, patch by: Jonathan Matthew <jonathan at kaolin wh9 net>).

2006-03-10 13:49:23 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/libmms/gstmms.*: Some clean-ups; more debug output; use blocksize property of GstBaseSrc instead of re-registerin...
	  Original commit message from CVS:
	  * ext/libmms/gstmms.c: (gst_mms_urihandler_init),
	  (gst_mms_base_init), (gst_mms_class_init), (gst_mms_init),
	  (gst_mms_finalize), (gst_mms_create), (gst_mms_start),
	  (gst_mms_set_property), (gst_mms_get_property),
	  (gst_mms_uri_get_uri):
	  * ext/libmms/gstmms.h:
	  Some clean-ups; more debug output; use blocksize property
	  of GstBaseSrc instead of re-registering our own; make debug
	  category actually be used.

2006-03-09 20:02:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Fix build with gcc-4.1 (#327355).
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_send_event):
	  Fix build with gcc-4.1 (#327355).

2006-03-09 17:44:17 +0000  Christophe Fergeau <teuf@gnome.org>

	  new id3v2 muxer based on TagLib
	  Original commit message from CVS:
	  2006-03-09  Christophe Fergeau  <teuf@gnome.org>
	  reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/taglib/Makefile.am:
	  * ext/taglib/gsttaglib.cc:
	  * ext/taglib/gsttaglib.h: new id3v2 muxer based on TagLib

2006-03-08 12:16:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Extract disc number and count from files that use 'disk' instead of 'disc' as node identifier ...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta):
	  Extract disc number and count from files that use
	  'disk' instead of 'disc' as node identifier for that
	  (fixes #332066).

2006-03-06 13:15:04 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/musepack/: Forgot those two.
	  Original commit message from CVS:
	  * ext/musepack/gstmusepackdec.h:
	  * ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek):
	  Forgot those two.

2006-03-06 13:13:44 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/musepack/gstmusepackdec.c: Some cleanups; pause task when push fails.
	  Original commit message from CVS:
	  * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init),
	  (gst_musepackdec_init), (gst_musepackdec_send_newsegment),
	  (gst_musepackdec_handle_seek_event),
	  (gst_musepackdec_get_src_query_types), (gst_musepackdec_src_query),
	  (gst_musepack_stream_init), (gst_musepackdec_sink_activate),
	  (gst_musepackdec_sink_activate_pull), (gst_musepackdec_loop),
	  (gst_musepackdec_change_state):
	  Some cleanups; pause task when push fails.

2006-03-05 13:03:40 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Add support for '3IVD' fourcc (#333403).
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add support for '3IVD' fourcc (#333403).

2006-03-04 20:04:11 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faad/gstfaad.c: Add query function for position/duration querying (mostly for raw AAC streams); make seeking in r...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_send_tags),
	  (gst_faad_setcaps), (gst_faad_do_raw_seek), (gst_faad_src_event),
	  (gst_faad_sink_event), (gst_faad_src_convert),
	  (gst_faad_src_query), (gst_faad_chain), (gst_faad_change_state):
	  Add query function for position/duration querying (mostly for
	  raw AAC streams); make seeking in raw AAC streams work; post
	  tags with codec name if this is a raw AAC stream.

2006-03-03 23:45:23 +0000  Sébastien Moutte <sebastien@moutte.net>

	  sys/: sinks are now using GST_RANK_PRIMARY to be used with autodectection
	  Original commit message from CVS:
	  * sys/directdraw:
	  * sys/directsound:
	  sinks are now using GST_RANK_PRIMARY to be used with autodectection
	  * win32/vs6:
	  project files updated to fix some bugs
	  * win32/vs7:
	  * win32/vs8:
	  vs7 and vs8 project files added

2006-03-03 18:10:12 +0000  Jens Granseuer <jensgr@gmx.net>

	  ext/xvid/gstxviddec.c: Declare variable at the beginning of the block and make gcc-2.9x
	  Original commit message from CVS:
	  * ext/xvid/gstxviddec.c: (gst_xviddec_chain):
	  Declare variable at the beginning of the block and make gcc-2.9x
	  happy (fixes #333283; patch by: Jens Granseuer).

2006-03-03 11:07:41 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Use GST_WARNING instead of GST_ERROR for all the too short/long atoms when parsing.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak):
	  Use GST_WARNING instead of GST_ERROR for all the too short/long atoms
	  when parsing.
	  Also let's be a bit less vulgar in our warning messages :)

2006-03-02 18:23:55 +0000  Wim Taymans <wim.taymans@gmail.com>

	  docs/plugins/: Add audioresample to docs.
	  Original commit message from CVS:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-base-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-base-plugins-sections.txt:
	  Add audioresample to docs.
	  * gst/audioconvert/gstaudioconvert.c:
	  Add revision date.
	  * gst/audioresample/gstaudioresample.c:
	  (gst_audioresample_base_init), (gst_audioresample_class_init),
	  (gst_audioresample_init), (gst_audioresample_dispose),
	  (audioresample_get_unit_size), (audioresample_transform_caps),
	  (resample_set_state_from_caps), (audioresample_transform_size),
	  (audioresample_set_caps), (audioresample_event),
	  (audioresample_do_output), (audioresample_transform),
	  (audioresample_pushthrough), (gst_audioresample_set_property),
	  (gst_audioresample_get_property), (plugin_init):
	  * gst/audioresample/gstaudioresample.h:
	  Added docs.
	  Small code cleanups.

2006-02-28 11:59:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Can't divide through zero (suppress warning in case of stream with one single still picture) (...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Can't divide through zero (suppress warning in case of
	  stream with one single still picture) (see #327083)

2006-02-25 21:40:08 +0000  Julien Moutte <julien@moutte.net>

	  sys/glsink/glimagesink.c: It doesn't seem we need GLU.h
	  Original commit message from CVS:
	  2006-02-25  Julien MOUTTE  <julien@moutte.net>
	  * sys/glsink/glimagesink.c: It doesn't seem we need GLU.h

2006-02-24 19:49:32 +0000  Fabrizio Gennari <fabrizio.ge@tiscali.it>

	  gst/qtdemux/qtdemux.c: Add support for palettised Apple SMC videos (#327075, based on
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
	  (qtdemux_parse_trak), (qtdemux_video_caps):
	  Add support for palettised Apple SMC videos (#327075, based on
	  patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>).

2006-02-24 17:15:35 +0000  Michael Smith <msmith@xiph.org>

	  autogen.sh: Allow automake 1.9
	  Original commit message from CVS:
	  * autogen.sh:
	  Allow automake 1.9

2006-02-24 17:02:08 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/neon/gstneonhttpsrc.c:
	  Changed property name from "uri" to "location".
	  Original commit message from CVS:
	  Changed property name from "uri" to "location".

2006-02-22 14:37:20 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Cygwin Ports maintainer.
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/glsink/Makefile.am:
	  Merge patch from #317048 for building on Cygwin. Patch by
	  Cygwin Ports maintainer.
	  * sys/glsink/glimagesink.c: (gst_glimage_sink_init_display):
	  Move normal debug output to LOG level not ERROR.

2006-02-22 09:33:25 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Add 'dvsd' and 'dv25' to list of possible fourcc values for DV Video.
	  Original commit message from CVS:
	  Reviewed by : Edward Hervey <edward@fluendo.com>
	  * gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add 'dvsd' and 'dv25' to list of possible fourcc values for DV Video.
	  Add image/png for fourcc 'png '

2006-02-21 15:44:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: Surely this is supposed to be >= a.b, not == a.b
	  Original commit message from CVS:
	  * configure.ac:
	  Surely this is supposed to be >= a.b, not == a.b

2006-02-20 21:19:59 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Port ximagesrc to 0.10 (Closes #304795)
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/ximagesrc/Makefile.am:
	  * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_return_buf),
	  (gst_ximagesrc_open_display), (gst_ximagesrc_start),
	  (gst_ximagesrc_stop), (gst_ximagesrc_unlock),
	  (gst_ximagesrc_recalc), (composite_pixel),
	  (gst_ximagesrc_ximage_get), (gst_ximagesrc_create),
	  (gst_ximagesrc_set_property), (gst_ximagesrc_get_property),
	  (gst_ximagesrc_clear_bufpool), (gst_ximagesrc_base_init),
	  (gst_ximagesrc_dispose), (gst_ximagesrc_finalize),
	  (gst_ximagesrc_get_caps), (gst_ximagesrc_set_caps),
	  (gst_ximagesrc_fixate), (gst_ximagesrc_class_init),
	  (gst_ximagesrc_init), (plugin_init):
	  * sys/ximagesrc/ximagesrc.h:
	  * sys/ximagesrc/ximageutil.c: (ximageutil_handle_xerror),
	  (ximageutil_check_xshm_calls), (ximageutil_xcontext_get),
	  (ximageutil_xcontext_clear),
	  (ximageutil_calculate_pixel_aspect_ratio),
	  (gst_ximagesrc_buffer_finalize), (gst_ximage_buffer_free),
	  (gst_ximagesrc_buffer_init), (gst_ximagesrc_buffer_class_init),
	  (gst_ximagesrc_buffer_get_type), (gst_ximageutil_ximage_new),
	  (gst_ximageutil_ximage_destroy):
	  * sys/ximagesrc/ximageutil.h:
	  Port ximagesrc to 0.10 (Closes #304795)

2006-02-20 20:52:02 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* gst/freeze/gstfreeze.c:
	* gst/freeze/gstfreeze.h:
	  I'm too lazy to comment this
	  Original commit message from CVS:
	  Some event handling added by Renato Filho <renato.filho@indt.org.br>

2006-02-20 19:13:36 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Back to CVS nano
	  Original commit message from CVS:
	  * configure.ac:
	  Back to CVS nano

=== release 0.10.1 ===

2006-02-20 19:12:10 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: releasing 0.10.1, "Slimy - yet satisfying"
	  Original commit message from CVS:
	  2006-02-20  Jan Schmidt <thaytan@mad.scientist.com>
	  * configure.ac:
	  releasing 0.10.1, "Slimy - yet satisfying"

2006-02-20 13:08:50 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/ladspa/gstsignalprocessor.c: Fix compilation of LADPSA. It doesn't seem to work, and isn't enabled for the build,...
	  Original commit message from CVS:
	  * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_event),
	  (gst_signal_processor_process):
	  Fix compilation of LADPSA. It doesn't seem to work, and isn't
	  enabled for the build, but it helps me win the feature-count
	  competitions ooh yeah.

2006-02-19 23:45:56 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Release 0.10.0.3 - pre-release for 0.10.1
	  Original commit message from CVS:
	  * configure.ac:
	  Release 0.10.0.3 - pre-release for 0.10.1

2006-02-19 20:00:12 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/bz2/: Add proper copyright headers identifying Lutz Müller as the author and copyright holder (#331600).
	  Original commit message from CVS:
	  * ext/bz2/gstbz2.c:
	  * ext/bz2/gstbz2dec.c:
	  * ext/bz2/gstbz2dec.h:
	  * ext/bz2/gstbz2enc.c:
	  * ext/bz2/gstbz2enc.h:
	  Add proper copyright headers identifying Lutz Müller
	  as the author and copyright holder (#331600).

2006-02-17 18:25:42 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Don't GST_LOG timestamps from nonexistent index entries (#331582).
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_movie):
	  Don't GST_LOG timestamps from nonexistent index
	  entries (#331582).

2006-02-17 16:28:29 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Check that the size of the returned buffer is of the correct size because the parser assumes t...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header):
	  Check that the size of the returned buffer is of the correct size
	  because the parser assumes that.
	  Fixes #331543.

2006-02-17 16:00:12 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  configure.ac: Release 0.10.0.2 - pre-release for 0.10.1
	  Original commit message from CVS:
	  * configure.ac:
	  Release 0.10.0.2 - pre-release for 0.10.1

2006-02-17 15:03:12 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  latest updates
	  Original commit message from CVS:
	  latest updates

2006-02-16 14:02:57 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Don't stop the task if the pad isn't linked.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_event),
	  (gst_qtdemux_loop), (qtdemux_sink_activate_pull):
	  Don't stop the task if the pad isn't linked.

2006-02-15 12:13:47 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: It appears 100% equals 1/1 and not 100/1 ...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_chain):
	  It appears 100% equals 1/1 and not 100/1 ...

2006-02-15 09:45:27 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: When buffering MDAT data, show the user something is happening by posting 'buffering' messages...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_post_buffering),
	  (gst_qtdemux_chain):
	  When buffering MDAT data, show the user something is
	  happening by posting 'buffering' messages on the bus.

2006-02-14 18:50:13 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.*: Make push-based work if mdat atom is before moov atom.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	  (gst_qtdemux_handle_src_query), (gst_qtdemux_change_state),
	  (next_entry_size), (gst_qtdemux_chain):
	  * gst/qtdemux/qtdemux.h:
	  Make push-based work if mdat atom is before moov atom.
	  Don't answer duration query. This should be transformed into replying
	  FALSE to seek events.

2006-02-14 12:26:20 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/libmms/gstmms.c: Return FLOW_UNEXPECTED on EOS, not FLOW_ERROR. Also, no need to push our own EOS event on EOS, t...
	  Original commit message from CVS:
	  * ext/libmms/gstmms.c: (gst_mms_class_init), (gst_mms_create),
	  (gst_mms_start):
	  Return FLOW_UNEXPECTED on EOS, not FLOW_ERROR. Also, no need to
	  push our own EOS event on EOS, the base class will do that for us;
	  fix bogus query code; post semi-decent errors on the bus when an
	  error occurs in ::start(), otherwise the user will get to see
	  whatever cryptic default message GstBaseSrc comes up with.

2006-02-14 11:36:30 +0000  Andy Wingo <wingo@pobox.com>

	  sys/glsink/glimagesink.c (gst_glimage_sink_init): Come on schleef, don't break me gst-inspect -a.
	  Original commit message from CVS:
	  2006-02-14  Andy Wingo  <wingo@pobox.com>
	  * sys/glsink/glimagesink.c (gst_glimage_sink_init): Come on
	  schleef, don't break me gst-inspect -a.

2006-02-14 11:24:53 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Handle the case where data atoms are before moov atoms in push-based mode.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (next_entry_size), (gst_qtdemux_chain):
	  Handle the case where data atoms are before moov atoms in push-based mode.
	  Errors out gracefully.

2006-02-13 22:04:42 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/: QtDemux can now work push-based.
	  Original commit message from CVS:
	  * gst/qtdemux/Makefile.am:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	  (gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state),
	  (extract_initial_length_and_fourcc),
	  (gst_qtdemux_loop_state_header), (gst_qtdemux_loop_state_movie),
	  (gst_qtdemux_loop_header), (next_entry_size), (gst_qtdemux_chain),
	  (qtdemux_sink_activate), (qtdemux_sink_activate_pull),
	  (qtdemux_sink_activate_push), (qtdemux_parse_trak):
	  * gst/qtdemux/qtdemux.h:
	  QtDemux can now work push-based.
	  It still needs some love for seeking.

2006-02-13 17:02:09 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* configure.ac:
	* gst/freeze/FAQ:
	* gst/freeze/Makefile.am:
	* gst/freeze/gstfreeze.c:
	* gst/freeze/gstfreeze.h:
	  I'm too lazy to comment this
	  Original commit message from CVS:
	  freeze plugin ported to 0.10 by Renato Filho <renato.filho@indt.org.br>

2006-02-10 17:41:18 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Port cdxaparse, makes VCD playback work.
	  Original commit message from CVS:
	  * configure.ac:
	  * gst/cdxaparse/Makefile.am:
	  * gst/cdxaparse/gstcdxaparse.c:
	  * gst/cdxaparse/gstcdxaparse.h:
	  Port cdxaparse, makes VCD playback work.

2006-02-10 13:16:49 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec file
	  Original commit message from CVS:
	  update spec file

2006-02-07 18:31:31 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/qtdemux/qtdemux.c:
	  remove unused var
	  Original commit message from CVS:
	  remove unused var

2006-02-07 18:01:17 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst/qtdemux/qtdemux.c: use the correct variable to check if we can calculate the last chunk.  Looks like an obvious b...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	  (qtdemux_parse_trak):
	  use the correct variable to check if we can calculate
	  the last chunk.  Looks like an obvious bug, and makes
	  the dump of offsets comparable to other tools

2006-02-07 17:55:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	  doc updates
	  Original commit message from CVS:
	  doc updates

2006-02-07 17:54:42 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  gst/qtdemux/qtdemux.c: clean up some debugging, using _OBJECT, moving recurring messages to LOG level
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	  (qtdemux_parse_trak):
	  clean up some debugging, using _OBJECT, moving recurring
	  messages to LOG level

2006-02-06 20:51:49 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/neon/gstneonhttpsrc.c:
	  Now it uses libneon 0.25.5 that supports shoutcast.
	  Original commit message from CVS:
	  Now it uses libneon 0.25.5 that supports shoutcast.

2006-02-06 18:21:53 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/bz2/gstbz2enc.c: Accepd "ANY" caps. Use "x-bzip" instead of "x-bz2".
	  Original commit message from CVS:
	  Reviewed by: Edward Hervey <edward@fluendo.com>
	  * ext/bz2/gstbz2enc.c: Accepd "ANY" caps. Use "x-bzip" instead of
	  "x-bz2".
	  * ext/bz2/gstbz2dec.c: Use "x-bzip" instead of "x-bz2". Initial
	  caps are "ANY".
	  (gst_bz2dec_chain): Configure the source pad if we can figure out
	  the mime type of the decompressed data.
	  (gst_bz2dec_[get,set]_property):
	  (gst_bz2dec_class_init: New property "first_buffer_size".

2006-02-06 15:41:25 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.*: Some QT demux loving.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query),
	  (gst_qtdemux_handle_src_event), (gst_qtdemux_loop_header),
	  (qtdemux_inflate), (qtdemux_parse), (qtdemux_parse_trak),
	  (qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num),
	  (qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds),
	  (qtdemux_video_caps), (qtdemux_audio_caps):
	  * gst/qtdemux/qtdemux.h:
	  Some QT demux loving.
	  Handle seeking in a less broken way.
	  Fix AMR caps to match the AMR decoder.
	  Set first timestamp on AMR samples to 0 for now.
	  Remove some \n in DEBUG strings.
	  Use _scale_int for maximum precision.

2006-02-06 12:56:00 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/apetag/: Remove old files, apetag is in gst-plugins-good now.
	  Original commit message from CVS:
	  * gst/apetag/Makefile.am:
	  * gst/apetag/apedemux.c:
	  * gst/apetag/apedemux.h:
	  * gst/apetag/apetag.c:
	  Remove old files, apetag is in gst-plugins-good now.

2006-02-06 09:54:55 +0000  Andy Wingo <wingo@pobox.com>

	  ext/bz2/: No need to init parent_class, the boilerplate does it for you.
	  Original commit message from CVS:
	  2006-02-06  Andy Wingo  <wingo@pobox.com>
	  * ext/bz2/gstbz2enc.c (gst_bz2enc_class_init):
	  * ext/bz2/gstbz2dec.c (gst_bz2dec_class_init): No need to init
	  parent_class, the boilerplate does it for you.

2006-02-06 09:40:09 +0000  Andy Wingo <wingo@pobox.com>

	  Hook it up.
	  Original commit message from CVS:
	  2006-02-05  Lutz Mueller <lutz@topfrose.de>
	  reviewed by: Andy Wingo <wingo@pobox.com>
	  * configure.ac:
	  * ext/Makefile.am: Hook it up.
	  * ext/bz2/gstbz2.c:
	  * ext/bz2/gstbz2dec.h:
	  * ext/bz2/gstbz2dec.c:
	  * ext/bz2/gstbz2enc.h:
	  * ext/bz2/gstbz2enc.c: New plugin, implements bz2 encoding and
	  decoding (#303167).

2006-02-03 10:13:22 +0000  Christian Schaller <uraeus@gnome.org>

	* common:
	* gst-plugins-bad.spec.in:
	  add opengl plugin
	  Original commit message from CVS:
	  add opengl plugin

2006-01-30 15:47:47 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* common:
	* sys/glsink/Makefile.am:
	  sys/glsink/Makefile.am (libgstglimagesink_la_LIBADD)
	  Original commit message from CVS:
	  2006-01-30  Andy Wingo  <wingo@pobox.com>
	  * sys/glsink/Makefile.am (libgstglimagesink_la_LIBADD)
	  (libgstglimagesink_la_CFLAGS): Add PLUGINS_BASE cflags and libs.

2006-01-29 20:07:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/wavpack/gstwavpackdec.c: Add debug category, use boilerplate macros, fix handling of widths of 32 bits.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_setcaps),
	  (gst_wavpack_dec_base_init), (gst_wavpack_dec_dispose),
	  (gst_wavpack_dec_class_init), (gst_wavpack_dec_sink_event),
	  (gst_wavpack_dec_init), (gst_wavpack_dec_format_samples),
	  (gst_wavpack_dec_chain), (gst_wavpack_dec_plugin_init):
	  Add debug category, use boilerplate macros, fix handling
	  of widths of 32 bits.
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init),
	  (gst_wavpack_parse_dispose), (gst_wavpack_parse_class_init),
	  (gst_wavpack_parse_index_get_last_entry),
	  (gst_wavpack_parse_index_get_entry_from_sample),
	  (gst_wavpack_parse_index_append_entry), (gst_wavpack_parse_reset),
	  (gst_wavpack_parse_src_query),
	  (gst_wavpack_parse_scan_to_find_sample),
	  (gst_wavpack_parse_send_newsegment),
	  (gst_wavpack_parse_handle_seek_event),
	  (gst_wavpack_parse_src_event), (gst_wavpack_parse_init),
	  (gst_wavpack_parse_get_upstream_length),
	  (gst_wavpack_parse_pull_buffer),
	  (gst_wavpack_parse_create_src_pad), (gst_wavpack_parse_loop),
	  (gst_wavpack_parse_change_state),
	  (gst_wavepack_parse_sink_activate),
	  (gst_wavepack_parse_sink_activate_pull),
	  (gst_wavpack_parse_plugin_init):
	  * ext/wavpack/gstwavpackparse.h:
	  Rewrite a bit, mostly to fix flow logic and to make seeking work.
	  Fix buffer/event refcounting. Add some debug statements. Add
	  width of 32 to source pad template caps. Use boilerplate macros.

2006-01-28 12:45:54 +0000  Edward Hervey <bilboed@bilboed.com>

	  sys/glsink/Makefile.am: glimagesink.h is dead, long live glimagesink.h
	  Original commit message from CVS:
	  * sys/glsink/Makefile.am:
	  glimagesink.h is dead, long live glimagesink.h

2006-01-28 04:39:18 +0000  David Schleef <ds@schleef.org>

	  revival of glimagesink.  Kind of works.
	  Original commit message from CVS:
	  * configure.ac:
	  * sys/Makefile.am:
	  * sys/glsink/Makefile.am:
	  * sys/glsink/glimagesink.c:
	  * sys/glsink/glimagesink.h:
	  revival of glimagesink.  Kind of works.

2006-01-27 12:47:12 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faad/gstfaad.c: Handle 'framed' field in caps; Port syncing for raw streams from 0.8 branch (for AAC+ radio strea...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_setcaps),
	  (gst_faad_chanpos_to_gst), (gst_faad_sync), (gst_faad_chain):
	  Handle 'framed' field in caps; Port syncing for raw streams
	  from 0.8 branch (for AAC+ radio streams) (#328722).

2006-01-27 01:31:12 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/sdl/sdlvideosink.*: Fix output stride copying, so that it displays correctly on framebuffer devices that don't ma...
	  Original commit message from CVS:
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported),
	  (gst_sdlvideosink_xoverlay_set_xwindow_id),
	  (gst_sdlvideosink_deinitsdl), (gst_sdlv_process_events),
	  (gst_sdlvideosink_event_thread), (gst_sdlvideosink_initsdl),
	  (gst_sdlvideosink_destroy), (gst_sdlvideosink_create),
	  (gst_sdlvideosink_setcaps), (gst_sdlvideosink_show_frame),
	  (gst_sdlvideosink_change_state),
	  (gst_sdlvideosink_navigation_send_event):
	  * ext/sdl/sdlvideosink.h:
	  Fix output stride copying, so that it displays correctly on
	  framebuffer devices that don't match our implict GStreamer stride
	  arrangement.
	  Fix locking things. Offer XOverlay only when SDL is running against
	  X. Make non-scaled (and ugly) embedding work via X Overlay. It can't
	  actually match the embedded window size because there's no way to
	  figure out what size that should be from the XOverlay interface.
	  See comment in sdlvideosink.c

2006-01-26 16:23:42 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Fix wrong memcpy source pointer.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Fix wrong memcpy source pointer.

2006-01-25 14:44:05 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/libmms/gstmms.c:
	* ext/neon/gstneonhttpsrc.c:
	  Just chain up finalize calls (calling parent_class->finalize).
	  Original commit message from CVS:
	  Just chain up finalize calls (calling parent_class->finalize).

2006-01-25 14:20:04 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/libmms/gstmms.c:
	  Finalize method has been created and others small changes.
	  Original commit message from CVS:
	  Finalize method has been created and others small changes.

2006-01-24 21:33:25 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/musepack/: Fix seeking in musepack files (it's still incredibly slow, but I don't think that is our plugin's faul...
	  Original commit message from CVS:
	  * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init),
	  (gst_musepackdec_class_init), (gst_musepackdec_init),
	  (gst_musepackdec_send_newsegment),
	  (gst_musepackdec_handle_seek_event), (gst_musepackdec_src_event),
	  (gst_musepackdec_src_query), (gst_musepackdec_src_convert),
	  (gst_musepack_stream_init), (gst_musepackdec_sink_activate_pull),
	  (gst_musepackdec_loop), (gst_musepackdec_change_state):
	  * ext/musepack/gstmusepackdec.h:
	  * ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek),
	  (gst_musepack_reader_seek), (gst_musepack_reader_tell),
	  (gst_musepack_reader_get_size):
	  * ext/musepack/gstmusepackreader.h:
	  Fix seeking in musepack files (it's still incredibly slow, but I
	  don't think that is our plugin's fault). Clean up code and get
	  rid of old cruft. Post tags with all kind of neat information like
	  replay gain and such on the bus, if it is available. Add a
	  'musepackdec' debug category.

2006-01-24 11:58:53 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: More coherent framerate setting on caps.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	  (gst_qtdemux_add_stream), (qtdemux_parse_trak):
	  More coherent framerate setting on caps.
	  If sample_size is available, use that for the samples' duration in
	  the index. This enables single frame streams to work (and I imagine
	  fixes some other cases).
	  Tested on testsuite, no regression.

2006-01-23 15:10:55 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Added codec recognition for: _ VP31 : video/x-vp3 _ AVDJ : image/jpeg _ dvcp, dvc  : video/x-d...
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
	  (qtdemux_video_caps), (qtdemux_audio_caps):
	  Added codec recognition for:
	  _ VP31 : video/x-vp3
	  _ AVDJ : image/jpeg
	  _ dvcp, dvc  : video/x-dv, systemstream=(boolean)false
	  _ 0x6d730017 : audio/x-adpcm, layout=(string)quicktime

2006-01-21 18:35:29 +0000  David Schleef <ds@schleef.org>

	  Update from swfdec.
	  Original commit message from CVS:
	  * configure.ac:
	  * ext/swfdec/gstswfdec.c: Update from swfdec.

2006-01-21 11:43:53 +0000  Fabrizio <fabrizio.ge@tiscali.it>

	  gst/qtdemux/qtdemux.c: 'twos' and 'sowt' fourcc can be 16bit or 8bit audio.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
	  (qtdemux_audio_caps):
	  'twos' and 'sowt' fourcc can be 16bit or 8bit audio.
	  Fix 8bit case (#327133, based on patch by: Fabrizio
	  Gennari <fabrizio dot ge at tiscali dot it>).
	  Also, "G_LITTLE_ENDIAN" and "G_BIG_ENDIAN" are not
	  valid literals for endianness in caps strings,
	  only "LITTLE_ENDIAN" and "BIG_ENDIAN" are valid.

2006-01-20 17:04:38 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* ext/ivorbis/vorbisfile.c:
	* ext/neon/gstneonhttpsrc.c:
	  Fixed state transictions PLAYING->NULL->PLAYING.
	  Original commit message from CVS:
	  Fixed state transictions PLAYING->NULL->PLAYING.

2006-01-19 16:49:29 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/ivorbis/vorbisfile.c:
	  Some minor improvements on log messages.
	  Original commit message from CVS:
	  Some minor improvements on log messages.

2006-01-18 18:54:02 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* gst/qtdemux/qtdemux.c:
	  Ronald's patch applied. see bug #326318.
	  Original commit message from CVS:
	  Ronald's patch applied. see bug #326318.

2006-01-17 16:45:43 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.*: Fix seeking for quicktime files. Could still use some more love and sophistication.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	  (gst_qtdemux_send_event), (gst_qtdemux_handle_src_event),
	  (gst_qtdemux_change_state), (gst_qtdemux_loop_header):
	  * gst/qtdemux/qtdemux.h:
	  Fix seeking for quicktime files. Could still use some more
	  love and sophistication.

2006-01-17 13:14:08 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  fixing versioning
	  Original commit message from CVS:
	  fixing versioning

2006-01-16 12:30:41 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/libmms/gstmms.c:
	* ext/neon/gstneonhttpsrc.c:
	* ext/sdl/sdlaudiosink.c:
	  Removed gst_base_src_set_live from mms and neon, and now calling parent_class->dispose in dispose on sdlaudio.
	  Original commit message from CVS:
	  Removed gst_base_src_set_live from mms and neon, and now calling parent_class->dispose in dispose on sdlaudio.

2006-01-11 20:59:39 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/sdl/sdlvideosink.c:
	  Now implementing navigation interface and using GST_BOILER_PLATE_FULL.
	  Original commit message from CVS:
	  Now implementing navigation interface and using GST_BOILER_PLATE_FULL.

2006-01-11 15:34:52 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* sys/Makefile.am:
	* sys/sunaudio/Makefile.am:
	* sys/sunaudio/gstsunaudio.c:
	* sys/sunaudio/gstsunaudiosrc.c:
	* sys/sunaudio/gstsunaudiosrc.h:
	* sys/sunaudio/gstsunelement.c:
	* sys/sunaudio/gstsunelement.h:
	* sys/sunaudio/gstsunmixer.c:
	* sys/sunaudio/gstsunmixer.h:
	  remove old (broken) sunaudio plugin from bad as there is a new working one in -good
	  Original commit message from CVS:
	  remove old (broken) sunaudio plugin from bad as there is a new working one
	  in -good

2006-01-11 14:41:24 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/sdl/sdlaudiosink.c:
	  Replaced wrong style code by GST_BOILERPLATE.
	  Original commit message from CVS:
	  Replaced wrong style code by GST_BOILERPLATE.

2006-01-11 11:04:03 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Add support for Indeo3 video in Quicktime files.
	  Original commit message from CVS:
	  reviewed by: Edward Hervey  <edward@fluendo.com>
	  * gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add support for Indeo3 video in Quicktime files.
	  Closes #326524

2006-01-09 18:20:56 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* configure.ac:
	* ext/sdl/Makefile.am:
	* ext/sdl/gstsdl.c:
	* ext/sdl/sdlaudiosink.c:
	* ext/sdl/sdlaudiosink.h:
	* ext/sdl/sdlvideosink.c:
	  Created new element, sdlaudiosink.
	  Original commit message from CVS:
	  Created new element, sdlaudiosink.

2006-01-05 23:17:44 +0000  Sébastien Moutte <sebastien@moutte.net>

	* ChangeLog:
	* sys/directdraw/gstdirectdrawplugin.c:
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	* sys/directsound/gstdirectsoundplugin.c:
	* sys/directsound/gstdirectsoundsink.c:
	* sys/directsound/gstdirectsoundsink.h:
	* win32/common/config.h:
	* win32/vs6/gst_plugins_bad.dsw:
	* win32/vs6/libgstdirectdraw.dsp:
	* win32/vs6/libgstdirectsound.dsp:
	  added sys/directdraw added sys/directsound added win32/vs6/gst_plugins_bad.dsw added win32/vs6/libgstdirectsound.dsp ...
	  Original commit message from CVS:
	  2006-01-05  Sebastien Moutte  <sebastien@moutte.net>
	  * added sys/directdraw
	  * added sys/directsound
	  * added win32/vs6/gst_plugins_bad.dsw
	  * added win32/vs6/libgstdirectsound.dsp
	  * added win32/vs6/libgstdirectdraw.dsp
	  * added win32/common/config.h

2006-01-05 17:03:15 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  gst/games/gstpuzzle.c: call oil_init() when using liboil
	  Original commit message from CVS:
	  * gst/games/gstpuzzle.c: (plugin_init):
	  call oil_init() when using liboil

2006-01-04 19:39:10 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  Some improvements in cancellation and debug messages.
	  Original commit message from CVS:
	  Some improvements in cancellation and debug messages.

2006-01-04 13:26:35 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  Removed not need thread and changed to push out blocksize bytes.
	  Original commit message from CVS:
	  Removed not need thread and changed to push out blocksize bytes.

=== release 0.10.2 ===

2006-01-03 17:33:16 +0000  Michael Smith <msmith@xiph.org>

	  gst/audioresample/resample.h: As before, but for o_buf
	  Original commit message from CVS:
	  * gst/audioresample/resample.h:
	  As before, but for o_buf

2006-01-03 17:27:13 +0000  Michael Smith <msmith@xiph.org>

	  gst/audioresample/resample.h: Declare struct _ResampleState.buffer as unsigned char *, not void *, since we do arithm...
	  Original commit message from CVS:
	  * gst/audioresample/resample.h:
	  Declare struct _ResampleState.buffer as unsigned char *, not void *,
	  since we do arithmetic on it.

2006-01-02 15:05:09 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  add neon plugin to spec file
	  Original commit message from CVS:
	  add neon plugin to spec file

2005-12-30 15:41:21 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/smoothwave/.gitignore:
	* ext/smoothwave/Makefile.am:
	* ext/smoothwave/README:
	* ext/smoothwave/demo-osssrc.c:
	* ext/smoothwave/gstsmoothwave.c:
	* ext/smoothwave/gstsmoothwave.h:
	  move smoothwave to gst
	  Original commit message from CVS:
	  move smoothwave to gst

2005-12-28 21:07:17 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/Makefile.am:
	* ext/neon/Makefile.am:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  Created new element neonhttpsrc.
	  Original commit message from CVS:
	  Created new element neonhttpsrc.

2005-12-19 15:19:44 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/swfdec/gstswfdec.c: Add debugging category and return GstFlowReturn in the right places
	  Original commit message from CVS:
	  * ext/swfdec/gstswfdec.c: (gst_swfdec_class_init),
	  (gst_swfdec_chain), (gst_swfdec_render):
	  Add debugging category and return GstFlowReturn in the right places
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link):
	  Get something from the peer pad once we've checked if there is a peer pad.
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	  (qtdemux_tree_get_child_by_type), (qtdemux_parse_trak),
	  (qtdemux_video_caps):
	  Couple of fixes

2005-12-19 14:58:47 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/divx/Makefile.am:
	  just a small fix. I have to pay more attention when commiting ;-)
	  Original commit message from CVS:
	  just a small fix. I have to pay more attention when commiting ;-)

2005-12-19 14:40:22 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/Makefile.am:
	* ext/divx/Makefile.am:
	* ext/divx/gstdivxdec.c:
	* ext/divx/gstdivxdec.h:
	* ext/divx/gstdivxenc.c:
	* ext/divx/gstdivxenc.h:
	  divxdec and divxenc ported to 0.10
	  Original commit message from CVS:
	  divxdec and divxenc ported to 0.10

2005-12-18 21:06:47 +0000  Julien Moutte <julien@moutte.net>

	  Some more refactoring, handle exotic DirectFB row stride.
	  Original commit message from CVS:
	  2005-12-18  Julien MOUTTE  <julien@moutte.net>
	  * docs/plugins/gst-plugins-bad-plugins-decl.txt:
	  * ext/directfb/dfbvideosink.c:
	  (gst_dfbvideosink_surface_create),
	  (gst_dfbvideosink_event_thread),
	  (gst_dfbvideosink_enum_devices),
	  (gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup),
	  (gst_dfbvideosink_can_blit_from_format),
	  (gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps),
	  (gst_dfbvideosink_show_frame), (gst_dfbvideosink_buffer_alloc),
	  (gst_dfbsurface_finalize),
	  (gst_dfbvideosink_navigation_send_event),
	  (gst_dfbvideosink_update_colorbalance),
	  (gst_dfbvideosink_set_property), (gst_dfbvideosink_init): Some
	  more refactoring, handle exotic DirectFB row stride.

2005-12-18 10:58:44 +0000  Julien Moutte <julien@moutte.net>

	  docs/plugins/: Updates.
	  Original commit message from CVS:
	  2005-12-18  Julien MOUTTE  <julien@moutte.net>
	  * docs/plugins/gst-plugins-bad-plugins-decl.txt:
	  * docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	  Updates.
	  * ext/directfb/dfbvideosink.c:
	  (gst_dfbvideosink_surface_create),
	  (gst_dfbvideosink_event_thread),
	  (gst_dfbvideosink_enum_devices),
	  (gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup),
	  (gst_dfbvideosink_can_blit_from_format),
	  (gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps),
	  (gst_dfbvideosink_show_frame), (gst_dfbvideosink_buffer_alloc),
	  (gst_dfbsurface_finalize),
	  (gst_dfbvideosink_navigation_send_event),
	  (gst_dfbvideosink_update_colorbalance),
	  (gst_dfbvideosink_set_property),
	  (gst_dfbvideosink_get_property),
	  (gst_dfbvideosink_finalize), (gst_dfbvideosink_init),
	  (gst_dfbvideosink_class_init):
	  * ext/directfb/dfbvideosink.h: Implement pixel-aspect-ratio.
	  This should work both for hardware accelerated scaling and
	  reverse caps negotiation with a scaling element.

2005-12-17 17:48:38 +0000  Julien Moutte <julien@moutte.net>

	  docs/plugins/: Updates.
	  Original commit message from CVS:
	  2005-12-17  Julien MOUTTE  <julien@moutte.net>
	  * docs/plugins/gst-plugins-bad-plugins-decl.txt:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/inspect/plugin-dfbvideosink.xml:
	  * docs/plugins/inspect/plugin-qtdemux.xml:
	  * docs/plugins/inspect/plugin-sdlvideosink.xml:
	  * docs/plugins/inspect/plugin-speed.xml:
	  * docs/plugins/inspect/plugin-tta.xml: Updates.
	  * ext/directfb/dfbvideosink.c:
	  (gst_dfbvideosink_surface_create),
	  (gst_dfbvideosink_event_thread), (gst_dfbvideosink_enum_vmodes),
	  (gst_dfbvideosink_enum_devices), (gst_dfbvideosink_setup),
	  (gst_dfbvideosink_cleanup),
	  (gst_dfbvideosink_can_blit_from_format),
	  (gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps),
	  (gst_dfbvideosink_setcaps), (gst_dfbvideosink_show_frame),
	  (gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize),
	  (gst_dfbvideosink_interface_supported),
	  (gst_dfbvideosink_navigation_send_event),
	  (gst_dfbvideosink_update_colorbalance),
	  (gst_dfbvideosink_colorbalance_list_channels),
	  (gst_dfbvideosink_colorbalance_set_value),
	  (gst_dfbvideosink_colorbalance_get_value),
	  (gst_dfbvideosink_colorbalance_init),
	  (gst_dfbvideosink_set_property),
	  (gst_dfbvideosink_get_property),
	  (gst_dfbvideosink_init), (gst_dfbvideosink_class_init):
	  * ext/directfb/dfbvideosink.h: Implement vertical sync and
	  color balance interface.

2005-12-16 21:55:18 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  don't use doc comments for non-docs change some char* into char[]
	  Original commit message from CVS:
	  * ext/artsd/gstartsdsink.c: (gst_artsdsink_open_audio):
	  * gst/festival/gstfestival.c: (socket_receive_file_to_buff):
	  * gst/vbidec/vbidata.c:
	  * gst/vbidec/vbidata.h:
	  * gst/vbidec/vbiscreen.c:
	  * sys/dxr3/ac3_padder.c:
	  don't use doc comments for non-docs
	  change some char* into char[]

2005-12-16 14:47:59 +0000  Julien Moutte <julien@moutte.net>

	  ext/directfb/dfbvideosink.c: Always prefer the primary layer.
	  Original commit message from CVS:
	  2005-12-16  Julien MOUTTE  <julien@moutte.net>
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers),
	  (gst_dfbvideosink_init): Always prefer the primary layer.

2005-12-16 12:25:38 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/wavpack/gstwavpackdec.c: Oops, remove trailing comma from caps string.
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c:
	  Oops, remove trailing comma from caps string.

2005-12-16 09:59:21 +0000  gcocatre@gmail.com <gcocatre@gmail.com>

	  ext/wavpack/: Wavpack supports samplerates from 6-192kHz, fix pad template remove buffer-frames from caps, they are g...
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link):
	  * ext/wavpack/gstwavpackparse.c:
	  Wavpack supports samplerates from 6-192kHz, fix pad template
	  caps (fixes #322973; patch by: gcocatre@gmail.com). Also
	  remove buffer-frames from caps, they are gone in 0.10.

2005-12-15 14:39:00 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/xvid/Makefile.am:
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	  Fixed some mem-leaks in xvid.
	  Original commit message from CVS:
	  Fixed some mem-leaks in xvid.

2005-12-15 10:30:14 +0000  Michael Smith <msmith@xiph.org>

	  gst/audioresample/gstaudioresample.c: Don't leak all input buffers to audioresample.
	  Original commit message from CVS:
	  * gst/audioresample/gstaudioresample.c:
	  Don't leak all input buffers to audioresample.

2005-12-15 08:54:26 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/directfb/dfbvideosink.c:
	  doesn't use liboil
	  Original commit message from CVS:
	  doesn't use liboil

2005-12-14 22:41:47 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/Makefile.am:
	* ext/xvid/gstxvid.c:
	* ext/xvid/gstxvid.h:
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxviddec.h:
	* ext/xvid/gstxvidenc.c:
	* ext/xvid/gstxvidenc.h:
	  xviddec and xvideenc ported to 0.10
	  Original commit message from CVS:
	  xviddec and xvideenc ported to 0.10

2005-12-14 20:54:06 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/Makefile.am:
	* ext/dts/Makefile.am:
	* ext/dts/gstdtsdec.c:
	* ext/dts/gstdtsdec.h:
	  dtsdec ported to 0.10
	  Original commit message from CVS:
	  dtsdec ported to 0.10

2005-12-12 10:40:42 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/: GstObjects must be unref'ed with gst_object_unref() instead of g_object_unref(), otherwise things break for GLi...
	  Original commit message from CVS:
	  * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop):
	  * ext/libmms/gstmms.c: (gst_mms_src_query), (gst_mms_create):
	  * ext/musepack/gstmusepackdec.c: (gst_musepackdec_src_query),
	  (gst_musepackdec_loop):
	  * ext/swfdec/gstswfdec.c: (gst_swfdec_video_link),
	  (gst_swfdec_src_query):
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query):
	  GstObjects must be unref'ed with gst_object_unref() instead of
	  g_object_unref(), otherwise things break for GLib-2.6 users.

2005-12-12 09:29:21 +0000  David Schleef <ds@schleef.org>

	  ext/swfdec/gstswfdec.c: Add a subclass of GstBuffer that wraps SwfdecBuffers.  Fix a massive memleak because the vide...
	  Original commit message from CVS:
	  * ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_get_type),
	  (gst_swfdecbuffer_class_init), (gst_swfdecbuffer_finalize),
	  (gst_swfdec_buffer_from_swf), (gst_swfdec_render): Add a subclass
	  of GstBuffer that wraps SwfdecBuffers.  Fix a massive memleak
	  because the video buffers previously never got freed.

2005-12-11 23:54:56 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/libmms/gstmms.c:
	  Just removed a weird printf ;-)
	  Original commit message from CVS:
	  Just removed a weird printf ;-)

2005-12-11 23:09:21 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/libmms/gstmms.c:
	* ext/libmms/gstmms.h:
	  Added suport to mmsh. There's still a sucks msg "ERROR: Pipeline cant PREROOL..." to be fixed.
	  Original commit message from CVS:
	  Added suport to mmsh. There's still a sucks msg "ERROR: Pipeline cant PREROOL..." to be fixed.

2005-12-09 15:30:21 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/faad/gstfaad.c: Assume that an unknown channel mapping with 2 channels is stereo and play it that way instead of ...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst),
	  (gst_faad_update_caps):
	  Assume that an unknown channel mapping with 2 channels
	  is stereo and play it that way instead of erroring.
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	  (gst_qtdemux_add_stream), (qtdemux_parse_trak):
	  Handle e.g. jpeg streams with 0 duration frames as having 0 framerate.
	  Debug fixes. Some 64 bit variable fixes

2005-12-09 04:15:02 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* configure.ac:
	* ext/Makefile.am:
	* ext/swfdec/Makefile.am:
	* ext/swfdec/gstswfdec.c:
	* ext/swfdec/gstswfdec.h:
	  swfdec Ported to 0.10.
	  Original commit message from CVS:
	  swfdec Ported to 0.10.

2005-12-07 11:46:15 +0000  Edward Hervey <bilboed@bilboed.com>

	  gst/qtdemux/qtdemux.c: Memleak fixes.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	  (gst_qtdemux_add_stream):
	  Memleak fixes.
	  Send out EOS for valid reasons (couldn't pull_range() from upstream
	  for example).

2005-12-06 19:55:58 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* ext/audiofile/gstafparse.h:
	* ext/audiofile/gstafsink.c:
	* ext/audiofile/gstafsink.h:
	* ext/audiofile/gstafsrc.c:
	* ext/audiofile/gstafsrc.h:
	* ext/cdaudio/gstcdaudio.c:
	* ext/divx/gstdivxenc.c:
	* ext/dts/gstdtsdec.h:
	* ext/faac/gstfaac.h:
	* ext/ivorbis/vorbisenc.h:
	* ext/ivorbis/vorbisfile.c:
	* ext/musepack/gstmusepackdec.h:
	* ext/nas/nassink.c:
	* ext/snapshot/gstsnapshot.c:
	* ext/sndfile/gstsf.h:
	* ext/tarkin/gsttarkindec.h:
	* ext/tarkin/gsttarkinenc.h:
	* ext/xine/gstxine.h:
	* ext/xine/xinecaps.c:
	* ext/xvid/gstxvid.h:
	* gst-libs/gst/play/play.h:
	* gst/apetag/apedemux.h:
	* gst/cdxaparse/gstcdxaparse.h:
	* gst/cdxaparse/gstcdxastrip.h:
	* gst/cdxaparse/gstvcdparse.h:
	* gst/colorspace/yuv2rgb.c:
	* gst/colorspace/yuv2rgb.h:
	* gst/equalizer/gstiirequalizer.c:
	* gst/festival/gstfestival.h:
	* gst/games/gstpuzzle.c:
	* gst/games/gstvideoimage.c:
	* gst/games/gstvideoimage.h:
	* gst/modplug/gstmodplug.h:
	* gst/modplug/libmodplug/it_defs.h:
	* gst/modplug/libmodplug/modplug.h:
	* gst/modplug/libmodplug/sndfile.h:
	* gst/modplug/libmodplug/stdafx.h:
	* gst/mpeg1sys/buffer.c:
	* gst/mpeg1sys/gstmpeg1systemencode.h:
	* gst/mpeg1sys/main.h:
	* gst/mpeg1sys/systems.c:
	* gst/mpeg1videoparse/gstmp1videoparse.h:
	* gst/mpeg2sub/gstmpeg2subt.h:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	* gst/multifilesink/gstmultifilesink.h:
	* gst/overlay/gstoverlay.h:
	* gst/qtdemux/qtdemux.c:
	* gst/qtdemux/qtdemux.h:
	* gst/rtjpeg/RTjpeg.c:
	* gst/rtjpeg/RTjpeg.h:
	* gst/tta/crc32.h:
	* gst/tta/filters.h:
	* gst/tta/ttadec.h:
	* gst/videodrop/gstvideodrop.h:
	* sys/cdrom/gstcdplayer.h:
	* sys/cdrom/gstcdplayer_ioctl.c:
	* sys/cdrom/gstcdplayer_ioctl.h:
	* sys/cdrom/gstcdplayer_ioctl_bsd.h:
	* sys/cdrom/gstcdplayer_ioctl_irix.h:
	* sys/cdrom/gstcdplayer_ioctl_solaris.h:
	* sys/dxr3/dxr3audiosink.c:
	* sys/dxr3/dxr3audiosink.h:
	* sys/dxr3/dxr3spusink.c:
	* sys/dxr3/dxr3spusink.h:
	* sys/dxr3/dxr3videosink.c:
	* sys/dxr3/dxr3videosink.h:
	* sys/qcam/dark.c:
	* sys/qcam/gstqcamsrc.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	* sys/vcd/vcdsrc.h:
	  expand tabs
	  Original commit message from CVS:
	  expand tabs

2005-12-06 19:44:48 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/ladspa/gstsignalprocessor.h:
	* ext/ladspa/search.c:
	* ext/ladspa/utils.h:
	  expand tabs
	  Original commit message from CVS:
	  expand tabs

2005-12-06 19:42:02 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/audioresample/buffer.h:
	* gst/audioresample/functable.h:
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/resample.h:
	* tests/check/elements/audioresample.c:
	  expand tabs
	  Original commit message from CVS:
	  expand tabs

2005-12-05 18:11:32 +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:01:48 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-sdlvideosink.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	  releasing 0.10.0
	  Original commit message from CVS:
	  releasing 0.10.0

2005-12-05 13:04:22 +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/faac/gstfaac.c: (gst_faac_sink_event), (gst_faac_chain):
	  * ext/faad/gstfaad.c: (gst_faad_chain):
	  * ext/hermes/gsthermescolorspace.c: (gst_hermes_colorspace_chain):
	  * ext/lcs/gstcolorspace.c: (gst_colorspace_chain):
	  * ext/xine/xineinput.c: (gst_xine_input_get):
	  * gst/colorspace/gstcolorspace.c: (gst_colorspace_chain):
	  * gst/speed/gstspeed.c: (speed_chain):
	  * gst/videocrop/gstvideocrop.c: (gst_video_crop_chain): Update for
	  alloc_buffer changes.

2005-12-05 13:02:58 +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/dv/gstdvdec.c: (gst_dvdec_chain):
	  * ext/flac/gstflacdec.c: (gst_flacdec_write):
	  * ext/flac/gstflacenc.c: (gst_flacenc_write_callback):
	  * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_chain):
	  * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_chain):
	  * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain):
	  * ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
	  * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_process):
	  * ext/libpng/gstpngdec.c: (user_info_callback), (gst_pngdec_task):
	  * ext/speex/gstspeexdec.c: (speex_dec_chain):
	  * ext/speex/gstspeexenc.c: (gst_speexenc_chain):
	  * gst/auparse/gstauparse.c: (gst_auparse_chain):
	  * gst/flx/gstflxdec.c: (gst_flxdec_chain):
	  * gst/goom/gstgoom.c: (gst_goom_chain):
	  * gst/matroska/matroska-demux.c:
	  (gst_matroska_demux_push_vorbis_codec_priv_data),
	  (gst_matroska_demux_add_wvpk_header):
	  * gst/multipart/multipartdemux.c: (gst_multipart_demux_chain):
	  * gst/multipart/multipartmux.c: (gst_multipart_mux_collected):
	  * gst/videomixer/videomixer.c: (gst_videomixer_collected):
	  * gst/wavenc/gstwavenc.c: (gst_wavenc_chain): Update for
	  alloc_buffer changes.

2005-12-04 22:46:34 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  update spec file
	  Original commit message from CVS:
	  update spec file

2005-12-02 11:34:50 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/audioresample/: Fix audioresample, seek torture, new segments, reverse negotiation etc.. work fine.
	  Original commit message from CVS:
	  * gst/audioresample/buffer.c: (audioresample_buffer_queue_flush):
	  * gst/audioresample/buffer.h:
	  * gst/audioresample/gstaudioresample.c:
	  * gst/audioresample/gstaudioresample.h:
	  * gst/audioresample/resample.c: (resample_input_flush),
	  (resample_input_pushthrough), (resample_input_eos),
	  (resample_get_output_size_for_input),
	  (resample_get_input_size_for_output), (resample_get_output_size),
	  (resample_get_output_data):
	  * gst/audioresample/resample.h:
	  * gst/audioresample/resample_ref.c: (resample_scale_ref):
	  Fix audioresample, seek torture, new segments, reverse negotiation
	  etc.. work fine.

2005-12-02 09:32:21 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/Makefile.am: Add missing $(WAVPACK_DIR) (#322962).
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  Add missing $(WAVPACK_DIR) (#322962).

2005-12-01 19:17:34 +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:13:20 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* LICENSE:
	* NEWS:
	* PORTED_09:
	* RELEASE:
	* common:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-sdlvideosink.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/random/LICENSE:
	* docs/random/PORTED_09:
	  releasing 0.9.7
	  Original commit message from CVS:
	  releasing 0.9.7

2005-11-29 02:55:18 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* PORTED_09:
	* common:
	* configure.ac:
	* ext/Makefile.am:
	* ext/libmms/Makefile.am:
	* ext/libmms/gstmms.c:
	* ext/libmms/gstmms.h:
	  libmm ported to 0.9. It works fine, but print some error messages. I'll fix them soon. Tested with  mmssrc location=m...
	  Original commit message from CVS:
	  libmm ported to 0.9. It works fine, but print some error messages. I'll fix them soon. Tested with  mmssrc location=mms:// ! filesink.

2005-11-28 21:22:39 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* ext/directfb/dfbvideosink.h:
	  fix header
	  Original commit message from CVS:
	  fix header

2005-11-28 17:47:27 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/sdl/sdlvideosink.h:
	  fix include
	  Original commit message from CVS:
	  fix include

2005-11-28 15:43:29 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/faad/gstfaad.c: Handle gracefully the consequence of "Maximum number of scalefactor bands exceeded", which result...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
	  Handle gracefully the consequence of "Maximum number of scalefactor
	  bands exceeded", which results in 0 channels with samplerates of 0.
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state):
	  Do upward transitions, then call parent state_change, then do
	  downward transitions.

2005-11-28 15:19:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/Makefile.am:
	  fix makefile
	  Original commit message from CVS:
	  fix makefile

2005-11-28 14:50:44 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  ext/Makefile.am: alphabets, so hard to master.  Should fix distcheck.
	  Original commit message from CVS:
	  * ext/Makefile.am:
	  alphabets, so hard to master.  Should fix distcheck.

2005-11-27 14:35:27 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* Makefile.am:
	* common:
	* gst-plugins-bad.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 19:58:19 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* PORTED_09:
	* configure.ac:
	* ext/Makefile.am:
	* ext/wavpack/Makefile.am:
	* ext/wavpack/gstwavpackdec.c:
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackparse.c:
	* ext/wavpack/gstwavpackparse.h:
	  Wavpack ported to 0.9. No support for correction file yet.
	  Original commit message from CVS:
	  Wavpack ported to 0.9. No support for correction file yet.

2005-11-25 18:15:51 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  ext/wavpack/: put back wavpack - still needs porting
	  Original commit message from CVS:
	  * ext/wavpack/gstwavpackcommon.h:
	  * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link),
	  (gst_wavpack_dec_wvclink), (gst_wavpack_dec_get_type),
	  (gst_wavpack_dec_base_init), (gst_wavpack_dec_dispose),
	  (gst_wavpack_dec_class_init), (gst_wavpack_dec_src_query),
	  (gst_wavpack_dec_init), (gst_wavpack_dec_setup_context),
	  (gst_wavpack_dec_format_samples), (gst_wavpack_dec_loop),
	  (gst_wavpack_dec_plugin_init):
	  * ext/wavpack/gstwavpackdec.h:
	  * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_get_type),
	  (gst_wavpack_parse_base_init), (gst_wavpack_parse_dispose),
	  (gst_wavpack_parse_class_init), (gst_wavpack_parse_src_query),
	  (gst_wavpack_parse_src_event), (find_header), (find_sample),
	  (gst_wavpack_parse_seek), (gst_wavpack_parse_init),
	  (gst_wavpack_parse_handle_event), (gst_wavpack_parse_loop),
	  (gst_wavpack_parse_change_state), (gst_wavpack_parse_plugin_init):
	  * ext/wavpack/gstwavpackparse.h:
	  put back wavpack - still needs porting

2005-11-23 21:27:20 +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: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.6 ===

2005-11-23 19:57:49 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-sdlvideosink.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	  releasing 0.9.6
	  Original commit message from CVS:
	  releasing 0.9.6

2005-11-23 18:05:16 +0000  Julien Moutte <julien@moutte.net>

	  Use fraction for framerate, various fixes.
	  Original commit message from CVS:
	  2005-11-23  Julien MOUTTE  <julien@moutte.net>
	  * docs/plugins/gst-plugins-bad-plugins-decl.txt:
	  * ext/directfb/dfb-example.c: (main):
	  * ext/directfb/dfbvideosink.c:
	  (gst_dfbvideosink_surface_destroy),
	  (gst_dfbvideosink_event_thread), (gst_dfbvideosink_setup),
	  (gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps),
	  (gst_dfbvideosink_change_state), (gst_dfbvideosink_get_times),
	  (gst_dfbvideosink_bufferpool_clear),
	  (gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize),
	  (gst_dfbvideosink_navigation_send_event),
	  (gst_dfbvideosink_finalize), (gst_dfbvideosink_init),
	  (gst_dfbvideosink_class_init):
	  * ext/directfb/dfbvideosink.h: Use fraction for framerate,
	  various
	  fixes.

2005-11-23 15:36:08 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  ext/sdl/sdlvideosink.*: Updates for fractional framerates and XOverlay interface changes
	  Original commit message from CVS:
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init),
	  (gst_sdlvideosink_get_times), (gst_sdlvideosink_init),
	  (gst_sdlvideosink_setcaps), (gst_sdlvideosink_change_state):
	  * ext/sdl/sdlvideosink.h:
	  Updates for fractional framerates and XOverlay interface changes

2005-11-23 11:57:51 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  gst/qtdemux/qtdemux.c: Convert to fractional framerates
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	  (gst_qtdemux_add_stream), (qtdemux_dump_mvhd),
	  (qtdemux_parse_trak):
	  Convert to fractional framerates

2005-11-23 00:28:12 +0000  Edward Hervey <bilboed@bilboed.com>

	  ext/musepack/gstmusepackdec.c: Fix for latest API changes
	  Original commit message from CVS:
	  * ext/musepack/gstmusepackdec.c: (gst_musepackdec_loop):
	  Fix for latest API changes

2005-11-22 15:09:28 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* PORTED_09:
	* configure.ac:
	* ext/Makefile.am:
	* ext/musepack/gstmusepackdec.c:
	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.c:
	* ext/musepack/gstmusepackreader.h:
	  Musepackdec ported to 0.9. There is still a small problem to be solved, after the end of file, the pipeline doens't s...
	  Original commit message from CVS:
	  Musepackdec ported to 0.9. There is still a small problem to be solved, after the end of file, the pipeline doens't stop.

2005-11-22 11:57:51 +0000  Andy Wingo <wingo@pobox.com>

	* ChangeLog:
	* ext/faad/gstfaad.c:
	* ext/ivorbis/vorbisfile.c:
	* gst/qtdemux/qtdemux.c:
	* gst/speed/gstspeed.c:
	* gst/tta/gstttaparse.c:
	  ext/faad/gstfaad.c (gst_faad_event) ext/ivorbis/vorbisfile.c (gst_ivorbisfile_loop) gst/qtdemux/qtdemux.c (gst_qtdemu...
	  Original commit message from CVS:
	  2005-11-22  Andy Wingo  <wingo@pobox.com>
	  * ext/faad/gstfaad.c (gst_faad_event)
	  * ext/ivorbis/vorbisfile.c (gst_ivorbisfile_loop)
	  * gst/qtdemux/qtdemux.c (gst_qtdemux_loop_header)
	  * gst/speed/gstspeed.c (speed_sink_event)
	  * gst/tta/gstttaparse.c (gst_tta_parse_src_event)
	  (gst_tta_parse_parse_header): Run update-funcnames.

2005-11-21 18:45:54 +0000  Michael Smith <msmith@xiph.org>

	  ext/faad/gstfaad.c: Don't take STREAM_LOCK in sink event handlers any more.
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_event):
	  Don't take STREAM_LOCK in sink event handlers any more.

2005-11-21 18:09:01 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Update for stream lock API changes: don't take stream log in sink event handlers any longer and change GST_STREAM_LOC...
	  Original commit message from CVS:
	  * ext/dv/gstdvdemux.c: (gst_dvdemux_handle_sink_event):
	  * ext/flac/gstflacdec.c: (gst_flacdec_loop),
	  (gst_flacdec_src_event):
	  * ext/flac/gstflacenc.c: (gst_flacenc_sink_event):
	  * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_event),
	  (gst_signal_processor_getrange), (gst_signal_processor_chain):
	  * gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek):
	  * gst/flx/gstflxdec.c: (gst_flxdec_src_event_handler),
	  (gst_flxdec_sink_event_handler):
	  * gst/matroska/matroska-demux.c:
	  (gst_matroska_demux_handle_seek_event):
	  * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek):
	  Update for stream lock API changes: don't take stream log
	  in sink event handlers any longer and change GST_STREAM_LOCK
	  to GST_PAD_STREAM_LOCK. Don't leak references in flxdec event
	  functions.

2005-11-21 17:37:41 +0000  Wim Taymans <wim.taymans@gmail.com>

	  Fix for stream lock updates.
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_sink_event):
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_event):
	  * gst/tta/gstttaparse.c: (gst_tta_parse_src_event):
	  Fix for stream lock updates.

2005-11-21 17:14:02 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/: Segment update fix.
	  Original commit message from CVS:
	  * gst-libs/gst/audio/gstbaseaudiosink.c:
	  (gst_base_audio_sink_class_init), (gst_base_audio_sink_init),
	  (gst_base_audio_sink_provide_clock),
	  (gst_base_audio_sink_set_clock), (gst_base_audio_sink_render),
	  (gst_base_audio_sink_change_state):
	  * gst/audioresample/gstaudioresample.c:
	  Segment update fix.

2005-11-21 16:45:46 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: j@bootlab.org, #321903).
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add DX50, DIVX and DIV3 fourccs (patch by
	  j@bootlab.org, #321903).

2005-11-21 16:37:18 +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 14:39:04 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Update for GST_FOURCC_FORMAT API change.
	  Original commit message from CVS:
	  * ext/directfb/dfbvideosink.c:
	  (gst_dfbvideosink_get_format_from_caps):
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_create):
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	  (qtdemux_parse), (qtdemux_type_get), (qtdemux_node_dump_foreach),
	  (qtdemux_dump_hdlr), (qtdemux_dump_dref), (qtdemux_dump_stsd),
	  (qtdemux_dump_dcom), (qtdemux_parse_trak), (qtdemux_video_caps),
	  (qtdemux_audio_caps):
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps):
	  * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	  (gst_v4l2src_capture_init), (gst_v4l2src_get_size_limits):
	  Update for GST_FOURCC_FORMAT API change.

2005-11-21 14:33:11 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  Rename gst_caps_structure_fixate_* to gst_structure_fixate_* (#322027)
	  Original commit message from CVS:
	  * ext/audioresample/gstaudioresample.c:
	  * ext/polyp/polypsink.c: (gst_polypsink_sink_fixate):
	  * gst/librfb/gstrfbsrc.c: (gst_rfbsrc_fixate):
	  * gst/modplug/gstmodplug.cc:
	  * sys/glsink/glimagesink.c: (gst_glimagesink_fixate):
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_fixate):
	  Rename gst_caps_structure_fixate_* to gst_structure_fixate_*
	  (#322027)

2005-11-21 03:21:04 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* ext/ivorbis/Makefile.am:
	* ext/ivorbis/vorbisfile.c:
	  Now it works in push-mode. Tested with gnomevfssrc location=http://..  ! tremor ! alsasink.
	  Original commit message from CVS:
	  Now it works in push-mode. Tested with gnomevfssrc location=http://..  ! tremor ! alsasink.
	  Some issues to be solved yet:
	  1- set correct timestamps
	  2- seek is forced to disabled in pull-mode

2005-11-16 17:26:10 +0000  Christian Schaller <uraeus@gnome.org>

	* common:
	* gst-plugins-bad.spec.in:
	  make it work
	  Original commit message from CVS:
	  make it work

2005-11-15 16:50:18 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faac/gstfaac.c: Set proper caps on source pad (#320532).
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_base_init), (gst_faac_init),
	  (gst_faac_sink_setcaps), (gst_faac_configure_source_pad),
	  (gst_faac_chain):
	  Set proper caps on source pad (#320532).
	  * ext/faad/gstfaad.c:
	  Don't use gtk-doc markers for comment block.

2005-11-15 08:38:16 +0000  Christian Schaller <uraeus@gnome.org>

	* ext/ivorbis/vorbis.c:
	  set rank to secondary as you never want this to be used instead of normal oggdemux etc.
	  Original commit message from CVS:
	  set rank to secondary as you never want this to be used instead of normal oggdemux etc.

2005-11-14 17:11:55 +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-14 02:13:26 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* ext/ladspa/gstladspa.c:
	  rework configure.ac; make asterisk rtp stuff compile on mingw
	  Original commit message from CVS:
	  rework configure.ac; make asterisk rtp stuff compile on mingw

2005-11-11 19:39:17 +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:38:17 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	  releasing 0.9.5
	  Original commit message from CVS:
	  releasing 0.9.5

2005-11-11 18:54:14 +0000  Michael Smith <msmith@xiph.org>

	* ChangeLog:
	* ext/faad/gstfaad.c:
	  Fix compile on systems with broken faad headers.
	  Original commit message from CVS:
	  Fix compile on systems with broken faad headers.

2005-11-11 18:17:22 +0000  Michael Smith <msmith@xiph.org>

	  ext/faad/gstfaad.c: Call functions with the correct API. Unfortunately, unless your distribution patches upstream, th...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain):
	  Call functions with the correct API. Unfortunately, unless your
	  distribution patches upstream, the public header file for FAAD
	  doesn't actually declare the API accurately. So, some nastiness
	  ensues...

2005-11-10 12:34:26 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Add support for custom genre tags.
	  Original commit message from CVS:
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta):
	  Add support for custom genre tags.

2005-11-09 01:04:05 +0000  Tim-Philipp Müller <tim@centricular.net>

	  Don't use gtk-doc markers for normal comments. Fix gtk-doc formatting where required.
	  Original commit message from CVS:
	  * ext/tarkin/wavelet.c:
	  * ext/tarkin/wavelet.h:
	  * gst/mpegaudioparse/gstmpegaudioparse.c:
	  * gst/vbidec/vbidata.c:
	  * gst/vbidec/vbiscreen.h:
	  * sys/dxr3/ac3_padder.c:
	  * sys/dxr3/dxr3audiosink.c:
	  * sys/dxr3/dxr3spusink.c:
	  * sys/dxr3/dxr3videosink.c:
	  * sys/qcam/dark.c:
	  Don't use gtk-doc markers for normal comments. Fix
	  gtk-doc formatting where required.

2005-11-08 14:20:50 +0000  Christian Schaller <uraeus@gnome.org>

	* configure.ac:
	* ext/Makefile.am:
	  remove wrong mpegstream addition
	  Original commit message from CVS:
	  remove wrong mpegstream addition

2005-11-08 14:17:03 +0000  Christian Schaller <uraeus@gnome.org>

	* configure.ac:
	* gst-plugins-bad.spec.in:
	  add tremor plugins to needed buildscripts
	  Original commit message from CVS:
	  add tremor plugins to needed buildscripts

2005-11-08 13:55:13 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* PORTED_09:
	* configure.ac:
	* ext/Makefile.am:
	* ext/ivorbis/vorbis.c:
	* ext/ivorbis/vorbisfile.c:
	  Ported to 0.9. Some issues to be solved yet: 1- set correct timestamps 2- seg fault when eos 3- seek is now disabled
	  Original commit message from CVS:
	  Ported to 0.9. Some issues to be solved yet:
	  1- set correct timestamps
	  2- seg fault when eos
	  3- seek is now disabled

2005-11-06 22:28:33 +0000  Julien Moutte <julien@moutte.net>

	  examples/Makefile.am: Cleanup non existing examples.
	  Original commit message from CVS:
	  2005-11-06  Julien MOUTTE  <julien@moutte.net>
	  * examples/Makefile.am: Cleanup non existing
	  examples.

2005-11-06 22:23:07 +0000  Julien Moutte <julien@moutte.net>

	  docs/plugins/inspect.stamp: Add missing files.
	  Original commit message from CVS:
	  2005-11-06  Julien MOUTTE  <julien@moutte.net>
	  * docs/plugins/inspect.stamp: Add missing files.

2005-11-06 22:19:05 +0000  Julien Moutte <julien@moutte.net>

	  examples/Makefile.am: Make buildbot happy.
	  Original commit message from CVS:
	  2005-11-06  Julien MOUTTE  <julien@moutte.net>
	  * examples/Makefile.am: Make buildbot happy.

2005-11-06 22:16:27 +0000  Julien Moutte <julien@moutte.net>

	  Makefile.am: examples in dist subdirs.
	  Original commit message from CVS:
	  2005-11-06  Julien MOUTTE  <julien@moutte.net>
	  * Makefile.am: examples in dist subdirs.
	  * configure.ac: enable parameter for building
	  examples.
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/inspect/plugin-dfbvideosink.xml:
	  * examples/Makefile.am: Updates.

2005-11-06 21:55:01 +0000  Julien Moutte <julien@moutte.net>

	  Enable documentation.
	  Original commit message from CVS:
	  2005-11-06  Julien MOUTTE  <julien@moutte.net>
	  * Makefile.am:
	  * autogen.sh:
	  * configure.ac:
	  * docs/Makefile.am:
	  * docs/plugins/.cvsignore:
	  * docs/plugins/Makefile.am:
	  * docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	  * docs/plugins/gst-plugins-bad-plugins-decl.txt:
	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  * docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	  * docs/plugins/gst-plugins-bad-plugins.args:
	  * docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  * docs/plugins/gst-plugins-bad-plugins.interfaces:
	  * docs/plugins/gst-plugins-bad-plugins.prerequisites:
	  * docs/plugins/gst-plugins-bad-plugins.signals:
	  * docs/plugins/gst-plugins-bad-plugins.types:
	  * docs/plugins/inspect/plugin-dfbvideosink.xml:
	  * docs/version.entities.in: Enable documentation.
	  * examples/Makefile.am:
	  * examples/directfb/Makefile.am:
	  * examples/directfb/decker.ttf:
	  * examples/directfb/dfblogo.png:
	  * examples/directfb/gstdfb.c: (myclock), (dynamic_link),
	  (size_changed), (setup_dynamic_link), (main): Add an example
	  application for DirectFB.

2005-11-05 23:36:20 +0000  Julien Moutte <julien@moutte.net>

	  ext/directfb/Makefile.am: Add the example application.
	  Original commit message from CVS:
	  2005-11-06  Julien MOUTTE  <julien@moutte.net>
	  * ext/directfb/Makefile.am: Add the example application.
	  * ext/directfb/dfb-example.c: (get_me_out), (main):
	  Here is an example application that runs videotestsrc for 20
	  seconds. It's included in the documentation.
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers),
	  (gst_dfbvideosink_setup),
	  (gst_dfbvideosink_can_blit_from_format),
	  (gst_dfbvideosink_getcaps), (gst_dfbvideosink_buffer_alloc):
	  More fixes, calculate new size of the buffer when renegotiating.
	  This completely breaks ffmpegcolorspace but i need to discuss
	  that with Wim on monday. Add documentation.

2005-11-05 19:55:12 +0000  Julien Moutte <julien@moutte.net>

	  ext/directfb/dfbvideosink.c: Make acceleration detection work, better, add safety checks and ARGB support for cards t...
	  Original commit message from CVS:
	  2005-11-05  Julien MOUTTE  <julien@moutte.net>
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers),
	  (gst_dfbvideosink_setup),
	  (gst_dfbvideosink_can_blit_from_format),
	  (gst_dfbvideosink_getcaps): Make acceleration detection work,
	  better, add safety checks and ARGB support for cards that
	  support it.

2005-11-04 18:28:56 +0000  Julien Moutte <julien@moutte.net>

	  ext/directfb/dfbvideosink.*: Now does clipping when surface is too small, handles upstream elements that are not call...
	  Original commit message from CVS:
	  2005-11-04  Julien MOUTTE  <julien@moutte.net>
	  * ext/directfb/dfbvideosink.c:
	  (gst_dfbvideosink_surface_create),
	  (gst_dfbvideosink_surface_destroy),
	  (gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps),
	  (gst_dfbvideosink_center_rect), (gst_dfbvideosink_show_frame),
	  (gst_dfbvideosink_buffer_alloc):
	  * ext/directfb/dfbvideosink.h: Now does clipping when surface
	  is too small, handles upstream elements that are not calling
	  gst_pad_alloc_buffer, fixes a lot of bugs.

2005-11-03 22:36:42 +0000  Julien Moutte <julien@moutte.net>

	  ext/directfb/Makefile.am: Prepare for liboil usage.
	  Original commit message from CVS:
	  2005-11-03  Julien MOUTTE  <julien@moutte.net>
	  * ext/directfb/Makefile.am: Prepare for liboil usage.
	  * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_show_frame),
	  (gst_dfbvideosink_buffer_alloc):  Prepare for liboil, handle
	  rendering in external surface correctly. Will commit a neat
	  example soon.

2005-11-03 16:59:20 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/sdl/sdlvideosink.c:
	* ext/sdl/sdlvideosink.h:
	  Add support to exit when 'Esc' key is pressed.
	  Original commit message from CVS:
	  Add support to exit when 'Esc' key is pressed.

2005-11-02 17:12:31 +0000  Julien Moutte <julien@moutte.net>

	  configure.ac: Requires DirectFB 0.9.24
	  Original commit message from CVS:
	  2005-11-02  Julien MOUTTE  <julien@moutte.net>
	  * configure.ac: Requires DirectFB 0.9.24

2005-11-02 12:53:00 +0000  Christian Schaller <uraeus@gnome.org>

	* ext/Makefile.am:
	  add directfb to distdir
	  Original commit message from CVS:
	  add directfb to distdir

2005-11-02 12:43:03 +0000  Julien Moutte <julien@moutte.net>

	  Complete rewrite/port of
	  Original commit message from CVS:
	  2005-11-02  Julien MOUTTE  <julien@moutte.net>
	  * configure.ac:
	  * ext/Makefile.am:
	  * ext/directfb/Makefile.am:
	  * ext/directfb/dfbvideosink.c:
	  (gst_dfbvideosink_get_format_name),
	  (gst_dfbvideosink_surface_create),
	  (gst_dfbvideosink_surface_destroy),
	  (gst_dfbvideosink_event_thread), (gst_dfbvideosink_enum_layers),
	  (gst_dfbvideosink_enum_vmodes), (gst_dfbvideosink_enum_devices),
	  (gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup),
	  (gst_dfbvideosink_get_format_from_caps),
	  (gst_dfbvideosink_get_caps_from_format),
	  (gst_dfbvideosink_can_blit_from_format),
	  (gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps),
	  (gst_dfbvideosink_setcaps), (gst_dfbvideosink_change_state),
	  (gst_dfbvideosink_get_times), (gst_dfbvideosink_center_rect),
	  (gst_dfbvideosink_show_frame),
	  (gst_dfbvideosink_bufferpool_clear),
	  (gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize),
	  (gst_dfbsurface_init), (gst_dfbsurface_class_init),
	  (gst_dfbsurface_get_type),
	  (gst_dfbvideosink_interface_supported),
	  (gst_dfbvideosink_interface_init),
	  (gst_dfbvideosink_navigation_send_event),
	  (gst_dfbvideosink_navigation_init),
	  (gst_dfbvideosink_set_property),
	  (gst_dfbvideosink_get_property),
	  (gst_dfbvideosink_init), (gst_dfbvideosink_base_init),
	  (gst_dfbvideosink_class_init), (gst_dfbvideosink_get_type),
	  (plugin_init):
	  * ext/directfb/dfbvideosink.h:
	  * ext/directfb/directfbvideosink.c:
	  * ext/directfb/directfbvideosink.h: Complete rewrite/port of
	  DirectFB video sink to 0.9. Handles reverse negotiation,
	  hardware
	  scaling, navigation, buffer allocation from video memory etc...

2005-10-31 20:57:42 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/sdl/sdlvideosink.c:
	  Changed property full-screen to fullscreen, using SDL_SWSURFACE instead of SDL_HWSURFACE when in full screen mode.
	  Original commit message from CVS:
	  Changed property full-screen to fullscreen, using SDL_SWSURFACE instead of SDL_HWSURFACE when in full screen mode.

2005-10-31 18:07:30 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* ext/sdl/sdlvideosink.c:
	* ext/sdl/sdlvideosink.h:
	  Added a property that allows full-screen.
	  Original commit message from CVS:
	  Added a property that allows full-screen.

2005-10-28 15:11:18 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/sdl/sdlvideosink.*: Fix I420 output on some machines (not very nice, but should work).
	  Original commit message from CVS:
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init),
	  (gst_sdlvideosink_class_init),
	  (gst_sdlvideosink_get_sdl_from_fourcc), (gst_sdlvideosink_setcaps),
	  (gst_sdlvideosink_show_frame):
	  * ext/sdl/sdlvideosink.h:
	  Fix I420 output on some machines (not very nice, but should work).
	  Add an 'sdlvideosink' debug category. Disable formats that do
	  not work. Fix some vararg function issues.

2005-10-27 20:16:40 +0000  Wim Taymans <wim.taymans@gmail.com>

	  ext/sdl/sdlvideosink.c: Fix SDL videosink and did some cleanups.
	  Original commit message from CVS:
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_finalize),
	  (gst_sdlvideosink_get_times), (gst_sdlvideosink_class_init),
	  (gst_sdlvideosink_init), (gst_sdlvideosink_lock),
	  (gst_sdlvideosink_initsdl), (gst_sdlvideosink_create),
	  (gst_sdlvideosink_show_frame), (gst_sdlvideosink_set_property),
	  (gst_sdlvideosink_get_property), (gst_sdlvideosink_change_state):
	  Fix SDL videosink and did some cleanups.

2005-10-27 19:36:18 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* ext/sdl/sdlvideosink.c:
	* ext/sdl/sdlvideosink.h:
	  Trying to fix videos out of sync (not fixed yet)
	  Original commit message from CVS:
	  Trying to fix videos out of sync (not fixed yet)

2005-10-27 16:16:00 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  removed unused language stuff
	  Original commit message from CVS:
	  removed unused language stuff

2005-10-27 12:49:54 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* Makefile.am:
	* configure.ac:
	  don't do po until something wants to be translated
	  Original commit message from CVS:
	  don't do po until something wants to be translated

2005-10-27 11:27:53 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.h: Remove got_redirect from class structure as well.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.h:
	  Remove got_redirect from class structure as well.

2005-10-27 11:25:19 +0000  Tim-Philipp Müller <tim@centricular.net>

	  gst/qtdemux/qtdemux.c: Remove 'got-redirect' signal and post element message on the bus instead.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init),
	  (qtdemux_parse_tree):
	  Remove 'got-redirect' signal and post element message
	  on the bus instead.

2005-10-26 15:45:11 +0000  Zeeshan Ali <zeenix@gmail.com>

	* ChangeLog:
	* ext/gsm/gstgsm.c:
	* ext/gsm/gstgsmdec.c:
	* ext/gsm/gstgsmdec.h:
	* ext/gsm/gstgsmenc.c:
	  Fixing stuff as wingo pointed out.
	  Original commit message from CVS:
	  Fixing stuff as wingo pointed out.

2005-10-26 13:40:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* po/POTFILES.in:
	* 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:
	  fix distcheck
	  Original commit message from CVS:
	  fix distcheck

2005-10-26 13:01:20 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* gst/tta/gstttaparse.c:
	  don't put crap in user-visible strings
	  Original commit message from CVS:
	  don't put crap in user-visible strings

2005-10-25 16:12:03 +0000  Zeeshan Ali <zeenix@gmail.com>

	* ChangeLog:
	* ext/gsm/gstgsm.c:
	* ext/gsm/gstgsmdec.c:
	* ext/gsm/gstgsmdec.h:
	* ext/gsm/gstgsmenc.c:
	* ext/gsm/gstgsmenc.h:
	  Over-writing Wim's gsm plugins (currently not working) with that from the farsight repo. Also made sure that they wor...
	  Original commit message from CVS:
	  Over-writing Wim's gsm plugins (currently not working) with that from the farsight repo. Also made sure that they work with the RTP (de)payloader.

2005-10-25 13:31:09 +0000  Flavio Oliveira <flavio.oliveira@indt.org.br>

	* ChangeLog:
	* ext/gsm/gstgsmenc.c:
	* ext/gsm/gstgsmenc.h:
	  Fixed event handling in gsmenc.
	  Original commit message from CVS:
	  Fixed event handling in gsmenc.

2005-10-24 13:02:32 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* configure.ac:
	  port over plugin listing from base
	  Original commit message from CVS:
	  port over plugin listing from base

2005-10-23 23:07:02 +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:46:40 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* configure.ac:
	* 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:
	  releasing 0.9.4
	  Original commit message from CVS:
	  releasing 0.9.4

2005-10-23 14:38:00 +0000  Julien Moutte <julien@moutte.net>

	  gst/tta/gstttaparse.c: STOPPED->FAILED.
	  Original commit message from CVS:
	  2005-10-23  Julien MOUTTE  <julien@moutte.net>
	  * gst/tta/gstttaparse.c: (gst_tta_parse_loop): STOPPED->FAILED.

2005-10-21 16:11:53 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  latest updates
	  Original commit message from CVS:
	  latest updates

2005-10-20 15:08:14 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faad/gstfaad.*: Do some timestamp smoothing (matroskademux apparently sends multiple buffers in a row with the sa...
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_class_init),
	  (gst_faad_init), (gst_faad_srcgetcaps), (gst_faad_event),
	  (gst_faad_chain), (gst_faad_change_state):
	  * ext/faad/gstfaad.h:
	  Do some timestamp smoothing (matroskademux apparently sends
	  multiple buffers in a row with the same timestamp); fix
	  duration on outgoing buffers; fix change state function; use
	  GST_DEBUG_FUNCPTR for pad functions.

2005-10-19 15:58:01 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/: API change fix.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_query_types),
	  (gst_qtdemux_handle_src_query):
	  * gst/speed/gstspeed.c: (speed_get_query_types), (speed_src_query):
	  * gst/tta/gstttaparse.c: (gst_tta_parse_src_event),
	  (gst_tta_parse_get_query_types), (gst_tta_parse_query):
	  API change fix.

2005-10-19 12:41:49 +0000  Tim-Philipp Müller <tim@centricular.net>

	  configure.ac: All the cool kids use GST_DOCBOOK_CHECK now.
	  Original commit message from CVS:
	  * configure.ac:
	  All the cool kids use GST_DOCBOOK_CHECK now.

2005-10-18 08:39:41 +0000  Julien Moutte <julien@moutte.net>

	  gst/speed/Makefile.am: Fix build of speed.
	  Original commit message from CVS:
	  2005-10-18  Julien MOUTTE  <julien@moutte.net>
	  * gst/speed/Makefile.am: Fix build of speed.

2005-10-17 20:48:35 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* configure.ac:
	* gst/speed/gstspeed.c:
	* gst/speed/gstspeed.h:
	  Fixed Speed - Recovered featured missed since version 1.37, and changed other minor things.
	  Original commit message from CVS:
	  Fixed Speed - Recovered featured missed since version 1.37, and changed other
	  minor things.

2005-10-16 17:08:26 +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-16 13:54:38 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* common:
	* gst/audioresample/gstaudioresample.c:
	  restructure configure.ac, use correct libtool LDFLAGS, fix up defines
	  Original commit message from CVS:
	  restructure configure.ac, use correct libtool LDFLAGS, fix up defines

2005-10-13 15:31:20 +0000  Stefan Kost <ensonic@users.sourceforge.net>

	  ex/: and more typos fixed
	  Original commit message from CVS:
	  * examples/stats/mp2ogg.c:
	  * ext/tarkin/tarkin.c: (tarkin_analysis_framein),
	  (tarkin_synthesis_packetin):
	  and more typos fixed

2005-10-13 11:37:39 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faac/gstfaac.c: Gst09-ize code a little bit more: use gst_pad_alloc_buffer(), move event handling from chain func...
	  Original commit message from CVS:
	  * ext/faac/gstfaac.c: (gst_faac_class_init), (gst_faac_init),
	  (gst_faac_sink_setcaps), (gst_faac_src_setcaps),
	  (gst_faac_sink_event), (gst_faac_chain), (gst_faac_set_property),
	  (gst_faac_get_property), (gst_faac_change_state):
	  Gst09-ize code a little bit more: use gst_pad_alloc_buffer(),
	  move event handling from chain function into an event function,
	  add some locks here and there, do some cleanups; disable 32-bit
	  integer and float input formats until we're sure that those
	  actually work (couldn't play back the produced files with
	  anything).

2005-10-12 14:29:55 +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/artsd/gstartsdsink.c: (gst_artsdsink_open_audio),
	  (gst_artsdsink_close_audio), (gst_artsdsink_change_state):
	  * ext/artsd/gstartsdsink.h:
	  * ext/audiofile/gstafparse.c: (gst_afparse_open_file),
	  (gst_afparse_close_file):
	  * ext/audiofile/gstafparse.h:
	  * ext/audiofile/gstafsink.c: (gst_afsink_open_file),
	  (gst_afsink_close_file), (gst_afsink_chain),
	  (gst_afsink_change_state):
	  * ext/audiofile/gstafsink.h:
	  * ext/audiofile/gstafsrc.c: (gst_afsrc_open_file),
	  (gst_afsrc_close_file), (gst_afsrc_change_state):
	  * ext/audiofile/gstafsrc.h:
	  * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_init):
	  * ext/directfb/directfbvideosink.c: (gst_directfbvideosink_init):
	  * ext/dts/gstdtsdec.c: (gst_dtsdec_init):
	  * ext/jack/gstjack.h:
	  * ext/jack/gstjackbin.c: (gst_jack_bin_init),
	  (gst_jack_bin_change_state):
	  * ext/musepack/gstmusepackdec.c: (gst_musepackdec_init):
	  * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_init):
	  * ext/nas/nassink.c: (gst_nassink_open_audio),
	  (gst_nassink_close_audio), (gst_nassink_change_state):
	  * ext/nas/nassink.h:
	  * ext/polyp/polypsink.c: (gst_polypsink_init):
	  * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_change_state):
	  * ext/sdl/sdlvideosink.h:
	  * ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init):
	  * ext/sndfile/gstsf.c: (gst_sf_set_property),
	  (gst_sf_change_state), (gst_sf_release_request_pad),
	  (gst_sf_open_file), (gst_sf_close_file), (gst_sf_loop):
	  * ext/sndfile/gstsf.h:
	  * ext/swfdec/gstswfdec.c: (gst_swfdec_init):
	  * ext/tarkin/gsttarkindec.c: (gst_tarkindec_init):
	  * gst/apetag/apedemux.c: (gst_ape_demux_init):
	  * gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_init):
	  * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_init):
	  * gst/festival/gstfestival.c: (gst_festival_change_state):
	  * gst/festival/gstfestival.h:
	  * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
	  * gst/multifilesink/gstmultifilesink.c: (gst_multifilesink_init),
	  (gst_multifilesink_set_location), (gst_multifilesink_open_file),
	  (gst_multifilesink_close_file), (gst_multifilesink_next_file),
	  (gst_multifilesink_pad_query), (gst_multifilesink_handle_event),
	  (gst_multifilesink_chain), (gst_multifilesink_change_state):
	  * gst/multifilesink/gstmultifilesink.h:
	  * gst/videodrop/gstvideodrop.c: (gst_videodrop_init):
	  * sys/cdrom/gstcdplayer.c: (cdplayer_init):
	  * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_init),
	  (dxr3audiosink_open), (dxr3audiosink_close),
	  (dxr3audiosink_chain_pcm), (dxr3audiosink_chain_ac3),
	  (dxr3audiosink_change_state):
	  * sys/dxr3/dxr3audiosink.h:
	  * sys/dxr3/dxr3spusink.c: (dxr3spusink_init), (dxr3spusink_open),
	  (dxr3spusink_close), (dxr3spusink_chain),
	  (dxr3spusink_change_state):
	  * sys/dxr3/dxr3spusink.h:
	  * sys/dxr3/dxr3videosink.c: (dxr3videosink_init),
	  (dxr3videosink_open), (dxr3videosink_close),
	  (dxr3videosink_write_data), (dxr3videosink_change_state):
	  * sys/dxr3/dxr3videosink.h:
	  * sys/glsink/glimagesink.c: (gst_glimagesink_init):
	  * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state),
	  (gst_qcamsrc_open), (gst_qcamsrc_close):
	  * sys/qcam/gstqcamsrc.h:
	  * sys/v4l2/gstv4l2src.c: (gst_v4l2src_init):
	  * sys/vcd/vcdsrc.c: (gst_vcdsrc_set_property), (gst_vcdsrc_get),
	  (gst_vcdsrc_open_file), (gst_vcdsrc_close_file),
	  (gst_vcdsrc_change_state), (gst_vcdsrc_recalculate):
	  * sys/vcd/vcdsrc.h:
	  renamed GST_FLAGS macros to GST_OBJECT_FLAGS
	  moved bitshift from macro to enum definition

2005-10-12 13:54:34 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faac/gstfaac.c: Fix depth/width handling for float audio (#318659).
	  Original commit message from CVS:
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * ext/faac/gstfaac.c: (gst_faac_sink_setcaps):
	  Fix depth/width handling for float audio (#318659).

2005-10-12 12:53:07 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faac/gstfaac.c: Refcount fixes (#318659)
	  Original commit message from CVS:
	  Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
	  * ext/faac/gstfaac.c: (gst_faac_sink_setcaps),
	  (gst_faac_src_setcaps), (gst_faac_chain):
	  Refcount fixes (#318659)

2005-10-12 09:15:40 +0000  Julien Moutte <julien@moutte.net>

	  ext/Makefile.am: libvisual and snapshot are not here anymore.
	  Original commit message from CVS:
	  2005-10-12  Julien MOUTTE  <julien@moutte.net>
	  * ext/Makefile.am: libvisual and snapshot are not here anymore.
	  Makes
	  automake-1.7 happy again.

2005-10-11 23:03:09 +0000  Tim-Philipp Müller <tim@centricular.net>

	  ext/faad/gstfaad.c: newsegment API update
	  Original commit message from CVS:
	  * ext/faad/gstfaad.c: (gst_faad_event):
	  newsegment API update

2005-10-11 16:34:36 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/: newsegment API update.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header):
	  * gst/tta/gstttaparse.c: (gst_tta_parse_src_event),
	  (gst_tta_parse_parse_header):
	  newsegment API update.

2005-10-07 15:24:24 +0000  Andy Wingo <wingo@pobox.com>

	  ext/raw1394/gstdv1394src.c: Make interruptible, so it won't block forever in a read().
	  Original commit message from CVS:
	  2005-10-07  Andy Wingo  <wingo@pobox.com>
	  * ext/raw1394/gstdv1394src.c: Make interruptible, so it won't
	  block forever in a read().

2005-10-04 15:49:35 +0000  Christian Schaller <uraeus@gnome.org>

	* gst-plugins-bad.spec.in:
	  fix spec file
	  Original commit message from CVS:
	  fix spec file

2005-10-03 18:00:32 +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:50:21 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* common:
	* configure.ac:
	* 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:
	  release time
	  Original commit message from CVS:
	  release time

2005-09-28 13:38:02 +0000  Wim Taymans <wim.taymans@gmail.com>

	  gst/qtdemux/qtdemux.c: No need to take stream lock here.
	  Original commit message from CVS:
	  * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header):
	  No need to take stream lock here.

2005-09-26 17:57:56 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* configure.ac:
	  fix build
	  Original commit message from CVS:
	  fix build

2005-09-26 15:19:38 +0000  Christian Schaller <uraeus@gnome.org>

	* ChangeLog:
	* common:
	* configure.ac:
	* gst/librfb/Makefile.am:
	  some disting and build fixes
	  Original commit message from CVS:
	  some disting and build fixes

2005-09-23 17:05:29 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* PORTED_09:
	* ext/gsm/Makefile.am:
	* ext/gsm/gstgsm.c:
	* ext/gsm/gstgsmdec.c:
	  Gsmdec ported to 0.9. Tested with filesrc ! gsmdec ! alsasink and osssink.
	  Original commit message from CVS:
	  Gsmdec ported to 0.9. Tested with filesrc ! gsmdec ! alsasink and osssink.

2005-09-23 16:40:27 +0000  David Schleef <ds@schleef.org>

	  gst/audioresample/: Convert to using gst debugging
	  Original commit message from CVS:
	  * gst/audioresample/Makefile.am:
	  * gst/audioresample/debug.h:
	  * gst/audioresample/gstaudioresample.c:
	  * gst/audioresample/resample.c: Convert to using gst debugging

2005-09-23 04:22:54 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/ladspa/Makefile.am:
	  fix build and use of GST_LIBS
	  Original commit message from CVS:
	  fix build and use of GST_LIBS

2005-09-22 11:17:26 +0000  Arwed v. Merkatz <v.merkatz@gmx.net>

	* ChangeLog:
	* configure.ac:
	* gst/tta/gstttadec.c:
	* gst/tta/gstttaparse.c:
	* gst/tta/gstttaparse.h:
	  tta plugin ported to 0.9
	  Original commit message from CVS:
	  tta plugin ported to 0.9

2005-09-21 20:33:42 +0000  Flavio Oliveira <flavio.oliveira@indt.org.br>

	* ChangeLog:
	* ext/gsm/gstgsmenc.c:
	  Setting caps on the outgoing buffers.
	  Original commit message from CVS:
	  Setting caps on the outgoing buffers.

2005-09-20 19:25:12 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ext/sdl/Makefile.am:
	  fix Makefile.am  ugh
	  Original commit message from CVS:
	  fix Makefile.am  ugh

2005-09-20 18:49:05 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	* common:
	* configure.ac:
	* ext/sdl/Makefile.am:
	  Fixed configure.ac and ext/sdl/Makefile.am for sdl port to 0.9.
	  Original commit message from CVS:
	  Fixed configure.ac and ext/sdl/Makefile.am for sdl port to 0.9.

2005-09-19 21:51:02 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* ChangeLog:
	  sdlvideosink ported to 0.9 and tested with filesrc ! mpeg2dec
	  Original commit message from CVS:
	  sdlvideosink ported to 0.9 and tested with filesrc ! mpeg2dec

2005-09-19 21:47:54 +0000  Edgard Lima <edgard.lima@indt.org.br>

	* PORTED_09:
	* configure.ac:
	* ext/Makefile.am:
	* ext/sdl/Makefile.am:
	* ext/sdl/sdlvideosink.c:
	  sdlvideosink ported to 0.9 and tested with filesrc ! mpeg2dec
	  Original commit message from CVS:
	  sdlvideosink ported to 0.9 and tested with filesrc ! mpeg2dec

2005-09-19 16:44:37 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* Makefile.am:
	* common:
	  add check-valgrind target
	  Original commit message from CVS:
	  add check-valgrind target

2005-09-09 17:53:47 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	  check/: Add extra tests for basetransform based components.
	  Original commit message from CVS:
	  * check/Makefile.am:
	  * check/pipelines/simple_launch_lines.c: (setup_pipeline),
	  (run_pipeline), (GST_START_TEST), (simple_launch_lines_suite):
	  Add extra tests for basetransform based components.
	  Comment out the test_element_negotiation test until we decide
	  if it's testing correct behaviour.
	  * ext/libvisual/visual.c: (gst_visual_init), (get_buffer),
	  (gst_visual_chain), (gst_visual_change_state):
	  Slightly more correct but still bogus timestamping.
	  Fix state change function.
	  * gst/audioconvert/gstaudioconvert.c:
	  (gst_audio_convert_class_init):
	  * gst/audioresample/gstaudioresample.c:
	  * gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	  (gst_ffmpegcsp_class_init):
	  * gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init),
	  (gst_videoscale_prepare_size), (gst_videoscale_set_caps),
	  (gst_videoscale_prepare_image):
	  * gst/volume/gstvolume.c: (gst_volume_class_init),
	  (volume_transform_ip):
	  Basetransform updates. Enable passthrough modes.
	  * sys/ximage/ximagesink.c: (gst_ximage_buffer_init),
	  (gst_ximagesink_renegotiate_size), (gst_ximagesink_xcontext_get),
	  (gst_ximagesink_setcaps), (gst_ximagesink_buffer_alloc):
	  Negotiation fix that allows the window to return to the original
	  size and renegotiate passthrough upstream. Extra debug output.

2005-09-08 15:56:38 +0000  Flavio Oliveira <flavio.oliveira@indt.org.br>

	* ChangeLog:
	* PORTED_09:
	* configure.ac:
	* gst/speed/Makefile.am:
	* gst/speed/gstspeed.c:
	  Ported speed Plugin to GStreamer 0.9
	  Original commit message from CVS:
	  Ported speed Plugin to GStreamer 0.9

2005-09-06 14:06:55 +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:50 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* Makefile.am:
	* NEWS:
	* README:
	* RELEASE:
	* autogen.sh:
	* common:
	* configure.ac:
	* gst-plugins.spec.in:
	* 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:
	  releasing 0.9.1
	  Original commit message from CVS:
	  releasing 0.9.1

2005-09-05 17:20:29 +0000  Jan Schmidt <thaytan@mad.scientist.com>

	* ChangeLog:
	* examples/gstplay/player.c:
	* examples/stats/mp2ogg.c:
	* ext/artsd/gstartsdsink.c:
	* ext/audiofile/gstafsink.c:
	* ext/audiofile/gstafsrc.c:
	* ext/cdaudio/gstcdaudio.c:
	* ext/dirac/gstdiracdec.cc:
	* ext/directfb/directfbvideosink.c:
	* ext/dts/gstdtsdec.c:
	* ext/faac/gstfaac.c:
	* ext/hermes/gsthermescolorspace.c:
	* ext/ivorbis/vorbisfile.c:
	* ext/jack/gstjack.c:
	* ext/jack/gstjackbin.c:
	* ext/lcs/gstcolorspace.c:
	* ext/libmms/gstmms.c:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mplex/gstmplex.cc:
	* ext/musepack/gstmusepackdec.c:
	* ext/musicbrainz/gsttrm.c:
	* ext/nas/nassink.c:
	* ext/polyp/polypsink.c:
	* ext/sdl/sdlvideosink.c:
	* ext/shout/gstshout.c:
	* ext/smoothwave/gstsmoothwave.c:
	* ext/sndfile/gstsf.c:
	* ext/swfdec/gstswfdec.c:
	* ext/tarkin/gsttarkindec.c:
	* ext/xine/xine.c:
	* ext/xine/xineaudiodec.c:
	* ext/xine/xineaudiosink.c:
	* ext/xine/xineinput.c:
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	* gst/apetag/apedemux.c:
	* gst/cdxaparse/gstcdxaparse.c:
	* gst/cdxaparse/gstcdxastrip.c:
	* gst/cdxaparse/gstvcdparse.c:
	* gst/colorspace/gstcolorspace.c:
	* gst/festival/gstfestival.c:
	* gst/librfb/gstrfbsrc.c:
	* gst/modplug/gstmodplug.cc:
	* gst/mpeg1videoparse/gstmp1videoparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/multifilesink/gstmultifilesink.c:
	* gst/smoothwave/gstsmoothwave.c:
	* gst/speed/gstspeed.c:
	* gst/switch/gstswitch.c:
	* gst/videocrop/gstvideocrop.c:
	* gst/videodrop/gstvideodrop.c:
	* gst/y4m/gsty4mencode.c:
	* 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:
	* sys/cdrom/gstcdplayer.c:
	* sys/dxr3/dxr3audiosink.c:
	* sys/dxr3/dxr3spusink.c:
	* sys/dxr3/dxr3videosink.c:
	* sys/glsink/glimagesink.c:
	* sys/qcam/gstqcamsrc.c:
	* sys/sunaudio/gstsunaudio.c:
	* sys/sunaudio/gstsunaudiosrc.c:
	* sys/sunaudio/gstsunelement.c:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/vcd/vcdsrc.c:
	  Fix up all the state change functions.
	  Original commit message from CVS:
	  Fix up all the state change functions.

2005-09-05 15:10:18 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* Makefile.am:
	* configure.ac:
	* ext/faad/gstfaad.c:
	* gst-plugins-bad.spec.in:
	* gst/qtdemux/qtdemux.c:
	* po/POTFILES.in:
	  cleaning up bad
	  Original commit message from CVS:
	  cleaning up bad

2005-09-05 13:49:41 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	* ChangeLog:
	* common:
	* docs/random/ChangeLog-0.8:
	* ext/Makefile.am:
	  created gst-plugins-bad
	  Original commit message from CVS:
	  created gst-plugins-bad

=== release 0.9.2 ===

2005-09-04 10:38:45 +0000  Thomas Vander Stichele <thomas@apestaart.org>

	  fix distcheck
	  Original commit message from CVS:
	  * common/gtk-doc-plugins.mak:
	  * docs/plugins/Makefile.am:
	  fix distcheck
	  * gst/audioresample/resample.c:
	  fix wrong docstring

2005-09-02 20:21:17 +0000  Flavio Oliveira <flavio.oliveira@indt.org.br>

	* ChangeLog:
	* PORTED_09:
	* configure.ac:
	* ext/Makefile.am:
	* ext/gsm/Makefile.am:
	* ext/gsm/gstgsm.c:
	* ext/gsm/gstgsmenc.c:
	  Ported GSM Encoder to GStreamer 0.9
	  Original commit message from CVS:
	  Ported GSM Encoder to GStreamer 0.9

2005-09-02 15:44:44 +0000  Andy Wingo <wingo@pobox.com>

	* ext/ladspa/gstsignalprocessor.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 15:43:14 +0000  Andy Wingo <wingo@pobox.com>

	* common:
	* tests/check/elements/audioresample.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-01 19:53:12 +0000  Flavio Oliveira <flavio.oliveira@indt.org.br>

	* PORTED_09:
	  update PORTED_09 file
	  Original commit message from CVS:
	  update PORTED_09 file

