=== release 0.10.12 ===

2009-05-20  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.12, "More than I can handle"

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>

	  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

