2007-04-06  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/Makefile.am:
	* gst/rtsp/gstrtpdec.c: (find_session_by_id), (create_session),
	(free_session), (gst_rtp_dec_base_init), (gst_rtp_dec_class_init),
	(gst_rtp_dec_init), (gst_rtp_dec_finalize),
	(gst_rtp_dec_query_src), (gst_rtp_dec_chain_rtp),
	(gst_rtp_dec_chain_rtcp), (gst_rtp_dec_set_property),
	(gst_rtp_dec_get_property), (gst_rtp_dec_provide_clock),
	(gst_rtp_dec_change_state), (create_recv_rtp), (create_recv_rtcp),
	(create_rtcp), (gst_rtp_dec_request_new_pad),
	(gst_rtp_dec_release_pad):
	* gst/rtsp/gstrtpdec.h:
	* gst/rtsp/gstrtsp.c: (plugin_init):
	Morph RTPDec into something compatible with RTPBin as a fallback.
	Various other style fixes.

	* gst/rtsp/gstrtspsrc.c: (find_stream_by_id),
	(find_stream_by_udpsrc), (gst_rtspsrc_stream_free),
	(gst_rtspsrc_cleanup), (gst_rtspsrc_media_to_caps),
	(new_session_pad), (gst_rtspsrc_stream_configure_transport),
	(gst_rtspsrc_activate_streams), (gst_rtspsrc_loop_interleaved),
	(gst_rtspsrc_loop_udp), (gst_rtspsrc_setup_auth),
	(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
	* gst/rtsp/gstrtspsrc.h:
	Implement RTPBin session manager handling.
	Don't try to add empty properties to caps.
	Implement fallback session manager, handling.
	Don't combine errors from RTCP streams, just ignore them.

	* gst/rtsp/rtsptransport.c: (rtsp_transport_get_manager):
	* gst/rtsp/rtsptransport.h:
	Implement fallback session manager.
	Make RTPBin the default one when available.

2007-04-05  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_class_init),
	(gst_rtp_mp4a_depay_setcaps), (gst_rtp_mp4a_depay_plugin_init):
	This element is ready to be autoplugged.

2007-04-05  Julien MOUTTE  <julien@moutte.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
	Don't leave the offsets defined by upstream element on the
	compressed data buffer we are pushing downstream. Make them
	GST_BUFFER_OFFSET_NONE.

2007-04-04  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/README:
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_parse_stream), (gst_avi_demux_parse_index),
	(gst_avi_demux_stream_index), (gst_avi_demux_sync),
	(gst_avi_demux_stream_scan), (gst_avi_demux_massage_index),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_stream_header_push),
	(gst_avi_demux_stream_header_pull), (gst_avi_demux_combine_flows),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data):
	  Don't abort on out-of-memory. Use stream-nr as unsigned integer only.

2007-04-03  Wim Taymans  <wim@fluendo.com>

	* gst/smpte/barboxwipes.c:
	Fix error as spotted by Snaik <snaik32 at gmail dot com>

2007-03-30  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst/wavparse/gstwavparse.c:
	Support audio/x-raw-float in wav files. This only works with
	plugins-base CVS, using an older version doesn't have any
	disadvantages though.

2007-03-30  Sebastian Dröge  <slomo@circular-chaos.org>

	* configure.ac:
	* gst/auparse/gstauparse.c: (gst_au_parse_reset),
	(gst_au_parse_parse_header), (gst_au_parse_chain):
	* gst/auparse/gstauparse.h:
	Revert last change as we don't want plugins-good to depend on
	plugins-base CVS now.

2007-03-29  Sebastian Dröge  <slomo@circular-chaos.org>

	* configure.ac:
	Require gst-plugins-base CVS for audioconvert with non-native
	float support and width/depth fix in libgstriff.

	Patch by: René Stadler <mail at renestadler dot de>

	* gst/auparse/gstauparse.c: (gst_au_parse_reset),
	(gst_au_parse_parse_header), (gst_au_parse_chain):
	* gst/auparse/gstauparse.h:
	Don't swap the floats ourself if they're not in native endianness.
	Instead let audioconvert handle this. Fixes #339838.

2007-03-29  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstasteriskh263.h:
	* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_process),
	(gst_rtp_h263p_depay_change_state):
	* gst/rtp/gstrtph263pdepay.h:
	* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_class_init),
	(gst_rtp_h264_depay_setcaps), (gst_rtp_h264_depay_process),
	(gst_rtp_h264_depay_change_state):
	* gst/rtp/gstrtph264depay.h:
	* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_class_init),
	(gst_rtp_mp4a_depay_setcaps), (gst_rtp_mp4a_depay_process):
	* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_process):
	Flush adapter on disconts.

2007-03-29  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_process):
	* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_process):
	* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_process):
	* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_process):
	* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_process):
	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_flush):
	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
	(gst_rtp_mp4v_depay_process):
	* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_flush):
	* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_process):
	* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_flush):
	* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_process):
	* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_process):
	* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_process):
	* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_process):
	Use more efficient adapter and rtpbuffer methods when possible.

2007-03-29  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_create_header_buf),
	(gst_wavenc_sink_setcaps):
	Correctly handle width!=depth input.
	* gst/wavparse/gstwavparse.c:
	Already export in the caps that width==8 uses unsigned samples and
	everything else uses signed samples.

2007-03-29  Wim Taymans  <wim@fluendo.com>

	Patch by: Laurent Glayal <spglegle at yahoo dot fr>

	* gst/udp/gstdynudpsink.c: (gst_dynudpsink_class_init),
	(gst_dynudpsink_init), (gst_dynudpsink_set_property),
	(gst_dynudpsink_get_property), (gst_dynudpsink_init_send),
	(gst_dynudpsink_close):
	* gst/udp/gstdynudpsink.h:
	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init), (gst_udpsrc_init),
	(gst_udpsrc_create), (gst_udpsrc_set_property),
	(gst_udpsrc_get_property), (gst_udpsrc_start), (gst_udpsrc_stop):
	* gst/udp/gstudpsrc.h:
	Rework the socket allocation a bit based on the sockfd argument so that
	it becomes usable.
	Add a closefd property to instruct the udp elements to close the custom
	file descriptors when going to READY. Fixes #423304.
	API:GstUDPSrc::closefd property
	API:GstDynUDPSink::closefd property

2007-03-29  Wim Taymans  <wim@fluendo.com>

	Patch by: Laurent Glayal <spglegle at yahoo dot fr>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_base_init),
	(gst_rtp_h264_pay_class_init), (gst_rtp_h264_pay_init),
	(gst_rtp_h264_pay_finalize), (gst_rtp_h264_pay_setcaps),
	(gst_rtp_h264_pay_handle_buffer), (gst_rtp_h264_pay_set_property),
	(gst_rtp_h264_pay_get_property), (gst_rtp_h264_pay_change_state),
	(gst_rtp_h264_pay_plugin_init):
	* gst/rtp/gstrtph264pay.h:
	Added H264 payloader. Fixes #423782.

	* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_class_init),
	(gst_rtp_h264_depay_setcaps), (gst_rtp_h264_depay_process):
	Small fixes.

2007-03-29  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst/wavparse/gstwavparse.c:
	Actually support depths from 1 to 32, not only 8 to 32.

2007-03-29  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst/wavparse/gstwavparse.c:
	Add support for wav files containing audio/x-raw-int with random
	depths between 1 and 32 bits.

2007-03-28  Wim Taymans  <wim@fluendo.com>

	Based on patch by: Stefan Kost  <ensonic@users.sf.net>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_base_init),
	(gst_rtp_mp4a_depay_class_init), (gst_rtp_mp4a_depay_init),
	(gst_rtp_mp4a_depay_finalize), (gst_rtp_mp4a_depay_setcaps),
	(gst_rtp_mp4a_depay_process), (gst_rtp_mp4a_depay_set_property),
	(gst_rtp_mp4a_depay_get_property),
	(gst_rtp_mp4a_depay_change_state),
	(gst_rtp_mp4a_depay_plugin_init):
	* gst/rtp/gstrtpmp4adepay.h:
	Added MP4A-LATM depayloader. Fixes #417792.

	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
	(gst_rtp_mp4v_depay_process):
	Fixup depayloader, setting codec_data, using more efficient adaptor and
	rtpbuffer handling.

	* gst/rtsp/URLS:
	Add url to test above.

2007-03-25  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (find_stream_by_setup),
	(gst_rtspsrc_create_stream), (gst_rtspsrc_stream_free),
	(get_default_rate_for_pt), (gst_rtspsrc_parse_rtpmap),
	(gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_stream_configure_transport),
	(gst_rtspsrc_stream_configure_caps),
	(gst_rtspsrc_activate_streams), (gst_rtspsrc_parse_rtpinfo):
	* gst/rtsp/gstrtspsrc.h:
	Handle default clock-rates for static payload types, rearrange stuff so
	that the rtpmap field in the sdp can override the defaults.
	Parse RTP-Info field to get the seqnum and timebase fields that should
	go in the caps.
	Delay configuring caps after we got the RTP-Info from the PLAY reply from
	the server. 

2007-03-22  Wim Taymans  <wim@fluendo.com>

	Patch by: Christophe Dehais <christophe dot dehais at gmail dot com>

	* ext/gconf/gconf.c: (gst_gconf_render_bin_with_default):
	Accept complex pipeline descriptions as an audio profile instead of just
	a single element. Fixes #420658.

2007-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_get_type):
	  Rename registered type in preparation of GstTagDemux moving to
	  -base at some point in the future.

2007-03-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
	  Streaming mode fixes: don't unref buffer we don't own any longer;
	  remove bogus adapter flush. Fixes #419338.

2007-03-17  David Schleef  <ds@schleef.org>

	* REQUIREMENTS: Change the format to key/value, add a bunch of
	  information, remove a bunch of requirements that are for
	  other GStreamer packages.

2007-03-17  David Schleef  <ds@schleef.org>

	* REQUIREMENTS: Fix a few things.  This file really needs a
	good once-over.

2007-03-15  Edward Hervey  <edward@fluendo.com>

	* sys/Makefile.am:
	Don't forget to distribute the sys/osxaudio/ directory.

2007-03-15  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/osxaudio/Makefile.am:
	* sys/osxaudio/gstosxaudio.c:
	* sys/osxaudio/gstosxaudiosink.c:
	(gst_osx_audio_sink_osxelement_do_init), (gst_osx_audio_sink_init),
	(gst_osx_audio_sink_getcaps),
	(gst_osx_audio_sink_create_ringbuffer), (plugin_init):
	* sys/osxaudio/gstosxaudiosrc.c:
	(gst_osx_audio_src_osxelement_do_init), (gst_osx_audio_src_init),
	(gst_osx_audio_src_create_ringbuffer):
	* sys/osxaudio/gstosxringbuffer.c: (gst_osx_ring_buffer_get_type),
	(gst_osx_ring_buffer_class_init), (gst_osx_ring_buffer_init),
	(gst_osx_ring_buffer_acquire), (gst_osx_ring_buffer_start),
	(gst_osx_ring_buffer_pause), (gst_osx_ring_buffer_stop):
	* sys/osxaudio/gstosxringbuffer.h:
	Activate osxaudio in gst-plugins-good with proper build setup.
	Add inlined documentation.
	Fix debug statements
	Fix ringbuffer when pausing.
	Fixes #323471

2007-03-14 Philippe Kalaf <philippe.kalaf@collabora.co.uk> 	 
	* gst/rtp/gstrtppcmapay.c:
	* gst/rtp/gstrtppcmapay.h:
	* gst/rtp/gstrtppcmupay.c:
	* gst/rtp/gstrtppcmupay.h:
	Ported mulaw and alaw payloaders to use new base class

2007-03-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/it.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	  Update translations.

2007-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Fix string replace error (AG_AG_GST_* => AG_GST_*).

2007-03-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_srcpad_event):
	  Fix handling of -1 values for start and stop values when seeking,
	  and SEEK_CUR+SEEK_END here as well.

2007-03-12  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/gstid3demux.c: (gst_id3demux_srcpad_event):
	  Fix handling of -1 values for start and stop values when seeking, 
	  and SEEK_CUR+SEEK_END.

2007-03-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c: (parse_picture_frame):
	  Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is
	  the image format a variable-length NUL-terminated string; in
	  versions before that the image format is a fixed-length string of
	  3 characters (see #348644 for a sample tag).
	  Also make supplied mime type lower-case and fix up 'jpg' to 'jpeg'.

2007-03-10  Sebastien Moutte  <sebastien@moutte.net>

	* win32/MANIFEST:
	Add new project files to MANIFEST.
	* win32/vs6/libgstaudiofx.dsp:
	* win32/vs6/libgstrtp.dsp:
	* win32/vs6/libgstrtsp.dsp:
	Update project files.
	
2007-03-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_subindex),
	(gst_avi_demux_parse_index):
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_grab_frame):
	  Printf format fixes; also add some missing quotes in translated
	  strings. Fixes #416728 and #416727.

2007-03-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_find_best):
	  Tim and I can't think of any reason the child audio sink needs to 
	  be set back to NULL after successfully determining that it can 
	  reach READY - it gets immediately set back to READY by the caller
	  anyway, causing an unnecessary close/open of any audio devices
	  involved.

2007-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* po/LINGUAS:
	* po/ja.po:
	  Add ja.po file from #377306.

2007-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/sunaudio/gstsunaudio.c: (plugin_init):
	* sys/sunaudio/gstsunaudiomixertrack.c:
	(gst_sunaudiomixer_track_new):
	  Actually translate sunaudio mixer track labels instead of just
	  marking the strings as translatable (#377306); clean up weird
	  label string mapping code that serves no apparent purpose. Also
	  set the 'untranslated-label' property when creating mixer tracks
	  if the GstMixerTrack base class supports this.

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/sunaudio.c: (GST_START_TEST),
	(sunaudio_suite):
	  Very minimalistic unit test for sunaudiomixer element (compiles, but not
	  actually tested on a system where sunaudiomixer is available).

2007-03-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/Makefile.am:
	Re-enable the states test and see if it works on the buildbots.

2007-03-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_sink_setcaps),
	(gst_dvdec_src_negotiate), (gst_dvdec_chain),
	(gst_dvdec_change_state):
	* ext/dv/gstdvdec.h:
	Infer pixel-aspect-ratio from the video frame format if it isn't
	provided by the container, as happens when playing DV from AVI
	or Quicktime containers.

	Patch by: Wim Taymans <wim@fluendo.com>
	Fixes #380944

2007-03-09  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_activate_streams):
	When activated, remove the udpsrc timeout, we have dataflow and timeouts
	will later be handled by the jitterbuffer.

2007-03-09  Wim Taymans  <wim@fluendo.com>

	* ext/taglib/gstid3v2mux.cc:
	Add write support for GST_TAG_MUSICBRAINZ_SORTNAME (TSOP) tag.
	Fixes #414496.
	
	Patch by: Alex Lancaster <alexl at users sourceforge net>

2007-03-09  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
	(gst_avi_demux_push_event), (gst_avi_demux_do_seek),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
	(gst_avi_demux_chain):
	Fix stream position reporting after a seek. Fixes #416445.

2007-03-08  Wim Taymans  <wim@fluendo.com>

	Patch by: René Stadler <mail at renestadler dot de>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
	(gst_avi_demux_push_event), (gst_avi_demux_process_next_entry),
	(gst_avi_demux_stream_data), (gst_avi_demux_chain):
	Make avidemux accept optional header chunks in any order.
	Fixes #415446.

2007-03-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/Makefile.am:
	Disable the states check until the remaining Valgrind errors
	are fixed or suppressed.

2007-03-08  Sebastian Dröge  <slomo@circular-chaos.org>

	* tests/check/elements/.cvsignore:
	  Add audiodynamic check to .cvsignore

2007-03-08  Sebastian Dröge  <slomo@circular-chaos.org>

	reviewed by: Stefan Kost  <ensonic@users.sf.net>

	* gst/audiofx/Makefile.am:
	* gst/audiofx/audiodynamic.c:
	(gst_audio_dynamic_characteristics_get_type),
	(gst_audio_dynamic_mode_get_type),
	(gst_audio_dynamic_set_process_function),
	(gst_audio_dynamic_base_init), (gst_audio_dynamic_class_init),
	(gst_audio_dynamic_init), (gst_audio_dynamic_set_property),
	(gst_audio_dynamic_get_property), (gst_audio_dynamic_setup),
	(gst_audio_dynamic_transform_hard_knee_compressor_int),
	(gst_audio_dynamic_transform_hard_knee_compressor_float),
	(gst_audio_dynamic_transform_soft_knee_compressor_int),
	(gst_audio_dynamic_transform_soft_knee_compressor_float),
	(gst_audio_dynamic_transform_hard_knee_expander_int),
	(gst_audio_dynamic_transform_hard_knee_expander_float),
	(gst_audio_dynamic_transform_soft_knee_expander_int),
	(gst_audio_dynamic_transform_soft_knee_expander_float),
	(gst_audio_dynamic_transform_ip):
	* gst/audiofx/audiodynamic.h:
	* gst/audiofx/audiofx.c: (plugin_init):
	Add new audiodynamic element which can act as a compressor or
	expander. Supported are hard-knee and soft-knee operation modes with
	user-specified ratio and threshold.
	Attack and release parameters are not yet implemented but will follow.
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.args:
	* docs/plugins/inspect/plugin-audiofx.xml:
	Integrate audiodynamic into the docs.
	* tests/check/Makefile.am:
	* tests/check/elements/audiodynamic.c: (setup_dynamic),
	(cleanup_dynamic), (GST_START_TEST), (dynamic_suite), (main):
	Add unit test for audiodynamic.

2007-03-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_start):
	Free handles that we allocated when exiting via the error paths.

2007-03-07  Stefan Kost  <ensonic@users.sf.net>

	* gst/level/gstlevel.c: (gst_level_class_init),
	(gst_level_set_caps), (gst_level_start), (gst_level_event),
	(gst_level_transform_ip):
	* gst/level/gstlevel.h:
	  Resolve message timestamps against the playback segment.

2007-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad),
	(gst_id3demux_sink_activate):
	  Don't leak caps: make gst_id3demux_add_srcpad() not take ownership of the
	  caps passed to it (previously one code path assumed it took ownership
	  while another one assumed it didn't, while in fact it sometimes did and
	  sometimes didn't ...).

	* configure.ac:
	* tests/files/Makefile.am:
	* tests/files/id3-407349-1.tag:
	* tests/files/id3-407349-2.tag:
	  Add directory where data for unit tests can be stored.

	* tests/Makefile.am:
	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/id3demux.c: (pad_added_cb), (error_cb),
	(read_tags_from_file), (run_check_for_file),
	(check_date_1977_06_23), (GST_START_TEST), (id3demux_suite):
	  Add unit test for id3demux, and in particular for bug #407349. Only
	  testing pull-mode for now; push mode doesn't work yet because the test
	  files are smaller than ID3_TYPE_FIND_MIN_SIZE.

2007-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	  Add missing backslash at end of line.

2007-03-06  Jan Schmidt  <thaytan@mad.scientist.com>

	Trigger rebuild.

2007-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3tags.c: (id3demux_id3v2_frames_to_tag_list):
	* gst/id3demux/id3tags.h:
	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
	(parse_obsolete_tdat_frame):
	  Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise
	  the four-digit number will be interpreted as a year, whereas it is
	  month and day in DDMM format. Instead, parse TDAT frames and fix up
	  the date in the GST_TAG_DATE tag later if we also extracted a year.
	  Fixes #407349.

2007-03-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gconf/gstswitchsink.c: (gst_switch_sink_dispose),
	(gst_switch_commit_new_kid):
	Fix up the dispose logic so it doesn't leak, and fix setting of 
	the child state so that we don't set a child to our current state 
	just as we are changing it to something else.

2007-03-06  Wim Taymans  <wim@fluendo.com>

	* gst/goom/gstgoom.c: (gst_goom_src_setcaps), (get_buffer),
	(gst_goom_chain):
	* gst/goom/gstgoom.h:
	Document, fix and improve goom adapter behaviour.
	Fixes #407006.

2007-03-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/esd/esdsink.c: (gst_esdsink_open):
	Unref static pad template after using it.

2007-03-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gconf/gstswitchsink.c: (gst_switch_sink_dispose),
	(gst_switch_commit_new_kid):
	Fix up the reference counting of the child elements.

2007-03-05  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_setcaps):
	* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_finish_headers):
	* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_finish_headers):
	Fix encoding-name case.

2007-03-05  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_class_init),
	(gst_rtp_speex_depay_get_mode), (gst_rtp_speex_depay_setcaps),
	(gst_rtp_speex_depay_process):
	* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_base_init),
	(gst_rtp_speex_pay_class_init), (gst_rtp_speex_pay_setcaps),
	(gst_rtp_speex_pay_parse_ident), (gst_rtp_speex_pay_handle_buffer),
	(gst_rtp_speex_pay_change_state):
	* gst/rtp/gstrtpspeexpay.h:
	Fix speex (de)payloader. Fixes #358040.

2007-03-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gconf/gstswitchsink.c: (gst_switch_sink_reset),
	(gst_switch_commit_new_kid), (gst_switch_sink_set_child):
	Install fakesink in NULL by fixing some broken logic. This obviates
	the need to manually set _IS_SINK.
	Add some comments and remove a little cruft while I'm at it.

2007-03-05  Wim Taymans  <wim@fluendo.com>

	* ext/gconf/gstswitchsink.c: (gst_switch_sink_reset):
	Mark us as a sink when we have no fakesink in NULL. Fixes #414887.

2007-03-04  Tim-Philipp Müller  <tim at centricular dot net>

	* po/POTFILES.in:
	  Update.

2007-03-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/Makefile.am:
	Gah! Also disable gconfvideosink from the tests, otherwise
	it will instantiate autovideosink, and dfbvideosink and
	leak on the buildbots.

2007-03-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open),
	(gst_cdio_cdda_src_finalize):
	Make sure we always destroy our libcdio handle.

2007-03-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/Makefile.am:
	Disable autovideosink so the buildbots don't barf over memory
	leaked in the directfb sink.

2007-03-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/gstximagesrc.c: (gst_ximage_src_dispose):
	Chain up in dispose

2007-03-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/multipart/multipartdemux.c: (gst_multipart_demux_init),
	(gst_multipart_find_pad_by_mime):
	Use gst_pad_new_from_static_template instead of
	static_pad_template_get+pad_new.

2007-03-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/gstximagesrc.c: (gst_ximage_src_create):
	Catch the case where no clock has been set.

2007-03-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/flac/gstflacenc.c: (gst_flac_enc_finalize):
	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_class_init),
	(gst_gconf_audio_sink_dispose), (gst_gconf_audio_sink_finalize):
	* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init),
	(gst_gconf_audio_src_class_init), (gst_gconf_audio_src_dispose),
	(gst_gconf_audio_src_finalize), (do_toggle_element):
	* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init),
	(gst_gconf_video_sink_class_init), (gst_gconf_video_sink_finalize),
	(do_toggle_element):
	* ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init),
	(gst_gconf_video_src_class_init), (gst_gconf_video_src_dispose),
	(gst_gconf_video_src_finalize), (do_toggle_element):
	* ext/gconf/gstswitchsink.c: (gst_switch_sink_class_init),
	(gst_switch_sink_reset), (gst_switch_sink_set_child):
	* ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init):
	* ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init):
	* ext/shout2/gstshout2.c: (gst_shout2send_class_init),
	(gst_shout2send_init), (gst_shout2send_finalize):
	* gst/debug/testplugin.c: (gst_test_class_init),
	(gst_test_finalize):
	* gst/flx/gstflxdec.c: (gst_flxdec_class_init),
	(gst_flxdec_dispose):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_finalize):
	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize):
	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
	(gst_rtspsrc_finalize):
	* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_free_context):
	* gst/rtsp/rtspextwms.h:
	* gst/smpte/gstsmpte.c: (gst_smpte_class_init),
	(gst_smpte_finalize):
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_finalize):
	* gst/udp/gstudpsink.c: (gst_udpsink_class_init),
	(gst_udpsink_finalize):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_dispose),
	(gst_wavparse_sink_activate):
	* sys/oss/gstosssink.c: (gst_oss_sink_finalise):
	* sys/oss/gstosssrc.c: (gst_oss_src_class_init),
	(gst_oss_src_finalize):
	* sys/v4l2/gstv4l2object.c: (gst_v4l2_object_destroy):
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init),
	(gst_v4l2src_finalize):
	* sys/ximage/gstximagesrc.c: (gst_ximage_src_ximage_get):

	Fix a bunch of leaks shown by the newly-added states test.

2007-03-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init):
	Use gst_pad_new_from_static_template instead of 
	static_pad_template_get+pad_new.

2007-03-03  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Loïc Minier <lool+gnome at via ecp fr>

	* ext/libcaca/Makefile.am:
	* gst/debug/Makefile.am:
	  Don't mix tabs and spaces (#414168).

2007-03-02  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/generic/.cvsignore:
	  Ignore files to please buildbot.

2007-03-02  Stefan Kost  <ensonic@users.sf.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers),
	(gst_wavparse_stream_data):
	  Unbreak my previous commit (swapped nominator & denominator). Tim,
	  thanks for spotting.

2007-03-02  Wim Taymans  <wim@fluendo.com>

	* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_probe_devices),
	(gst_cdio_cdda_src_read_sector), (gst_cdio_cdda_src_open),
	(gst_cdio_cdda_src_finalize):
	Small code cleanups.
	Don't use pad_alloc as the base class cannot deal with the error codes.

2007-03-02  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
	(gst_udpsrc_create):
	Fix doc.

2007-03-02  Stefan Kost  <ensonic@users.sf.net>

	Patch by: René Stadler <mail@renestadler.de>

	* gst/wavparse/gstwavparse.c: (uint64_ceiling_scale_int),
	(gst_wavparse_perform_seek), (gst_wavparse_stream_headers),
	(gst_wavparse_stream_data):
	  Handle rounding better to not drop last sample frame. Fixes #356692

2007-03-02  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/Makefile.am:
	Disable cacasink from the states check too - it also calls exit(1)
	on us when it can't find a terminal to talk to.

2007-03-02  Wim Taymans  <wim@fluendo.com>

	Patch by: Thijs Vermeir <thijsvermeir at gmail dot com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init), (gst_udpsrc_init),
	(gst_udpsrc_create), (gst_udpsrc_set_property),
	(gst_udpsrc_get_property):
	* gst/udp/gstudpsrc.h:
	Add support to strip proprietary headers. Fixes #350296.

2007-03-02  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_process):
	Fix compilation.

2007-03-02  Wim Taymans  <wim@fluendo.com>

	Patch by: Thijs Vermeir <thijsvermeir at gmail dot com>

	* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_class_init),
	(gst_rtp_mp2t_depay_init), (gst_rtp_mp2t_depay_process),
	(gst_rtp_mp2t_depay_set_property),
	(gst_rtp_mp2t_depay_get_property):
	* gst/rtp/gstrtpmp2tdepay.h:
	Add support to strip off proprietary headers. Fixes #350278.

2007-03-02  Wim Taymans  <wim@fluendo.com>

	* ext/hal/hal.c:
	Fix compilation.

2007-03-02  Wim Taymans  <wim@fluendo.com>

	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_class_init),
	(gst_sunaudiosrc_init), (gst_sunaudiosrc_get_property),
	(gst_sunaudiosrc_open):
	* sys/sunaudio/gstsunaudiosrc.h:
	Remove device-name from GstSunAudioSrc. Fixes #412597.

2007-03-01  Sebastian Dröge  <slomo@circular-chaos.org>

	* ext/hal/gsthalaudiosink.c: (do_toggle_element):
	* ext/hal/gsthalaudiosrc.c: (do_toggle_element):
	Having NULL as UDI previously selected the default sink/src. Change
	this back but mention it in the debug output.
	* ext/hal/hal.c: (gst_hal_get_alsa_element),
	(gst_hal_get_oss_element), (gst_hal_get_string),
	(gst_hal_render_bin_from_udi), (gst_hal_get_audio_sink),
	(gst_hal_get_audio_src):
	* ext/hal/hal.h:
	Refactor a bit, check all error conditions, greatly improve debugging
	and fix some possible memory leaks. Also implement OSS support
	and allow specifying an UDI that points to a real device. For this the
	child device which supports ALSA (preferred) or OSS is used.
	As a side effect this makes it impossible now to get a alsasink in
	halaudiosrc and a alsasrc in halaudiosink.

2007-03-01  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (find_stream_by_channel),
	(find_stream_by_udpsrc), (gst_rtspsrc_handle_message):
	Errors from the udp sources are not fatal unless all of them are in
	error.

2007-03-01  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/Makefile.am:
	Disable aasink in the states test. I suspect this is the element that
	is calling exit(1) when it can't proceed.

2007-03-01  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 versions.

2007-03-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximage/gstximagesrc.c: (gst_ximage_src_open_display):
	Error out correctly when getting xcontext fails.

2007-03-01  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtpdec.c: (gst_rtpdec_change_state):
	Make state change to PAUSED NO_PREROLL because that's what it will be in
	the future and rtspsrc relies on it.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport),
	(gst_rtspsrc_change_state):
	Don't error out when we don't get an error from the state change
	function.

2007-03-01  Sebastian Dröge  <slomo@circular-chaos.org>

	* ext/hal/gsthalaudiosink.c: (do_toggle_element):
	* ext/hal/gsthalaudiosrc.c: (do_toggle_element):
	  Check if the device UDI is set before trying to query HAL
	  about it and give a useful error message if it wasn't set.
	* ext/hal/hal.c: (gst_hal_get_string):
	  Don't query HAL for NULL UDIs. Passing NULL as UDI to HAL
	  gives an assertion failure in D-Bus when running with
	  DBUS_FATAL_WARNINGS=1.

2007-02-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Convert to new AG_GST style.

2007-02-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/Makefile.am:
	* tests/check/generic/states.c: (GST_START_TEST), (states_suite):
	  add test for states

2007-02-28  Wim Taymans  <wim@fluendo.com>

	* tests/check/elements/.cvsignore:
	Add new videofilter check to .cvsignore.

2007-02-28  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_combine_flows),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
	(gst_avi_demux_loop), (gst_avi_demux_chain):
	Fix combined flow return. Fixes #412608.

2007-02-28  Wim Taymans  <wim@fluendo.com>

	* gst/videofilter/Makefile.am:
	Dist header..

2007-02-28  Wim Taymans  <wim@fluendo.com>

	* gst/videofilter/gstgamma.h:
	Add header too.

2007-02-28  Wim Taymans  <wim@fluendo.com>

	Patch by: Mark Nauwelaerts <manauw at skynet be>

	* gst/videofilter/Makefile.am:
	* gst/videofilter/gstgamma.c: (gst_gamma_base_init),
	(gst_gamma_class_init), (gst_gamma_init), (gst_gamma_set_property),
	(gst_gamma_get_property), (gst_gamma_calculate_tables),
	(oil_tablelookup_u8), (gst_gamma_set_caps),
	(gst_gamma_planar411_ip), (gst_gamma_transform_ip), (plugin_init):
	Port gamma filter to 0.10. Fixes #412704.

	* tests/check/Makefile.am:
	* tests/check/elements/videofilter.c: (setup_filter),
	(cleanup_filter), (check_filter), (GST_START_TEST),
	(videobalance_suite), (videoflip_suite), (gamma_suite), (main):
	Add unit tests for videofilters.

2007-02-28  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/URLS:
	Add another interesting test url.

	* gst/rtsp/rtspmessage.c: (rtsp_message_get_header):
	Don't allow getting header fields from data packets.

2007-02-28  Michael Smith  <msmith@fluendo.com>

	* ext/shout2/gstshout2.c: (gst_shout2send_class_init),
	(gst_shout2send_init), (gst_shout2send_start),
	(gst_shout2send_set_property), (gst_shout2send_get_property):
	* ext/shout2/gstshout2.h:
	  Add a property for username.

2007-02-27  Christian Schallerr <christian@fluendo.com>

	* sys/osxaudio: Add Pioneers of the inevitable to the copyright list

2007-02-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/rtsp/Makefile.am:
	Fix make check too.

2007-02-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/rtsp/base64.c: (util_base64_encode):
	* gst/rtsp/base64.h:
	Commit missing files for base64 encoding.

2007-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Loïc Minier <lool+gnome at via ecp fr>

	* configure.ac:
	* ext/annodex/Makefile.am:
	* ext/jpeg/Makefile.am:
	* ext/speex/Makefile.am:
	* gst/alpha/Makefile.am:
	* gst/cutter/Makefile.am:
	* gst/debug/Makefile.am:
	* gst/effectv/Makefile.am:
	* gst/goom/Makefile.am:
	* gst/level/Makefile.am:
	* gst/smpte/Makefile.am:
	* gst/videofilter/Makefile.am:
	  Fix build with LDFLAGS='-Wl,-z,defs' (#410997)

2007-02-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/rtsp/Makefile.am:
	* gst/rtsp/rtspconnection.c: (append_auth_header),
	(rtsp_connection_send), (rtsp_connection_set_auth):
	g_base64_encode is a GLib 2.12 function. Use an equivalent taken
	from icecast to replace it. Relicensed from GPL courtesy of Mike
	Smith.

2007-02-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_finalize),
	(gst_rtspsrc_create_stream), (rtsp_auth_method_to_string),
	(gst_rtspsrc_parse_auth_hdr), (gst_rtspsrc_setup_auth),
	(gst_rtspsrc_send), (gst_rtspsrc_try_send), (gst_rtspsrc_open),
	(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
	(gst_rtspsrc_uri_set_uri):
	* gst/rtsp/gstrtspsrc.h:
	* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
	(append_auth_header), (rtsp_connection_send),
	(rtsp_connection_free), (rtsp_connection_set_auth):
	* gst/rtsp/rtspconnection.h:
	* gst/rtsp/rtspdefs.h:
	* gst/rtsp/rtspurl.c: (rtsp_url_get_request_uri):
	* gst/rtsp/rtspurl.h:

	Implement simple Basic Authentication support so that urls like
	rtsp://user:pass@hostname/rtspstream work on hosts that require
	authentication.

>>>>>>> 1.2755
2007-02-22  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/v4l2_calls.c:
	Fix segfault when oppening a radio device.
	
2007-02-22  Stefan Kost  <ensonic@users.sf.net>

	* gst/level/gstlevel.c: (gst_level_set_caps),
	(gst_level_transform_ip):
	* sys/v4l2/README:
	* tests/check/elements/level.c: (GST_START_TEST):
	  Fix level for multi-channel case.

2007-02-21  Stefan Kost  <ensonic@users.sf.net>

	* gst/level/gstlevel.c: (gst_level_init), (gst_level_set_caps),
	(gst_level_transform_ip):
	* gst/level/gstlevel.h:
	  Use function pointer for process function and add process functions
	  for float audio.

2007-02-19  Stefan Kost  <ensonic@users.sf.net>

	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	(gst_v4l2src_grab_frame), (gst_v4l2src_set_capture),
	(gst_v4l2src_capture_init):
	  Readd GST_ELEMENT_ERROR if we can't reenque buffers after EIO,
	  fixes #407369

2007-02-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpmp2tpay.c: (gst_rtp_mp2t_pay_base_init),
	(gst_rtp_mp2t_pay_class_init), (gst_rtp_mp2t_pay_init),
	(gst_rtp_mp2t_pay_setcaps), (gst_rtp_mp2t_pay_handle_buffer),
	(gst_rtp_mp2t_pay_plugin_init):
	* gst/rtp/gstrtpmp2tpay.h:
	Added simple mpeg transport stream payloader.

2007-02-16  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/URLS:
	Add example H264 rtsp url.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
	Don't convert values to lowercase or we might mess up base64 encoded
	properties.

2007-02-16  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/README:
	Fix case of string params.

	* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_class_init),
	(gst_rtp_h264_depay_setcaps), (gst_rtp_h264_depay_process):
	Fix depayloader, support more packet types.
	Add sync codes to make sure the packetizer can do its job.

	* gst/rtp/gstrtpmp4gdepay.c:
	* gst/rtp/gstrtpmp4gpay.c:
	* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_process):
	Fix caps case again.

2007-02-15  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_process):
	Set right caps on output buffers.

2007-02-14  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/sdpmessage.c: (sdp_parse_line):
	As spotted by: Peter Kjellerstedt  <pkj at axis com>:
	Clear stack allocated SDPMedia struct before calling _init() on it.
	Clarify this in the docs as well.

2007-02-14  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_reset),
	(do_change_child):
	Don't reset the profile when going switching states, as it makes
	the element non-reusable.

2007-02-14  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/sdpmessage.c: (sdp_origin_init), (sdp_connection_init),
	(sdp_bandwidth_init), (sdp_time_init), (sdp_zone_init),
	(sdp_key_init), (sdp_attribute_init), (sdp_message_init),
	(sdp_message_uninit), (sdp_message_free), (sdp_media_init),
	(sdp_media_uninit), (sdp_media_free), (sdp_message_add_media),
	(sdp_parse_line):
	* gst/rtsp/sdpmessage.h:
	Based on patch by: jp.liu <jp_liu at astrocom dot cn>
	Fix memory management of SDP messages. Fixes #407793.

2007-02-14  Stefan Kost  <ensonic@users.sf.net>

	Patch by: zhangfei gao <gaozhangfei@yahoo.com.cn>

	* gst/avi/gstavimux.c: (gst_avi_mux_vidsink_set_caps):
	Allow muxing video/x-h264 (was already in the caps). Fixes #407780.

2007-02-14  Wim Taymans  <wim@fluendo.com>

	Patch by: jp.liu <jp_liu at astrocom dot cn>

	* gst/rtsp/rtspurl.c: (rtsp_url_parse):
	Fix parsing of password field in url. Fixes #407797.

2007-02-14  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_class_init),
	(gst_wavparse_reset), (gst_wavparse_init),
	(gst_wavparse_destroy_sourcepad), (gst_wavparse_fmt),
	(gst_wavparse_parse_file_header), (gst_wavparse_stream_init),
	(gst_wavparse_perform_seek), (gst_wavparse_peek_chunk_info),
	(gst_wavparse_stream_headers), (gst_wavparse_parse_stream_init),
	(gst_wavparse_add_src_pad), (gst_wavparse_stream_data),
	(gst_wavparse_loop), (gst_wavparse_chain),
	(gst_wavparse_pad_convert), (gst_wavparse_pad_query),
	(gst_wavparse_srcpad_event), (gst_wavparse_change_state),
	(plugin_init):
	* gst/wavparse/gstwavparse.h:
	Update docs.
	Use boilerplate.
	Various code cleanups.
	When the bitrate is not known (bps == 0 or compressed formats) let
	downstream element guestimate the duration and position and don't
	generate timestamps or durations. Fixes #405213.
	Fix EOS and ERROR conditions in chain mode, we just need to forward the
	error flowreturn upstream.

2007-02-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gconf/Makefile.am:
	* ext/gconf/gconf.c: (gst_gconf_get_string),
	(gst_gconf_get_key_for_sink_profile), (gst_gconf_set_string),
	(gst_gconf_render_bin_with_default):
	* ext/gconf/gconf.h:
	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init),
	(gst_gconf_audio_sink_reset), (gst_gconf_audio_sink_init),
	(gst_gconf_audio_sink_dispose), (do_change_child),
	(gst_gconf_switch_profile), (gst_gconf_audio_sink_set_property),
	(cb_change_child), (gst_gconf_audio_sink_change_state):
	* ext/gconf/gstgconfaudiosink.h:
	* ext/gconf/gstswitchsink.c: (gst_switch_sink_base_init),
	(gst_switch_sink_class_init), (gst_switch_sink_reset),
	(gst_switch_sink_init), (gst_switch_sink_dispose),
	(gst_switch_commit_new_kid), (gst_switch_sink_set_child),
	(gst_switch_sink_set_property), (gst_switch_sink_handle_event),
	(gst_switch_sink_get_property), (gst_switch_sink_change_state):
	* ext/gconf/gstswitchsink.h:
	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_class_init), (gst_auto_audio_sink_dispose),
	(gst_auto_audio_sink_clear_kid), (gst_auto_audio_sink_reset),
	(gst_auto_audio_sink_detect):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_class_init), (gst_auto_video_sink_dispose),
	(gst_auto_video_sink_clear_kid), (gst_auto_video_sink_reset),
	(gst_auto_video_sink_detect):
	Re-factor the gconfaudiosink into a "GstSwitchSink" base class
	and a child that implements the GConf key monitoring. The end goal of
	this is an audio sink that can be changed on the fly, but at the 
	moment it still only changes on the next READY transition.

2007-02-13  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_parse_index), (gst_avi_demux_stream_index),
	(gst_avi_demux_sync), (gst_avi_demux_massage_index),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_push_event), (gst_avi_demux_stream_header_pull),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
	(gst_avi_demux_loop):
	  Put debug stuff into #ifndef GST_DISABLE_DEBUG #endif

2007-02-13  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	  Add crossreferences to glib/gobject/gstream docs.

2007-02-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/monoscope/Makefile.am:
	* gst/monoscope/gstmonoscope.c:
	  Fix copy'n'paste-o in docs chunk. Also add some missing CFLAGS
	  (but no LIBS, since we only use defines from the headers).

2007-02-12  Tim-Philipp Müller  <tim at centricular dot net>

	Based on patch by: Jonathan Matthew  <jonathan at kaolin wh9 net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_stream_init),
	(gst_wavparse_stream_data):
	  Fix massive memory leak when operating in streaming mode due to
	  GST_BUFFER_MALLOCDATA() not being set on newly-created buffers.
	  Fixes #407057.

2007-02-12  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_class_init),
	(gst_avi_demux_reset), (gst_avi_demux_index_entry_for_time),
	(gst_avi_demux_handle_src_query), (gst_avi_demux_parse_superindex),
	(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
	(gst_avi_demux_parse_index), (gst_avi_demux_stream_index),
	(gst_avi_demux_sync), (gst_avi_demux_next_data_buffer),
	(gst_avi_demux_stream_scan), (gst_avi_demux_massage_index),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_push_event), (gst_avi_demux_stream_header_pull),
	(gst_avi_demux_do_seek), (gst_avi_demux_process_next_entry),
	(gst_avi_demux_stream_data), (gst_avi_demux_loop):
	* gst/avi/gstavidemux.h:
	  Save some memory (8%) by repacking the index entry structure (more to
	  come). Add more FIXMEs to questionable parts.

2007-02-12  Stefan Kost  <ensonic@users.sf.net>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps),
	(gst_v4l2src_get_caps):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	(gst_v4l2src_grab_frame), (gst_v4l2src_set_capture),
	(gst_v4l2src_capture_init):
	  More FIXME comments and messaging changes.

2007-02-12  Stefan Kost  <ensonic@users.sf.net>

	* gst/goom/gstgoom.c: (gst_goom_class_init), (gst_goom_init),
	(gst_goom_change_state):
	* gst/goom/gstgoom.h:
	  Improved docs and use GST_DEBUG_FUNCPTR.

	* gst/level/gstlevel.c: (gst_level_class_init):
	  Use GST_DEBUG_FUNCPTR.

	* gst/monoscope/gstmonoscope.c: (gst_monoscope_init),
	(gst_monoscope_chain), (gst_monoscope_change_state):
	  Improved docs source cleanups.

2007-02-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/debug/Makefile.am:
	* gst/debug/gstdebug.c: (plugin_init):
	* gst/debug/gstpushfilesrc.c:
	* gst/debug/gstpushfilesrc.h:
	  Add code for a pushfilesrc element that implements a pushfile:// URI
	  handler, to make debugging push-mode operation of demuxer/decoders
	  that support both easier in connection with seek/playbin/etc.
	  The element isn't registered at the moment.

2007-02-11  Sébastien Moutte  <sebastien@moutte.net>

	* gst/avi/gstavimux.c:
	  Comment a #if 0 in caps template definition as VS6 seems to 
	do not support it.
	* gst/rtsp/gstrtspsrc.c:(gst_rtspsrc_loop_udp):
	  Use gst_guint64_to_gdouble for conversion.
	* gst/rtsp/rtspconnection.c:(rtsp_connection_send):
	  Move variables declaration before the first instruction.
	* gst/rtsp/rtspdefs.c:(rtsp_strresult):
	  Don't use hstrerror for error log on G_OS_WIN32 build as it's not supported.
	  And don't include netdb.h for G_OS_WIN32
	* gst/rtsp/sdpmessage.c:(sdp_parse_line):
	  This initialization SDPMedia nmedia = {.media = NULL }; is not supported
	  by VS6 then use an other way to initialize SDPMedia structure.
	* gst/udp/gstdynudpsink.h:
	* gst/udp/gstdynudpnetutils.h:
	  Do not include <sys/time.h> for G_OS_WIN32
	* gst/udp/gstudpsrc.c:
	  Define socklen_t as int for G_OS_WIN32
	* win/common/config.h.in:
	  Undef HAVE_NETINET_IN_H
	* win32/vs6/gst_plugins_good.dsw:
	* win32/vs6/libgstrtp.dsp:
	* win32/vs6/libgstrtsp.dsp:
	* win32/vs6/libgstautogen.dsp:
	* win32/vs6/libgstaudiofx.dsp:
	* win32/vs6/libgstudp.dsp:
	  Add and update project files.
	* win32/common/gstudp-enumtypes.c:
	* win32/common/gstudp-enumtypes.h:
	  Add a copy of udp enumtypes to win32/common as in core 
	  and base.
	
2007-02-11  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	  Activate monoscope when building with --enable-experimental. Fix
	  --enable-external configure switch description.

	* sys/sunaudio/gstsunaudiomixer.c: (gst_sunaudiomixer_base_init):
	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_dispose):
	  Help gst-indent.

2007-02-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavimux.c: (gst_avi_mux_riff_get_avi_header):
	  Explicitly cast result of pointer arithmetic to integer in order to
	  avoid compiler warnings on some 64-bit systems. Should fix #406018.

2007-02-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/debug/progressreport.c:
	  Some more docs.

2007-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/inspect/plugin-rtp.xml:
	  Update for new elements.

	* gst/debug/progressreport.h:
	  Commit newly-created header file as well.

2007-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	* gst/debug/Makefile.am:
	* gst/debug/progressreport.c: (gst_progress_report_post_progress),
	(gst_progress_report_do_query), (gst_progress_report_report):
	  Make progressreport element post messages with the current progress
	  on the bus. Also add some basic docs for it.

2007-01-30  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/hal/hal.c: (gst_hal_get_string):
	* ext/hal/hal.h:
	  Some small cleanups; deal with errors when parsing the HAL ALSA
	  capabilities a bit better.

2007-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/smpte/gstsmpte.c: (gst_smpte_transition_type_get_type):
	  Let's try this again and use the right cast this time.

2007-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/smpte/gstsmpte.c: (gst_smpte_transition_type_get_type):
	  Add cast to avoid compiler warnings with older GLib versions
	  where the nick/name members in GEnumValue are not declared as
	  constant strings.

2007-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gconf/gconf.c: (gst_gconf_get_key_for_sink_profile),
	(gst_gconf_render_bin_from_key),
	(gst_gconf_get_default_audio_sink):
	* ext/gconf/gconf.h:
	* ext/gconf/gstgconfaudiosink.c: (get_gconf_key_for_profile),
	(do_toggle_element), (gst_gconf_audio_sink_set_property),
	(gst_gconf_audio_sink_get_property):
	  In gconfaudiosink, get the right key as the old key in do_toggle
	  (ie. one dependent on the profile selected). Log some more stuff so
	  we can see what's actually going on.

2007-02-06  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst/audiofx/audioamplify.c: (gst_audio_amplify_base_init),
	(gst_audio_amplify_class_init), (gst_audio_amplify_init),
	(gst_audio_amplify_set_process_function),
	(gst_audio_amplify_setup):
	* gst/audiofx/audioamplify.h:
	* gst/audiofx/audioinvert.c: (gst_audio_invert_base_init),
	(gst_audio_invert_class_init), (gst_audio_invert_setup):
	* gst/audiofx/audioinvert.h:
	Some small cleanups and port both elements to the new GstAudioFilter
	base class to save a few lines of common code.
	* gst/audiofx/Makefile.am:
	Link against libgstaudio for the above changes

2007-01-29  Wim Taymans  <wim@fluendo.com>

	* tests/check/elements/.cvsignore:
	Some more ignores.

2007-01-26  Wim Taymans  <wim@fluendo.com>

	Patch by: charles <charlesg3 at gmail dot com>

	* ext/shout2/gstshout2.c: (gst_shout2send_init),
	(set_shout_metadata), (gst_shout2send_event):
	* ext/shout2/gstshout2.h:
	Properly handle tags in shout2send. Fixes #399825.

2007-01-25  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_activate_streams):
	Convert SDP fields to upper/lowercase following the rules in the SDP to
	caps document. 

2007-01-25  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/README:
	* gst/rtp/gstrtpilbcdepay.c:
	* gst/rtp/gstrtpilbcpay.c:
	* gst/rtp/gstrtpmp4gdepay.c:
	* gst/rtp/gstrtpmp4gpay.c:
	* gst/rtp/gstrtpspeexdepay.c:
	* gst/rtp/gstrtpspeexpay.c:
	* gst/rtp/gstrtpsv3vdepay.c:
	* gst/rtp/gstrtptheoradepay.c:
	* gst/rtp/gstrtptheorapay.c:
	* gst/rtp/gstrtpvorbisdepay.c:
	* gst/rtp/gstrtpvorbispay.c:
	Fix case of encoding-name and key/value pairs to match the document.
	This is to make interoperation with SDP case-insensitive as required by
	the relevant RFCs.

2007-01-25  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	Bump required -core/-base to CVS

2007-01-25  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_setcaps),
	(gst_rtp_L16_pay_flush), (gst_rtp_L16_pay_handle_buffer):
	* gst/rtp/gstrtpL16pay.h:
	Fill up to MTU using adapter.
	Timestamp rtp packets.

2007-01-25  Edward Hervey  <edward@fluendo.com>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_collected):
	* sys/ximage/ximageutil.c: (ximageutil_check_xshm_calls):
	Use G_GSIZE_FORMAT in print statements for portability.
	Fixes build on macosx.

2007-01-24  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_base_init),
	(gst_rtp_L16_depay_class_init), (gst_rtp_L16_depay_init),
	(gst_rtp_L16_depay_parse_int), (gst_rtp_L16_depay_setcaps),
	(gst_rtp_L16_depay_process), (gst_rtp_L16_depay_set_property),
	(gst_rtp_L16_depay_get_property), (gst_rtp_L16_depay_change_state),
	(gst_rtp_L16_depay_plugin_init):
	* gst/rtp/gstrtpL16depay.h:
	* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_get_type),
	(gst_rtp_L16_pay_base_init), (gst_rtp_L16_pay_class_init),
	(gst_rtp_L16_pay_init), (gst_rtp_L16_pay_finalize),
	(gst_rtp_L16_pay_setcaps), (gst_rtp_L16_pay_handle_buffer),
	(gst_rtp_L16_pay_plugin_init):
	* gst/rtp/gstrtpL16pay.h:
	Port and enable raw audio payloader/depayloader. Needs a bit more work
	on the payloader side.

2007-01-24  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (pad_blocked),
	(gst_rtspsrc_stream_configure_transport),
	(gst_rtspsrc_activate_streams), (gst_rtspsrc_loop_udp):
	* gst/rtsp/gstrtspsrc.h:
	Only unblock the udp pads when we linked and activated them all.
	Fixes #395688.

2007-01-24  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpac3depay.c: (gst_rtp_ac3_depay_base_init),
	(gst_rtp_ac3_depay_class_init), (gst_rtp_ac3_depay_init),
	(gst_rtp_ac3_depay_setcaps), (gst_rtp_ac3_depay_process),
	(gst_rtp_ac3_depay_set_property), (gst_rtp_ac3_depay_get_property),
	(gst_rtp_ac3_depay_change_state), (gst_rtp_ac3_depay_plugin_init):
	* gst/rtp/gstrtpac3depay.h:
	Added simple AC3 depayloader (RFC 4184).

	* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps):
	Fix a leak.

2007-01-24  Sebastian Dröge  <slomo@circular-chaos.org>

	reviewed by: Stefan Kost  <ensonic@users.sf.net>

	* gst/audiofx/Makefile.am:
	* gst/audiofx/audioamplify.c:
	(gst_audio_amplify_clipping_method_get_type),
	(gst_audio_amplify_base_init), (gst_audio_amplify_class_init),
	(gst_audio_amplify_init), (gst_audio_amplify_set_process_function),
	(gst_audio_amplify_set_property), (gst_audio_amplify_get_property),
	(gst_audio_amplify_set_caps),
	(gst_audio_amplify_transform_int_clip),
	(gst_audio_amplify_transform_int_wrap_negative),
	(gst_audio_amplify_transform_int_wrap_positive),
	(gst_audio_amplify_transform_float_clip),
	(gst_audio_amplify_transform_float_wrap_negative),
	(gst_audio_amplify_transform_float_wrap_positive),
	(gst_audio_amplify_transform_ip):
	* gst/audiofx/audioamplify.h:
	* gst/audiofx/audiofx.c: (plugin_init):
	Add new element "audioamplify". This allows scaling of raw audio
	samples, similar to the "volume" element, but provides different modes
	for clipping and allows unlimited amplification. It's mainly targeted
	for creative sound design and not as a replacement of the "volume"
	element. Fixes #397162
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.args:
	* docs/plugins/inspect/plugin-audiofx.xml:
	Add docs for audioamplify and integrate them into the build system
	* tests/check/Makefile.am:
	* tests/check/elements/audioamplify.c: (setup_amplify),
	(cleanup_amplify), (GST_START_TEST), (amplify_suite), (main):
	Add fairly extensive unit test suite for audioamplify

2007-01-24  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (pad_unblocked), (pad_blocked):
	Unblock pads after adding the pads to the element so that autopluggers
	get a change to link something. Possibly fixes #395688.

2007-01-24  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrdepay.c:
	* gst/rtp/gstrtpgsmdepay.c:
	* gst/rtp/gstrtph263pdepay.c:
	* gst/rtp/gstrtph263ppay.c:
	* gst/rtp/gstrtph264depay.c:
	* gst/rtp/gstrtpilbcdepay.c:
	* gst/rtp/gstrtpmp2tdepay.c:
	* gst/rtp/gstrtpmp4gdepay.c:
	* gst/rtp/gstrtpmp4gpay.c:
	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_class_init):
	* gst/rtp/gstrtpmp4vpay.c:
	* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_class_init),
	(gst_rtp_mpa_depay_init), (gst_rtp_mpa_depay_setcaps),
	(gst_rtp_mpa_depay_process):
	* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_class_init),
	(gst_rtp_mpv_depay_init), (gst_rtp_mpv_depay_process):
	* gst/rtp/gstrtppcmadepay.c:
	* gst/rtp/gstrtppcmudepay.c:
	* gst/rtp/gstrtpspeexdepay.c:
	* gst/rtp/gstrtpspeexpay.c:
	* gst/rtp/gstrtpsv3vdepay.c:
	* gst/rtp/gstrtptheoradepay.c:
	* gst/rtp/gstrtptheorapay.c:
	* gst/rtp/gstrtpvorbisdepay.c:
	* gst/rtp/gstrtpvorbispay.c:
	Fix caps with payload numbers.
	Add some fixed payload numbers to caps when possible.

2007-01-23  Sebastian Dröge  <slomo@circular-chaos.org>

	reviewed by: Stefan Kost  <ensonic@users.sf.net>

	* gst/audiofx/Makefile.am:
	* gst/audiofx/audiofx.c: (plugin_init):
	* gst/audiofx/audioinvert.c: (gst_audio_invert_base_init),
	(gst_audio_invert_class_init), (gst_audio_invert_init),
	(gst_audio_invert_set_property), (gst_audio_invert_get_property),
	(gst_audio_invert_set_caps), (gst_audio_invert_transform_int),
	(gst_audio_invert_transform_float),
	(gst_audio_invert_transform_ip):
	* gst/audiofx/audioinvert.h:
	Add new audiofx element "audioinvert". This element swaps the upper
	and lower half of samples and can be used for example for a
	wide-stereo effect. Fixes #396057
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.args:
	* docs/plugins/inspect/plugin-audiofx.xml:
	Add docs for the audioinvert element and add them to the build system.
	* tests/check/Makefile.am:
	* tests/check/elements/audioinvert.c: (setup_invert),
	(cleanup_invert), (GST_START_TEST), (invert_suite), (main):
	Add unit test suite for the audioinvert element.

2007-01-23  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_parse_int),
	(gst_rtp_mp4g_depay_setcaps), (gst_rtp_mp4g_depay_process):
	Parse config params as string and int.
	Parse and use AU header length

2007-01-23  Wim Taymans  <wim@fluendo.com>

	* gst/smpte/barboxwipes.c: (gst_wipe_boxes_draw),
	(gst_wipe_triangles_clock_draw), (gst_wipe_triangles_draw):
	* gst/smpte/gstmask.c: (_gst_mask_register):
	* gst/smpte/gstmask.h:
	* gst/smpte/gstsmpte.c: (gst_smpte_update_mask):
	* gst/smpte/paint.c: (gst_smpte_paint_hbox), (draw_bresenham_line),
	(gst_smpte_paint_triangle_clock):
	constify some static structs.
	Don't update the mask if nothing changed to the params.
	Make sure we never draw outside of the picture. Fixes #398325.

2007-01-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_header_pull):
	  Error out properly when pull_range fails while we're reading the
	  headers, instead of just pausing the task silently. Fixes #399338.

2007-01-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/smpte/gstsmpte.c: (gst_smpte_collected):
	  Some more sanity checks to make sure the input formats match and the
	  input pads are actually negotiated, in case someone tries to feed
	  buffers from fakesrc or filesrc. Fixes #398299.
	  Also const-ify an array, just because we can.

2007-01-19  Edward Hervey  <edward@fluendo.com>

	* gst/smpte/gstsmpte.c: (fill_i420), (gst_smpte_collected):
	Ignore previous commit, that was only valid for widths and heights
	that are multiples of 4.
	Copy over size/stride macros from jpegdec. This allows the element
	to work with any width,height...
	... but puts in evidence that the actual transformations only work
	with width/height that are multiples of 4.

2007-01-19  Edward Hervey  <edward@fluendo.com>

	* gst/smpte/gstsmpte.c: (gst_smpte_collected):
	Allocate buffers of the right size.
	The proper size of a I420 buffer in bytes is:
	
	    width * height * 3
	    ------------------
	            2

2007-01-18  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/smpte/gstsmpte.c: (gst_smpte_init):
	  Proxy getcaps on sink pads too, so that we either end up with the
	  same dimensions on all pads or error out if that's not possible
	  (seems to work even!). Fixes #398086, I think.

2007-01-18  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins.args:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	  Remove ladspa from docs; add hierarchy info for GstAudioPanorama;
	  fix integer properties with -1 as minimum value.

	* docs/plugins/inspect/plugin-1394.xml:
	* docs/plugins/inspect/plugin-aasink.xml:
	* docs/plugins/inspect/plugin-alaw.xml:
	* docs/plugins/inspect/plugin-alpha.xml:
	* docs/plugins/inspect/plugin-alphacolor.xml:
	* docs/plugins/inspect/plugin-annodex.xml:
	* docs/plugins/inspect/plugin-apetag.xml:
	* docs/plugins/inspect/plugin-audiofx.xml:
	* docs/plugins/inspect/plugin-auparse.xml:
	* docs/plugins/inspect/plugin-autodetect.xml:
	* docs/plugins/inspect/plugin-avi.xml:
	* docs/plugins/inspect/plugin-cacasink.xml:
	* docs/plugins/inspect/plugin-cairo.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-cutter.xml:
	* docs/plugins/inspect/plugin-debug.xml:
	* docs/plugins/inspect/plugin-dv.xml:
	* docs/plugins/inspect/plugin-efence.xml:
	* docs/plugins/inspect/plugin-effectv.xml:
	* docs/plugins/inspect/plugin-esdsink.xml:
	* docs/plugins/inspect/plugin-flac.xml:
	* docs/plugins/inspect/plugin-flxdec.xml:
	* docs/plugins/inspect/plugin-gconfelements.xml:
	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
	* docs/plugins/inspect/plugin-goom.xml:
	* docs/plugins/inspect/plugin-halelements.xml:
	* docs/plugins/inspect/plugin-icydemux.xml:
	* docs/plugins/inspect/plugin-id3demux.xml:
	* docs/plugins/inspect/plugin-jpeg.xml:
	* docs/plugins/inspect/plugin-level.xml:
	* docs/plugins/inspect/plugin-matroska.xml:
	* docs/plugins/inspect/plugin-mulaw.xml:
	* docs/plugins/inspect/plugin-multipart.xml:
	* docs/plugins/inspect/plugin-navigationtest.xml:
	* docs/plugins/inspect/plugin-ossaudio.xml:
	* docs/plugins/inspect/plugin-png.xml:
	* docs/plugins/inspect/plugin-rtp.xml:
	* docs/plugins/inspect/plugin-rtsp.xml:
	* docs/plugins/inspect/plugin-shout2send.xml:
	* docs/plugins/inspect/plugin-smpte.xml:
	* docs/plugins/inspect/plugin-speex.xml:
	* docs/plugins/inspect/plugin-taglib.xml:
	* docs/plugins/inspect/plugin-udp.xml:
	* docs/plugins/inspect/plugin-videobalance.xml:
	* docs/plugins/inspect/plugin-videobox.xml:
	* docs/plugins/inspect/plugin-videoflip.xml:
	* docs/plugins/inspect/plugin-videomixer.xml:
	* docs/plugins/inspect/plugin-wavenc.xml:
	* docs/plugins/inspect/plugin-wavparse.xml:
	* docs/plugins/inspect/plugin-ximagesrc.xml:
	  Update to CVS.

2007-01-18  Stefan Kost  <ensonic@users.sf.net>

	Patch by: Sebastian Dröge <slomo circular-chaos org>

	* gst/audiofx/audiopanorama.c:
	  Fix doc section name (Fixes #397946)

2007-01-17  Stefan Kost  <ensonic@users.sf.net>

	* sys/v4l2/gstv4l2object.c:
	(gst_v4l2_object_install_properties_helper),
	(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_init), (gst_v4l2src_set_property),
	(gst_v4l2src_get_property), (gst_v4l2src_set_caps):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	(gst_v4l2src_grab_frame), (gst_v4l2src_set_capture),
	(gst_v4l2src_capture_init), (gst_v4l2src_capture_start),
	(gst_v4l2src_capture_deinit):
	  Fix EIO handing when capturing. Add new property to specify the number of
	  buffers to enque (and remove the borked num-buffers usage).

2007-01-16  Stefan Kost  <ensonic@users.sf.net>

	Patch by: Sebastian Dröge <slomo circular-chaos org>

	* gst/audiofx/audiopanorama.c: (gst_audio_panorama_class_init),
	(gst_audio_panorama_set_process_function):
	  Use a function array for process methods, add more docs and define the
	  startindex of enums.

2007-01-14  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts <manauw at skynet be>

	* gst/avi/gstavimux.c: (gst_avi_mux_finalize),
	(gst_avi_mux_pad_reset), (gst_avi_mux_reset), (gst_avi_mux_init),
	(gst_avi_mux_vidsink_set_caps), (gst_avi_mux_audsink_set_caps),
	(gst_avi_mux_request_new_pad), (gst_avi_mux_release_pad),
	(gst_avi_mux_riff_get_avi_header),
	(gst_avi_mux_riff_get_avix_header), (gst_avi_mux_riff_get_header),
	(gst_avi_mux_write_avix_index), (gst_avi_mux_add_index),
	(gst_avi_mux_bigfile), (gst_avi_mux_start_file),
	(gst_avi_mux_stop_file), (gst_avi_mux_handle_event),
	(gst_avi_mux_do_buffer), (gst_avi_mux_do_one_buffer),
	(gst_avi_mux_change_state):
	* gst/avi/gstavimux.h:
	* tests/check/elements/avimux.c: (teardown_src_pad):
	  Add support for more than one audio stream; write better AVIX
	  header; refactor code a bit; don't announce vorbis caps on our audio
	  sink pads since we don't support it anyway. Closes #379298.

2007-01-13  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge <slomo circular-chaos org>

	* gst/audiofx/audiopanorama.c:
	(gst_audio_panorama_method_get_type),
	(gst_audio_panorama_class_init), (gst_audio_panorama_init),
	(gst_audio_panorama_set_process_function),
	(gst_audio_panorama_set_property),
	(gst_audio_panorama_get_property), (gst_audio_panorama_set_caps),
	(gst_audio_panorama_transform_m2s_int_simple),
	(gst_audio_panorama_transform_s2s_int_simple),
	(gst_audio_panorama_transform_m2s_float_simple),
	(gst_audio_panorama_transform_s2s_float_simple):
	* gst/audiofx/audiopanorama.h:
	  Add 'method' property and provide a simple (non-psychoacustic)
	  processing method (#394859).

	* tests/check/elements/audiopanorama.c: (GST_START_TEST),
	(panorama_suite):
	  Tests for new method.

2007-01-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_read_range):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_read_range):
	  Set correct caps on outgoing pulled buffers, or things blow up
	  after recent core changes.

2007-01-11  Wim Taymans  <wim@fluendo.com>

	Based on patch by: Jonas Holmberg <jonas dot holmberg at axis dot com>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_init),
	(gst_multipart_mux_request_new_pad),
	(gst_multipart_mux_queue_pads), (gst_multipart_mux_collected),
	(gst_multipart_mux_change_state):
	Return FLOW errors ASAP. Fixes #394977.
	Misc cleanups.

2007-01-11  Wim Taymans  <wim@fluendo.com>

	Patch by: Lutz Mueller <lutz at topfrose dot de>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_activate_streams):
	Check for stream pad before activating. 

2007-01-10  Wim Taymans  <wim@fluendo.com>

	Patch by: Peter Kjellerstedt  <pkj at axis com>

	* gst/rtsp/COPYING.MIT:
	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
	(gst_rtspsrc_stream_free), (gst_rtspsrc_cleanup),
	(gst_rtspsrc_alloc_udp_ports), (pad_unblocked), (pad_blocked),
	(gst_rtspsrc_stream_configure_transport),
	(gst_rtspsrc_activate_streams), (gst_rtspsrc_loop_interleaved),
	(gst_rtspsrc_loop_udp), (gst_rtspsrc_send),
	(gst_rtspsrc_parse_methods),
	(gst_rtspsrc_create_transports_string),
	(gst_rtspsrc_prepare_transports), (gst_rtspsrc_setup_streams),
	(gst_rtspsrc_open), (gst_rtspsrc_close):
	* gst/rtsp/gstrtspsrc.h:
	* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
	(rtsp_connection_connect), (rtsp_connection_send), (read_line),
	(parse_request_line), (parse_line), (rtsp_connection_read),
	(rtsp_connection_close):
	* gst/rtsp/rtspdefs.c: (rtsp_init_status), (rtsp_strresult),
	(rtsp_method_as_text), (rtsp_header_as_text),
	(rtsp_status_as_text), (rtsp_find_header_field),
	(rtsp_find_method):
	* gst/rtsp/rtspdefs.h:
	* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_after_send),
	(rtsp_ext_wms_configure_stream):
	* gst/rtsp/rtspmessage.c: (rtsp_message_new), (rtsp_message_init),
	(rtsp_message_new_request), (rtsp_message_init_request),
	(rtsp_message_new_response), (rtsp_message_init_response),
	(rtsp_message_init_data), (rtsp_message_unset),
	(rtsp_message_free), (rtsp_message_add_header),
	(rtsp_message_get_header), (rtsp_message_set_body),
	(rtsp_message_get_body), (dump_mem), (rtsp_message_dump):
	* gst/rtsp/rtspmessage.h:
	* gst/rtsp/sdpmessage.c: (sdp_message_get_attribute_val_n),
	(sdp_media_get_attribute_val_n), (read_string), (read_string_del),
	(sdp_parse_line), (sdp_message_parse_buffer), (print_media),
	(sdp_message_dump):
	Allow url to be NULL to be able to use it for server connections.
	Can now send responses as well as requests.
	No longer hangs in an endless loop if EOF is received.
	Can now convert a status code to a text string.
	Return RTSP_HDR_INVALID for unknown headers.
	Return RTSP_INVALID for unknown methods.
	Copy CSeq and Session headers from the request.
	Only free memory corresponding to the currently set message type.
	Added const to function arguments as appropriate.
	Avoid a compiler warning when initializing nmedia.
	Use guint rather than gint to avoid compiler warnings.
	Fix crasher in wms extension.
	Factor out stream setup from open_connection.
	Delay activation of streams when actual data is received from the
	server, this prepares us to do proper protocol switching.
	Added new license.
	Fixes #380895.


2007-01-10  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge <slomo ubuntu com>

	* docs/plugins/Makefile.am:
	* gst/audiofx/audiopanorama.c:
	  Some small docs fixes (#394851).

2007-01-09  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c:
	Fix docs.

2007-01-09  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_base_init),
	(gst_rtp_mpv_depay_class_init), (gst_rtp_mpv_depay_init),
	(gst_rtp_mpv_depay_setcaps), (gst_rtp_mpv_depay_process),
	(gst_rtp_mpv_depay_set_property), (gst_rtp_mpv_depay_get_property),
	(gst_rtp_mpv_depay_change_state), (gst_rtp_mpv_depay_plugin_init):
	* gst/rtp/gstrtpmpvdepay.h:
	  Added RFC 2250 MPEG Video Depayloader.

	* gst/rtp/gstrtpL16depay.h:
	* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_setcaps),
	(gst_rtp_h263p_depay_process):
	Fix Header file. Small cleanups.

	* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_class_init),
	(gst_rtp_mp4g_depay_init), (gst_rtp_mp4g_depay_finalize),
	(gst_rtp_mp4g_depay_process), (gst_rtp_mp4g_depay_change_state):
	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_class_init),
	(gst_rtp_mp4v_depay_init), (gst_rtp_mp4v_depay_finalize),
	(gst_rtp_mp4v_depay_setcaps), (gst_rtp_mp4v_depay_process),
	(gst_rtp_mp4v_depay_change_state):
	Remove usused code. Remove Adapter from state Change. Added debug.

	* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_base_init),
	(gst_rtp_mpa_depay_class_init), (gst_rtp_mpa_depay_init),
	(gst_rtp_mpa_depay_setcaps), (gst_rtp_mpa_depay_process):
	* gst/rtp/gstrtpmpadepay.h:
	Subclass base depayloader.
	Added debug.
	Support static payload type assignment as well.

	* gst/rtp/gstrtpmpapay.c:
	Fix caps.

2007-01-08  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Vincent Torri  <vtorri at univ-evry fr>

	* ext/jpeg/gstjpegdec.c:
	* ext/jpeg/gstjpegenc.c:
	* ext/jpeg/smokecodec.c:
	  These libjpeg callbacks should return a 'boolean' (unsigned char
	  apparently) and not a 'gboolean' (which maps to gint). Fixes
	  warnings when compiling with MingW (#393427).

	* gst/rtsp/rtspconnection.c: (rtsp_connection_read):
	  Use ioctlsocket on win32.

	* gst/udp/gstudpsrc.c: (gst_udpsrc_create):
	  Some printf format fixes for win32.

2007-01-07  Sébastien Moutte  <sebastien@moutte.net>

	* gst/cutter/gstcutter.c: (gst_cutter_chain):
	  Use gst_guint64_to_gdouble for conversion.
	* win32/vs6/libgstmatroska.dsp:
	  Add zlib to the link.
	* win32/vs6/libgstvideobox.dsp:
	  Update liboil library name (project is linked to 
	  liboil-0.3-0.lib now).
	  
2007-01-05  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/Makefile.am:
	  If zlib is available and used, we must link it explicitly for
	  things to work on MingW (fixes #392855).

2007-01-04  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/esd/esdsink.c: (gst_esdsink_delay):
	  Don't return bogus values when esd_get_delay() fails for some
	  reason (#392189).

2006-12-24  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/ximage/gstximagesrc.c: (composite_pixel):
	  Fix presumably copy'n'pasto for 16bpp depth.

2006-12-24  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_audio_pad_setcaps):
	  The "signed" field in audio caps is of boolean type, trying to use
	  gst_structure_get_int() to extract it will fail. Fixing this makes
	  matroskamux accept raw audio input (#387121) (use at your own risk
	  though, due to the matroska spec being not entirely useful in this
	  respect).
	  Also fix up raw audio structures in template caps so that they
	  represent what our setcaps function will actually accept, so that
	  converters know what to convert to.
	  Finally, don't fail if there isn't an "endianness" field in 8-bit
	  PCM caps.

2006-12-22  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/audiopanorama.c: (cleanup_panorama):
	* tests/check/elements/avimux.c: (setup_avimux), (cleanup_avimux):
	* tests/check/elements/cmmldec.c: (setup_cmmldec),
	(teardown_cmmldec):
	* tests/check/elements/cmmlenc.c: (setup_cmmlenc),
	(teardown_cmmlenc):
	* tests/check/elements/level.c: (setup_level), (cleanup_level):
	  reapply consistent pad (de)activation

2006-12-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	Back to CVS

	* gst-plugins-good.doap:
	Add 0.10.5 doap entry

=== release 0.10.5 ===

2006-12-21  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.5, "The Path of Thorns"

2006-12-21  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/audiopanorama.c: (cleanup_panorama):
	* tests/check/elements/avimux.c: (setup_avimux), (cleanup_avimux):
	* tests/check/elements/cmmldec.c: (setup_cmmldec),
	(teardown_cmmldec):
	* tests/check/elements/cmmlenc.c: (setup_cmmlenc),
	(teardown_cmmlenc):
	* tests/check/elements/level.c: (setup_level), (cleanup_level):
	  revert my freeze breakage

2006-12-21  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/audiopanorama.c: (cleanup_panorama):
	* tests/check/elements/avimux.c: (setup_avimux), (cleanup_avimux):
	* tests/check/elements/cmmldec.c: (setup_cmmldec),
	(teardown_cmmldec):
	* tests/check/elements/cmmlenc.c: (setup_cmmlenc),
	(teardown_cmmlenc):
	* tests/check/elements/level.c: (setup_level), (cleanup_level):
	  consistent pad (de)activation

2006-12-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* ext/Makefile.am:
	Disable LADPSA, as it has moved to the -bad module for the duration.

2006-12-18  Wim Taymans  <wim@fluendo.com>

	* 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-16  David Schleef  <ds@schleef.org>

	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	  Decent effort at porting to 0.10.  Needs cleanup on OS/X.

2006-12-16  David Schleef  <ds@schleef.org>

	Patch by: Vijay Santhanam <vijay santhanam gmail com>

	* sys/osxvideo/Makefile.am:
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	  Preliminary patch for porting osxvideosink

2006-12-16  Wim Taymans  <wim@fluendo.com>

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* gst/videomixer/videomixer.c: (gst_videomixer_pad_set_property),
	(gst_videomixer_set_master_geometry),
	(gst_videomixer_pad_sink_setcaps), (gst_videomixer_collect_free),
	(gst_videomixer_reset), (gst_videomixer_init),
	(gst_videomixer_finalize), (gst_videomixer_request_new_pad),
	(gst_videomixer_release_pad), (gst_videomixer_collected),
	(gst_videomixer_change_state):
	Introduce some locking around the videomixer state so that it does not
	crash when adding/removing pads. Fixes #383043.

2006-12-16  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Make sure libcaca can actually be used instead of just checking for
	  /usr/bin/caca-config, so we don't wrongly try to build cacasink when
	  cross-compiling (fixes #384587).

2006-12-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* gst-plugins-good.doap:
	* gst-plugins-good.spec.in:
	  adding doap file

2006-12-14  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  libflac-1.1.3 changed API again, but we can't build against it yet,
	  so make sure our check doesn't use libflac-1.1.3 and add a comment
	  to this effect.

2006-12-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/effectv/gstquark.c: (gst_quarktv_transform),
	(gst_quarktv_planetable_clear):
	  Add some NULL pointer checks (possibly related to #385623).

2006-12-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain_parse_tag),
	(gst_tag_demux_chain):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
	  In streaming mode, if the first buffer we get doesn't have an
	  offset, fix it up to be 0, otherwise trimming won't work later on
	  and we'll be typefinding application/x-id3, which may result in
	  decodebin plugging an endless number of id3demux elements as a
	  consequence. Fixes #385031.
	  
2006-12-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_prepare):
	  Ignore the buffer_time the sound device reports. Turns out it is 
	  sometimes completely bogus and we're better off without it.

2006-12-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_video_caps):
	* gst/matroska/matroska-ids.c:
	(gst_matroska_track_init_video_context):
	* gst/matroska/matroska-ids.h:
	  Try harder to extract the framerate for video tracks correctly and
	  save it directly instead of converting it back and forth a few
	  times. Mostly makes a difference for very small framerates (<1).
	  Fixes #380199.

2006-12-11  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_init),
	(gst_gconf_audio_src_dispose), (do_toggle_element):
	* ext/gconf/gstgconfaudiosrc.h:
	  Remove gconf notify hook when the gconfaudiosrc element is
	  destroyed, otherwise the callback may be called on an
	  already-destroyed instance and bad things happen. Should fix
	  #378184.
	  Also ignore gconf key changes when the source is already running.

2006-12-09  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge  <mail at slomosnail de>

	* gst/apetag/gstapedemux.c: (ape_demux_parse_tags):
	  We need to be able to read and parse any possible floating point string
	  format ("1,234" or "1.234") irrespective of the current locale. g_strod()
	  will parse the former only in certain locales though, so we really need
	  to canonicalise the separator to '.' and then use g_ascii_strtod() to
	  make sure we can parse either version at all times.
	  Fixes #382982 for real.

2006-12-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/sunaudio/gstsunaudiomixerctrl.c:
	* sys/sunaudio/gstsunaudiosrc.c:

        Use the sunaudio debug category.

	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_finalize),
	(gst_sunaudiosink_class_init), (gst_sunaudiosink_init),
	(gst_sunaudiosink_set_property), (gst_sunaudiosink_get_property),
	(gst_sunaudiosink_open), (gst_sunaudiosink_close),
	(gst_sunaudiosink_prepare), (gst_sunaudio_sink_do_delay),
	(gst_sunaudiosink_write), (gst_sunaudiosink_delay),
	(gst_sunaudiosink_reset):
	* sys/sunaudio/gstsunaudiosink.h:

	Uses the sunaudio debug category for all debug output
 	Implements the _delay() callback to synchronise video playback better
 	Change the segtotal and segsize values back to the parent class 
          defaults (taken from buffer_time and latency_times of 200ms and 10ms 
          respectively)
	Measure the samples written to the device vs. played.
	Keep track of segments in the device by writing empty eof frames, and
	sleep using a GCond when we get too far ahead and risk overrunning the
	sink's ringbuffer.

	Fixes: #360673

2006-12-08  Wim Taymans  <wim@fluendo.com>

	Patch by: Sebastian Dröge  <mail at slomosnail de >

	* gst/audiofx/audiopanorama.c: (gst_audio_panorama_init),
	(gst_audio_panorama_set_caps), (gst_audio_panorama_transform):
	* gst/audiofx/audiopanorama.h:
	Fix audiopanorame with float samples. Fixes #383726.

2006-12-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_reset):
	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_open),
	(gst_sunaudiosrc_reset):

	Implement reset functions to unblock the src/sink more quickly on 
	state change requests.
	Patch by: Brian Cameron <brian dot cameron at sun com>

2006-12-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/sunaudio/gstsunaudiomixer.c:
	(gst_sunaudiomixer_change_state):
	Construct the correct mixer device name when the AUDIODEV env var
	is set.

	Patch by: Jerry Tan <jerry.tan at sun dot com>
	Fixes: #383596

2006-12-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_open):
	Apply patch to open the mixer control and set the MULTIPLE_OPEN
	ioctl. On solaris, the mixer device doesn't need opening non-blocking 
	- it can be opened by multiple processes by default, but needs the ioctl 	for multiple opens within 1 process.
	Patch by: Jerry Tan <jerry.tan at sun dot com>
	Fixes: #349015

2006-12-07  Wim Taymans  <wim@fluendo.com>

	* gst/smpte/gstmask.h:
	* gst/smpte/gstsmpte.c: (gst_smpte_class_init),
	(gst_smpte_setcaps), (gst_smpte_init), (gst_smpte_reset),
	(gst_smpte_collected), (gst_smpte_set_property),
	(gst_smpte_get_property), (gst_smpte_change_state), (plugin_init):
	* gst/smpte/gstsmpte.h:
	Port to 0.10 some more. 
	Added duration property to specify the duration of the transition.
	Make framerate a fraction.
	Deprecate fps property, we only use negotiated fps.
	Added docs.
	Fix collectpad usage.
	Reset state in READY.
	Send NEWSEGMENT event.
	Fix racy updates of object properties.
	Added debug category.
	Fixes #383323.

2006-12-06  Wim Taymans  <wim@fluendo.com>

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* gst/videomixer/videomixer.c:
	(gst_videomixer_set_master_geometry),
	(gst_videomixer_pad_sink_setcaps), (gst_videomixer_collect_free):
	Don't reset xpos and ypos in the setcaps function because causes
	unexpected behaviour.
	Fixes #382179.

2006-12-06  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_compare_pads),
	(gst_multipart_mux_queue_pads), (gst_multipart_mux_collected):
	Keep track of the buffer timestamp in the collectdata member instead
	of modifying the buffer without making the metadata writable first.
	Fixes #382277.

2006-12-06  Wim Taymans  <wim@fluendo.com>

	Patch by: Rob Taylor <robtaylor at floopily dot org>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_start):
	If using multicast in udpsrc, bind to the multicast address rather than
	IN_ADDR_ANY.
	This allows the simultanous use of multiple udpsrcs listening on
	different multicat addresses. Without this all udpsrcs will receive all
	packets from all subscribed multicast addresses.
	Fixes #383001.

2006-12-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/taglib/gstid3v2mux.cc:
	Don't attempt to write a NULL frame into the ID3 tag set when the 
	createFrame method returned NULL.
	Fixes: #381857
	Patch by: Jonathan Matthew <jonathan at 0kaolin wh9 net >

2006-12-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/apetag/gstapedemux.c: (ape_demux_parse_tags):
	Use g_strtod() instead of sscanf to parse doubles, so that it will
	try parsing in the C locale if the current locale fails.
	Fixes: #382982
	Patch by: Sebastian Dröge  <mail at slomosnail de >

2006-12-01  Jan Schmidt  <thaytan@mad.scientist.com>

	* 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  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavimux.c:
	  accept all mpegversions,fixes #380825
	  spotted by: Jerome Alet  

2006-11-30  Stefan Kost  <ensonic@users.sf.net>

	* 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_buffer_finalize):
	  cleanup the error message a bit more

2006-11-28  Wim Taymans  <wim@fluendo.com>

	* ext/libcaca/gstcacasink.c: (gst_cacasink_class_init):
	Fix width and height properties.

	* ext/libcaca/gstcacasink.h:
	Fix compilation on newer libcaca that require us to include a new
	header. Fixes #379918.

2006-11-28  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open):
	* gst/rtsp/gstrtspsrc.h:
	* gst/rtsp/rtspext.h:
	* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_configure_stream),
	(rtsp_ext_wms_get_context):
	Add method so that extensions can choose to disable the setup of
	a stream.
	Make the WMS extension skip setup of x-wms-rtx streams. Fixes #377792.

2006-11-27  Wim Taymans  <wim@fluendo.com>

	Patch by: Jonas Holmberg <jonas dot holmberg at axis dot com>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_collected):
	Push header in a separate buffer instead of memcpy:ing all data.
	Change LF => CRLF in headers.
	Move trailing LF to header. Fixes #379792.

2006-11-27  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_chain):
	Small buffer overflow fix and improve debugging.

2006-11-24  Stefan Kost  <ensonic@users.sf.net>

	* ext/esd/esdmon.h:
	* ext/esd/esdsink.h:
	  remove obsolete _factory_init protos

2006-11-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_index_entry_for_time),
	(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
	(gst_avi_demux_peek_chunk), (gst_avi_demux_parse_subindex),
	(gst_avi_demux_read_subindexes_push),
	(gst_avi_demux_read_subindexes_pull), (gst_avi_demux_parse_stream),
	(gst_avi_demux_parse_index), (gst_avi_demux_stream_index),
	(gst_avi_demux_sync), (gst_avi_demux_next_data_buffer),
	(gst_avi_demux_massage_index),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_stream_header_pull), (gst_avi_demux_do_seek),
	(gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry),
	(gst_avi_demux_stream_data), (gst_avi_demux_loop):
	  remove dead code, tweak debugs statements, add comments, use
	  _uint64_scale instead _uint64_scale_int when using guint64 values,
	  small optimizations, reflow some error handling

2006-11-22  Edward Hervey  <edward@fluendo.com>

	* po/.cvsignore:
	We never put .pot files in cvs. Let's ignore them all.

2006-11-19  Tim-Philipp Müller  <tim at centricular dot net>

	* po/POTFILES.in:
	  ... but better exclude files that aren't disted.

2006-11-19  Tim-Philipp Müller  <tim at centricular dot net>

	* po/POTFILES.in:
	  Add v4l2 source files to list of files with translations, so the
	  strings are actually extracted (however bad they still may be).

2006-11-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/videobox/gstvideobox.c: (gst_video_box_class_init):
	  Minor clean-ups: const-ify static array, remove trailing comma from
	  last enum (gcc-2.9x trips over that), use GST_DEBUG_FUNCPTR.

2006-11-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
	Make sure that g_free always gets called on the same pointer that was 
	returned by g_malloc.  Fixes #376594.
	Do not leak memory if decompressed size is wrong.
	Remove unneeded check of return value of g_malloc.
	Patch by: René Stadler <mail@renestadler.de>

2006-11-18  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_deinit):
	  Add missing curly brackets.

2006-11-17  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/v4l2src_calls.c:
	Fix capture_deinit.

2006-11-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init),
	(gst_matroska_mux_request_new_pad):
	  Use GST_DEBUG_FUNCPTR; activate request pad before returning it.

	* tests/check/elements/matroskamux.c: (setup_src_pad),
	(setup_sink_pad), (GST_START_TEST):
	Activate pads before using them.

2006-11-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_scan):
	  Initialise variable to get rid of bogus compiler warning.

2006-11-16  Stefan Kost  <ensonic@users.sf.net>

	Patch by: Ville Syrjala <ville.syrjala@movial.fi>

	* gst/rtp/gstrtph263pay.c:
	* gst/rtp/gstrtph263pdepay.c:
	* gst/rtp/gstrtph263ppay.c:
	  Specify H.263 variant and version in the caps (fixes #361637)

2006-11-15  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/rtspconnection.c: (read_body):
	Don't set a data pointer to NULL and a size > 0 when we deal
	with empty packets.

	* gst/rtsp/rtspmessage.c: (rtsp_message_new_response),
	(rtsp_message_init_response), (rtsp_message_init_data),
	(rtsp_message_unset), (rtsp_message_free),
	(rtsp_message_take_body):
	Check that we can't create invalid empty packets. 

2006-11-15  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet be>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_add_interfaces),
	(gst_matroska_mux_class_init), (gst_matroska_pad_free),
	(gst_matroska_mux_reset), (gst_matroska_mux_handle_sink_event),
	(gst_matroska_mux_request_new_pad), (gst_matroska_mux_release_pad),
	(gst_matroska_mux_track_header), (gst_matroska_mux_start),
	(gst_matroska_mux_write_simple_tag), (gst_matroska_mux_finish):
	* gst/matroska/matroska-mux.h:
	  Add basic tag writing support; implement releasing pads (#374658).

2006-11-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_audio_caps):
	  Handle opaque/unspecified A_AAC audio codec ID (fixes #374737).

2006-11-14  David Schleef  <ds@schleef.org>

	* gst/matroska/matroska-mux.c: Add Dirac fourcc.

2006-11-14  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sergey Scobich  <sergey.scobich at gmail com>

	* win32/vs8/gst-plugins-good.sln:
	* win32/vs8/libgst1394.vcproj:
	* win32/vs8/libgstaasink.vcproj:
	* win32/vs8/libgstalaw.vcproj:
	* win32/vs8/libgstalpha.vcproj:
	* win32/vs8/libgstalphacolor.vcproj:
	* win32/vs8/libgstannodex.vcproj:
	* win32/vs8/libgstapetag.vcproj:
	* win32/vs8/libgstaudiofx.vcproj:
	* win32/vs8/libgstauparse.vcproj:
	* win32/vs8/libgstautodetect.vcproj:
	* win32/vs8/libgstavi.vcproj:
	* win32/vs8/libgstcacasink.vcproj:
	* win32/vs8/libgstcdio.vcproj:
	* win32/vs8/libgstcutter.vcproj:
	* win32/vs8/libgstdv.vcproj:
	* win32/vs8/libgsteffectv.vcproj:
	* win32/vs8/libgstflac.vcproj:
	* win32/vs8/libgstflxdec.vcproj:
	* win32/vs8/libgstgoom.vcproj:
	* win32/vs8/libgsticydemux.vcproj:
	* win32/vs8/libgstid3demux.vcproj:
	* win32/vs8/libgstjpeg.vcproj:
	* win32/vs8/libgstladspa.vcproj:
	* win32/vs8/libgstlevel.vcproj:
	* win32/vs8/libgstmatroska.vcproj:
	* win32/vs8/libgstmikmod.vcproj:
	* win32/vs8/libgstmng.vcproj:
	* win32/vs8/libgstmonoscope.vcproj:
	* win32/vs8/libgstmulaw.vcproj:
	* win32/vs8/libgstmultipart.vcproj:
	* win32/vs8/libgstpng.vcproj:
	* win32/vs8/libgstrtp.vcproj:
	* win32/vs8/libgstrtsp.vcproj:
	* win32/vs8/libgstshout2.vcproj:
	* win32/vs8/libgstsmpte.vcproj:
	* win32/vs8/libgstspeex.vcproj:
	* win32/vs8/libgsttaglib.vcproj:
	* win32/vs8/libgstudp.vcproj:
	* win32/vs8/libgstvideobalance.vcproj:
	* win32/vs8/libgstvideobox.vcproj:
	* win32/vs8/libgstvideoflip.vcproj:
	* win32/vs8/libgstvideomixer.vcproj:
	* win32/vs8/libgstwavenc.vcproj:
	* win32/vs8/libgstwavparse.vcproj:
	  Make end-of-line returns unixy, so that when the files are checked
	  out on win32 the line returns will be 0d 0a and not 0d 0d 0a.
	  Hopefully fixes #366492.

2006-11-14  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	Disable init_frames delay timestamp adjustment, it does not
	seem to be needed at all. Fixes #369621.

2006-11-13  Wim Taymans  <wim@fluendo.com>

	Patch by: Mark Nauwelaerts  <manauw at skynet be>

	* gst/videomixer/videomixer.c:
	(gst_videomixer_set_master_geometry),
	(gst_videomixer_pad_sink_setcaps), (gst_videomixer_class_init),
	(gst_videomixer_collect_free), (gst_videomixer_reset),
	(gst_videomixer_init), (gst_videomixer_finalize),
	(gst_videomixer_request_new_pad), (gst_videomixer_release_pad),
	(gst_videomixer_collected), (gst_videomixer_change_state):
	Fix memleak by unref'ing collectpads instance (when finalizing)
	Implement releasing a request pad. Fixes #374479.

2006-11-10  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sergey Scobich  <sergey.scobich at gmail com>

	* win32/vs8/gst-plugins-good.sln:
	* win32/vs8/libgst1394.vcproj:
	* win32/vs8/libgstaasink.vcproj:
	* win32/vs8/libgstalaw.vcproj:
	* win32/vs8/libgstalpha.vcproj:
	* win32/vs8/libgstalphacolor.vcproj:
	* win32/vs8/libgstannodex.vcproj:
	* win32/vs8/libgstapetag.vcproj:
	* win32/vs8/libgstaudiofx.vcproj:
	* win32/vs8/libgstauparse.vcproj:
	* win32/vs8/libgstautodetect.vcproj:
	* win32/vs8/libgstavi.vcproj:
	* win32/vs8/libgstcacasink.vcproj:
	* win32/vs8/libgstcdio.vcproj:
	* win32/vs8/libgstcutter.vcproj:
	* win32/vs8/libgstdv.vcproj:
	* win32/vs8/libgsteffectv.vcproj:
	* win32/vs8/libgstflac.vcproj:
	* win32/vs8/libgstflxdec.vcproj:
	* win32/vs8/libgstgoom.vcproj:
	* win32/vs8/libgsticydemux.vcproj:
	* win32/vs8/libgstid3demux.vcproj:
	* win32/vs8/libgstjpeg.vcproj:
	* win32/vs8/libgstladspa.vcproj:
	* win32/vs8/libgstlevel.vcproj:
	* win32/vs8/libgstmatroska.vcproj:
	* win32/vs8/libgstmikmod.vcproj:
	* win32/vs8/libgstmng.vcproj:
	* win32/vs8/libgstmonoscope.vcproj:
	* win32/vs8/libgstmulaw.vcproj:
	* win32/vs8/libgstmultipart.vcproj:
	* win32/vs8/libgstpng.vcproj:
	* win32/vs8/libgstrtp.vcproj:
	* win32/vs8/libgstrtsp.vcproj:
	* win32/vs8/libgstshout2.vcproj:
	* win32/vs8/libgstsmpte.vcproj:
	* win32/vs8/libgstspeex.vcproj:
	* win32/vs8/libgsttaglib.vcproj:
	* win32/vs8/libgstudp.vcproj:
	* win32/vs8/libgstvideobalance.vcproj:
	* win32/vs8/libgstvideobox.vcproj:
	* win32/vs8/libgstvideoflip.vcproj:
	* win32/vs8/libgstvideomixer.vcproj:
	* win32/vs8/libgstwavenc.vcproj:
	* win32/vs8/libgstwavparse.vcproj:
	  Add VS8 project files (note that many of the plugins in ext are
	  disabled by default). Fixes #366492.

2006-11-10  Stefan Kost  <ensonic@users.sf.net>

	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_grab_frame):
	  we do not translate debug messages

2006-11-08  Stefan Kost  <ensonic@users.sf.net>

	* gst/flx/gstflxdec.c: (gst_flxdec_class_init):
	  fix categorisation, make short desc more explicit, remove unused code
	  Fixes #372021

2006-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpL16depay.c:
	* gst/rtp/gstrtpamrdepay.c:
	* gst/rtp/gstrtpamrpay.c:
	* gst/rtp/gstrtpgsmdepay.c:
	* gst/rtp/gstrtph263pay.c:
	* gst/rtp/gstrtph263pdepay.c:
	* gst/rtp/gstrtph263ppay.c:
	* gst/rtp/gstrtph264depay.c:
	* gst/rtp/gstrtpmp2tdepay.c:
	* gst/rtp/gstrtpmp4gdepay.c:
	* gst/rtp/gstrtpmp4gpay.c:
	* gst/rtp/gstrtpmp4vdepay.c:
	* gst/rtp/gstrtpmp4vpay.c:
	* gst/rtp/gstrtpmpadepay.c:
	* gst/rtp/gstrtpmpapay.c:
	* gst/rtp/gstrtppcmadepay.c:
	* gst/rtp/gstrtppcmapay.c:
	* gst/rtp/gstrtppcmudepay.c:
	* gst/rtp/gstrtppcmupay.c:
	* gst/rtp/gstrtpspeexdepay.c:
	* gst/rtp/gstrtpspeexpay.c:
	* gst/rtp/gstrtpsv3vdepay.c:
	Fix element descriptions.

2006-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpvorbisdepay.c:
	* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_handle_buffer):
	Fix description.
	Small cleanup in the payloader.

2006-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_base_init),
	(gst_rtp_theora_depay_class_init), (gst_rtp_theora_depay_init),
	(gst_rtp_theora_depay_finalize),
	(gst_rtp_theora_depay_parse_configuration),
	(gst_rtp_theora_depay_setcaps),
	(gst_rtp_theora_depay_switch_codebook),
	(gst_rtp_theora_depay_process),
	(gst_rtp_theora_depay_set_property),
	(gst_rtp_theora_depay_get_property),
	(gst_rtp_theora_depay_change_state),
	(gst_rtp_theora_depay_plugin_init):
	* gst/rtp/gstrtptheoradepay.h:
	* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_base_init),
	(gst_rtp_theora_pay_class_init), (gst_rtp_theora_pay_init),
	(gst_rtp_theora_pay_setcaps), (gst_rtp_theora_pay_reset_packet),
	(gst_rtp_theora_pay_init_packet),
	(gst_rtp_theora_pay_flush_packet),
	(gst_rtp_theora_pay_finish_headers), (gst_rtp_theora_pay_parse_id),
	(gst_rtp_theora_pay_handle_buffer),
	(gst_rtp_theora_pay_plugin_init):
	* gst/rtp/gstrtptheorapay.h:
	Add theora pay/depayloaders.

2006-11-06  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	We depend on gsttag to generate the vorbis comments.

	* gst/rtp/gstrtpvorbisdepay.c:
	(gst_rtp_vorbis_depay_parse_configuration),
	(gst_rtp_vorbis_depay_setcaps),
	(gst_rtp_vorbis_depay_switch_codebook),
	(gst_rtp_vorbis_depay_process):
	* gst/rtp/gstrtpvorbisdepay.h:
	Parse configuration string in the depayloader.
	Implement selecting and switching to a new codebook.
	Receiving vorbis over RTP now works.

	* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_reset_packet),
	(gst_rtp_vorbis_pay_init_packet),
	(gst_rtp_vorbis_pay_finish_headers),
	(gst_rtp_vorbis_pay_handle_buffer):
	* gst/rtp/gstrtpvorbispay.h:
	Set timestamps on outgoing buffers and RTP packets.
	Fix configuration string, prepend number of Packet headers.
	Fix encoding of ident string.
	Add delivery-method to caps.
	Streaming vorbis over RTP now works.

2006-11-06  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_setcaps),
	(gst_rtp_vorbis_pay_finish_headers), (gst_rtp_vorbis_pay_parse_id),
	(gst_rtp_vorbis_pay_handle_buffer):
	* gst/rtp/gstrtpvorbispay.h:
        Generate a valid configuration string in the caps based on the
        vorbis headers.

2006-11-02  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cdio/gstcdio.c: (gst_cdio_get_cdtext):
	* ext/cdio/gstcdio.h:
	* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open):
	  Move CD-TEXT utility function into common file so it can also be
	  used by a future cdioparanoiasrc.

2006-11-01  Edgard Lima <edgard.lima@indt.org.br>
	
	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2src_calls.c:
	Improved comments in ELEMENT_ERROR/WARNING and added "#if 0" to
	xoverlay code that is still not implemented.

2006-11-01  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c: (parse_picture_frame):
	  We require a -base more recent than 0.10.9, so it's safe to use
	  GST_TYPE_TAG_IMAGE_TYPE unconditionally now.

	* ext/dv/gstdvdec.c: (gst_dvdec_sink_event):
	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_sink_event):
	  Use _newsegment_full() now that we depend on a recent enough core.

	* gst/wavparse/gstwavparse.c:
	  Remove cruft that we don't need any longer now that we depend on
	  a recent enough -base.

2006-10-31  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_init),
	(gst_rtpilbcpay_setcaps):
	Fix and activate ILBC pay and depayloaders. Fixes #368162.

2006-10-31  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeexdec.c: (speex_dec_convert),
	(speex_dec_sink_event), (speex_dec_chain_parse_header):
	Some small cleanups, use _scale.

2006-10-31  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
	Use higher precision scale function.

2006-10-30  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Michal Benes  <michal dot benes at itonis tv>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_encoding_cmp),
	(gst_matroska_demux_read_track_encodings),
	(gst_matroska_decode_buffer):
	  Fix several issues with encoded/compressed/encrypted/signed tracks;
	  also, remove superfluous newline characters from some debug
	  statements. (#366155)

2006-10-30  Wim Taymans  <wim@fluendo.com>

	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_getcaps):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_class_init),
	(gst_smokedec_init), (gst_smokedec_finalize), (gst_smokedec_chain),
	(gst_smokedec_change_state):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init),
	(gst_smokeenc_init), (gst_smokeenc_finalize),
	(gst_smokeenc_getcaps), (gst_smokeenc_setcaps),
	(gst_smokeenc_resync), (gst_smokeenc_chain),
	(gst_smokeenc_set_property), (gst_smokeenc_get_property),
	(gst_smokeenc_change_state):
	Various cleanups, capsnego and leak fixes.

2006-10-30  Wim Taymans  <wim@fluendo.com>

	Patch by: Mark Nauwelaerts  <manauw at skynet be>

	* gst/videomixer/videomixer.c: (gst_videomixer_update_queues):
	Fix videomixer so that it can handle any combination of framerates.
	Fixes #367221.

2006-10-28  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_parse_file_header),
	(gst_avi_demux_stream_init_push), (gst_avi_demux_parse_stream),
	(gst_avi_demux_stream_header_push), (gst_avi_demux_stream_data),
	(gst_avi_demux_chain):
	Fix position query for audio. also fixes timestamps in streaming
	mode and bug #364958.
	Small cleanups.

2006-10-27  Wim Taymans  <wim@fluendo.com>

	* ext/libpng/gstpngenc.c: (gst_pngenc_setcaps), (gst_pngenc_chain):
	* ext/libpng/gstpngenc.h:
	Fix strides. Fixes #364856.
	Cleanup capsnego.
	Set caps on outgoing buffers.

2006-10-18  Wim Taymans  <wim@fluendo.com>

	Patch by: Ville Syrjala <ville dot syrjala at movial dot fi>

	* gst/rtp/gstrtpgsmpay.c:
	* gst/rtp/gstrtph263pay.c:
	* gst/rtp/gstrtpmpapay.c:
	* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_flush),
	(gst_rtp_pcma_pay_handle_buffer):
	* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_flush):
	Add static payload numbers in addition to the dynamic ones.
	Fixes #361639.

2006-10-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_lower_trans_get_type),
	(gst_rtspsrc_class_init), (gst_rtspsrc_loop_interleaved),
	(gst_rtspsrc_loop_udp), (gst_rtspsrc_open),
	(gst_rtspsrc_uri_get_protocols), (gst_rtspsrc_uri_set_uri):
	* gst/rtsp/rtspconnection.c: (rtsp_connection_create):
	* gst/rtsp/rtspdefs.h:
	* gst/rtsp/rtspurl.c: (rtsp_url_parse):
	* gst/rtsp/rtspurl.h:
	Reuse already existing enum for lower transport.
	Add rtspt and rtspu protocols.
	Send redirect to rtspt when udp times out.

2006-10-18  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
	(gst_wavparse_stream_data):
	Fix seeking some more, mostly for speed changes.

2006-10-18  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Fredrik Persson  <frepe at bredband net>

	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	  Fix _set_channel(): remove useless g_object_notify() for "channel"
	  property that doesn't exist any longer and therefore now also
	  useless redirect (#338818).

2006-10-17  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstosssink.c: (gst_oss_sink_prepare):
	Some drivers do not support unsetting the non-blocking flag once the
	device is opened. In those cases, close/open the device in
	non-blocking mode. Fixes #362673.

2006-10-17  Stefan Kost  <ensonic@users.sf.net>

	* sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_fps),
	(gst_v4l2src_get_fps):
	  dear stefan, framespersecond is not frameperiod, reverting but adding
	  comment

2006-10-17  Stefan Kost  <ensonic@users.sf.net>

	* sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_fps),
	(gst_v4l2src_get_fps):
	  Numerator is numerator and denominator is denominator. Say that aloud
	  5 times and retry after next beer.

2006-10-16  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Josep Torra Valles  <josep at fluendo com>

	* ext/cairo/gsttimeoverlay.c: (gst_cairo_time_overlay_transform):
	* ext/esd/esdsink.c: (gst_esdsink_write):
	* ext/flac/gstflacdec.c: (gst_flac_dec_length),
	(gst_flac_dec_read_seekable), (gst_flac_dec_chain),
	(gst_flac_dec_send_newsegment):
	* ext/flac/gstflacenc.c: (gst_flac_enc_seek_callback),
	(gst_flac_enc_tell_callback):
	* ext/jpeg/smokecodec.c: (find_best_size), (smokecodec_encode),
	(smokecodec_parse_header), (smokecodec_decode):
	* gst/avi/gstavimux.c: (gst_avi_mux_write_avix_index):
	* gst/debug/efence.c: (gst_fenced_buffer_alloc):
	* gst/goom/Makefile.am:
	* gst/goom/gstgoom.c:
	* gst/icydemux/gsticydemux.c: (gst_icydemux_typefind_or_forward):
	* gst/rtsp/gstrtspsrc.c:
	* gst/rtsp/rtspconnection.c: (rtsp_connection_read):
	* gst/udp/gstudpsink.c:
	* gst/udp/gstudpsrc.c:
	* gst/wavparse/gstwavparse.c: (gst_wavparse_change_state):
	* sys/sunaudio/gstsunaudiomixertrack.h:
	  Fix a bunch of problems discovered by the Forte compiler, mostly type
	  mixups and pointer arithmetics with void pointers. Fixes #362603.

2006-10-12  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/speex/gstspeex.c: (plugin_init):
	* ext/speex/gstspeexenc.c: (gst_speex_enc_get_formats),
	(gst_speex_enc_setup_interfaces), (gst_speex_enc_base_init),
	(gst_speex_enc_class_init), (gst_speex_enc_finalize),
	(gst_speex_enc_sink_setcaps), (gst_speex_enc_convert_src),
	(gst_speex_enc_convert_sink), (gst_speex_enc_get_query_types),
	(gst_speex_enc_src_query), (gst_speex_enc_sink_query),
	(gst_speex_enc_init), (gst_speex_enc_create_metadata_buffer),
	(gst_speex_enc_set_last_msg), (gst_speex_enc_setup),
	(gst_speex_enc_buffer_from_data), (gst_speex_enc_push_buffer),
	(gst_speex_enc_set_header_on_caps), (gst_speex_enc_sinkevent),
	(gst_speex_enc_chain), (gst_speex_enc_get_property),
	(gst_speex_enc_set_property), (gst_speex_enc_change_state):
	* ext/speex/gstspeexenc.h:
	  Miscellaneous clean-ups, among other things: speexenc => enc to
	  enhance code readability; change speexenc => speex_enc; in chain
	  function unref input buffer in case of error; take reference in
	  event function; use boilerplate macro; use gst_pad_query_peer_*
	  convenience functions.

2006-10-12  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/speex/gstspeexenc.c: (gst_speexenc_finalize),
	(gst_speexenc_set_last_msg), (gst_speexenc_setup),
	(gst_speexenc_set_header_on_caps):
	  Fix some mem leaks.

2006-10-11  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/URLS:
	Added some other URL.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_udp),
	(gst_rtspsrc_handle_request), (gst_rtspsrc_send),
	(gst_rtspsrc_open), (gst_rtspsrc_play),
	(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
	* gst/rtsp/gstrtspsrc.h:
	Work on fallback to TCP connection when the UDP socket times out.
	Handler server requests, just reply with OK for now.

	* gst/rtsp/rtspdefs.c: (rtsp_strresult):
	* gst/rtsp/rtspdefs.h:
	Added some more Real extension headers.

	* gst/rtsp/rtspurl.c: (rtsp_url_parse):
	Fix parsing of urls with a ':' that is not part of the hostname:port
	part of the url.

2006-10-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_add_srcpad):
	* gst/icydemux/gsticydemux.c: (gst_icydemux_add_srcpad):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad):
	  Activate pad before adding it to the already-running element.

	* tests/check/elements/icydemux.c: (icydemux_found_pad):
	  Activate newly-created pad too.

2006-10-11  Wim Taymans  <wim@fluendo.com>

	Patch by: Sebastien Cote <sebas642 at yahoo dot ca>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
	(gst_udpsrc_finalize), (gst_udpsrc_create), (gst_udpsrc_set_uri),
	(gst_udpsrc_start):
	Fix some leaks in caps and uris. Fixes #361252.

2006-10-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/Makefile.am:
	  Fix copy'n'paste-o (spotted by Mark Nauwelaerts, #341489).

2006-10-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/gstv4l2xoverlay.h:
	Fix build as per the patch in #338818 comment 36.

2006-10-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport):
	  Activate pads before adding them to the source.

2006-10-06  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_add_pads), (gst_dvdemux_chain):
	* gst/auparse/gstauparse.c: (gst_au_parse_add_srcpad):
	Activate pads before adding.

2006-10-06  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartdemux.c: (gst_multipart_demux_init),
	(gst_multipart_find_pad_by_mime):
	Activate pads before adding.

	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_class_init):
	BOILERPLATE sets parent_class for us.

2006-10-06  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type),
	(gst_rtspsrc_class_init), (gst_rtspsrc_init),
	(gst_rtspsrc_create_stream), (gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_alloc_udp_ports),
	(gst_rtspsrc_stream_configure_transport), (find_stream_by_channel),
	(gst_rtspsrc_push_event), (gst_rtspsrc_loop_interleaved),
	(gst_rtspsrc_create_transports_string),
	(gst_rtspsrc_configure_transports), (gst_rtspsrc_open),
	(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
	* gst/rtsp/gstrtspsrc.h:
	Rework how the transport string is constructed, try to share channels
	and udp ports.
	Make most of the stuff less dependant on RTP as we are also going to use
	it for RDT.
	Add support for transport specific session managers.

	* gst/rtsp/rtspconnection.c: (rtsp_connection_flush):
	Implement _flush().

	* gst/rtsp/rtspdefs.c: (rtsp_strresult):
	* gst/rtsp/rtspdefs.h:
	Add generic error return code.

	* gst/rtsp/rtspext.h:
	Add support for pluggable tranport strings.

	* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_before_send),
	(rtsp_ext_wms_after_send), (rtsp_ext_wms_parse_sdp),
	(rtsp_ext_wms_get_context):
	Detect WMServer and activate the extension.

	* gst/rtsp/rtsptransport.c: (rtsp_transport_get_mime),
	(rtsp_transport_get_manager), (rtsp_transport_parse):
	* gst/rtsp/rtsptransport.h:
	Added methods to get mime/manager for certain transports.

2006-10-05  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cairo/gsttimeoverlay.c:
	(gst_cairo_time_overlay_update_font_height):
	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_transform_caps):
	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_parse_image_data):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
	* ext/libpng/gstpngdec.c: (user_endrow_callback):
	* gst/auparse/gstauparse.c: (gst_au_parse_parse_header):
	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
	(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
	(gst_avi_demux_stream_data):
	* gst/cutter/gstcutter.c: (gst_cutter_chain):
	* gst/debug/efence.c: (gst_efence_buffer_alloc),
	(gst_fenced_buffer_copy):
	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
	(gst_rtspsrc_handle_message):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
	* sys/ximage/ximageutil.c: (ximageutil_xcontext_get):
	  Printf format fixes.

2006-10-04  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/Makefile.am:
	Dist new .h file too.

2006-10-04  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/Makefile.am:
	* gst/rtsp/gstrtpdec.c: (gst_rtpdec_getcaps),
	(gst_rtpdec_chain_rtp), (gst_rtpdec_chain_rtcp):
	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
	(gst_rtspsrc_finalize), (gst_rtspsrc_create_stream),
	(gst_rtspsrc_parse_rtpmap),
	(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_send),
	(gst_rtspsrc_parse_methods), (gst_rtspsrc_open),
	(gst_rtspsrc_play), (gst_rtspsrc_handle_message):
	* gst/rtsp/gstrtspsrc.h:
	* gst/rtsp/rtspdefs.c: (rtsp_strresult):
	* gst/rtsp/rtspdefs.h:
	* gst/rtsp/rtspext.h:
	* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_parse_sdp),
	(rtsp_ext_wms_get_context):
	* gst/rtsp/rtspextwms.h:
	* gst/rtsp/rtsptransport.c: (rtsp_transport_init), (parse_mode),
	(rtsp_transport_parse):
	* gst/rtsp/rtsptransport.h:
	Factor out extension in separate module.
	Fix getcaps to filter against the padtemplate.
	Use Content-Base if the server gives one.
	Rework the transport parsing a bit for future extensions.
	Added some Real Header field definitions.

2006-10-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	  added v4l2 stubs
	* gst-plugins-good.spec.in:
	  add v4l2

2006-10-04  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gstapedemux.c: (ape_demux_parse_tags):
	  Extract disc/album/medium number and count and try harder
	  to extract track number/count.

2006-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* sys/Makefile.am:
	  add build stuff for v4l2, needs --enable-experimental until
	  the last bits are resolved

2006-09-29  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	  Disable autodetect test temporarily, so that the build bots
	  update -bad and the ranks of unreliable video sinks in there.

	* tests/check/elements/autodetect.c: (GST_START_TEST):
	  Skip test if no usable videosink is found.

2006-09-29  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/URLS:
	Add some more URLs.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
	(gst_rtspsrc_init), (gst_rtspsrc_finalize),
	(gst_rtspsrc_set_property), (gst_rtspsrc_get_property),
	(gst_rtspsrc_stream_setup_rtp), (gst_rtspsrc_loop_interleaved),
	(gst_rtspsrc_loop_udp), (gst_rtspsrc_loop_send_cmd),
	(gst_rtspsrc_loop), (gst_rtspsrc_send),
	(gst_rtspsrc_parse_methods), (gst_rtspsrc_open),
	(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
	(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
	* gst/rtsp/gstrtspsrc.h:
	Add timeout property to control UDP timeouts.
	Fix error messages.
	Also start a loop function when operating in UDP mode so that we can
	do some more stuff async.
	Handle element messages from udpsrc to detect timeouts. If a timeout
	happens we currently generate an error.
	API: rtspsrc::timeout property.

	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
	(gst_udpsrc_create):
	Really implement the timeout in microseconds and not milliseconds.

2006-09-29  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init), (gst_udpsrc_init),
	(gst_udpsrc_create), (gst_udpsrc_set_property),
	(gst_udpsrc_get_property), (gst_udpsrc_unlock), (gst_udpsrc_stop):
	* gst/udp/gstudpsrc.h:
	Added property to post a message on timeout.
	Updated docs.
	When restarting the select, initialize the fdsets again.
	Init control sockets so we don't accidentally close a random socket.
	API: GstUDPSrc::timeout property

2006-09-29  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type):
	Fix flag registration.

	* gst/rtsp/rtspconnection.c: (rtsp_connection_read):
	Reading 0 also means 'no more commands'

2006-09-29  Wim Taymans  <wim@fluendo.com>

	Patch by: Antoine Tremblay <hexa00 at gmail dot com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_create):
	Fix possible infinite loop when shutting down, a read can also return
	0 to indicate no more messages are available. Fixes #358156.

2006-09-25  Wim Taymans  <wim@fluendo.com>

	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_base_init), (gst_auto_audio_sink_class_init),
	(gst_auto_audio_sink_find_best):
	* gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_detect):
	Small cleanups.
	don't try to set "sync" property when it is not available.

2006-09-25  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Peter Kjellerstedt  <pkj at axis com>

	* gst/alpha/gstalpha.c:
	* gst/rtp/gstrtpamrdepay.c:
	* gst/rtsp/gstrtspsrc.c:
	* gst/udp/gstudpsrc.c:
	* gst/videomixer/videomixer.c:
	  Include stdlib.h in some more places, makes things compile
	  with uClibc and -Werror (#357592).

2006-09-25  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c:
	  Set minimum height to 8 (from 16), our code should handle
	  that fine. Some of the buttons on the apple trailer site
	  are apparently only 15 pixels high (see #357470).

2006-09-23  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop), (gst_rtspsrc_send),
	(gst_rtspsrc_open):
	* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
	(rtsp_connection_connect), (rtsp_connection_read), (read_body),
	(rtsp_connection_receive):
	* gst/rtsp/rtspdefs.c: (rtsp_strresult):
	* gst/rtsp/rtspdefs.h:
	Improve error reporting.

2006-09-23  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstasteriskh263.c: (gst_asteriskh263_plugin_init):
	* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16depay_plugin_init):
	* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_plugin_init):
	* gst/rtp/gstrtpdepay.c:
	* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_plugin_init):
	* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_plugin_init):
	* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_plugin_init):
	* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_plugin_init):
	* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps),
	(gst_rtp_mp2t_depay_plugin_init):
	* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_plugin_init):
	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_plugin_init):
	* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_plugin_init):
	* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_plugin_init):
	* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_plugin_init):
	* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_plugin_init):
	* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_plugin_init):
	* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_plugin_init):
	Fix klass typos.
	Mark RANK_MARGINAL, decodebin can handle the depayloaders fine.

2006-09-22  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Need  -base CVS for gst_base_rtp_depayload_push_ts().

2006-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index):
	Don't check for a tag that is never there and check if we read the
	correct tag. Fixes seeking again.
	We must post an error when all pads are unlinked.

2006-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_process):
	* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_setcaps),
	(gst_rtp_vorbis_pay_reset_packet),
	(gst_rtp_vorbis_pay_init_packet),
	(gst_rtp_vorbis_pay_flush_packet), (gst_rtp_vorbis_pay_parse_id),
	(gst_rtp_vorbis_pay_handle_buffer):
	More fixage, set endoder-params correctly in the payloader.

2006-09-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_base_init):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_base_init):
	  Make static pad templates static to appease valgrind's leak
	  detector.

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/autodetect.c: (GST_START_TEST),
	(autodetect_suite):
	  Add simple test for the ghostpad lockup on shutdown fixed in core
	  CVS (audio bit disabled because it would need dozens of alsa
	  suppressions and I'm too lazy to add those now).

2006-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16depay_change_state):
	* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_class_init):
	Small cleanups.

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_base_init),
	(gst_rtp_vorbis_depay_class_init), (gst_rtp_vorbis_depay_init),
	(gst_rtp_vorbis_depay_finalize), (gst_rtp_vorbis_depay_setcaps),
	(gst_rtp_vorbis_depay_process),
	(gst_rtp_vorbis_depay_set_property),
	(gst_rtp_vorbis_depay_get_property),
	(gst_rtp_vorbis_depay_change_state),
	(gst_rtp_vorbis_depay_plugin_init):
	* gst/rtp/gstrtpvorbisdepay.h:
	* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_base_init),
	(gst_rtp_vorbis_pay_class_init), (gst_rtp_vorbis_pay_init),
	(gst_rtp_vorbis_pay_setcaps), (gst_rtp_vorbis_pay_init_packet),
	(gst_rtp_vorbis_pay_flush_packet),
	(gst_rtp_vorbis_pay_append_buffer),
	(gst_rtp_vorbis_pay_handle_buffer),
	(gst_rtp_vorbis_pay_plugin_init):
	* gst/rtp/gstrtpvorbispay.h:
	Add experimental vorbis pay and depayloaders.

2006-09-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_parse_audio_config):
	Fix profile-level-id parsing and setup.

2006-09-21  Wim Taymans  <wim@fluendo.com>

	* gst/udp/README:
	* gst/udp/gstudpsrc.c: (gst_udpsrc_set_property):
	Update README, simple cleanup.

2006-09-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/README:
	Update README with some examples.

	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_init),
	(gst_rtp_mp4g_pay_finalize), (gst_rtp_mp4g_pay_parse_audio_config),
	(gst_rtp_mp4g_pay_parse_video_config), (gst_rtp_mp4g_pay_new_caps),
	(gst_rtp_mp4g_pay_setcaps):
	* gst/rtp/gstrtpmp4gpay.h:
	Make optional RTP parameters of type STRING, as required by the
	application/x-rtp caps specification.

2006-09-20  Philippe Kalaf  <philippe.kalaf at collabora.co.uk>

	* gst/rtp/gstrtph263pdepay.c:
	* gst/rtp/gstrtph263ppay.c:
	Correctly calculate size of each H263+ RTP buffer taking into account MTU and
	RTP header.

2006-09-20  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	And makefile too.

2006-09-20  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpasfdepay.c: (gst_rtp_asf_depay_base_init),
	(gst_rtp_asf_depay_class_init), (gst_rtp_asf_depay_init),
	(decode_base64), (gst_rtp_asf_depay_setcaps),
	(gst_rtp_asf_depay_process), (gst_rtp_asf_depay_set_property),
	(gst_rtp_asf_depay_get_property), (gst_rtp_asf_depay_change_state),
	(gst_rtp_asf_depay_plugin_init):
	* gst/rtp/gstrtpasfdepay.h:
	Added preliminary ASF depayloader.

	* gst/rtp/gstrtph264depay.c: (decode_base64):
	Fix base64 decoding.

2006-09-20  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/URLS:
	Added some test URLS.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
	(gst_rtspsrc_loop), (gst_rtspsrc_open):
	* gst/rtsp/gstrtspsrc.h:
	When creating streams, give access to the complete SDP.
	Fix some leaks.
	Collect and merge global stream properties in stream caps.
	Preliminary support for WMServer.

	* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
	(rtsp_connection_connect), (rtsp_connection_read), (read_body),
	(rtsp_connection_receive):
	* gst/rtsp/rtspconnection.h:
	Make connection interruptable.
	Refactor to make it reconnectable.
	Don't fail on short reads when reading data packets.

	* gst/rtsp/rtspurl.c: (rtsp_url_parse), (rtsp_url_set_port),
	(rtsp_url_get_port):
	* gst/rtsp/rtspurl.h:
	Add methods for getting/setting the port.

	* gst/rtsp/sdpmessage.c: (sdp_message_get_attribute_val_n),
	(sdp_message_get_attribute_val), (sdp_media_get_attribute),
	(sdp_media_get_attribute_val_n), (sdp_media_get_attribute_val),
	(sdp_media_get_format), (sdp_parse_line),
	(sdp_message_parse_buffer):
	Fix headers. 
	Add methods for getting multiple attributes with the same name.
	Increase buffer size when parsing.
	Fix parsing of a=foo fields.

	* gst/rtsp/test.c: (main):
	Update to new connection API.

	* gst/rtsp/rtspmessage.c: (rtsp_message_new_response),
	(rtsp_message_init_response), (rtsp_message_init_data),
	(rtsp_message_unset), (rtsp_message_free), (rtsp_message_dump):
	* gst/rtsp/rtspmessage.h:
	* gst/rtsp/rtsptransport.c: (rtsp_transport_free):
	* gst/rtsp/rtsptransport.h:
	* gst/rtsp/sdp.h:
	* gst/rtsp/sdpmessage.h:
	* gst/rtsp/gstrtsp.c:
	* gst/rtsp/gstrtsp.h:
	* gst/rtsp/gstrtpdec.c:
	* gst/rtsp/gstrtpdec.h:
	* gst/rtsp/rtsp.h:
	* gst/rtsp/rtspdefs.c:
	* gst/rtsp/rtspdefs.h:
	Dual licensed under MIT and LGPL now.

2006-09-19  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (find_stream_by_pt),
	(gst_rtspsrc_create_stream), (gst_rtspsrc_free_stream),
	(gst_rtspsrc_media_to_caps), (gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (find_stream_by_channel),
	(gst_rtspsrc_push_event), (gst_rtspsrc_loop), (gst_rtspsrc_send),
	(gst_rtspsrc_parse_methods), (gst_rtspsrc_open),
	(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play):
	* gst/rtsp/gstrtspsrc.h:
	Reorganize stream parsing and creation.
	Detect container formats in interleaved mode.
	Keep more state about the streams.
	Assume a server also supports PLAY if it does not say.
	Add unicast and interleaved properties to TCP transport requests to make
	some servers happy (WMServer).

	* gst/rtsp/sdpmessage.h:
	Add some defines for the standard Bandwidth types.

2006-09-19  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/test.c: (main):
	Fix build.

2006-09-19  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c:
	Add ms-gsm to the src template.

2006-09-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_send), (gst_rtspsrc_parse_methods),
	(gst_rtspsrc_open), (gst_rtspsrc_close), (gst_rtspsrc_play),
	(gst_rtspsrc_pause), (gst_rtspsrc_change_state),
	(gst_rtspsrc_uri_get_uri), (gst_rtspsrc_uri_set_uri):
	* gst/rtsp/gstrtspsrc.h:
	Small cleanups, added documentation.
	Try to clean up the requests and responses.
	Refactor parsing the supported methods.

	* gst/rtsp/rtspconnection.c: (rtsp_connection_open),
	(rtsp_connection_create), (rtsp_connection_send),
	(parse_response_status), (parse_request_line),
	(rtsp_connection_receive), (rtsp_connection_close),
	(rtsp_connection_free):
	* gst/rtsp/rtsptransport.c: (rtsp_transport_new),
	(rtsp_transport_init), (rtsp_transport_parse),
	(rtsp_transport_free):
	* gst/rtsp/rtspurl.c: (rtsp_url_parse):
	* gst/rtsp/sdpmessage.c: (sdp_message_new), (sdp_message_init),
	(sdp_message_clean), (sdp_message_free), (sdp_media_new),
	(sdp_media_init), (sdp_message_parse_buffer), (sdp_message_dump):
	Use g_return_val some more.

	* gst/rtsp/rtspdefs.h:
	Add more enum values to track initial states.

	* gst/rtsp/rtspmessage.c: (rtsp_message_new_request),
	(rtsp_message_init_request), (rtsp_message_new_response),
	(rtsp_message_init_response), (rtsp_message_init_data),
	(rtsp_message_unset), (rtsp_message_free),
	(rtsp_message_add_header), (rtsp_message_remove_header),
	(rtsp_message_get_header), (rtsp_message_set_body),
	(rtsp_message_take_body), (rtsp_message_get_body),
	(rtsp_message_steal_body), (rtsp_message_dump):
	* gst/rtsp/rtspmessage.h:
	Reorder arguments, object goes as the first one.
	Use g_return_val some more.

2006-09-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_base_init),
	(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_push_event),
	(gst_rtspsrc_loop), (gst_rtspsrc_uri_set_uri):
	* gst/rtsp/gstrtspsrc.h:
	Export sometimes source pad with correct caps on the template, create
	the ghostpad from the template.
	Remove RTCP template as we never expose RTCP.
	Protect against invalid body size.
	Avoid memcpy when creating the output buffer.
	Properly post an error and send EOS when the loop function is shut down.

2006-09-18  Wim Taymans  <wim@fluendo.com>

	Based on patch by: Lutz Mueller <lutz at topfrose dot de>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
	(gst_rtspsrc_init), (gst_rtspsrc_set_property), (gst_rtspsrc_open),
	(gst_rtspsrc_uri_get_uri), (gst_rtspsrc_uri_set_uri):
	* gst/rtsp/gstrtspsrc.h:
	Make sure we can never set an invalid location.

	* gst/rtsp/rtspmessage.c: (rtsp_message_steal_body):
	* gst/rtsp/rtspmessage.h:
	Added _steal_body method for future use.

	* gst/rtsp/rtspurl.c: (rtsp_url_parse), (rtsp_url_free):
	Make freeing of NULL url return immediatly.

2006-09-18  Wim Taymans  <wim@fluendo.com>

	Based on patch by: Lutz Mueller <lutz at topfrose dot de>

	* gst/rtsp/gstrtspsrc.c: (_do_init), (gst_rtspsrc_class_init),
	(gst_rtspsrc_init), (gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_play),
	(gst_rtspsrc_change_state):
	* gst/rtsp/gstrtspsrc.h:
	Use boilerplate.
	Make rtspsrc subclass GstBin to make state changes easier.
	Add Range header field on the PLAY request.

2006-09-18  Wim Taymans  <wim@fluendo.com>

	Based on patch by: Thijs Vermeir <thijs dot vermeir at barco dot com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_set_state),
	(gst_rtspsrc_media_to_caps), (gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_open),
	(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause):
	* gst/rtsp/rtspconnection.c: (inet_aton):
	Small cleanups.
	when multicast is selected as the transport, create UDP sources and
	connect to the multicast group.
	Move parsing and setting of caps to a common place.
	Fixes #349894.

2006-09-17  Stefan Kost  <ensonic@users.sf.net>

	* ext/flac/gstflactag.c:
	* gst/alpha/gstalpha.c:
	* gst/debug/breakmydata.c:
	* gst/debug/negotiation.c:
	* gst/debug/testplugin.c:
	* gst/effectv/gstaging.c:
	* gst/effectv/gstdice.c:
	* gst/effectv/gstedge.c:
	* gst/effectv/gstquark.c:
	* gst/effectv/gstrev.c:
	* gst/effectv/gstshagadelic.c:
	* gst/effectv/gstvertigo.c:
	* gst/effectv/gstwarp.c:
	* gst/multipart/multipartdemux.c:
	* gst/multipart/multipartmux.c:
	* gst/videobox/gstvideobox.c:
	* gst/videofilter/gstgamma.c:
	* gst/videofilter/gstvideotemplate.c:
	* gst/videomixer/videomixer.c:
	* sys/sunaudio/gstsunaudiosrc.h:
	More G_OBJECT macro fixing.

2006-09-16  Wim Taymans  <wim@fluendo.com>

	Patch by: Yves Lefebvre <ivanohe at abacom dot com>

	* gst/avi/gstavimux.c: (gst_avi_mux_stop_file):
	Correctly set the dwLength in strh.
	With this patch, the file duration is now displayed correctly in window
	media player and the AVI plays completely. Fixes #356147

2006-09-15  Wim Taymans  <wim@fluendo.com>

	Patch by: Darren Kenny <darren dot kenny at sun dot com>

	* sys/sunaudio/gstsunaudiomixerctrl.c:
	(gst_sunaudiomixer_ctrl_build_list):
	Set the output track as the MASTER so that the gnome-settings-daemon
	keybindings for changing the volume using the keyboard works.
	Fixes #356142.

2006-09-15  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartdemux.c: (gst_multipart_demux_chain):
	Fix documentation, it is not possible to control the framerate of jpegdec
	using filtered caps yet. Fixes #355210.
	Return the downstream GstFlowReturn instead of GST_FLOW_OK so that we
	stop when there is an error.

2006-09-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain_parse_tag):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
	  Don't interpret a first buffer with an offset of NONE as
	  'from the middle of the stream', but only a first buffer
	  that has a valid buffer offset that's non-zero (see #345449).

2006-09-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/icydemux/gsticydemux.c: (gst_icydemux_reset),
	(gst_icydemux_typefind_or_forward):
	* gst/icydemux/gsticydemux.h:
	  When we merge/collect multiple incoming buffers for typefinding
	  purposes, keep an initial 0 offset on the first outgoing buffer
	  as well (otherwise id3demux won't work right). Fixes #345449.
	  Also Make buffer metadata writable before setting buffer caps.

	* tests/check/elements/icydemux.c: (typefind_succeed),
	(cleanup_icydemux), (push_data), (GST_START_TEST),
	(icydemux_suite):
	  Small test case for the above.

2006-09-13  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_peek_chunk),
	(gst_avi_demux_stream_index), (gst_avi_demux_sync),
	(gst_avi_demux_stream_header_push),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
	(gst_avi_demux_loop):
	  More code reuse and better logging in _peek_chunk(). Reintroduce check
	  for chunk sizes before reading them (avoid oom). Better handling for 
	  invalid chunksizes when streaming.

2006-09-11  Stefan Kost  <ensonic@users.sf.net>

	* gst/level/gstlevel.c: (gst_level_set_property):
	* gst/level/gstlevel.h:
          Fix type mixup in level->interval (gdouble<->guint64). Spotted by
          René Stadler

2006-09-06  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_read_subindexes_pull),
	(gst_avi_demux_sync), (gst_avi_demux_stream_header_push),
	(gst_avi_demux_stream_data):
	  Revert one change to fix streaming avi (adapter size != data size).

2006-09-04  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Frédéric Riss  <frederic.riss at gmail dot com>

	* gst/matroska/matroska-demux.c: (gst_matroska_track_free),
	(gst_matroska_demux_reset),
	(gst_matroska_demux_read_track_encodings),
	(gst_matroska_demux_add_stream), (gst_matroska_decode_buffer),
	(gst_matroska_demux_parse_blockgroup_or_simpleblock),
	(gst_matroska_demux_subtitle_caps):
	* gst/matroska/matroska-ids.h:
	  Add support for VOBSUB subtitle tracks and zlib-compressed
	  tracks. Make sure we start on a keyframe after a seek. (#343348)

2006-09-04  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_push_hdr_buf),
	(gst_matroska_demux_push_flac_codec_priv_data),
	(gst_matroska_demux_push_xiph_codec_priv_data),
	(gst_matroska_demux_parse_blockgroup_or_simpleblock),
	(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps):
	* gst/matroska/matroska-ids.h:
	  Add basic FLAC support (#311586), not perfect yet though, needs some
	  tweaking in flacdec; also, seeking could be better.
	  Do better bounds checking when deserialising vorbis stream headers
	  to make sure we don't read beyond the end of the buffer on bad input.

2006-09-04  Wim Taymans  <wim@fluendo.com>

	Patch by: Alessandro Decina <alessandro at nnva dot org>

	* ext/annodex/gstcmmldec.c: (gst_cmml_dec_chain):
	Seeking back in a file containing a CMML stream errors out if the seek
	goes back up to the CMML headers. This is because after the seek the xml
	processing instruction <?xml ...?> is submitted to the xml parser again, 
	which results in an error. The attached patch fixes the problem. 
	Fixes #353908.

	* ext/annodex/gstcmmlenc.h:
	Fix authors name.


2006-08-28  Andy Wingo  <wingo@pobox.com>

	* ext/raw1394/gstdv1394src.c (gst_dv1394src_from_raw1394handle):
	New helper function to lessen the ifdefs.
	(GST_INFO_OBJECT): 
	(gst_dv1394src_iso_receive): Use it.
	(gst_dv1394src_create): Also use the control sockets in iec61883
	mode.
	(gst_dv1394src_start, gst_dv1394src_stop): Always use a separate
	handle for AVC operations; fixes #348233.

2006-08-27  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-audiofx.xml:
	* docs/plugins/inspect/plugin-audiofxgood.xml:
	* gst/audiofx/Makefile.am:
	* gst/audiofx/audiofx.c:
	* gst/audiofxgood/.cvsignore:
	* gst/audiofxgood/Makefile.am:
	* gst/audiofxgood/audiofx.c:
	* gst/audiofxgood/audiopanorama.c:
	* gst/audiofxgood/audiopanorama.h:
          Rename again (audiofxgood -> audiofx).

2006-08-27  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_next_data_buffer),
	(gst_avi_demux_stream_scan):
          Initialze variables.

2006-08-25  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_class_init),
	(gst_avi_demux_init), (gst_avi_demux_finalize),
	(gst_avi_demux_reset), (gst_avi_demux_index_last),
	(gst_avi_demux_index_next), (gst_avi_demux_index_entry_for_time),
	(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_index),
	(gst_avi_demux_stream_index), (gst_avi_demux_peek_tag),
	(gst_avi_demux_next_data_buffer), (gst_avi_demux_stream_scan),
	(gst_avi_demux_massage_index),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_stream_header_pull), (gst_avi_demux_do_seek),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_loop),
	(gst_avi_demux_chain), (gst_avi_demux_sink_activate),
	(gst_avi_demux_change_state):
	* gst/avi/gstavidemux.h:
	More attempts to turn this into readable code.
	Don't leak adapters.
	Calculate duration according to index more efficiently.
	Don't try to act like we drive the pipeline in chain mode.

2006-08-25  Wim Taymans  <wim@fluendo.com>

	* ext/annodex/gstcmmlutils.c: (gst_cmml_clock_time_from_npt):
	Fix build.

2006-08-25  Wim Taymans  <wim@fluendo.com>

	Patch by: Alessandro Decina <alessandro at nnva dot org>

	* ext/annodex/gstannodex.c: (gst_annodex_granule_to_time):
	Do some extra sanity checks.
	Fixes #350340.

	* ext/annodex/gstcmmlenc.c: (gst_cmml_enc_change_state),
	(gst_cmml_enc_parse_tag_head), (gst_cmml_enc_parse_tag_clip),
	(gst_cmml_enc_push_clip), (gst_cmml_enc_push):
	Check if clip->start_time is valid before adding the clip to the
	track list.
	Reset enc->preamble going from PAUSED to READY.
	Don't use GST_FLOW_UNEXPECTED for wrong usage of the element, it is
	only used for EOS.
	Only post an error message if we were the one that created the fatal
	GstFlowReturn value.

	* ext/annodex/gstcmmlutils.c: (gst_cmml_clock_time_from_npt),
	(gst_cmml_clock_time_to_granule), (gst_cmml_track_list_has_clip):
	Parse the seconds field of the npt-sec time format using %llu rather than
	%d and check that the value scaled by GST_SECOND doesn't overflow.
	Use guint64(s) to represent the keyindex and keyoffset fields of a granulepos.
	Lookup a clip's track with clip->track rather than clip->id which
	makes no sense.
	Identify a clip by its track and start time and not its xml id.
	do some more input checking and make sure we don't do undefined shifts.

	* tests/check/elements/cmmldec.c: (setup_cmmldec),
	(teardown_cmmldec), (check_output_buffer_is_equal), (push_data),
	(cmml_tag_message_pop), (check_headers), (push_clip_full),
	(push_clip), (push_empty_clip), (check_output_clip),
	(GST_START_TEST), (cmmldec_suite):
	* tests/check/elements/cmmlenc.c: (setup_cmmlenc),
	(teardown_cmmlenc), (check_output_buffer_is_equal), (push_data),
	(check_headers), (push_clip), (check_clip_times), (check_clip),
	(check_empty_clip), (GST_START_TEST), (cmmlenc_suite):
	Added some more checks.

2006-08-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_class_init),
	(gst_audio_panorama_set_property),
	(gst_audio_panorama_get_property),
	(gst_audio_panorama_transform_m2s_int),
	(gst_audio_panorama_transform_s2s_int),
	(gst_audio_panorama_transform_m2s_float),
	(gst_audio_panorama_transform_s2s_float):
	* gst/audiofxgood/audiopanorama.h:
	* tests/check/elements/audiopanorama.c: (GST_START_TEST):
          Make also the pan-property float (saves scaling and yields better
          resolution)

2006-08-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_set_caps),
	(gst_audio_panorama_transform_m2s_float),
	(gst_audio_panorama_transform_s2s_float):
          ChangeLog surgery to add cymax's real name


2006-08-24  Stefan Kost  <ensonic@users.sf.net>

        Patch by: René Stadler <mail@renestadler.de>

	* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_set_caps),
	(gst_audio_panorama_transform_m2s_int),
	(gst_audio_panorama_transform_s2s_int),
	(gst_audio_panorama_transform_m2s_float),
	(gst_audio_panorama_transform_s2s_float),
	(gst_audio_panorama_transform):
	* gst/audiofxgood/audiopanorama.h:
          Added float support

2006-08-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiofxgood/audiopanorama.c:
	(gst_audio_panorama_transform_m2s):
	  Fix docs & debug category. Add Fixme for volume pan levels.

2006-08-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_read_subindexes_pull),
	(gst_avi_demux_sync), (gst_avi_demux_stream_header_push),
	(gst_avi_demux_stream_header_pull),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
	(gst_avi_demux_chain):
	  unbreak AVI index handling, some more debug, remove an obsolete
	  adapter_flush that caused streaming to wander off in the wild

2006-08-24  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_parse_superindex), (gst_avi_demux_parse_subindex),
	(gst_avi_demux_parse_stream), (gst_avi_demux_parse_odml),
	(gst_avi_demux_parse_index), (gst_avi_demux_stream_index),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_stream_header_push),
	(gst_avi_demux_stream_header_pull):
	* gst/avi/gstavidemux.h:
	Some more cleanups. 
	Fix totalFrames parsing in ODML.
	Disable use of index for length calculation in case of ODML as this is
	broken now.

2006-08-24  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_dec_update_metadata):
	  Use libgsttag helper function here too.

2006-08-23  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_class_init),
	(gst_avi_demux_init), (gst_avi_demux_dispose),
	(gst_avi_demux_reset), (gst_avi_demux_index_next),
	(gst_avi_demux_index_entry_for_time), (gst_avi_demux_src_convert),
	(gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event),
	(gst_avi_demux_peek_chunk_info), (gst_avi_demux_peek_chunk),
	(gst_avi_demux_stream_init_push), (gst_avi_demux_stream_init_pull),
	(gst_avi_demux_parse_subindex),
	(gst_avi_demux_read_subindexes_push),
	(gst_avi_demux_read_subindexes_pull), (gst_avi_demux_parse_stream),
	(sort), (gst_avi_demux_parse_index), (gst_avi_demux_stream_index),
	(gst_avi_demux_sync), (gst_avi_demux_peek_tag),
	(gst_avi_demux_massage_index), (gst_avi_demux_stream_header_push),
	(gst_avi_demux_stream_header_pull),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
	(push_tag_lists), (gst_avi_demux_loop), (gst_avi_demux_chain),
	(gst_avi_demux_sink_activate), (gst_avi_demux_activate_push),
	(gst_avi_demux_change_state):
	* gst/avi/gstavidemux.h:
	  Initial streaming support for avidemux (fixes #336465)

2006-08-22  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	  There is no taglibmux element ...

	* gst/rtsp/gstrtspsrc.c:
	  Use '%' rather than '&perc;' in gtk-doc blurb, docs build
	  was complaining about unknown entity here.

2006-08-22  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
	(gst_avi_demux_do_seek), (gst_avi_demux_handle_seek),
	(gst_avi_demux_process_next_entry):
	* gst/avi/gstavidemux.h:
	Mark DISCONT.
	Remove old unused fields and reorder the struct a bit.

2006-08-22  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_send), (gst_rtspsrc_close), (gst_rtspsrc_play),
	(gst_rtspsrc_pause):
	* gst/rtsp/gstrtspsrc.h:
	* sys/oss/gstosssink.c: (gst_oss_sink_open),
	(gst_oss_sink_prepare), (gst_oss_sink_unprepare):
	Small documentation updates.

2006-08-22  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_index_entry_for_time),
	(gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event),
	(gst_avi_demux_stream_init), (gst_avi_demux_parse_stream),
	(gst_avi_demux_stream_index), (gst_avi_demux_peek_tag),
	(gst_avi_demux_next_data_buffer),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_stream_header), (gst_avi_demux_do_seek),
	(gst_avi_demux_handle_seek), (gst_avi_demux_aggregated_flow),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_loop),
	(gst_avi_demux_sink_activate_pull), (gst_avi_demux_change_state):
	* gst/avi/gstavidemux.h:
	Precalc most of the duration query for each stream.
	Make seeking more correct.
	Use GstSegment to track position and duration.
	Code cleanups and leak fixes.
	Calculate correct total duration based on index length.

2006-08-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (parse_text_identification_frame),
	(parse_insert_string_field):
	  If strings in text fields are marked ISO8859-1, but contain
	  valid UTF-8 already, then handle them as UTF-8 and ignore
	  the encoding. (#351794)

2006-08-22  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_dec_scan_got_frame),
	(gst_flac_dec_write), (gst_flac_dec_loop),
	(gst_flac_dec_sink_event), (gst_flac_dec_chain),
	(gst_flac_dec_src_query):
	* ext/flac/gstflacdec.h:
	  Make flac-in-ogg work (#352100).

2006-08-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/monoscope/gstmonoscope.c: (gst_monoscope_chain):
	  Don't unref buffers of which we've already given away
	  ownership to the adapter.

2006-08-22  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/speex/gstspeexdec.c: (speex_dec_chain_parse_comments):
	  Make metadata extraction actually work.

	* ext/speex/gstspeexenc.c: (gst_speexenc_base_init),
	(gst_speexenc_init), (gst_speexenc_create_metadata_buffer),
	(gst_speexenc_chain):
	  Fix metadata writing: replace old code which wrote completely
	  broken tags with libgsttag-based code. Plus miscellaneous
	  code cleanups (use static pad templates etc.) and a bunch
	  of leak fixes.

2006-08-21  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiopanorama/.cvsignore:
	* gst/audiopanorama/Makefile.am:
	* gst/audiopanorama/audiofx.c:
	* gst/audiopanorama/audiopanorama.c:
	* gst/audiopanorama/audiopanorama.h:
          die! die! die! you should never have been there

2006-08-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/elements/audiopanorama.c: (GST_START_TEST):
	Fix invalid memory access in audiopanorama test suite.

2006-08-21  Edward Hervey  <edward@fluendo.com>

	* tests/check/elements/.cvsignore:
	ignore built file

2006-08-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	Fix the build again.

2006-08-21  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiofxgood/.cvsignore:
	* gst/audiofxgood/Makefile.am:
	* gst/audiofxgood/audiofx.c: (plugin_init):
	* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_base_init),
	(gst_audio_panorama_class_init), (gst_audio_panorama_init),
	(gst_audio_panorama_set_property),
	(gst_audio_panorama_get_property),
	(gst_audio_panorama_get_unit_size),
	(gst_audio_panorama_transform_caps), (gst_audio_panorama_set_caps),
	(gst_audio_panorama_transform_m2s),
	(gst_audio_panorama_transform_s2s), (gst_audio_panorama_transform):
	* gst/audiofxgood/audiopanorama.h:
	  resubmit with the desired name *again*

2006-08-20  Stefan Kost  <ensonic@users.sf.net>

	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_get_unit_size):
	* gst/videobox/gstvideobox.c: (gst_video_box_get_unit_size):
          use g_assert in _get_unit_size

2006-08-20  Stefan Kost  <ensonic@users.sf.net>

	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/inspect/plugin-audiofxgood.xml:
          cleanup -unused.txt to make it useful, add previously missing docs

	* ext/Makefile.am:
	  Quietly (accidentally) enable LADSPA for building by default, 
	  despite the fact that it doesn't meet the plugin checklist.
	    -- Added by Jan Schmidt 18 Dec 2006

	* ext/esd/esdmon.c:
	* ext/esd/esdsink.c:
	* ext/esd/gstesd.c: (plugin_init):
          reflow to get rid of two external symbols

	* gst/audiofxgood/audiofx.c: (plugin_init):
          re-add

2006-08-20  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* gst/audiofxgood/.cvsignore:
	* gst/audiofxgood/Makefile.am:
	* gst/audiofxgood/audiofx.c
	* gst/audiofxgood/audiopanorama.c: (gst_audio_panorama_base_init),
	(gst_audio_panorama_class_init), (gst_audio_panorama_init),
	(gst_audio_panorama_set_property),
	(gst_audio_panorama_get_property),
	(gst_audio_panorama_get_unit_size),
	(gst_audio_panorama_transform_caps), (gst_audio_panorama_set_caps),
	(gst_audio_panorama_transform_m2s),
	(gst_audio_panorama_transform_s2s), (gst_audio_panorama_transform):
	* gst/audiofxgood/audiopanorama.h:
	* tests/check/Makefile.am:
	* tests/check/elements/audiopanorama.c: (setup_panorama_m),
	(setup_panorama_s), (cleanup_panorama), (GST_START_TEST),
	(panorama_suite), (main):
        Add audiofxgood plugin with audiopanorama element

2006-08-18  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	More Oss docs fixage. 

2006-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_base_init),
	(gst_rtp_sv3v_depay_class_init), (gst_rtp_sv3v_depay_init),
	(gst_rtp_sv3v_depay_finalize), (gst_rtp_sv3v_depay_setcaps),
	(gst_rtp_sv3v_depay_process), (gst_rtp_sv3v_depay_set_property),
	(gst_rtp_sv3v_depay_get_property),
	(gst_rtp_sv3v_depay_change_state),
	(gst_rtp_sv3v_depay_plugin_init):
	* gst/rtp/gstrtpsv3vdepay.h:
	Added experimental SVQ3 depayloader.

2006-08-18  Edward Hervey  <edward@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_handle_pull_seek),
	(gst_dvdemux_loop), (gst_dvdemux_change_state):
	* ext/dv/gstdvdemux.h:
	When handling seek requests, don't send the newsegment event from the
	calling thread. Instead save it so it can be sent from the streaming
	thread.

2006-08-17  Wim Taymans  <wim@fluendo.com>

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* gst/multipart/multipartdemux.c: (multipart_parse_header):
	Accept leading whitespace before the boundary
	This patch makes the demuxer allow some whitespace before the actual
	boundary. This makes the demuxer work with the ``old'' gstreamer
	multipartmuxer again (which placed an extra \n before the start
	of the stream) Fixes #349068.

2006-08-17  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_process):
	Error out on non-implemented stuff.

2006-08-16  Wim Taymans  <wim@fluendo.com>

	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  Wim Taymans  <wim@fluendo.com>

	* ext/ladspa/gstladspa.c: (gst_ladspa_base_init):
	Convert ' ' into '_'. Try to keep as many characters in the padtemplate
	names as possible. Fixes #349901.

2006-08-16  Wim Taymans  <wim@fluendo.com>

	* 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  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gstossmixerelement.c: (gst_oss_mixer_element_class_init),
	(gst_oss_mixer_element_finalize):
	  Don't leak device string.

2006-08-16  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Require CVS of GStreamer core and -base (for
	  GST_TAG_EXTENDED_COMMENT and gst_tag_parse_extended_comment()).

	* ext/taglib/gstid3v2mux.cc:
	  Write extended comment tags properly (#348762).

	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
	(parse_comment_frame):
	  Extract COMM frames into extended comments, which makes it
	  easier to properly retain the description bit of the tag
	  and maintain this information when re-tagging (#348762).

2006-08-16  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	  Don't try to run annodex unit tests if the annodex
	  plugin has not been built (Fixes #351116).

2006-08-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_find_best):
	  When we can't find a usable audiosink, don't error out,
	  but use a fake sink instead and post a warning message
	  on the bus (#341278).

2006-08-16  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gstossmixerelement.c: (gst_oss_mixer_element_class_init):
	* sys/oss/gstosssink.c:
	* sys/oss/gstosssrc.c:
	  Document OSS elements; add gtk-doc blurb with 'Since 0.10.5' for
	  ossmixer's new device property.

	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	  Add docs for OSS elements.

	* docs/plugins/inspect/plugin-aasink.xml:
	* docs/plugins/inspect/plugin-alaw.xml:
	* docs/plugins/inspect/plugin-alpha.xml:
	* docs/plugins/inspect/plugin-alphacolor.xml:
	* docs/plugins/inspect/plugin-annodex.xml:
	* docs/plugins/inspect/plugin-apetag.xml:
	* docs/plugins/inspect/plugin-auparse.xml:
	* docs/plugins/inspect/plugin-autodetect.xml:
	* docs/plugins/inspect/plugin-avi.xml:
	* docs/plugins/inspect/plugin-cacasink.xml:
	* docs/plugins/inspect/plugin-cairo.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-cutter.xml:
	* docs/plugins/inspect/plugin-debug.xml:
	* docs/plugins/inspect/plugin-dv.xml:
	* docs/plugins/inspect/plugin-efence.xml:
	* docs/plugins/inspect/plugin-effectv.xml:
	* docs/plugins/inspect/plugin-esdsink.xml:
	* docs/plugins/inspect/plugin-flac.xml:
	* docs/plugins/inspect/plugin-flxdec.xml:
	* docs/plugins/inspect/plugin-gconfelements.xml:
	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
	* docs/plugins/inspect/plugin-goom.xml:
	* docs/plugins/inspect/plugin-halelements.xml:
	* docs/plugins/inspect/plugin-icydemux.xml:
	* docs/plugins/inspect/plugin-id3demux.xml:
	* docs/plugins/inspect/plugin-jpeg.xml:
	* docs/plugins/inspect/plugin-level.xml:
	* docs/plugins/inspect/plugin-matroska.xml:
	* docs/plugins/inspect/plugin-mulaw.xml:
	* docs/plugins/inspect/plugin-multipart.xml:
	* docs/plugins/inspect/plugin-navigationtest.xml:
	* docs/plugins/inspect/plugin-ossaudio.xml:
	* docs/plugins/inspect/plugin-png.xml:
	* docs/plugins/inspect/plugin-rtp.xml:
	* docs/plugins/inspect/plugin-rtsp.xml:
	* docs/plugins/inspect/plugin-shout2send.xml:
	* docs/plugins/inspect/plugin-smpte.xml:
	* docs/plugins/inspect/plugin-speex.xml:
	* docs/plugins/inspect/plugin-taglib.xml:
	* docs/plugins/inspect/plugin-udp.xml:
	* docs/plugins/inspect/plugin-videobalance.xml:
	* docs/plugins/inspect/plugin-videobox.xml:
	* docs/plugins/inspect/plugin-videoflip.xml:
	* docs/plugins/inspect/plugin-videomixer.xml:
	* docs/plugins/inspect/plugin-wavenc.xml:
	* docs/plugins/inspect/plugin-wavparse.xml:
	* docs/plugins/inspect/plugin-ximagesrc.xml:
	  Update to CVS version.
	  
2006-08-16  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrdepay.c:
	* gst/rtp/gstrtpmp4gdepay.c:
	Caps extra properties must be defined as strings for
	depayloaders because they are generated from an SDP.

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_base_init),
	(gst_rtp_h264_depay_class_init), (gst_rtp_h264_depay_init),
	(gst_rtp_h264_depay_finalize), (decode_base64),
	(gst_rtp_h264_depay_setcaps), (gst_rtp_h264_depay_process),
	(gst_rtp_h264_depay_set_property),
	(gst_rtp_h264_depay_get_property),
	(gst_rtp_h264_depay_change_state),
	(gst_rtp_h264_depay_plugin_init):
	* gst/rtp/gstrtph264depay.h:
	Added basic, not completely functional RFC 3984 H264 depayloader.

2006-08-16  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtpdec.c: (gst_rtpdec_init), (gst_rtpdec_getcaps):
	Add pads after setting them up.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
	(gst_rtspsrc_init), (gst_rtspsrc_finalize),
	(gst_rtspsrc_free_stream), (gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport),
	(gst_rtspsrc_combine_flows), (gst_rtspsrc_loop),
	(gst_rtspsrc_open), (gst_rtspsrc_close), (gst_rtspsrc_play),
	(gst_rtspsrc_pause):
	* gst/rtsp/gstrtspsrc.h:
	Fix interleaved mode.
	 - Protect streaming with lock.
	 - Combine flows
	 - set caps on outgoing buffers.
	 - strip trailing \0 from data packets.
	 - Configure RTP/RTCP in stream.
	Use DEBUG_OBJECT more.

2006-08-16  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_add):
	Turn a g_print into a DEBUG line.

2006-08-13  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstossmixer.c: (gst_ossmixer_open), (gst_ossmixer_new):
	* sys/oss/gstossmixerelement.c: (gst_oss_mixer_element_class_init),
	(gst_oss_mixer_element_init), (gst_oss_mixer_element_set_property),
	(gst_oss_mixer_element_get_property),
	(gst_oss_mixer_element_change_state):
	* sys/oss/gstossmixerelement.h:
	Small cleanups. Better error reporting.
	Add device property for the mixer instead of the hardcoded
	/dev/mixer. Fixes #350785.
	API: GstOssMixerElement::device property

2006-08-15  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Jens Granseuer <jensgr at gmx net>

	* gconf/Makefile.am:
	  Make --disable-schemas work right (they still need
	  to be copied to the installation directory, just not
	  applied). Fixes #351347 (also #344100).
	  
2006-08-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: back to HEAD

=== release 0.10.4 ===

2006-08-14  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.4, "Dear Leader"

2006-08-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: Edward Hervey <edward@fluendo.com>

	* configure.ac:
	* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
	(gst_wavparse_stream_data):
	Send the newsegment event in the streaming thread.
	Fixes #347529

2006-08-08  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_setcaps),
	(gst_smokeenc_resync), (gst_smokeenc_chain):
	  Refuse sink caps in the encoder if width or height is not a
	  multiple of 16, the encoder does not support that yet (#349939);
	  along the same lines, check the return value of the encoder
	  setup function; also remove some debug log clutter.

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  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximage/ximageutil.c: (ximageutil_xcontext_get):
	Fix rgb masks when recording in < 24bpp.

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.
	(gst_signal_processor_src_activate_pull): BPB

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.

	* 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  Stefan Kost  <ensonic@users.sf.net>

	* 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  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstudpsrc.c:
	Fix docs.

2006-07-29  Stefan Kost  <ensonic@users.sf.net>

	* 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-29  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_getcaps),
	(gst_smokeenc_setcaps), (gst_smokeenc_chain):
	Set caps on buffer correctly.  Fixes bug #349155.

2006-07-28  Wim Taymans  <wim@fluendo.com>

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init),
	(gst_multipart_demux_class_init), (gst_multipart_demux_init),
	(gst_multipart_demux_finalize), (get_line_end),
	(multipart_parse_header), (multipart_find_boundary),
	(gst_multipart_demux_chain), (gst_multipart_demux_change_state),
	(gst_multipart_set_property), (gst_multipart_get_property):
	Uses GstAdapter instead of own buffering.
	Actually parses the mime-type correctly (In tests the mime-type was
	always "" with the old version).
	Uses the Content-length header if available to speed up things.
	Reliably autoscans the boundary name by default.
	Fixes #349068.

	* gst/multipart/multipartmux.c: (gst_multipart_mux_collected):
	Don't start the stream with a \n.

2006-07-28  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Brian Cameron <brian dot cameron at sun com>

	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_open):
	  Open source with O_NONBLOCK (#349015).

2006-07-28  Stefan Kost,,,  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_massage_index):
	* gst/avi/gstavidemux.h:
	  Whitespace fixes and more debug

2006-07-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_create_element_with_pretty_name),
	(gst_auto_audio_sink_find_best),
	(gst_auto_audio_sink_change_state):
	  Get rid of old and unused magic sound-server properties stuff.
	  Add suffix to child sink's name that makes it easy to see from
	  the name alone which type it actually is (alsa, oss, esd, etc.).

2006-07-27  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init), (gst_udpsrc_init),
	(gst_udpsrc_set_property), (gst_udpsrc_get_property),
	(gst_udpsrc_start):
	* gst/udp/gstudpsrc.h:
	Rename "buffer" to "buffer-size" to make clear it is a size we set and
	not some sort of feature we enable.

2006-07-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_start):
	  Use CLOSE_SOCKET() here instead of close() to maintain
	  win32 workiness.

2006-07-27  Wim Taymans  <wim@fluendo.com>

	Patch by: Thijs Vermeir <thijs dot vermeir at barco dot com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init), (gst_udpsrc_init),
	(gst_udpsrc_create), (gst_udpsrc_set_property),
	(gst_udpsrc_get_property), (gst_udpsrc_start):
	* gst/udp/gstudpsrc.h:
	Added "buffer-size" property to control the kernel receive buffer size.
	Update documentation.
	Small cleanups. Fixes #348752.
	API: buffer-size property

2006-07-26  Wim Taymans  <wim@fluendo.com>

	Patch by: Kai Vehmanen <kv2004 at eca dot cx>

	* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_flush),
	(gst_rtp_pcma_pay_handle_buffer):
	* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_flush),
	(gst_rtp_pcmu_pay_handle_buffer):
	Fix timestamp calculation on outgoing RTP packets.
	Fixes #348675.

2006-07-26  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gstid3v2mux.cc:
	  Fix writing of comment frames (should be COMM not TCOM),
	  is still sub-optimal though, since we don't retain or
	  extract the comment descriptions properly (#334375,
	  also see #334375).

2006-07-26  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c:
	  #define 'fact' RIFF chunk if we are not compiling against
	  -base CVS (we don't want to depend on -base CVS for this
	  one define only, and also not for release order reasons).

2006-07-26  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gstid3v2mux.cc:
	  Handle multiple tags of the same type properly. Re-inject
	  unparsed ID3v2 frames that we get as binary blobs from
	  id3demux into the tag again so we don't lose information
	  when retagging (#334375).

2006-07-25  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/ximage/gstximagesrc.c: (gst_ximage_src_class_init):
	  Document newly-added properties properly, so that there is a
	  'Since: 0.10.4' in the plugin docs. Convert some property
	  names into canonical GObject style (GObject will do that
	  internally anyway).

2006-07-25  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3tags.c:
	(id3demux_add_id3v2_frame_blob_to_taglist):
	  Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as
	  well, and add the version to the blob's buffer caps, since that
	  information will be needed for deserialisation later on (#348644).

2006-07-25  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_read_subindexes),
	(gst_avi_demux_parse_stream):
	 Moved win32 variant of GST_DEBUG_CATEGORY_EXTERN to gstinfo.h. Fixed
	 indentation and spacing.

2006-07-24  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.args:
	* docs/plugins/inspect/plugin-1394.xml:
	* docs/plugins/inspect/plugin-aasink.xml:
	* docs/plugins/inspect/plugin-alaw.xml:
	* docs/plugins/inspect/plugin-alpha.xml:
	* docs/plugins/inspect/plugin-alphacolor.xml:
	* docs/plugins/inspect/plugin-annodex.xml:
	* docs/plugins/inspect/plugin-apetag.xml:
	* docs/plugins/inspect/plugin-auparse.xml:
	* docs/plugins/inspect/plugin-autodetect.xml:
	* docs/plugins/inspect/plugin-avi.xml:
	* docs/plugins/inspect/plugin-cacasink.xml:
	* docs/plugins/inspect/plugin-cairo.xml:
	* docs/plugins/inspect/plugin-cdio.xml:
	* docs/plugins/inspect/plugin-cutter.xml:
	* docs/plugins/inspect/plugin-debug.xml:
	* docs/plugins/inspect/plugin-dv.xml:
	* docs/plugins/inspect/plugin-efence.xml:
	* docs/plugins/inspect/plugin-effectv.xml:
	* docs/plugins/inspect/plugin-esdsink.xml:
	* docs/plugins/inspect/plugin-flac.xml:
	* docs/plugins/inspect/plugin-flxdec.xml:
	* docs/plugins/inspect/plugin-gconfelements.xml:
	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
	* docs/plugins/inspect/plugin-goom.xml:
	* docs/plugins/inspect/plugin-halelements.xml:
	* docs/plugins/inspect/plugin-icydemux.xml:
	* docs/plugins/inspect/plugin-id3demux.xml:
	* docs/plugins/inspect/plugin-jpeg.xml:
	* docs/plugins/inspect/plugin-level.xml:
	* docs/plugins/inspect/plugin-matroska.xml:
	* docs/plugins/inspect/plugin-mulaw.xml:
	* docs/plugins/inspect/plugin-multipart.xml:
	* docs/plugins/inspect/plugin-navigationtest.xml:
	* docs/plugins/inspect/plugin-ossaudio.xml:
	* docs/plugins/inspect/plugin-png.xml:
	* docs/plugins/inspect/plugin-rtp.xml:
	* docs/plugins/inspect/plugin-rtsp.xml:
	* docs/plugins/inspect/plugin-shout2send.xml:
	* docs/plugins/inspect/plugin-smpte.xml:
	* docs/plugins/inspect/plugin-speex.xml:
	* docs/plugins/inspect/plugin-udp.xml:
	* docs/plugins/inspect/plugin-videobalance.xml:
	* docs/plugins/inspect/plugin-videobox.xml:
	* docs/plugins/inspect/plugin-videoflip.xml:
	* docs/plugins/inspect/plugin-videomixer.xml:
	* docs/plugins/inspect/plugin-wavenc.xml:
	* docs/plugins/inspect/plugin-wavparse.xml:
	* docs/plugins/inspect/plugin-ximagesrc.xml:
	  Update files to CVS/Prerelease version, add esdsink docs.

	* ext/esd/esdsink.c:
	  Add gtk-doc blurb.

	* gst/rtp/gstrtpmp4vpay.c:
	  Fix typo in element description.

2006-07-24  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/esd/esdsink.c: (gst_esdsink_open),
	(gst_esdsink_factory_init):
	  Prevent libesd from auto-spawning a sound daemon if it
	  is not already running. Now that we don't do evil stuff
	  like that any longer we can give esdsink a rank so that
	  autoaudiosink will try it as well if all other audio
	  sinks fail (#343051).

2006-07-24  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/esd/Makefile.am:
	  Oops, need to remove README from EXTRA_DIST as well.

2006-07-24  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/esd/README:
	  Remove, it contains nothing useful anyway.

	* ext/esd/esdsink.c: (gst_esdsink_init), (gst_esdsink_prepare),
	(gst_esdsink_delay):
	  Some small clean-ups; use GST_BOILERPLATE etc.

2006-07-24  Wim Taymans  <wim@fluendo.com>

	* gst/law/alaw-decode.c: (alawdec_getcaps):
	* gst/law/alaw-encode.c: (alawenc_getcaps), (gst_alawenc_chain):
	* gst/law/mulaw-decode.c: (mulawdec_getcaps):
	* gst/law/mulaw-encode.c: (mulawenc_getcaps):
	Fix negotiation to deal with ANY/EMPTY caps instead of leaking.

2006-07-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_reset),
	(gst_wavparse_other), (gst_wavparse_perform_seek),
	(gst_wavparse_get_upstream_size), (gst_wavparse_stream_headers),
	(gst_wavparse_add_src_pad), (gst_wavparse_stream_data),
	(gst_wavparse_pad_query):
	* gst/wavparse/gstwavparse.h:
	  Use information from 'fact' chunk for length calculation of compressed
	  samples. Calculate bps if bogus value is found in wav header (embeded
	  mp2/mp3).
	  

2006-07-24  Tim-Philipp Müller  <tim at centricular dot net>

	Based on patch by: Joni Valtanen  <joni dot valtanen at movial fi>

	* configure.ac:
	* gst/udp/Makefile.am:
	* gst/udp/gstdynudpsink.c: (gst_dynudpsink_init),
	(gst_dynudpsink_finalize), (gst_dynudpsink_close):
	* gst/udp/gstdynudpsink.h:
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_init),
	(gst_multiudpsink_finalize), (gst_multiudpsink_close):
	* gst/udp/gstmultiudpsink.h:
	* gst/udp/gstudp.c: (plugin_init):
	* gst/udp/gstudpsink.h:
	* gst/udp/gstudpsrc.c: (gst_udpsrc_init), (gst_udpsrc_create),
	(gst_udpsrc_start), (gst_udpsrc_stop):
	* gst/udp/gstudpsrc.h:
	* gst/udp/gstudpnetutils.c: (gst_udp_net_utils_win32_inet_aton),
	(gst_udp_net_utils_win32_wsa_startup):
	* gst/udp/gstudpnetutils.h:
	  Port udp plugin to win32 (#345288).

2006-07-24  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/rtspconnection.c: (rtsp_connection_send):
	Remove unwanted DEBUG line.

2006-07-23  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/gstid3demux.c: (plugin_init):
	* gst/id3demux/id3tags.c:
	(id3demux_add_id3v2_frame_blob_to_taglist):
	* gst/id3demux/id3tags.h:
	  On second thought, it might be wiser and more efficient
	  not to do tag registration from a streaming thread.

2006-07-23  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3tags.c:
	(id3demux_add_id3v2_frame_blob_to_taglist),
	(id3demux_id3v2_frames_to_tag_list):
	  Put ID3v2 frames we can't parse as binary blobs into private
	  tags, so that they are not lost when retagging, at least once
	  id3v2mux has been taught to re-inject those frames again.
	  See bug #334375.

2006-07-21  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
	(gst_avi_demux_process_next_entry):
	Fix some leaks.

	* gst/id3demux/id3tags.c: (id3demux_id3v2_frames_to_tag_list):
	Don't use \n in debug lines.

2006-07-20  Stefan Kost  <ensonic@users.sf.net>

	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	  Add annodex and icydemux, cleanup the sections a bit

2006-07-19  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Alex Lancaster <alexl at users sourceforge net>

	* ext/taglib/gstid3v2mux.cc:
	  Write GST_TAG_ENCODER and GST_TAG_ENCODER_VERSION as
	  ID3v2 TSSE frames (#347898).

2006-07-18  Stefan Kost  <ensonic@users.sf.net>

	* gst/avi/gstavimux.c: (gst_avi_mux_vidsink_set_caps):
	  Respect mpegversion for "video/mpeg" and give message in case of
	  unhandled versions.

2006-07-17  Wim Taymans  <wim@fluendo.com>

	* ext/libpng/gstpngdec.c: (gst_pngdec_init), (buffer_clip),
	(gst_pngdec_caps_create_and_set), (gst_pngdec_task),
	(gst_pngdec_chain), (gst_pngdec_sink_event),
	(gst_pngdec_libpng_init), (gst_pngdec_change_state),
	(gst_pngdec_sink_activate_push):
	* ext/libpng/gstpngdec.h:
	Use statically allocated segment instead of leaking.
	Various cleanups.
	Fix flush and seek handling.

2006-07-16  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_base_init),
	(gst_rtp_mp4g_depay_class_init), (gst_rtp_mp4g_depay_init),
	(gst_rtp_mp4g_depay_setcaps), (gst_rtp_mp4g_depay_process),
	(gst_rtp_mp4g_depay_set_property),
	(gst_rtp_mp4g_depay_get_property),
	(gst_rtp_mp4g_depay_change_state),
	(gst_rtp_mp4g_depay_plugin_init):
	* gst/rtp/gstrtpmp4gdepay.h:
	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_class_init),
	(gst_rtp_mp4g_pay_parse_audio_config), (gst_rtp_mp4g_pay_setcaps),
	(gst_rtp_mp4g_pay_flush):
	Added simple generic mpeg4 depayloader.
	Fix generic mpeg4 payloader.

2006-07-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_set_state):
	  Don't try doing state changes on a NULL pointer.

2006-07-14  Wim Taymans  <wim@fluendo.com>

	Patch by: Sebastien Cote <sebas642 at yahoo dot ca>

	* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_base_init),
	(gst_rtp_amr_depay_class_init), (gst_rtp_amr_depay_init),
	(gst_rtp_amr_depay_setcaps), (gst_rtp_amr_depay_process):
	* gst/rtp/gstrtpamrdepay.h:
	rtpamrdec isn't a subclass of GstBaseRtpDepayload.
	Fixes #321191

2006-07-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximage/gstximagesrc.c: (gst_ximage_src_ximage_get),
	(gst_ximage_src_get_caps), (gst_ximage_src_class_init):
	Fix segfault when moving mouse pointer to the bottom right corner.

2006-07-12  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_base_init),
	(gst_rtp_mp2t_depay_class_init), (gst_rtp_mp2t_depay_init),
	(gst_rtp_mp2t_depay_setcaps), (gst_rtp_mp2t_depay_process),
	(gst_rtp_mp2t_depay_set_property),
	(gst_rtp_mp2t_depay_get_property),
	(gst_rtp_mp2t_depay_change_state),
	(gst_rtp_mp2t_depay_plugin_init):
	* gst/rtp/gstrtpmp2tdepay.h:
	Added mpeg2 TS depayloader. Closing #347234.

2006-07-11  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_close):
	  Remove g_assert that shouldn't be there and was triggered
	  after trying to open a device that doesn't exist or can't
	  be opened for some other reason (#347972).

2006-07-10  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_stream_header), (push_tag_lists):
	* gst/avi/gstavidemux.h:
	Don't push tag events found by gst_riff_parse_info() before outputting
	GST_EVENT_NEWSEGMENT.

2006-07-10  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/Makefile.am:
	* gst/rtsp/rtspconnection.c: (rtsp_connection_send),
	(rtsp_connection_close):
	* gst/rtsp/rtspdefs.h:
	replaced closesocket and close in code with one CLOSE_SOCKET. 
	Some more cleanups. Fixes #345301.

2006-07-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/autodetect/gstautoaudiosink.c:
	  Fix example pipeline in docs.

2006-07-10  Wim Taymans  <wim@fluendo.com>

	Patch by: Rob Taylor <robtaylor at floopily dot org>

	* gst/udp/gstmultiudpsink.c: (join_multicast),
	(gst_multiudpsink_init_send), (gst_multiudpsink_add):
	If a destination is added before the stream is set to PAUSED, the
	multicast group is not joined as the socket is not created yet. 
	Also TTL and LOOP should also be set. Fixes #346921.

2006-07-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximage/gstximagesrc.c: (gst_ximage_src_ximage_get),
	(gst_ximage_src_set_property), (gst_ximage_src_get_property),
	(gst_ximage_src_get_caps), (gst_ximage_src_class_init),
	(gst_ximage_src_init):
	* sys/ximage/gstximagesrc.h:
	Fix use-damage property to actually work :)
	Add startx, starty, endx, endy properties so screencasts other than full
	screen ones can work.

2006-07-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximage/gstximagesrc.c: (gst_ximage_src_ximage_get),
	(gst_ximage_src_set_property), (gst_ximage_src_get_property),
	(gst_ximage_src_class_init), (gst_ximage_src_init):
	* sys/ximage/gstximagesrc.h:
	Add use_damage property to offer ability to choose whether to use
	XDamage or not.

2006-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/goom/filters.c: (zoomFilterSetResolution):
	Avoid goom coredumping by clearing memory. 
	Fixes 345679.

2006-07-05  Sebastien Moutte  <sebastien@moutte.net>

	* win32/vs6/libgstid3demux.dsp:
	Add a link to libgsttag-0.10.lib.

2006-07-05  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_trim_buffer),
	(gst_tag_demux_read_range):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_trim_buffer),
	(gst_id3demux_read_range):
	  Don't return FLOW_UNEXPECTED when a buffer is before
	  the start of the stream (which might happen with
	  large ID3v2 tags if the tag reading was done pullrange
	  based and we then switched to push mode later on).
	  Fixes regression introduced by commit from June 29th.

2006-07-05  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gstid3v2mux.cc:
	  Make UTF-8 the default encoding when writing string
	  tags (before, our UTF-8 strings would automatically
	  be converted to ISO-8859-1 by taglib and written as
	  ISO-8859-1 fields if that was possible).

	* tests/check/elements/id3v2mux.c: (utf8_string_in_buf),
	(test_taglib_id3mux_check_tag_buffer), (identity_cb),
	(test_taglib_id3mux_with_tags):
	  Add test case that makes sure our UTF-8 strings have
	  actually been written into the tag as UTF-8.

2006-07-04  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Let's try that again.

2006-07-04  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Disable monoscope plugin for now until it fulfills
	  all the requirements.

2006-07-03  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* gst/monoscope/Makefile.am:
	* gst/monoscope/gstmonoscope.c: (gst_monoscope_base_init),
	(gst_monoscope_class_init), (gst_monoscope_init),
	(gst_monoscope_finalize), (gst_monoscope_reset),
	(gst_monoscope_sink_setcaps), (gst_monoscope_src_setcaps),
	(gst_monoscope_src_negotiate), (get_buffer), (gst_monoscope_chain),
	(gst_monoscope_sink_event), (gst_monoscope_src_event),
	(gst_monoscope_change_state), (plugin_init):
	* gst/monoscope/gstmonoscope.h:
	  Port monoscope visualisation to 0.10.

2006-07-03  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
	  Return FLOW_UNEXPECTED when at the end of the file, not
	  FLOW_ERROR. Fixes 'internal stream error' errors that
	  would sometimes occur in totem when scrubbing to the
	  end of an ID3v1 tagged mp3 file.

2006-07-03  Edward Hervey  <edward@fluendo.com>

	* ext/libpng/gstpngdec.c: (gst_pngdec_init), (user_info_callback),
	(buffer_clip), (user_end_callback), (gst_pngdec_chain),
	(gst_pngdec_sink_event), (gst_pngdec_change_state):
	* ext/libpng/gstpngdec.h:
	Implement buffer clipping/dropping using GstSegment.
	This provides accurate seeking.

2006-07-03  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_read_subindexes), (gst_avi_demux_parse_stream),
	(gst_avi_demux_handle_seek), (gst_avi_demux_aggregated_flow),
	(gst_avi_demux_process_next_entry), (push_tag_lists),
	(gst_avi_demux_stream_data), (gst_avi_demux_loop):
	* gst/avi/gstavidemux.h:
	Proper aggregation of each stream's GstFlowReturn in order to figure out
	whether the task should stop or not.
	Don't send inline events before pushing out a NEW_SEGMENT, more
	specifically for GST_TAG_EVENT.
	Change a GST_ERROR to a GST_WARNING for a non-fatal situation in reading
	sub-indexes.

2006-06-30  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Brian Cameron  <brian dot cameron at sun dot com>

	* sys/sunaudio/gstsunaudiomixerctrl.c:
	(gst_sunaudiomixer_ctrl_build_list):
	  Move "Monitor" slider to input tab so it works more like
	  sdtaudiocontrol, which is what people on Solaris are used
	  to using for their mixer program (#346259).

2006-06-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/elements/level.c: (GST_START_TEST):
	  fix a leak, clean up at the end

2006-06-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_send_event),
	(gst_matroska_demux_loop_stream_parse_id):
	* gst/matroska/matroska-ids.h:
	  Send tag event after newsegment event.

2006-06-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/gstid3demux.c: (gst_id3demux_trim_buffer),
	(gst_id3demux_read_range):
	  Make sure we don't return GST_FLOW_OK with a NULL buffer in
	  certain cases where a read beyond the end of the file is
	  requested. Fixes #345930.

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_trim_buffer),
	(gst_tag_demux_read_range):
	  Fix same issue here as well.

2006-06-29  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximage/gstximagesrc.c: (gst_ximage_src_ximage_get):
	
	Fix hypothetical crash.

2006-06-28  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Brian Cameron  <brian dot cameron at sun dot com>

	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_prepare):
	  Do not modify the ports value. If the user has turned off the
	  built-in speakers, then we should not reset it in the prepare
	  function, since this causes the built-in speakers to turn
	  back on anytime the user changes a track in totem, rhythmbox,
	  etc. (#346066).

2006-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/goom/gstgoom.c: (gst_goom_src_negotiate):
	Fix double caps unref when negotiation fails.

2006-06-22  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/annodex/gstcmmldec.c:
	* ext/annodex/gstcmmlenc.c:
	* ext/annodex/gstcmmlparser.c:
	* ext/dv/gstdvdec.c:
	* ext/dv/gstdvdemux.c:
	* ext/gdk_pixbuf/pixbufscale.c:
	* ext/jpeg/gstjpegenc.c:
	* ext/jpeg/gstsmokedec.c:
	* ext/jpeg/gstsmokeenc.c:
	* ext/libpng/gstpngdec.c:
	* ext/libpng/gstpngenc.c:
	* ext/speex/gstspeexenc.c:
	* gst/alpha/gstalphacolor.c:
	* gst/cutter/gstcutter.c:
	* gst/debug/gstnavigationtest.c:
	* gst/icydemux/gsticydemux.c:
	* gst/level/gstlevel.c:
	* gst/multipart/multipart.c:
	* gst/rtp/gstrtpamrpay.c:
	* gst/rtp/gstrtpdepay.c:
	* gst/rtp/gstrtpilbcpay.c:
	* gst/rtp/gstrtpmp4gpay.c:
	* gst/rtp/gstrtpmp4vpay.c:
	* gst/rtsp/gstrtpdec.c:
	* gst/rtsp/gstrtspsrc.c:
	* gst/udp/gstdynudpsink.c:
	* gst/udp/gstmultiudpsink.c:
	* gst/udp/gstudpsrc.c:
	* gst/videobox/gstvideobox.c:
	* gst/videofilter/gstvideoflip.c:
	  Use GST_DEBUG_CATEGORY_STATIC where possible (#342503)
	  plus two minor macro fixes.

2006-06-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_check_subtitle_buffer),
	(gst_matroska_demux_parse_blockgroup_or_simpleblock),
	(gst_matroska_demux_subtitle_caps):
	* gst/matroska/matroska-ids.c:
	(gst_matroska_track_init_subtitle_context):
	* gst/matroska/matroska-ids.h:
	  Try to fix up broken matroska files containing subtitle
	  streams with non-UTF8 character encodings (courtesy of
	  mkvmerge) using either the encoding specified in the
	  GST_SUBTITLE_ENCODING environment variable or the
	  current locale's character set if it is non-UTF8.
	  Fixes #337076.

2006-06-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c: (parse_picture_frame):
	  Set image type from APIC frame as "image-type" field
	  of GST_TAG_IMAGE buffer caps (#344605).

2006-06-20  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/Makefile.am:
	* ext/flac/gstflacdec.c: (gst_flac_dec_init),
	(gst_flac_dec_reset_decoders),
	(gst_flac_dec_setup_seekable_decoder),
	(gst_flac_dec_setup_stream_decoder), (gst_flac_dec_finalize),
	(gst_flac_dec_metadata_callback),
	(gst_flac_dec_metadata_callback_seekable),
	(gst_flac_dec_metadata_callback_stream),
	(gst_flac_dec_error_callback),
	(gst_flac_dec_error_callback_seekable),
	(gst_flac_dec_error_callback_stream), (gst_flac_dec_read_seekable),
	(gst_flac_dec_read_stream), (gst_flac_dec_write),
	(gst_flac_dec_write_seekable), (gst_flac_dec_write_stream),
	(gst_flac_dec_loop), (gst_flac_dec_sink_event),
	(gst_flac_dec_chain), (gst_flac_dec_convert_sink),
	(gst_flac_dec_get_sink_query_types), (gst_flac_dec_sink_query),
	(gst_flac_dec_get_src_query_types), (gst_flac_dec_src_query),
	(gst_flac_dec_handle_seek_event), (gst_flac_dec_sink_activate),
	(gst_flac_dec_sink_activate_push),
	(gst_flac_dec_sink_activate_pull), (gst_flac_dec_change_state):
	* ext/flac/gstflacdec.h:
	  Support chain-based operation, should make flac-over-DAAP
	  work (#340492).

2006-06-20  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	Doc updates, merge some unused symbols.

2006-06-20  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* gst/rtsp/gstrtpdec.c: (gst_rtpdec_class_init):
	* gst/rtsp/gstrtspsrc.c:
	* gst/rtsp/gstrtspsrc.h:
	Added documentation for the rtsp plugin. Fixes #345393.

2006-06-20  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/rtspconnection.c: (inet_aton), (rtsp_connection_send),
	(rtsp_connection_close), (rtsp_connection_free):
	Use better G_OS_* macros. Fixes #345301 some more.

2006-06-20  Wim Taymans  <wim@fluendo.com>

	Patch by: Brian Cameron <brian dot cameron at sun dot com>

	* sys/sunaudio/Makefile.am:
	* sys/sunaudio/gstsunaudio.c: (plugin_init):
	* sys/sunaudio/gstsunaudiomixerctrl.c:
	(gst_sunaudiomixer_ctrl_build_list), (gst_sunaudiomixer_ctrl_new),
	(gst_sunaudiomixer_ctrl_list_tracks),
	(gst_sunaudiomixer_ctrl_get_volume),
	(gst_sunaudiomixer_ctrl_set_volume),
	(gst_sunaudiomixer_ctrl_set_mute),
	(gst_sunaudiomixer_ctrl_set_record):
	* sys/sunaudio/gstsunaudiomixerctrl.h:
	* sys/sunaudio/gstsunaudiomixertrack.c:
	(gst_sunaudiomixer_track_init), (gst_sunaudiomixer_track_new):
	* sys/sunaudio/gstsunaudiomixertrack.h:
	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_dispose),
	(gst_sunaudiosrc_base_init), (gst_sunaudiosrc_class_init),
	(gst_sunaudiosrc_init), (gst_sunaudiosrc_set_property),
	(gst_sunaudiosrc_get_property), (gst_sunaudiosrc_getcaps),
	(gst_sunaudiosrc_open), (gst_sunaudiosrc_close),
	(gst_sunaudiosrc_prepare), (gst_sunaudiosrc_unprepare),
	(gst_sunaudiosrc_read), (gst_sunaudiosrc_delay),
	(gst_sunaudiosrc_reset):
	* sys/sunaudio/gstsunaudiosrc.h:
	Add a SunAudio source plugin.
	Support stereo and right/left channel gain in the mixer plugin.
	Support the RECORD flag so that you can switch between line-input and
	microphone in gnome-volume-control.
	Code cleanups like using an enumerator for track number instead of an 
	integer. Fixes #344923.

2006-06-20  Wim Taymans  <wim@fluendo.com>

	Patch by: Joni Valtanen <joni dot valtanen at movial dot fi>

	* gst/rtsp/rtspconnection.c: (inet_aton), (rtsp_connection_send),
	(rtsp_connection_close):
	Make RTSP plugin compile on windows. Fixes #345301.
	Some changes to original patch to catch errors better.
	use ifdef WIN32 instead of ifndef.

2006-06-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	If we have libraw1394 >= 1.2.1, then we need libiec61883.

2006-06-18  Edward Hervey  <edward@fluendo.com>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain): 
	After a failed buffer alloc, we need to abort the jpeg decoding (it
	started when parsing headers to figure out how many bytes we need
	to request downstream).

2006-06-18  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet be>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek):
	  Make sure we don't read beyond the end of the file (#345232).

2006-06-17  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Fix --disable-external (can't set conditionals conditionally,
	  #343602).

2006-06-16  Tim-Philipp Müller  <tim at centricular dot net>

	* autogen.sh:
	* configure.ac:
	* docs/Makefile.am:
	  Use GST_PLUGIN_DOCS, --enable-plugin-docs etc.

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-taglib.xml:
	  Add/fix apev2mux docs.

2006-06-14  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_class_init), (gst_dvdec_init),
	(gst_dvdec_finalize), (gst_dvdec_sink_event),
	(gst_dvdec_change_state):
	Reset segment info on flush.
	Alloc segment in _init, free in _finalize.

	* ext/dv/gstdvdemux.c: (gst_dvdemux_handle_pull_seek):
	Don't send segments twice.

2006-06-14  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_demux_frame):
	Respect segment.stop. Fixes #342592.

2006-06-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
	  No language specified means the implied language is English
	  according to the matroska spec (partially fixes #344708);
	  add some more debug output.

2006-06-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_peek_chunk_info),
	(gst_wavparse_peek_chunk), (gst_wavparse_stream_headers),
	(gst_wavparse_chain):
	  When operating chain-based, don't make any assumptions about the
	  chunking of the incoming data and make streaming work on days other
	  than the second Thursday after a full moon. Also fix up debug
	  messages here and there and make use of the most excellent new
	  gst_pad_query_peer_duration() utility function.
	  Skip any 'bext' chunks in front of the 'fmt ' chunk. Fixes #343837.

	* gst/wavparse/gstwavparse.h:
	  Remove trailing comma after last enum value, some compilers don't
	  like that.

2006-06-13  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_data):
	Handle premature EOS gracefully.

2006-06-13  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek):
	  Prevent out of bounds array access when scrubbing towards
	  the end of the file between the last index entry and the
	  end. Fixes occasional 'start <= stop' newsegment event
	  assertions when scrubbing in MJPEG files.

2006-06-12  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/elements/.cvsignore:
	  And another one.

2006-06-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
	(scan_encoded_string), (parse_picture_frame):
	  Extract images from ID3v2 tags (APIC frames). Fixes #339704.

	* configure.ac:
	  Require core >= 0.10.8 (for GST_TAG_IMAGE and
	  GST_TAG_PPEVIEW_IMAGE used in the patch above).

2006-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_discover_avc_node):
	  gratuitous comment changes
	* tests/check/elements/level.c: (GST_START_TEST):
	  fix level test leaks

2006-06-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size):
	* gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size):
	  Use gst_pad_query_peer_duration() utility function here.

2006-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gconf/Makefile.am:
	  Honour --disable-schemas-install configure option. Fixes #344100.

2006-06-09  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/examples/level/Makefile.am:
	  Add -lm to LIBS for pow() function, don't assume one of our
	  dependencies (such as libxml-2.0) drags it in automatically
	  (#343603).

2006-06-09  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Peter Kjellerstedt  <pkj at axis dot com>

	* configure.ac:
	  We should use $SED and not $(SED) in configure.ac (#343678).

2006-06-09  Wim Taymans  <wim@fluendo.com>

	Patch by: Brian Cameron <brian dot cameron at sun dot com>

	* sys/sunaudio/gstsunaudiomixerctrl.c:
	(gst_sunaudiomixer_ctrl_open), (gst_sunaudiomixer_ctrl_build_list),
	(gst_sunaudiomixer_ctrl_new), (gst_sunaudiomixer_ctrl_set_volume),
	(gst_sunaudiomixer_ctrl_set_mute):
	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_class_init),
	(gst_sunaudiosink_init), (gst_sunaudiosink_prepare),
	(gst_sunaudiosink_write):
	Attached find a patch that fixes a number of bugs with the SunAudio
	mixer plugin and fixes #344101:
	1. The gst_sunaudiomixer_ctrl_build_list kept appending the same 3
	   tracks onto the tracklist causing gnome-volume-control's preferences
	   dialog to be messed up and would core dump if you checked/unchecked
	   any item.
	2. We weren't previously setting the MUTE flag properly.  Fixing this
	   makes gnome-volume-control work better.
	3. Now we properly define the input track to be GST_MIXER_TRACK_INPUT
	   and the monitor to be GST_MIXER_TRACK_OUTPUT, so that makes
	   gnome-volume-control look better.
	Also some minor cleanup in gstsunaudiosink.c.

2006-06-09  Wim Taymans  <wim@fluendo.com>

	* ext/jpeg/gstjpegdec.c: (gst_idct_method_get_type),
	(gst_jpeg_dec_class_init), (gst_jpeg_dec_init),
	(gst_jpeg_dec_decode_indirect), (gst_jpeg_dec_decode_direct),
	(gst_jpeg_dec_chain), (gst_jpeg_dec_sink_event),
	(gst_jpeg_dec_set_property), (gst_jpeg_dec_get_property):
	* ext/jpeg/gstjpegdec.h:
	API: Added IDCT method property
	Small cleanups.
	Avoid dynamic allocation of trivial fixed structure.
	Allocate enough space for temp 4:4:4 YUV buffers. Fixes #343661.

2006-06-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	We now require libraw1394 >= 1.1.0 and that version onwards all
	have .pc files.

2006-06-02  Edward Hervey  <edward@fluendo.com>

	* gst/law/alaw-decode.c: (alawdec_getcaps): 
	Trying to get items from an ANY or EMPTY caps is ... stupid.

2006-06-02  Edward Hervey  <edward@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_sink_event),
	(gst_dvdec_chain), (gst_dvdec_change_state):
	* ext/dv/gstdvdec.h:
	Added GstSegment handling, now implements dropping/clipping.

2006-06-01  Stefan Kost  <ensonic@users.sf.net>

	* ext/aalib/gstaasink.h:
	* ext/annodex/gstcmmldec.h:
	* ext/cairo/gsttimeoverlay.h:
	* ext/dv/gstdvdec.h:
	* ext/dv/gstdvdemux.h:
	* ext/esd/esdmon.h:
	* ext/esd/esdsink.h:
	* ext/flac/gstflacenc.h:
	* ext/gconf/gstgconfaudiosink.h:
	* ext/gconf/gstgconfaudiosrc.h:
	* ext/gconf/gstgconfvideosink.h:
	* ext/gconf/gstgconfvideosrc.h:
	* ext/gdk_pixbuf/gstgdkanimation.h:
	* ext/gdk_pixbuf/pixbufscale.h:
	* ext/hal/gsthalaudiosink.h:
	* ext/hal/gsthalaudiosrc.h:
	* ext/jpeg/gstjpegenc.h:
	* ext/jpeg/gstsmokedec.h:
	* ext/jpeg/gstsmokeenc.h:
	* ext/libcaca/gstcacasink.h:
	* ext/libmng/gstmngdec.h:
	* ext/libmng/gstmngenc.h:
	* ext/libpng/gstpngdec.h:
	* ext/libpng/gstpngenc.h:
	* ext/raw1394/gstdv1394src.h:
	* ext/speex/gstspeexenc.h:
	* gst/autodetect/gstautoaudiosink.h:
	* gst/autodetect/gstautovideosink.h:
	* gst/avi/gstavidemux.h:
	* gst/cutter/gstcutter.h:
	* gst/debug/efence.h:
	* gst/debug/gstnavigationtest.h:
	* gst/debug/gstnavseek.h:
	* gst/flx/gstflxdec.h:
	* gst/goom/gstgoom.h:
	* gst/icydemux/gsticydemux.h:
	* gst/id3demux/gstid3demux.h:
	* gst/law/alaw-decode.h:
	* gst/law/alaw-encode.h:
	* gst/law/mulaw-decode.h:
	* gst/law/mulaw-encode.h:
	* gst/matroska/matroska-mux.h:
	* gst/median/gstmedian.h:
	* gst/oldcore/gstaggregator.h:
	* gst/oldcore/gstfdsink.h:
	* gst/oldcore/gstmd5sink.h:
	* gst/oldcore/gstmultifilesrc.h:
	* gst/oldcore/gstpipefilter.h:
	* gst/oldcore/gstshaper.h:
	* gst/oldcore/gststatistics.h:
	* gst/rtp/gstasteriskh263.h:
	* gst/rtp/gstrtpL16depay.h:
	* gst/rtp/gstrtpL16pay.h:
	* gst/rtp/gstrtpamrdepay.h:
	* gst/rtp/gstrtpamrpay.h:
	* gst/rtp/gstrtpdepay.h:
	* gst/rtp/gstrtpgsmdepay.h:
	* gst/rtp/gstrtpgsmpay.h:
	* gst/rtp/gstrtph263pay.h:
	* gst/rtp/gstrtph263pdepay.h:
	* gst/rtp/gstrtph263ppay.h:
	* gst/rtp/gstrtpmp4gpay.h:
	* gst/rtp/gstrtpmp4vdepay.h:
	* gst/rtp/gstrtpmp4vpay.h:
	* gst/rtp/gstrtpmpadepay.h:
	* gst/rtp/gstrtpmpapay.h:
	* gst/rtp/gstrtppcmadepay.h:
	* gst/rtp/gstrtppcmapay.h:
	* gst/rtp/gstrtppcmudepay.h:
	* gst/rtp/gstrtppcmupay.h:
	* gst/rtp/gstrtpspeexdepay.h:
	* gst/rtp/gstrtpspeexpay.h:
	* gst/rtsp/gstrtpdec.h:
	* gst/rtsp/gstrtspsrc.h:
	* gst/smpte/gstsmpte.h:
	* gst/udp/gstdynudpsink.h:
	* gst/udp/gstmultiudpsink.h:
	* gst/udp/gstudpsink.h:
	* gst/udp/gstudpsrc.h:
	* gst/videofilter/gstvideobalance.h:
	* gst/videofilter/gstvideoflip.h:
	* sys/oss/gstossdmabuffer.h:
	* sys/oss/gstossmixerelement.h:
	* sys/oss/gstosssink.h:
	* sys/oss/gstosssrc.h:
	* sys/osxvideo/osxvideosink.h:
	* sys/sunaudio/gstsunaudiomixer.h:
	* sys/sunaudio/gstsunaudiosink.h:
	* sys/ximage/gstximagesrc.h:
	Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass

2006-05-31  Wim Taymans  <wim@fluendo.com>

	* gst/goom/gstgoom.c: (gst_goom_class_init), (gst_goom_init),
	(gst_goom_finalize), (gst_goom_reset), (gst_goom_sink_setcaps),
	(gst_goom_src_setcaps), (gst_goom_src_event),
	(gst_goom_sink_event), (get_buffer), (gst_goom_chain),
	(gst_goom_change_state):
	* gst/goom/gstgoom.h:
	Handle QoS.
	Handle flushing, discont and events.
	Fix timestamps and various other cleanups.

2006-05-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_bus_reset):
	Fix bus reset when using libiec61883

2006-05-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Detect libiec61883 and set necessary CFLAGS and LIBS for dv1394.
	* ext/raw1394/Makefile.am:
	Add CFLAGS.
	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_iec61883_receive),
	New method, to receive using libiec61883.
	(gst_dv1394src_iso_receive),
	#ifdef'd out if libiec61883 is present.
	(gst_dv1394src_bus_reset),
	Get userdata correctly if using libiec61883. 
	(gst_dv1394src_create),
	When using libiec61883, only poll one fd and no need to read.
	(gst_dv1394src_discover_avc_node),
	Replace g_warnings.
	(gst_dv1394src_start),
	Create new handle when we know which dv port.  More reliable
	than setting port on an existing handle.  Initialise libiec61883.
	(gst_dv1394src_stop):
	If using libiec61883, then cleanup its handle properly.
	* ext/raw1394/gstdv1394src.h:
	Add libiec61883 handle.

2006-05-30  Sebastien Moutte  <sebastien@moutte.net>

	* gst/avi/gstavidemux.c:
	  add an explicit dll imported declaration for GST_CAT_EVENT+WIN32
	* win32/MANIFEST:
	  sort file listing
	* win32/vs6/libgstavi.dsp:
	  add gstavimux.c to the project
	* win32/vs6/libgstid3demux.dsp:
	  add link to zlib library
	* win32/vs6/libgstmatroska.dsp:
	  add matroska-ids.c to the project

2006-05-30  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge  <mail at slomosnail de >

	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* ext/taglib/Makefile.am:
	* ext/taglib/gstapev2mux.cc:
	* ext/taglib/gstapev2mux.h:
	* ext/taglib/gstid3v2mux.cc:
	* ext/taglib/gsttaglibmux.c: (plugin_init):
	* ext/taglib/gsttaglibmux.h:
	  Add apev2mux element (#343122).
	
	* tests/check/Makefile.am:
	* tests/check/elements/apev2mux.c:
	(test_taglib_apev2mux_create_tags),
	(test_taglib_apev2mux_check_tags), (fill_mp3_buffer), (got_buffer),
	(demux_pad_added), (test_taglib_apev2mux_check_output_buffer),
	(test_taglib_apev2mux_with_tags), (GST_START_TEST),
	(apev2mux_suite), (main):
	  Add unit test for apev2mux element.

2006-05-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/alpha/gstalphacolor.c: (gst_alpha_color_transform_caps):
	* gst/debug/negotiation.c: (gst_negotiation_update_caps):
	* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps):
	  GST_PTR_FORMAT should be used to print caps in debug statements.

2006-05-28  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge  <slomo at ubuntu dot com>

	* gst/apetag/gstapedemux.c: (ape_demux_get_gst_tag_from_tag),
	(ape_demux_parse_tags):
	  Some clean-ups and additions: map APE 'file' tag to
	  GST_TAG_LOCATION (#343123); add support for extracting
	  the track count and clean up parsing a bit (#343127).

2006-05-28  Edward Hervey  <edward@fluendo.com>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_change_state):
	Initialize segment to GST_FORMAT_UNDEFINED in READY->PAUSED.

2006-05-28  Edward Hervey  <edward@fluendo.com>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_finalize),
	(gst_jpeg_dec_init), (gst_jpeg_dec_chain),
	(gst_jpeg_dec_sink_event), (gst_jpeg_dec_change_state):
	* ext/jpeg/gstjpegdec.h:
	Clip outgoing buffers according to currently configured segment.

2006-05-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gstid3v2mux.cc:
	  Handle  writing of track-count or album-volume-count without
	  track-number or albume-volume-number (in this case the number
	  will just be set to 0).

	* tests/check/elements/id3v2mux.c: (test_taglib_id3mux_check_tags):
	  It would be nice if we actually checked the values received for
	  track/album-volume number/count in  _check_tags(), rather than
	  setting them again ...

2006-05-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
	  A track/volume number or count of 0 does not make sense,
	  just ignore it along with negative numbers (a tag might
	  only contain a track count without a track number).

2006-05-27  Edward Hervey  <edward@fluendo.com>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init),
	(gst_jpeg_dec_sink_event):
	Abort decompression when receiving FLUSH_STOP. This should avoid
	issues when interrupting decoding with flushes.

2006-05-27  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflac.c:
	  Don't #include file we don't dist any longer.

2006-05-27  Tim-Philipp Müller  <tim at centricular dot net>

	* README:
	  Replace current README (containing the release notes from
	  some 0.9.x version) with a proper README taken from the core.

2006-05-24  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_loop):
	Implement EOS correctly by either posting
	SEGMENT_DONE or pushing an EOS message depending
	on the seek type. Fixes #342592

2006-05-24  Wim Taymans  <wim@fluendo.com>

	* gst/law/alaw-decode.c: (gst_alawdec_chain):
	* gst/law/alaw-decode.h:
	* gst/law/alaw-encode.c: (gst_alawenc_chain):
	* gst/law/alaw-encode.h:
	* gst/law/mulaw-decode.c: (gst_mulawdec_chain):
	* gst/law/mulaw-decode.h:
	* gst/law/mulaw-encode.c: (gst_mulawenc_chain):
	* gst/law/mulaw-encode.h:
	Some cleanups in the chain functions.
	Remove some GStreamer 0.0.2 bits.

2006-05-23  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet be>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_change_state):
	  gst_collect_pads_stop() needs to be called before chaining up
	  to the parent class (#342734).

2006-05-23  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/Makefile.am:
	* ext/flac/flac_compat.h:
	* ext/flac/gstflac.c:
	* ext/flac/gstflacdec.c: (gst_flac_dec_init):
	* ext/flac/gstflacenc.c:
	  Remove backwards compatibility cruft for dealing with FLAC API
	  changes in the 1.0.x series - we require 1.1.1 or newer these days.

2006-05-23  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_push_xiph_codec_priv_data),
	(gst_matroska_demux_parse_blockgroup_or_simpleblock),
	(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps):
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init),
	(gst_matroska_mux_video_pad_setcaps),
	(xiph3_streamheader_to_codecdata),
	(vorbis_streamheader_to_codecdata),
	(theora_streamheader_to_codecdata),
	(gst_matroska_mux_audio_pad_setcaps),
	(gst_matroska_mux_write_data):
	  Add support for muxing/demuxing theora video (#342448; too bad
	  none of the usual linux players can actually play this). Playback
	  in GStreamer will require additional changes to theoradec in -base.
	  Refactor streamheaders <=> CodecPrivateData code a bit; some small
	  cleanups.

2006-05-22  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (hresamplecpy1),
	(gst_jpeg_dec_decode_indirect), (gst_jpeg_dec_chain):
	  Fix crashes when the horizontal subsampling is 1.
	  Fixes #342097.

2006-05-22  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet be>

	* gst/avi/gstavimux.c: (gst_avi_mux_finalize), (gst_avi_mux_init),
	(gst_avi_mux_vidsink_set_caps), (gst_avi_mux_audsink_set_caps),
	(gst_avi_mux_write_tag), (gst_avi_mux_riff_get_avi_header),
	(gst_avi_mux_riff_get_avix_header), (gst_avi_mux_write_avix_index),
	(gst_avi_mux_add_index), (gst_avi_mux_bigfile),
	(gst_avi_mux_start_file), (gst_avi_mux_stop_file),
	(gst_avi_mux_handle_event), (gst_avi_mux_do_audio_buffer),
	(gst_avi_mux_do_video_buffer), (gst_avi_mux_do_one_buffer),
	(gst_avi_mux_change_state):
	* gst/avi/gstavimux.h:
	  Some enhancements for avimux (#342526):
	   - add odml (large file) index support
	   - store codec init data (e.g. huffyuv)
	   - miscellaneous other fixes/cleanups

2006-05-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
	Don't output any tag when we encounter a negative track number - the
	tag type is uint, so we end up outputting huge positive numbers
	instead. (Fixes: #342029)

2006-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  update for new GSTPB_PLUGINS_DIR

2006-05-18  Philippe Kalaf  <philippe.kalaf at collabora.co.uk>

	* rtp/gst/gstrtph263pay.c:
	Properly set static caps for H263 at 34.

2006-05-18  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: James "Doc" Livingston  <doclivingston gmail com>

	* ext/taglib/gsttaglibmux.c: (gst_tag_lib_mux_render_tag):
	  Merge event tags and tag setter tags correctly (#339918). Also,
	  don't leak taglist in case of an error.
	  
2006-05-17  Edward Hervey  <edward@fluendo.com>

	* gst/law/mulaw-decode.c: (mulawdec_getcaps): 
	We can only do caps intersection if the othercaps are non-empty and not
	ANY. Else we return the pad template (base_caps).

2006-05-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain):
	  Fix crash when outputting debugging information for certain
	  pictures (always good to use the right struct member for
	  the number of records in an array).

2006-05-16  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Jindrich Makovicka  <jindrich.makivicka at itonis tv>

	* gst/matroska/ebml-read.c: (gst_ebml_read_peek_bytes),
	(gst_ebml_read_pull_bytes), (gst_ebml_read_element_id),
	(gst_ebml_read_element_length), (gst_ebml_read_buffer),
	(gst_ebml_read_bytes), (gst_ebml_read_uint), (gst_ebml_read_sint),
	(gst_ebml_read_float), (gst_ebml_read_ascii),
	(gst_ebml_read_binary):
	  Don't create unnecessary sub-buffers all the time. Dramatically
	  improves performance with multiple concurrently running
	  matroskademux instances (#341818) (and avoids doing
	  unnecessarily inefficient things in the general case).

2006-05-16  Edward Hervey  <edward@fluendo.com>

	* ext/libpng/gstpngenc.c: (gst_pngenc_chain): 
	In snapshot mode, we always return GST_FLOW_UNEXPECTED whatever the
	return value of gst_pad_push_event().

2006-05-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_find_best):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_find_best):
	Make the name of the child element be based on the name of the
	parent, so that debug output is more useful.
	
	* gst/id3demux/id3v2frames.c: (find_utf16_bom),
	(parse_insert_string_field), (parse_split_strings):
	Rework string parsing to always walk over BOM markers in UTF16
	strings, using the endianness indicated by the innermost one,
	then trying the opposite endianness if that fails to convert
	to valid UTF-8. Fixes #341774

2006-05-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	Patch from: Matthieu <matthieu at fluendo dot com>

	* ext/libpng/Makefile.am:
	Add LIBPNG_CFLAGS.

2006-05-15  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gstid3v2mux.cc:
	  Add support for writing images (APIC frames) into ID3v2
	  tags (picture type always set to 'other' for now though).

2006-05-14  Michael Smith  <msmith@fluendo.com>

	* gst/wavparse/gstwavparse.c:
	  Update docs; wavparse implements push and pull modes.

2006-05-12  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_index_next),
	(gst_avi_demux_parse_index), (gst_avi_demux_massage_index),
	(gst_avi_demux_handle_seek), (gst_avi_demux_loop):
	Ooops, bitten by the copy-and-paste design paradigm, fixes
	seek again.

2006-05-12  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_index_next), (gst_avi_demux_handle_src_query),
	(gst_avi_demux_handle_src_event), (gst_avi_demux_parse_subindex),
	(gst_avi_demux_parse_stream), (gst_avi_demux_parse_index),
	(gst_avi_demux_stream_index), (gst_avi_demux_stream_scan),
	(gst_avi_demux_massage_index),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_push_event), (gst_avi_demux_stream_header),
	(gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry),
	(gst_avi_demux_loop):
	* gst/avi/gstavidemux.h:
	Some cleanups, prepare to use GstSegment.
	Fix error in entry walking code.
	Fix VBR detection.
	Smarter timestamp calculation code.
	Uniform error/eos handling.

2006-05-12  Michael Smith  <msmith@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt),
	(gst_wavparse_perform_seek), (gst_wavparse_stream_headers):
	  Fix use of uninitialised values if we're NOT seeking in ready.
	  Fix typos.

2006-05-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/Makefile.am:
	  Add CFLAGS and LIBS for libgstbase, fixes build on
	  Cygwin (#341489).

2006-05-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c: (parse_insert_string_field):
	  Some more debug info. No need to check whether the string
	  returned by g_convert() is really UTF-8 - either it is or
	  we get NULL returned.

2006-05-10  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (id3v2_genre_fields_to_taglist):
	  Fix parsing of numeric genre strings some more, by ensuring that
	  we only try and parse strings that a) Start with '(' and b) Consist
	  only of digits.
	  Also, when finding an escaping '((' sequence, bust it back to '(' by
	  swallowing the first parenthesis

2006-05-10  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/esd/esdsink.c: (gst_esdsink_finalize), (gst_esdsink_getcaps),
	(gst_esdsink_open), (gst_esdsink_close):
	* ext/esd/esdsink.h:
	  Move the esd_get_server_info() into gst_esdsink_open() and fail
	  with a decent error message on errors.

2006-05-09  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/esd/esdmon.c: (gst_esdmon_depths_get_type),
	(gst_esdmon_channels_get_type):
	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_profile_get_type):
	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_method_get_type):
	* ext/libcaca/gstcacasink.c: (gst_cacasink_dither_get_type):
	* ext/shout2/gstshout2.c: (gst_shout2send_protocol_get_type):
	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type):
	* gst/rtp/gstrtpilbcdepay.c: (gst_ilbc_mode_get_type):
	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type):
	* gst/videobox/gstvideobox.c: (gst_video_box_fill_get_type):
	* gst/videofilter/gstvideoflip.c: (gst_video_flip_method_get_type):
	* gst/videomixer/videomixer.c:
	(gst_video_mixer_background_get_type):
	  Const-ify GEnumValue arrays.

2006-05-09  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet bet>

	* gst/avi/gstavimux.c: (gst_avi_mux_do_audio_buffer),
	(gst_avi_mux_do_video_buffer):
	  Work around gst_buffer_make_metadata_writable() bug that
	  results in avimux marking all frames in the index as
	  keyframes (#340859).
	  
2006-05-08  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/rtspurl.c: (rtsp_url_parse):
	Make parsing of urls suck slightly less.

2006-05-08  Edward Hervey  <edward@fluendo.com>

	* autogen.sh: (CONFIGURE_DEF_OPT): 
	libtoolize on Darwin/MacOSX is called glibtoolize.

2006-05-08  Wim Taymans  <wim@fluendo.com>

	Patch by: Jens Granseuer <jensgr at gmx dot net>

	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_init):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_dispose):
	C89 compliance fixes. Fixes #340980

2006-05-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_dec_loop):
	* ext/flac/gstflacdec.h:
	  Handle segment seeks that include the end of the file as stop point
	  properly: when the decoder hits EOS we want to send a SEGMENT_DONE
	  message instead of an EOS event in case we're in segment seek
	  mode (fixes #340699).
	  
2006-05-05  Maciej Katafiasz  <mathrick@freedesktop.org>

	* ext/cairo/gsttextoverlay.c:
	* ext/flac/gstflacdec.c:
	* ext/gdk_pixbuf/pixbufscale.c:
	* gst/apetag/gstapedemux.c:
	* gst/debug/breakmydata.c:
	* gst/debug/testplugin.c:
	* gst/matroska/ebml-write.c:
	* gst/multipart/multipartdemux.c:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosrc.c:
	Add semicolons after GST_BOILERPLATE[_FULL] so that
	indent doesn't mess up following lines.

2006-05-04  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Michal Benes  <michal dot benes at xeris dot cz>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset):
	  Don't leak caps when freeing the stream context (#340623).

2006-05-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Back to CVS

=== release 0.10.3 ===

2006-05-04  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.3, "Desplazado"

2006-05-03  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_stream_is_vorbis_header),
	(gst_matroska_mux_write_data):
	  Don't strcmp() NULL strings.
	  Only start new clusters on video keyframes, not on any
	  random audio buffer that doesn't have the DELTA_UNIT
	  flag set (fixes 'make check' again).

2006-05-03  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet be>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_best_pad),
	(gst_matroska_mux_stream_is_vorbis_header),
	(gst_matroska_mux_write_data):
	  Don't misinterpret GST_CLOCK_TIME_NONE as very high timestamp
	  value and then dead-lock when muxing vorbis audio streams
	  (the three vorbis header buffers carry no timestamp, and it
	  would try to mux these after all video buffers). Fixes #340346.

	  Improve clustering: start a new cluster also whenever we get
	  a keyframe.	  

2006-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* win32/common/config.h:
	* win32/MANIFEST
	  add the generated file as well

2006-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	* win32/common/config.h.in:
	  add win32 stuff

2006-05-03  Michael Smith  <msmith@fluendo.com>

	* ext/cairo/gsttimeoverlay.c: (gst_cairo_time_overlay_transform):
	  Fix timeoverlay for non-multiple-of-4 widths. This fourcc crap
	  SUCKS.

2006-05-02  Stefan Kost  <ensonic@users.sf.net>

	* gst/alpha/gstalphacolor.c: (gst_alpha_color_transform_caps):
	* gst/debug/negotiation.c: (gst_negotiation_update_caps):
	* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps):
	  don't leak caps-string

2006-05-02  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/gstid3demux.c: (gst_id3demux_chain),
	(gst_id3demux_sink_activate):
	  Let core insert default error message for TYPE_NOT_FOUND
	  errors, it's just as good as our own and has the added
	  bonus of being translated.

2006-05-02  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_init),
	(gst_tag_demux_sink_event):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_init),
	(gst_id3demux_sink_event):
	  Post an error message when we get an EOS event and were not
	  able to find out the type of stream.

	* tests/check/elements/id3v2mux.c: (fill_mp3_buffer), (got_buffer),
	(test_taglib_id3mux_with_tags):
	  Decrease num-buffers to 16 per iteration again, otherwise the
	  many memcpy()s and reallocations in the test will hammer slow
	  CPUs completely and make the test timeout.

2006-05-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  figure out where plugins-base plugins are
	* tests/check/Makefile.am:
	  use plugins-base plugins, so we have typefind functions
	* tests/check/elements/id3v2mux.c: (test_taglib_id3mux_with_tags):
	  increase num-buffers, this makes sure the test errors out instead
	  of timing out when no typefind functions are present

2006-05-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	  also check .cc files for gtk-doc markup
	* configure.ac:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* tests/check/Makefile.am:
	* tests/check/elements/id3v2mux.c: (id3v2mux_suite), (main):
	* ext/Makefile.am:
	* ext/taglib/Makefile.am:
	* ext/taglib/gstid3v2mux.h:
	* ext/taglib/gsttaglibmux.c:
	* ext/taglib/gsttaglibmux.h:
	  move taglib-based id3v2muxer to -good.  Fixes #336110.

2006-04-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
	  ... and fix multichannel/WAVFORMATEX support again.

2006-04-29  Stefan Kost  <ensonic@users.sf.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
	(gst_wavparse_class_init), (gst_wavparse_dispose),
	(gst_wavparse_reset), (gst_wavparse_init),
	(gst_wavparse_create_sourcepad), (gst_wavparse_parse_adtl),
	(gst_wavparse_parse_cues), (gst_wavparse_parse_file_header),
	(gst_wavparse_stream_init), (gst_wavparse_perform_seek),
	(gst_wavparse_peek_chunk_info), (gst_wavparse_peek_chunk),
	(gst_wavparse_stream_headers), (gst_wavparse_parse_stream_init),
	(gst_wavparse_send_event), (gst_wavparse_add_src_pad),
	(gst_wavparse_stream_data), (gst_wavparse_loop),
	(gst_wavparse_chain), (gst_wavparse_srcpad_event),
	(gst_wavparse_sink_activate), (gst_wavparse_sink_activate_pull),
	(gst_wavparse_change_state), (plugin_init):
	* gst/wavparse/gstwavparse.h:
	  Add push (streaming) mode to wavparse (fixes #337625)

2006-04-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* tests/Makefile.am:
	  add ximagesrc icles test

2006-04-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* ext/annodex/gstcmmlenc.c: (gst_cmml_enc_class_init),
	(gst_cmml_enc_push_clip):
	* sys/Makefile.am:
	* sys/ximage/Makefile.am:
	* sys/ximage/gstximagesrc.c:
	  Move ximagesrc plug-in to good after review.  Fixes #336756.

2006-04-28  Michael Smith  <msmith@fluendo.com>

	* gst/icydemux/gsticydemux.c: (gst_icydemux_reset),
	(gst_icydemux_init), (gst_icydemux_sink_setcaps),
	(gst_icydemux_add_srcpad), (gst_icydemux_parse_and_send_tags),
	(gst_icydemux_handle_event), (gst_icydemux_send_cached_events),
	(gst_icydemux_typefind_or_forward), (gst_icydemux_add_meta),
	(gst_icydemux_chain), (gst_icydemux_send_tag_event):
	* gst/icydemux/gsticydemux.h:
	  Fix event handling: cache events when typefinding and forward later.

2006-04-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/osxaudio/gstosxaudiosink.c:
	(plugin_init):
	 Register osxaudiosrc to the plugin.
	* sys/osxaudio/gstosxaudiosrc.c:
	(gst_osx_audio_src_osxelement_do_init),
	(gst_osx_audio_src_base_init), (gst_osx_audio_src_class_init),
	(gst_osx_audio_src_init), (gst_osx_audio_src_set_property),
	(gst_osx_audio_src_get_property),
	(gst_osx_audio_src_create_ringbuffer), (gst_osx_audio_src_io_proc),
	(gst_osx_audio_src_osxelement_init):
	* sys/osxaudio/gstosxaudiosrc.h:
	  Port of osxaudiosrc to 0.10.
	* sys/osxaudio/Makefile.am:
	  Add osxaudiosrc

2006-04-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/osxaudio/gstosxringbuffer.c:
	* sys/osxaudio/gstosxringbuffer.h:
	  Forgot to commit earlier, part of the OSX audio plugin port

2006-04-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c: (has_utf16_bom),
	(parse_split_strings):
	  Recognise and skip any byte order marker (BOM) in
	  UTF-16 strings.

2006-04-27  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	* docs/plugins/inspect/plugin-avi.xml:
	* gst/avi/gstavidemux.c:
	* gst/avi/gstavimux.c:
	  Add docs for both avidemux and avimux.

2006-04-27  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet dot be>

	* gst/avi/Makefile.am:
	* gst/avi/gstavi.c: (plugin_init):
	* gst/avi/gstavimux.c: (gst_avi_mux_get_type),
	(gst_avi_mux_base_init), (gst_avi_mux_finalize),
	(gst_avi_mux_class_init), (gst_avi_mux_init),
	(gst_avi_mux_vidsink_set_caps), (gst_avi_mux_audsink_set_caps),
	(gst_avi_mux_pad_link), (gst_avi_mux_pad_unlink),
	(gst_avi_mux_request_new_pad), (gst_avi_mux_release_pad),
	(gst_avi_mux_write_tag), (gst_avi_mux_riff_get_avi_header),
	(gst_avi_mux_riff_get_avix_header),
	(gst_avi_mux_riff_get_video_header),
	(gst_avi_mux_riff_get_audio_header), (gst_avi_mux_add_index),
	(gst_avi_mux_write_index), (gst_avi_mux_bigfile),
	(gst_avi_mux_start_file), (gst_avi_mux_stop_file),
	(gst_avi_mux_restart_file), (gst_avi_mux_handle_event),
	(gst_avi_mux_fill_queue), (gst_avi_mux_send_pad_data),
	(gst_avi_mux_strip_buffer), (gst_avi_mux_do_audio_buffer),
	(gst_avi_mux_do_video_buffer), (gst_avi_mux_do_one_buffer),
	(gst_avi_mux_loop), (gst_avi_mux_collect_pads),
	(gst_avi_mux_get_property), (gst_avi_mux_set_property),
	(gst_avi_mux_change_state):
	* gst/avi/gstavimux.h:
	  Port AVI muxer to GStreamer-0.10 (#332031).

	* tests/check/Makefile.am:
	* tests/check/elements/avimux.c:
	* tests/check/elements/.cvsignore:
	  Add unit test for AVI muxer.

2006-04-27  Stefan Kost  <ensonic@users.sf.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
	(gst_wavparse_class_init), (gst_wavparse_reset),
	(gst_wavparse_init), (gst_wavparse_create_sourcepad),
	(gst_wavparse_parse_file_header), (gst_wavparse_stream_init),
	(gst_wavparse_perform_seek), (gst_wavparse_stream_headers),
	(gst_wavparse_send_event), (gst_wavparse_add_src_pad),
	(gst_wavparse_stream_data), (gst_wavparse_loop),
	(gst_wavparse_srcpad_event), (gst_wavparse_sink_activate),
	(gst_wavparse_sink_activate_pull), (gst_wavparse_change_state),
	(plugin_init):
	* gst/wavparse/gstwavparse.h:
	  reverted patch #337625 for the price of 1 hour sleep

2006-04-26  Stefan Kost  <ensonic@users.sf.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
	(gst_wavparse_class_init), (gst_wavparse_reset),
	(gst_wavparse_init), (gst_wavparse_create_sourcepad),
	(gst_wavparse_parse_adtl), (gst_wavparse_parse_cues),
	(gst_wavparse_parse_file_header), (gst_wavparse_stream_init),
	(gst_wavparse_perform_seek), (gst_wavparse_stream_headers),
	(gst_wavparse_stream_data), (gst_wavparse_loop),
	(gst_wavparse_chain), (plugin_init):
	* gst/wavparse/gstwavparse.h:
	  correct partial implementation of push mode
	  (from my last commit)

2006-04-26  Wim Taymans  <wim@fluendo.com>

	* ext/esd/esdsink.c:
	Fix compile problem by defining ESD_MAX_WRITE_SIZE if
	it is not in esd.h

2006-04-26  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/auparse/gstauparse.c: (gst_au_parse_base_init),
	(gst_au_parse_class_init), (gst_au_parse_init),
	(gst_au_parse_reset), (gst_au_parse_add_srcpad),
	(gst_au_parse_remove_srcpad), (gst_au_parse_parse_header),
	(gst_au_parse_chain), (gst_au_parse_src_convert),
	(gst_au_parse_src_query), (gst_au_parse_handle_seek),
	(gst_au_parse_sink_event), (gst_au_parse_src_event),
	(gst_au_parse_change_state):
	* gst/auparse/gstauparse.h:
	  Rewrite auparse to suck a little bit less: make source pad
	  dynamic, so decodebin/playbin work with non-raw formats
	  like alaw/mulaw; add query function for duration/position
	  queries; check whether we have enough data before attempting
	  to parse the header (instead of crashing when that is not the
	  case); work around audioconvert sucking by swapping endianness
	  to the native endianness ourselves for float formats; send
	  initial newsegment event. Fixes #161712.

2006-04-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/osxaudio/Makefile.am:
	* sys/osxaudio/gstosxaudioelement.c:
	(gst_osx_audio_element_get_type),
	(gst_osx_audio_element_class_init):
	* sys/osxaudio/gstosxaudioelement.h:
	* sys/osxaudio/gstosxaudiosink.c:
	(gst_osx_audio_sink_osxelement_do_init),
	(gst_osx_audio_sink_base_init), (gst_osx_audio_sink_class_init),
	(gst_osx_audio_sink_init), (gst_osx_audio_sink_set_property),
	(gst_osx_audio_sink_get_property), (gst_osx_audio_sink_getcaps),
	(gst_osx_audio_sink_create_ringbuffer),
	(gst_osx_audio_sink_io_proc), (gst_osx_audio_sink_osxelement_init),
	(plugin_init):
	* sys/osxaudio/gstosxaudiosink.h:
	Port of osxaudiosink to 0.10

2006-04-26  Wim Taymans  <wim@fluendo.com>

	* ext/esd/esdsink.c: (gst_esdsink_prepare), (gst_esdsink_delay):
	Always write ESD_BUF_SIZE bytes and use ESD_MAX_WRITE_SIZE as
	the size of the ringbuffer. This should fix hangs with older 
	esd sound servers.

2006-04-26  Stefan Kost  <ensonic@users.sf.net>

	* ext/aalib/gstaasink.c:
	* ext/annodex/gstcmmldec.c:
	* ext/annodex/gstcmmlenc.c:
	* ext/cairo/gsttextoverlay.c:
	* ext/cairo/gsttimeoverlay.c:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/dv/gstdvdec.c:
	* ext/dv/gstdvdemux.c:
	* ext/esd/esdmon.c:
	* ext/esd/esdsink.c:
	* ext/flac/gstflacenc.c:
	* ext/flac/gstflactag.c:
	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init):
	* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init):
	* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init):
	* ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init):
	* ext/gdk_pixbuf/pixbufscale.c:
	* ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init):
	* ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init):
	* ext/jpeg/gstjpegdec.c:
	* ext/jpeg/gstjpegenc.c:
	* ext/jpeg/gstsmokedec.c:
	* ext/jpeg/gstsmokeenc.c:
	* ext/libcaca/gstcacasink.c:
	* ext/libmng/gstmngdec.c:
	* ext/libmng/gstmngenc.c:
	* ext/libpng/gstpngdec.c:
	* ext/libpng/gstpngenc.c:
	* ext/mikmod/gstmikmod.c:
	* ext/raw1394/gstdv1394src.c:
	* ext/shout2/gstshout2.c: (gst_shout2send_init):
	* ext/shout2/gstshout2.h:
	* ext/speex/gstspeexdec.c:
	* ext/speex/gstspeexenc.c:
	* gst/alpha/gstalpha.c:
	* gst/alpha/gstalphacolor.c:
	* gst/apetag/gstapedemux.c:
	* gst/auparse/gstauparse.c:
	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_base_init):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_base_init):
	* gst/avi/gstavidemux.c: (gst_avi_demux_base_init):
	* gst/avi/gstavimux.c: (gst_avimux_base_init):
	* gst/cutter/gstcutter.c:
	* gst/debug/breakmydata.c:
	* gst/debug/efence.c:
	* gst/debug/gstnavigationtest.c:
	* gst/debug/gstnavseek.c:
	* gst/debug/negotiation.c:
	* gst/debug/progressreport.c:
	* gst/debug/testplugin.c:
	* gst/effectv/gstaging.c:
	* gst/effectv/gstdice.c:
	* gst/effectv/gstedge.c:
	* gst/effectv/gstquark.c:
	* gst/effectv/gstrev.c:
	* gst/effectv/gstshagadelic.c:
	* gst/effectv/gstvertigo.c:
	* gst/effectv/gstwarp.c:
	* gst/flx/gstflxdec.c:
	* gst/goom/gstgoom.c:
	* gst/icydemux/gsticydemux.c:
	* gst/id3demux/gstid3demux.c:
	* gst/interleave/deinterleave.c:
	* gst/interleave/interleave.c:
	* gst/law/alaw-decode.c: (gst_alawdec_base_init):
	* gst/law/alaw-encode.c: (gst_alawenc_base_init):
	* gst/law/mulaw-decode.c: (gst_mulawdec_base_init):
	* gst/law/mulaw-encode.c: (gst_mulawenc_base_init):
	* gst/level/gstlevel.c:
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init):
	* gst/median/gstmedian.c:
	* gst/monoscope/gstmonoscope.c:
	* gst/multipart/multipartdemux.c:
	* gst/multipart/multipartmux.c:
	* gst/oldcore/gstaggregator.c:
	* gst/oldcore/gstfdsink.c:
	* gst/oldcore/gstmd5sink.c:
	* gst/oldcore/gstmultifilesrc.c:
	* gst/oldcore/gstpipefilter.c:
	* gst/oldcore/gstshaper.c:
	* gst/oldcore/gststatistics.c:
	* gst/rtp/gstasteriskh263.c:
	* gst/rtp/gstrtpL16depay.c:
	* gst/rtp/gstrtpL16pay.c:
	* gst/rtp/gstrtpamrdepay.c:
	* gst/rtp/gstrtpamrpay.c:
	* gst/rtp/gstrtpdepay.c:
	* gst/rtp/gstrtpgsmpay.c:
	* gst/rtp/gstrtph263pay.c:
	* gst/rtp/gstrtph263pdepay.c:
	* gst/rtp/gstrtph263ppay.c:
	* gst/rtp/gstrtpilbcdepay.c:
	* gst/rtp/gstrtpmp4gpay.c:
	* gst/rtp/gstrtpmp4vdepay.c:
	* gst/rtp/gstrtpmp4vpay.c:
	* gst/rtp/gstrtpmpadepay.c:
	* gst/rtp/gstrtpmpapay.c:
	* gst/rtp/gstrtppcmadepay.c:
	* gst/rtp/gstrtppcmapay.c:
	* gst/rtp/gstrtppcmudepay.c:
	* gst/rtp/gstrtppcmupay.c:
	* gst/rtp/gstrtpspeexdepay.c:
	* gst/rtp/gstrtpspeexpay.c:
	* gst/rtsp/gstrtpdec.c:
	* gst/rtsp/gstrtspsrc.c:
	* gst/smpte/gstsmpte.c:
	* gst/udp/gstdynudpsink.c:
	* gst/udp/gstmultiudpsink.c:
	* gst/udp/gstudpsink.c:
	* gst/udp/gstudpsrc.c:
	* gst/videobox/gstvideobox.c:
	* gst/videofilter/gstgamma.c: (gst_gamma_base_init):
	* gst/videofilter/gstvideobalance.c:
	* gst/videofilter/gstvideoflip.c:
	* gst/videofilter/gstvideotemplate.c:
	(gst_videotemplate_base_init):
	* gst/videomixer/videomixer.c:
	* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
	(gst_wavparse_class_init), (gst_wavparse_dispose),
	(gst_wavparse_reset), (gst_wavparse_init),
	(gst_wavparse_perform_seek), (gst_wavparse_peek_chunk_info),
	(gst_wavparse_peek_chunk), (gst_wavparse_stream_headers),
	(gst_wavparse_parse_stream_init), (gst_wavparse_send_event),
	(gst_wavparse_add_src_pad), (gst_wavparse_stream_data),
	(gst_wavparse_chain), (gst_wavparse_srcpad_event),
	(gst_wavparse_sink_activate), (gst_wavparse_sink_activate_pull),
	(gst_wavparse_change_state):
	* gst/wavparse/gstwavparse.h:
	* sys/oss/gstossmixerelement.c:
	* sys/oss/gstosssink.c:
	* sys/oss/gstosssrc.c:
	* sys/osxaudio/gstosxaudioelement.c:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosrc.c:
	* sys/sunaudio/gstsunaudiomixer.c:
	* sys/sunaudio/gstsunaudiosink.c:
	  Define GstElementDetails as const and also static (when defined as
	  global)

2006-04-25  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain):
	  Source pad has fixed caps. If we don't set this, bad
	  things happen when the window is resized.

2006-04-25  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/Makefile.am:
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_handle_src_event):
	* gst/matroska/matroska-ids.c:
	(gst_matroska_track_init_video_context),
	(gst_matroska_track_init_audio_context),
	(gst_matroska_track_init_subtitle_context),
	(gst_matroska_track_init_complex_context):
	* gst/matroska/matroska-ids.h:
	  Handle case where the TrackType ebml chunk does not come before the
	  TrackInfoAudio or TrackInfoVideo ebml chunk (#339446). Ignore QoS
	  events.

2006-04-25  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_setcaps):
	* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_setcaps):
	It's codec_data, not codec_info.

2006-04-25  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet dot be>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps):
	  Handle codec_data for VfW compatibility codec IDs (#339451)

	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_video_pad_setcaps):
	  Same here, handle codec_data and add additional caps we can handle
	  now to the pad template (huffyuv, dv and h263 video) (#339451)

2006-04-25  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Josef Zlomek  <josef dot zlomek at itonis dot tv>

	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_create_buffer_header),
	(gst_matroska_mux_write_data):
	  Fix timestamping of B-frames, use signed integers, do
	  some rounding (#339678).

2006-04-24  Edgard Lima <edgard.lima@indt.org.br>

	* ext/annodex/gstcmmlparser.c: (gst_cmml_parser_generic_error):
	just make it compile with --disable-gst-debug.

2006-04-23  Sebastien Moutte  <sebastien@moutte.net>

	* gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
	Fix a bad conversion using gst_guint64_to_gdouble.
	fabs ((gdouble) demux->index[entry].time - (gdouble) seek_pos) can not be 
	replaced by fabs (gst_guint64_to_gdouble (demux->index[entry].time - seek_pos)) as the
	difference could be negative. fabs (gst_guint64_to_gdouble (demux->index[entry].time) - 
    gst_guint64_to_gdouble (seek_pos)) is the good solution. Thanks to Tim who has seen my 
	mistake.

2006-04-21  Sebastien Moutte  <sebastien@moutte.net>

	* gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
	Use gst_guint64_to_gdouble for conversions
	* win32/vs6/gst_plugins_good.dsw:
	* win32/vs6/libgsticydemux.dsp:
	Add a project file for icydemux

2006-04-21  Wim Taymans  <wim@fluendo.com>

	Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
	(gst_avi_demux_parse_index), (gst_avi_demux_massage_index):
	When splitting audio chunks, the block alignment is not taken in
	consideration, so the smaller chunks could be of size which is 
	not a multiple of the block alignment. Fixes #336904

2006-04-21  Wim Taymans  <wim@fluendo.com>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_convert):
	Use scale functions

2006-04-21  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dv/gstdv.c: (plugin_init):
	  Fix build.

2006-04-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/debug/progressreport.c: (gst_progress_report_finalize),
	(gst_progress_report_class_init), (gst_progress_report_init),
	(gst_progress_report_do_query), (gst_progress_report_report),
	(gst_progress_report_set_property),
	(gst_progress_report_get_property):
	  Add 'format' property to force querying to a particular format.

2006-04-21  Andy Wingo  <wingo@pobox.com>

	* ext/dv/gstdv.c (plugin_init): libdv is a marginal decoder, at
	best, on big endian systems. Drop its rank in that case. OTOH on
	x86 it's quite fine. See changes from today in gst-ffmpeg as well.

2006-04-21  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* gst/icydemux/Makefile.am:
	* gst/icydemux/gsticydemux.c: (gst_icydemux_get_type),
	(gst_icydemux_base_init), (gst_icydemux_class_init),
	(gst_icydemux_reset), (gst_icydemux_init),
	(gst_icydemux_sink_setcaps), (gst_icydemux_dispose),
	(gst_icydemux_add_srcpad), (gst_icydemux_remove_srcpad),
	(unicodify), (gst_icydemux_unicodify),
	(gst_icydemux_parse_and_send_tags),
	(gst_icydemux_typefind_or_forward), (gst_icydemux_add_meta),
	(gst_icydemux_chain), (gst_icydemux_change_state),
	(gst_icydemux_send_tag_event), (plugin_init):
	* gst/icydemux/gsticydemux.h:
	* tests/check/Makefile.am:
	* tests/check/elements/icydemux.c: (typefind_succeed),
	(plugin_init), (icydemux_found_pad), (create_icydemux),
	(cleanup_icydemux), (push_data), (GST_START_TEST),
	(icydemux_suite), (main):
	  Add icydemux, and tests.

2006-04-20  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_dec_loop):
	  Post SEGMENT_DONE message in TIME format.

2006-04-20  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Fabrizio Gennari  <fabrizio dot ge at tiscali dot it>

	* gst/avi/gstavidemux.c: (gst_avi_demux_peek_tag),
	(gst_avi_demux_next_data_buffer), (gst_avi_demux_stream_scan):
	  Fix index creation when we have to scan the file to create
	  an index. There may be other types of RIFF 'LIST' chunks than
	  'movi' and we need to skip them properly as well or we'll end up
	  reading garbage (#336889). Some other cosmetic changes.
	  
2006-04-20  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_dec_loop),
	(gst_flac_dec_handle_seek_event):
	  Add support for segment seeks (fixes #338290). Also demote
	  some recurring debug message from DEBUG to LOG level.

2006-04-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroskademux_do_index_seek),
	(gst_matroska_demux_handle_seek_event),
	(gst_matroska_demux_parse_blockgroup_or_simpleblock):
	* gst/matroska/matroska-ids.h:
	  Set DISCONT flag on first buffer after a discontinuity.
	  Fix newsegment events sent when seeking and honour KEY_UNIT
	  seek flag. Create pad with bogus caps if we don't recognise
	  the stream codec id.

	* gst/matroska/matroska-demux.h:
	  Fix GObject macros.

2006-04-20  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts  <manauw at skynet dot be>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_seek_event), (gst_matroska_demux_loop):
	  Handle end of segment properly when set; don't dead-lock when
	  posting start of segment message when doing a segment seek.
	  Fixes #338810.

2006-04-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps),
	(gst_matroska_demux_plugin_init):
	  Make mpeg2 aac audio work: create artificial private codec data
	  chunk which faad2 seems to require, just as we do for mpeg4 aac.
	  Also call gst_riff_init(). Partially fixes #338767.

2006-04-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_base_init),
	(gst_wavenc_class_init), (gst_wavenc_init),
	(gst_wavenc_create_header_buf), (gst_wavenc_push_header),
	(gst_wavenc_sink_setcaps), (get_id_from_name), (gst_wavenc_event),
	(gst_wavenc_chain), (gst_wavenc_change_state):
	* gst/wavenc/gstwavenc.h:
	  Set caps on first outgoing buffer, so that it doesn't error out
	  immediately with a non-negotiated error (#338716). Rewrite and
	  clean up a bit; fix setcaps function to parse things properly;
	  fix sink caps (8bit audio is unsigned and doesn't have depth);
	  use boilerplate macros; remove unused properties stuff.

2006-04-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gdk_pixbuf/gstgdkpixbuf.c:
	  Leave JPEG decoding to our jpegdec plugin. gdkpixbufdec cannot
	  handle MJPEG streams and might be autoplugged for those if the
	  user doesn't have jpegdec installed (resulting in a cryptic error
	  message about huffman tables). Better to disable JPEG decoding here
	  and let the user figure out that she needs to install jpegdec.

2006-04-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_setcaps),
	(gst_gdk_pixbuf_class_init), (gst_gdk_pixbuf_init),
	(gst_gdk_pixbuf_flush), (gst_gdk_pixbuf_chain):
	* ext/gdk_pixbuf/gstgdkpixbuf.h:
	  Make work with packetised/framed input (e.g. png-in-quicktime). Use
	  GST_ELEMENT_ERROR when we return GST_FLOW_ERROR. Add some
	  GST_DEBUG_FUNCPTR here and there. Use GST_LOG for recurring
	  debug messages. Fix boilerplate macros.

2006-04-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_get_capslist),
	(gst_gdk_pixbuf_set_property), (gst_gdk_pixbuf_get_property):
	  No need to special-case for Gdk-2.0 any longer, we require
	  Gdk 2.2 or newer; minor clean-ups.

2006-04-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/shout2/gstshout2.c: (gst_shout2send_base_init),
	(gst_shout2send_class_init), (gst_shout2send_init),
	(set_shout_metadata), (gst_shout2send_set_metadata),
	(gst_shout2send_event), (gst_shout2send_start),
	(gst_shout2send_connect), (gst_shout2send_stop),
	(gst_shout2send_render), (gst_shout2send_set_property),
	(gst_shout2send_get_property), (gst_shout2send_setcaps),
	(plugin_init):
	* ext/shout2/gstshout2.h:
	* po/POTFILES.in:
	  Rewrite a bit: use GstBaseSink::start and stop instead of a state
	  change function; use GST_ELEMENT_ERROR for error reporting, not
	  g_error() or GST_ERROR(); don't unref caps in setcaps function,
	  will cause crashes or assertion failures; remove (unused) "sync"
	  property, basesink already has such a property; misc. other
	  minor fixes and cleanups.

2006-04-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/esd/esdsink.c: (gst_esdsink_open), (gst_esdsink_prepare):
	* ext/esd/gstesd.c: (plugin_init):
	* po/POTFILES.in:
	  Add translatable error message for when we cannot
	  connect to the sound server, as "Cannot open resource
	  for writing" isn't really an acceptable message to show
	  to the user in this case.

2006-04-18  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gst-i18n-plugin.h:
	  Remove bogus file that doesn't belong here.

2006-04-17  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Philippe Valembois

	* ext/shout2/gstshout2.c: (gst_shout2send_init),
	(gst_shout2send_set_metadata), (gst_shout2send_event),
	(gst_shout2send_render), (gst_shout2send_change_state):
	* ext/shout2/gstshout2.h:
	  Handle tags being received before the connection to
	  the server is established properly (see #338636).

2006-04-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/shout2/gstshout2.c: (gst_shout2send_render):
	  Don't crash in case the connection to the server fails:
	  don't set pointer to NULL by assigning FALSE; error out
	  properly by using GST_ELEMENT_ERROR and returning
	  GST_FLOW_ERROR (fixes #338636). Lastly, free connection
	  before resetting the pointer.

2006-04-17  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3tags.c:
	Recognise TCO (Genre) tags in ID3v2.2. Patch by Alex Lancaster
	(Fixes #338713)

2006-04-12  Wim Taymans  <wim@fluendo.com>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_setcaps),
	(gst_gdk_pixbuf_get_capslist), (gst_gdk_pixbuf_sink_getcaps),
	(gst_gdk_pixbuf_class_init), (gst_gdk_pixbuf_init),
	(gst_gdk_pixbuf_flush), (gst_gdk_pixbuf_sink_event),
	(gst_gdk_pixbuf_chain):
	Some cleanups.
	Added RGBA as a possible output format.
	Correctly free the supported mimetypes.
	deprecate silent arg, it's not used.
	Return result from _alloc_buffer to peer.

2006-04-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_process):
	  Don't leak memory allocated by gst_buffer_new_and_alloc() by
	  overwriting GST_BUFFER_MALLOCDATA.

2006-04-11  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_init),
	(user_endrow_callback), (user_end_callback),
	(gst_pngdec_caps_create_and_set), (gst_pngdec_chain),
	(gst_pngdec_sink_setcaps), (gst_pngdec_sink_event),
	(gst_pngdec_libpng_clear), (gst_pngdec_change_state):
	* ext/libpng/gstpngdec.h:
	  Handle more than one frame if the content is framed,
	  like with png-in-quicktime (#331917).

2006-04-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/oss/Makefile.am:
	* sys/oss/common.h:
	* sys/oss/gstosssink.c: (gst_oss_sink_init), (gst_oss_sink_open),
	(gst_oss_sink_prepare), (gst_oss_sink_unprepare):
	* sys/oss/gstosssrc.c: (gst_oss_src_prepare),
	(gst_oss_src_unprepare):
	  - the user-visible error strings were in the wrong category
	  - and the messages were not marked for translation
	  - which is actually a good thing, because they were exactly
	    the kind of message you would never want anyone to see
	  - the macros were using variables that didn't exist in the macro
	    arguments
	  - and they were obviously copied from each other and then modified
	  - so a common header makes sense

2006-04-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/ebml-read.c: (gst_ebml_read_sint):
	  Don't try to modify read-only data.

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup_or_simpleblock):
	  Fix comment (won't crash any longer now).

2006-04-10  Michael Smith  <msmith@fluendo.com>

	* ext/annodex/gstcmmlenc.c: (gst_cmml_enc_set_header_on_caps):
	  Use copies of header buffers for caps to avoid circular refcounting
	  problems (as in theoradec, vorbisdec).

	* tests/check/elements/cmmldec.c: (GST_START_TEST):
	  Fix a typo in test that meant it was testing the wrong thing.

	* tests/check/elements/cmmlenc.c: (check_headers):
	  Fix refcount checks now that we use buffer-copies for caps.

2006-04-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init),
	(gst_matroska_demux_handle_seek_event),
	(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps),
	(gst_matroska_demux_subtitle_caps),
	(gst_matroska_demux_plugin_init):
	  Use static pad templates with ANY caps for audio and video
	  source pads and get rid of a lot of unnecessary (and partially
	  broken) code for the template caps. Clean up caps finding
	  functions. Fixes playback of audio files/streams that do not
	  contain the sample rate and/or number of channels in the audio
	  context (happens a lot with vorbis/mp3 .mka files it seems).
	  Fixes #337183.
	  Also add myself to copyright holders.

2006-04-10  Michael Smith  <msmith@fluendo.com>

	* ext/annodex/gstcmmlutils.c: (gst_cmml_track_list_del_clip):
	  Use g_list_delete_link () instead of g_list_remove_link () so that
	  we free the link as well as the contained data.

2006-04-10  Wim Taymans  <wim@fluendo.com>

	Patch by: Ryan Lortie (desrt) <desrt at destr dot ca>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
	(gst_avi_demux_parse_stream), (gst_avi_demux_parse_index),
	(gst_avi_demux_stream_header):
	Fix some crashers with empty chunks. (Fixes #337749)

2006-04-09  Sebastien Moutte  <sebastien@moutte.net>

	* gst/level/gstlevel.c: (gst_level_set_caps),(gst_level_transform_ip):
	  use G_GINT64_CONSTANT for INT64 constants
	* gst/videofilter/gstvideobalance.c:
	  define rint for WIN32 #define rint(x) (floor((x)+0.5))
	* win32/vs6/libgstavi.dsp:
	 add missing libraries for the link and remove avimux.c from
	 the project as it isn't ported to 0.10 yet
	
2006-04-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/ebml-read.c: (gst_ebml_read_sint):
	  Even better would be if we actually did the right thing
	  here (also, G_GUINT64_CONSTANT only exists since GLib-2.10).

2006-04-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/ebml-read.c: (gst_ebml_read_sint):
	  Can't just replace 1LL with 1L here just because MSVC doesn't
	  support it, as it might lead to incorrect results when doing the
	  bitshifting here. Using GLib's G_GUINT64_CONSTANT() macro to
	  force a 64-bit constant in a way that all compilers are happy with.

2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* ext/aalib/gstaasink.c: (gst_aasink_class_init):
	* ext/esd/esdsink.c: (gst_esdsink_class_init):
	* ext/flac/gstflactag.c: (gst_flac_tag_class_init):
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_class_init):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_class_init):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init):
	* ext/libcaca/gstcacasink.c: (gst_cacasink_class_init):
	* ext/libmng/gstmngdec.c: (gst_mngdec_class_init):
	* ext/libmng/gstmngenc.c: (gst_mngenc_class_init):
	* ext/libpng/gstpngdec.c: (gst_pngdec_class_init):
	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_class_init):
	* ext/shout2/gstshout2.c: (gst_shout2send_class_init):
	* ext/speex/gstspeexenc.c: (gst_speexenc_class_init):
	* gst/alpha/gstalpha.c: (gst_alpha_class_init):
	* gst/avi/gstavimux.c: (gst_avimux_class_init):
	* gst/debug/efence.c: (gst_efence_class_init):
	* gst/debug/negotiation.c: (gst_negotiation_class_init):
	* gst/flx/gstflxdec.c: (gst_flxdec_class_init):
	* gst/goom/gstgoom.c: (gst_goom_class_init):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_class_init):
	* gst/interleave/deinterleave.c: (deinterleave_class_init):
	* gst/interleave/interleave.c: (interleave_class_init):
	* gst/law/alaw-decode.c: (gst_alawdec_class_init):
	* gst/law/alaw-encode.c: (gst_alawenc_class_init):
	* gst/law/mulaw-encode.c: (gst_mulawenc_class_init):
	* gst/median/gstmedian.c: (gst_median_class_init):
	* gst/monoscope/gstmonoscope.c: (gst_monoscope_class_init):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init):
	* gst/rtp/gstasteriskh263.c: (gst_asteriskh263_class_init):
	* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16depay_class_init):
	* gst/rtp/gstrtpL16pay.c: (gst_rtpL16pay_class_init):
	* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_class_init):
	* gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_class_init):
	* gst/rtp/gstrtpdepay.c: (gst_rtp_depay_class_init):
	* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_class_init):
	* gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_class_init):
	* gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_class_init):
	* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_class_init):
	* gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init):
	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_class_init):
	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_class_init):
	* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_class_init):
	* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_class_init):
	* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_class_init):
	* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_class_init):
	* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_class_init):
	* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_class_init):
	* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_class_init):
	* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_class_init):
	* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_class_init):
	* gst/rtsp/gstrtpdec.c: (gst_rtpdec_class_init):
	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init):
	* gst/smpte/gstsmpte.c: (gst_smpte_class_init):
	* gst/udp/gstdynudpsink.c: (gst_dynudpsink_class_init):
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_class_init):
	* gst/udp/gstudpsink.c: (gst_udpsink_class_init):
	* gst/videomixer/videomixer.c: (gst_videomixer_class_init):
	* gst/wavenc/gstwavenc.c: (gst_wavenc_class_init):
	* sys/oss/gstossdmabuffer.c: (gst_ossdmabuffer_class_init):
	* sys/oss/gstosssink.c: (gst_oss_sink_class_init):
	* sys/osxaudio/gstosxaudioelement.c:
	(gst_osxaudioelement_class_init):
	* sys/osxaudio/gstosxaudiosink.c: (gst_osxaudiosink_class_init):
	* sys/osxaudio/gstosxaudiosrc.c: (gst_osxaudiosrc_class_init):
	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_class_init):
	Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)

2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* ext/mikmod/gstmikmod.h:
	* gst/level/gstlevel.h:
	Fix more broken GObject macros

2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* 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  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_dec_handle_seek_event):
	  Don't try to seek beyond the end of the file (would
	  occasionally display error dialogs in totem when seeking
	  to the end) (#335869). Will still throw an error though
	  if the file is truncated and the total_samples value in
	  the stream header is wrong.

2006-04-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_calculate_crc8),
	(gst_flac_dec_scan_got_frame), (gst_flac_dec_scan_for_last_block),
	(gst_flac_dec_metadata_callback):
	* ext/flac/gstflacdec.h:
	  If the stream header doesn't contain the total number of samples,
	  search for the last flac frame at the end of the file and calculate
	  the total duration from that frame's offset (fixes #337609).

2006-04-07  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream):
	Don't unref the GstPadTemplate returned by
	gst_element_class_get_pad_template().

2006-04-06  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Brian Cameron  <brian dot cameron at sun dot com>

	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_init),
	(gst_sunaudiosink_prepare), (gst_sunaudiosink_write):
	* sys/sunaudio/gstsunaudiosink.h:
	  Use spec->segsize and spec->segtotal in the prepare function
	  to initialise the ring buffer instead of using the buffer-time
	  property (#337421).

2006-04-06  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Bump core requirements to CVS for gst_pad_query_peer_duration()
	  which is used by speexdec.

2006-04-05  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/speex/gstspeex.c: (plugin_init):
	* ext/speex/gstspeexdec.c: (gst_speex_dec_class_init),
	(gst_speex_dec_reset), (gst_speex_dec_init), (speex_dec_convert),
	(speex_get_sink_query_types), (speex_dec_sink_query),
	(speex_get_src_query_types), (speex_dec_src_query),
	(speex_dec_src_event), (speex_dec_sink_event),
	(speex_dec_chain_parse_header), (speex_dec_chain_parse_comments),
	(speex_dec_chain_parse_data), (speex_dec_chain),
	(gst_speex_dec_get_property), (gst_speex_dec_set_property),
	(speex_dec_change_state):
	* ext/speex/gstspeexdec.h:
	  Fix seeking and duration queries (#337033); clean up and
	  refactor a bit.

2006-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/raw1394/gstdv1394src.c:
	  distinguish between device not found and could not open for
	  reading

2006-04-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	* pkgconfig/.cvsignore:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-plugins-good-uninstalled.pc.in:
	  add a .pc file so other modules can use good plugins in tests

2006-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  clean up, use AS_VERSION and AS_NANO
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
	  use PACKAGE_VERSION define
	* 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:
	  updated

2006-03-31  Sebastien Moutte  <sebastien@moutte.net>

	* ext\jpeg\smokecodec.c:
	  use of GST_DEBUG instead of DEBUG(a...) for WIN32
	* ext\speex\gstspeexenc.c: (gst_speexenc_set_header_on_caps):
	  move first instruction after all variables declarations
	* gst\alpha\gstalpha.c:
	* gst\effectv\gstshagadelic.c:
	* gst\smpte\paint.c:
	* gst\videofilter\gstvideobalance.c:
	  define M_PI if it's not defined (it's not defined on WIN32)
	* gst\cutter\gstcutter.c: (gst_cutter_chain):
	* gst\id3demux\id3v2frames.c: (parse_relative_volume_adjustment_two):
	* gst\level\gstlevel.c: (gst_level_set_property), (gst_level_transform_ip):
	* gst\matroska\matroska-demux.c: (gst_matroska_demux_parse_info), 
	(gst_matroska_demux_video_caps):
	* gst\matroska\matroska-mux.c: (gst_matroska_mux_start), (gst_matroska_mux_finish):
	* gst\wavparse\gstwavparse.c: (gst_wavparse_stream_data):
	  use gst_guint64_to_gdouble for conversions
	* gst\goom\filters.c: (setPixelRGB_):
	  fix a debug which was using undefined variable
	* gst\level\gstlevel.c: (gst_level_set_caps), (gst_level_transform_ip):
	* gst\matroska\ebml-read.c: (gst_ebml_read_sint):
	  replace LL suffix with L suffix (LL isn't supported by MSVC6.0)
	* win32/vs6:
	  add vs6 projects files for most of plugins-good
	
2006-03-30  j^  <j@bootlab.org>

	* ext/aalib/gstaasink.c:
	* ext/annodex/gstcmmldec.c:
	* ext/annodex/gstcmmlenc.c:
	* ext/cairo/gsttextoverlay.c:
	* ext/cairo/gsttimeoverlay.c:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/dv/gstdvdec.c:
	* ext/esd/esdmon.c:
	* ext/esd/esdsink.c:
	* ext/flac/gstflacdec.c:
	* ext/flac/gstflacenc.c:
	* ext/flac/gstflactag.c:
	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init):
	* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init):
	* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init):
	* ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init):
	* ext/gdk_pixbuf/gstgdkpixbuf.c:
	* ext/gdk_pixbuf/pixbufscale.c:
	* ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init):
	* ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init):
	* ext/jpeg/gstjpegdec.c:
	* ext/jpeg/gstjpegenc.c:
	* ext/jpeg/gstsmokedec.c:
	* ext/jpeg/gstsmokeenc.c:
	* ext/libcaca/gstcacasink.c:
	* ext/libmng/gstmngdec.c:
	* ext/libmng/gstmngenc.c:
	* ext/libpng/gstpngdec.c:
	* ext/libpng/gstpngenc.c:
	* ext/mikmod/gstmikmod.c:
	* ext/raw1394/gstdv1394src.c:
	* ext/shout2/gstshout2.c:
	* ext/speex/gstspeexdec.c:
	* ext/speex/gstspeexenc.c:
	* gst/alpha/gstalpha.c:
	* gst/alpha/gstalphacolor.c:
	* gst/auparse/gstauparse.c:
	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_base_init):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_base_init):
	* gst/avi/gstavimux.c: (gst_avimux_base_init):
	* gst/cutter/gstcutter.c:
	* gst/debug/breakmydata.c:
	* gst/debug/efence.c:
	* gst/debug/gstnavigationtest.c:
	* gst/debug/negotiation.c:
	* gst/debug/progressreport.c:
	* gst/debug/testplugin.c:
	* gst/effectv/gstaging.c:
	* gst/effectv/gstdice.c:
	* gst/effectv/gstedge.c:
	* gst/effectv/gstquark.c:
	* gst/effectv/gstrev.c:
	* gst/effectv/gstvertigo.c:
	* gst/effectv/gstwarp.c:
	* gst/flx/gstflxdec.c:
	* gst/goom/gstgoom.c:
	* gst/interleave/deinterleave.c:
	* gst/interleave/interleave.c:
	* gst/law/alaw-decode.c: (gst_alawdec_base_init):
	* gst/law/alaw-encode.c: (gst_alawenc_base_init):
	* gst/law/mulaw-decode.c: (gst_mulawdec_base_init):
	* gst/law/mulaw-encode.c: (gst_mulawenc_base_init):
	* gst/level/gstlevel.c:
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init):
	* gst/median/gstmedian.c:
	* gst/monoscope/gstmonoscope.c:
	* gst/multipart/multipartdemux.c:
	* gst/multipart/multipartmux.c:
	* gst/oldcore/gstmd5sink.c:
	* gst/oldcore/gstmultifilesrc.c:
	* gst/oldcore/gstpipefilter.c:
	* gst/oldcore/gstshaper.c:
	* gst/oldcore/gststatistics.c:
	* gst/rtp/gstasteriskh263.c:
	* gst/rtp/gstrtpL16depay.c:
	* gst/rtp/gstrtpL16pay.c:
	* gst/rtp/gstrtpamrdepay.c:
	* gst/rtp/gstrtpamrpay.c:
	* gst/rtp/gstrtpdepay.c:
	* gst/rtp/gstrtpgsmpay.c:
	* gst/rtp/gstrtph263pay.c:
	* gst/rtp/gstrtph263pdepay.c:
	* gst/rtp/gstrtph263ppay.c:
	* gst/rtp/gstrtpmp4gpay.c:
	* gst/rtp/gstrtpmp4vdepay.c:
	* gst/rtp/gstrtpmp4vpay.c:
	* gst/rtp/gstrtpmpadepay.c:
	* gst/rtp/gstrtpmpapay.c:
	* gst/rtp/gstrtppcmadepay.c:
	* gst/rtp/gstrtppcmapay.c:
	* gst/rtp/gstrtppcmudepay.c:
	* gst/rtp/gstrtppcmupay.c:
	* gst/rtp/gstrtpspeexdepay.c:
	* gst/rtp/gstrtpspeexpay.c:
	* gst/rtsp/gstrtpdec.c:
	* gst/smpte/gstsmpte.c:
	* gst/videobox/gstvideobox.c:
	* gst/videofilter/gstgamma.c: (gst_gamma_base_init):
	* gst/videofilter/gstvideobalance.c:
	* gst/videofilter/gstvideoflip.c:
	* gst/videofilter/gstvideotemplate.c:
	(gst_videotemplate_base_init):
	* gst/videomixer/videomixer.c:
	* gst/wavenc/gstwavenc.c:
	* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init):
	 better/unified long descriptions
	 Fixed #336602
	 Some cleanups to auparse, don't send multiple newsegments.

2006-03-29  Wim Taymans  <wim@fluendo.com>

	From a patch by: Michael Dominic K. <mdk at mdk dot org dot pl>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_class_init),
	(gst_dvdemux_reset), (gst_dvdemux_src_convert),
	(gst_dvdemux_send_event), (gst_dvdemux_flush), (gst_dvdemux_loop),
	(gst_dvdemux_sink_activate_pull), (gst_dvdemux_change_state):
	* ext/dv/gstdvdemux.h:
	Seek in READY patch. Only works for pull based mode.
	Fixes #323880

2006-03-27  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_flush),
	(gst_gdk_pixbuf_event):
	  Fix two crashers: don't unref the same caps twice, and
	  set pixbuf loader to NULL after freeing it.

2006-03-27  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeexenc.c: (gst_speexenc_class_init),
	(gst_speexenc_finalize), (gst_speexenc_sink_setcaps),
	(gst_speexenc_chain):
	* ext/speex/gstspeexenc.h:
	Don't leak adapter.
	A push *always* takes ownership of the buffer, even on
	errors.
	Small cleanups.

2006-03-26  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad):
	  Create source pad without leaking.

2006-03-24  Wim Taymans  <wim@fluendo.com>

	* ext/flac/gstflacdec.c: (gst_flac_dec_handle_seek_event):
	* ext/flac/gstflacdec.h:
	* ext/flac/gstflacenc.h:
	Spifify a bit.
	Fix deadly lock order error in seeking code, STREAM_LOCK
	cannot be taken within LOCK and the streaming variables are
	protected with the STREAM_LOCK anyway.

2006-03-24  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_index),
	(gst_avi_demux_stream_index), (gst_avi_demux_stream_scan),
	(gst_avi_demux_massage_index), (gst_avi_demux_handle_seek):
	this patch combines the global init_frames with the stream
	init_frames. Rationale being that the global delay should 
	be subtracted from any stream delay.
	Fixes #335858.

2006-03-24  Stefan Kost  <ensonic@users.sf.net>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_init):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_init):
	* gst/smpte/gstsmpte.c: (gst_smpte_init):
	* gst/videomixer/videomixer.c: (gst_videomixer_init):
	use DEBUG_FUNCPTR for collectpads

2006-03-24  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_init), (gst_jpegenc_chain):
	  Don't crash when encoding images where the number of rows isn't
	  a multiple of 2*DCTSIZE. Add some GST_DEBUG_FUNCPTR.

2006-03-23  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/speex/gstspeexdec.c: (speex_dec_change_state):
	* gst/interleave/deinterleave.c: (deinterleave_change_state):
	* gst/interleave/interleave.c: (interleave_change_state):
	* gst/wavenc/gstwavenc.c: (gst_wavenc_change_state):
	  More state change function fixes.

2006-03-23  Wim Taymans  <wim@fluendo.com>

	* ext/esd/esdsink.c: (gst_esdsink_class_init),
	(gst_esdsink_getcaps), (gst_esdsink_open), (gst_esdsink_close),
	(gst_esdsink_prepare), (gst_esdsink_unprepare),
	(gst_esdsink_delay), (gst_esdsink_reset):
	* ext/esd/esdsink.h:
	Fix esd choppy playback by configuring audiosink
	correctly. Fixes #325191

2006-03-23  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_change_state):
	  Make state change function thread-safe.

2006-03-23  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_get_upstream_size),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data):
	  Don't try to read beyond the end of the file just because
	  the header claims a bigger size (like with truncated files).

2006-03-23  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_add_src_pad),
	(gst_wavparse_stream_data), (gst_wavparse_loop):
	* gst/wavparse/gstwavparse.h:
	  Delay source pad creation until we have the first chunk of
	  media data, so the we can examine the data and adjust the
	  caps accordingly if required. This makes playback of .wav
	  files with DTS-declared-as-PCM content work (#313266).

2006-03-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
	Don't attempt typefinding on too-short buffers that have been
	completely trimmed away. (Fixes #330239)

	* gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
	Improve the debug output

2006-03-21  Wim Taymans  <wim@fluendo.com>

	* ext/esd/esdsink.c: (gst_esdsink_class_init), (gst_esdsink_init),
	(gst_esdsink_finalize), (gst_esdsink_getcaps), (gst_esdsink_open),
	(gst_esdsink_close), (gst_esdsink_prepare), (gst_esdsink_write),
	(gst_esdsink_set_property), (gst_esdsink_get_property):
	Some cleanups.
	Reset fd to -1 when we close them.

2006-03-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open):
	the OPTIONS request result is optional so don't
	fail on it.

2006-03-21  Edward Hervey  <edward@fluendo.com>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_reset):
	* gst/id3demux/gstid3demux.c: (gst_id3demux_reset):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_create_sourcepad),
	(gst_wavparse_stream_headers), (gst_wavparse_send_event),
	(gst_wavparse_change_state):
	gcc 4.1 unreferenced pointer fixes.

2006-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek):
	  Fix block alignment calculation. Alignment should be done before
	  adding the byte offset where the data starts (#335231).

2006-03-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/matroska/ebml-write.c: (gst_ebml_write_element_push):
	  Ensure that we set correct caps on buffers that are transferred
	  direct from the input.

2006-03-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/goom/filters.c: (zoomFilterDestroy):
	* gst/goom/goom_core.c: (goom_close):
	  Free filter data when cleaning up. (Fixes: #334995)

2006-03-17  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Don't compile udp and rtsp plugins on win32 (mingw) or other
	  systems that don't have <sys/socket.h> for some reason (#316203).

2006-03-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_bus_reset),
	(gst_dv1394src_discover_avc_node), (gst_dv1394src_start):
	* ext/raw1394/gstdv1394src.h:
	  Change bus reset handler so it reports useful information such as
          whether the device being used connected or disconnected

2006-03-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c:
	(parse_relative_volume_adjustment_two):
	  We only care about gain and peak data for the master volume.

2006-03-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
	(parse_id_string), (parse_unique_file_identifier),
	(parse_relative_volume_adjustment_two), (id3v2_tag_to_taglist):
	  Read replay gain tags (#323721).

2006-03-15  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Bump requirements to gst-plugins-base CVS because
	  of buggy gst_tag_from_id3_user_tag() in 0.10.5.

2006-03-15  Philippe Kalaf  <philippe.kalaf at collabora.co.uk>

	* rtp/gst/gstrtppcmadepay.c:
	Fixed one of the caps in the code from mulaw to alaw.

2006-03-15  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
	  Ensure that we set caps on the buffers we pass.

	* gst/id3demux/gstid3demux.c: (gst_id3demux_chain),
	(gst_id3demux_sink_activate):
	  Ensure that we set caps on the buffers we pass.

	  Use STREAM, TYPE_NOT_FOUND as the error class when
	  typefinding fails.

2006-03-15  Edward Hervey  <edward@fluendo.com>

	* ext/cairo/gsttextoverlay.c: (gst_text_overlay_init):
	* ext/dv/gstdvdemux.c: (gst_dvdemux_init), (gst_dvdemux_add_pads):
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_init):
	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init),
	(gst_jpeg_dec_setcaps):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_init):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_init):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_init):
	* ext/libmng/gstmngdec.c: (gst_mngdec_init),
	(gst_mngdec_src_getcaps):
	* ext/libpng/gstpngdec.c: (gst_pngdec_init),
	(gst_pngdec_caps_create_and_set):
	* ext/libpng/gstpngenc.c: (gst_pngenc_init):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_init):
	* ext/speex/gstspeexdec.c: (gst_speex_dec_init):
	* gst/alpha/gstalpha.c: (gst_alpha_init):
	* gst/auparse/gstauparse.c: (gst_au_parse_init):
	* gst/avi/gstavidemux.c: (gst_avi_demux_init),
	(gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream):
	* gst/cutter/gstcutter.c: (gst_cutter_init):
	* gst/debug/efence.c: (gst_efence_init), (gst_efence_getrange),
	(gst_efence_checkgetrange):
	* gst/debug/negotiation.c: (gst_negotiation_init):
	* gst/flx/gstflxdec.c: (gst_flxdec_init):
	* gst/goom/gstgoom.c: (gst_goom_init):
	* gst/rtp/gstasteriskh263.c: (gst_asteriskh263_init):
	* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16depay_init):
	* gst/rtp/gstrtpL16pay.c: (gst_rtpL16pay_init):
	* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_init):
	* gst/rtp/gstrtpdepay.c: (gst_rtp_depay_init):
	* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_init):
	* gst/rtsp/gstrtpdec.c: (gst_rtpdec_init):
	* gst/smpte/gstsmpte.c: (gst_smpte_init):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
	(gst_wavparse_create_sourcepad):
	Fix memleak with gst_static_pad_template_get().
	This uses gst_pad_new_from_static_template() instead.
	Fixes #333512

2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Bump -base requirement to 0.10.5 for gst_tag_from_id3_user_tag(),
	  used by id3demux.

	* gst/id3demux/gstid3demux.c: (plugin_init):
	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
	(parse_user_text_identification_frame),
	(parse_unique_file_identifier):
	  Add support for UFID and TXXX frames and extract musicbrainz tags.

2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
	  Catch short reads, like they might happen with truncated
	  files (see #305279); remove unnecessary indentation.

2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_invert):
	  Fix DIB image inversion for pictures with a
	  depth != 8 (#305279).

2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_class_init),
	(gst_jpeg_dec_chain), (gst_jpeg_dec_change_state):
	* ext/jpeg/gstjpegdec.h:
	  Fix durations on outgoing buffers after seeking
	  in MJPEG files (#334083); some minor clean-ups.

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_reset),
	(gst_wavparse_change_state):
	Implement seek in READY (re-fixes #327658)

2006-03-13  Wim Taymans  <wim@fluendo.com>

	* ext/cairo/gsttextoverlay.c: (gst_text_overlay_setcaps):
	* ext/esd/esdmon.c: (gst_esdmon_get):
	* ext/flac/gstflactag.c: (gst_flac_tag_chain):
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_setcaps),
	(gst_gdk_pixbuf_sink_getcaps):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_getcaps),
	(gst_jpegenc_setcaps):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_getcaps),
	(gst_smokeenc_setcaps):
	* ext/libmng/gstmngdec.c: (gst_mngdec_sinklink),
	(gst_mngdec_src_getcaps):
	* ext/libmng/gstmngenc.c: (gst_mngenc_sinklink),
	(gst_mngenc_chain):
	* ext/libpng/gstpngenc.c: (gst_pngenc_setcaps):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_srclink):
	* ext/speex/gstspeexdec.c: (speex_dec_convert),
	(speex_dec_src_event), (speex_dec_chain):
	* gst/avi/gstavimux.c: (gst_avimux_vidsinkconnect),
	(gst_avimux_audsinkconnect), (gst_avimux_handle_event):
	* gst/debug/negotiation.c: (gst_negotiation_getcaps),
	(gst_negotiation_pad_link), (gst_negotiation_chain):
	* gst/flx/gstflxdec.c: (gst_flxdec_src_query_handler),
	(gst_flxdec_chain):
	* gst/interleave/deinterleave.c: (deinterleave_sink_link),
	(deinterleave_chain):
	* gst/law/mulaw-encode.c: (mulawenc_setcaps):
	* gst/median/gstmedian.c: (gst_median_link):
	* gst/monoscope/gstmonoscope.c: (gst_monoscope_srcconnect),
	(gst_monoscope_chain):
	* gst/rtp/gstrtpL16pay.c: (gst_rtpL16pay_sinkconnect):
	* gst/wavenc/gstwavenc.c: (gst_wavenc_sink_setcaps):
	* sys/osxaudio/gstosxaudiosink.c: (gst_osxaudiosink_chain):
	* sys/osxaudio/gstosxaudiosrc.c: (gst_osxaudiosrc_get):
	close #333784 unref the result of gst_pad_get_parent()
	by: Christophe Fergeau.

2006-03-09  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_handle_sink_event),
	(gst_dvdemux_convert_segment), (gst_dvdemux_demux_frame):
	Handle events in push mode better, can now do non-flushing
	seeks in push mode as well.

2006-03-07  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstdynudpsink.c: (gst_dynudpsink_class_init):
	Applied patch from Kai Vehmanen, fixes #333624.

2006-03-06  Julien MOUTTE  <julien@moutte.net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_caps_create_and_set): 
	Implement paletted and grayscale png files handling.
	(#150363).

2006-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/speex/gstspeexenc.c: (gst_speexenc_set_header_on_caps),
	(gst_speexenc_chain):
	  fix a tag list assert
	  follow gst-plugins-base/ext/ogg/README; set OFFSET
	  and OFFSET_END.  Muxes correctly with gst-plugins-base
	  > 0.9.3

2006-03-04  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/Makefile.am:
	* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad),
	(gst_id3demux_chain), (gst_id3demux_sink_activate):
	  Use new typefind helper functions here as well, and
	  do typefinding in pull-mode if upstream supports that.

2006-03-04  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/sunaudio/gstsunaudiomixerctrl.c:
	(gst_sunaudiomixer_ctrl_get_volume),
	(gst_sunaudiomixer_ctrl_set_volume):
	* sys/sunaudio/gstsunaudiomixertrack.c:
	(gst_sunaudiomixer_track_new):
	  Remove unused variables, breaks build from CVS
	  with -Werror (#333392, patch by: Benjamin Pineau)

2006-03-03  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	Added wavparse docs.

	* gst/wavparse/gstwavparse.c: (gst_wavparse_class_init),
	(gst_wavparse_reset), (gst_wavparse_init),
	(gst_wavparse_create_sourcepad), (gst_wavparse_parse_file_header),
	(gst_wavparse_stream_init), (gst_wavparse_perform_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_send_event),
	(gst_wavparse_stream_data), (gst_wavparse_loop),
	(gst_wavparse_srcpad_event), (gst_wavparse_sink_activate_pull),
	(gst_wavparse_change_state):
	* gst/wavparse/gstwavparse.h:
	Implement seek in READY (fixes #327658)
	Added docs and did some cleanups.

2006-03-03  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream),
	(gst_avi_demux_calculate_durations_from_index),
	(gst_avi_demux_stream_header):
	* gst/avi/gstavidemux.h:
	  If we have an index, use a duration based on the index instead
	  of blindly trusting the information in the stream headers
	  (fixes #331817).

2006-03-03  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	Added smoke and jpeg to the docs.

	* ext/jpeg/Makefile.am:
	* ext/jpeg/gstjpeg.c: (plugin_init):
	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain):
	* ext/jpeg/gstjpegenc.h:
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_init),
	(gst_smokedec_chain):
	* ext/jpeg/gstsmokedec.h:
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
	* ext/jpeg/gstsmokeenc.h:
	* ext/jpeg/smokecodec.h:
	Port smokedec (fixes #331905).
	Added some docs.
	Some cleanups.

2006-03-03  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	Added videobalance and videoflip to the docs.

	* gst/videofilter/Makefile.am:
	* gst/videofilter/gstvideobalance.c:
	(gst_video_balance_update_tables_planar411),
	(gst_video_balance_is_passthrough),
	(gst_video_balance_update_properties), (oil_tablelookup_u8),
	(gst_video_balance_planar411_ip), (gst_video_balance_set_caps),
	(gst_video_balance_transform_ip), (gst_video_balance_base_init),
	(gst_video_balance_finalize), (gst_video_balance_class_init),
	(gst_video_balance_init), (gst_video_balance_interface_supported),
	(gst_video_balance_interface_init),
	(gst_video_balance_colorbalance_list_channels),
	(gst_video_balance_colorbalance_set_value),
	(gst_video_balance_colorbalance_get_value),
	(gst_video_balance_colorbalance_init),
	(gst_video_balance_set_property), (gst_video_balance_get_property),
	(gst_video_balance_get_type), (plugin_init):
	* gst/videofilter/gstvideobalance.h:
	Ported to 0.10. (Fixes #326160)
	Added docs.

	* gst/videofilter/gstvideoflip.c:
	* gst/videofilter/gstvideoflip.h:
	Added docs.

2006-03-02  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Bump requirements to current core and -base CVS
	  (core for new typefind helper API, and -base for the
	  WAVFORMATEX support that was added to libgstriff and
	  is needed by wavparse).
	
	* gst/apetag/Makefile.am:
	* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain),
	(gst_tag_demux_sink_activate):
	  Use new typefind helpers for typefinding instead of our
	  home-grown stuff; also, do typefinding in pull-mode if
	  upstream supports that.

2006-02-28 Jürg Billeter  <j (at) bitron.ch>

	Reviewed by: Christian Schaller <christian@fluendo.com>

	This patch fixes bug: 329107

	This Changelog entry is for a commit done on February 17

	* ext/gconf/gconf.c
	* ext/gconf/gconf.h
	* ext/gconf/gstgconfaudiosink.c
	* ext/gconf/gstgconfaudiosink.h
	* gconf/gstreamer.schemas.in

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
	(gst_wavparse_pad_convert), (gst_wavparse_srcpad_event),
	(gst_wavparse_sink_activate), (gst_wavparse_sink_activate_pull):
	Use DEBUG_OBJECT more.

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	Added dvdec and dvdemux to docs.

	* ext/dv/gstdvdec.c: (gst_dvdec_base_init), (gst_dvdec_chain):
	Added docs.
	Check frame sizes so we don't crash when don't have enough
	data.
	Send nice error messages on error.

	* ext/dv/gstdvdemux.c: (gst_dvdemux_base_init),
	(gst_dvdemux_class_init), (gst_dvdemux_init),
	(gst_dvdemux_finalize), (gst_dvdemux_reset),
	(gst_dvdemux_src_convert), (gst_dvdemux_sink_convert),
	(gst_dvdemux_src_query), (gst_dvdemux_sink_query),
	(gst_dvdemux_push_event), (gst_dvdemux_handle_sink_event),
	(gst_dvdemux_convert_src_pair), (gst_dvdemux_convert_sink_pair),
	(gst_dvdemux_convert_src_to_sink), (gst_dvdemux_handle_push_seek),
	(gst_dvdemux_do_seek), (gst_dvdemux_handle_pull_seek),
	(gst_dvdemux_handle_src_event), (gst_dvdemux_demux_audio),
	(gst_dvdemux_demux_video), (gst_dvdemux_demux_frame),
	(gst_dvdemux_flush), (gst_dvdemux_chain), (gst_dvdemux_loop),
	(gst_dvdemux_sink_activate_push), (gst_dvdemux_sink_activate_pull),
	(gst_dvdemux_sink_activate), (gst_dvdemux_change_state):
	* ext/dv/gstdvdemux.h:
	Added docs.
	Implement pull mode.
	Fix memleaks.
	Reduce memcpy for the video demuxing.

2006-02-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/annodex/gstcmmldec.c: (gst_cmml_dec_sink_event),
	(gst_cmml_dec_new_buffer), (gst_cmml_dec_parse_preamble),
	(gst_cmml_dec_parse_head), (gst_cmml_dec_push_clip):
	* ext/annodex/gstcmmlparser.c: (gst_cmml_parser_parse_chunk):
	  Add a little extra debug. Make the decoder not return NOT_LINKED,
	  as we want to continue decoding all CMML and emitting tags.

2006-02-27  Michael Smith  <msmith@fluendo.com>

	* ext/annodex/gstskeltag.c:
	* ext/annodex/gstskeltag.h:
	  Deleted; these files aren't used any more either.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* ext/Makefile.am: Fix dist-check.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* ext/annodex/gstcmmlenc.c: (gst_cmml_enc_push_clip): Fix another
	memleak.

2006-02-25  Alessandro Decina <alessandro@nnva.org>

	* ext/annodex/Makefile.am:
	* ext/annodex/gstannodex.c:
	* ext/annodex/gstcmmldec.c:
	* ext/annodex/gstcmmlenc.c:
	* ext/annodex/gstcmmlparser.c:
	* ext/annodex/gstcmmlparser.h:
	* ext/annodex/gstcmmlutils.c:
	* tests/check/elements/cmmldec.c:
	* tests/check/elements/cmmlenc.c:
	  Fix a memleak in gst_cmml_track_list_add_clip.
	  Handle overflows in clip's start and end times.
	  Add the "encoded" parameter to cmmldec and cmmlenc caps.
	  Do not parse junk at the end of a CMML preamble buffer.
	  Register a libxml error handler to not print stuff on stderr.
	  Check for bad clip start and end times in the testsuites.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* ext/annodex/gstcmmldec.c: (gst_cmml_dec_class_init),
	(gst_cmml_dec_finalize), (gst_cmml_dec_change_state):
	* ext/annodex/gstcmmlenc.c: (gst_cmml_enc_class_init),
	(gst_cmml_enc_finalize), (gst_cmml_enc_change_state):
	* ext/annodex/gstcmmlutils.c: (gst_cmml_track_list_destroy): Fix
	possible memleaks.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* tests/check/Makefile.am:
	* tests/check/elements/cmmldec.c:
	* tests/check/elements/cmmlenc.c: Fix tests so that they use
	the plugins-base tags.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* ext/Makefile.am: Re-enable module.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* tests/check/Makefile.am: Forgot to remove that test.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* ext/annodex/Makefile.am:
	* ext/annodex/gstannodex.c: (plugin_init):
	* ext/annodex/gstcmmldec.c:
	* ext/annodex/gstskeldec.c:
	* ext/annodex/gstskeldec.h:
	* tests/check/Makefile.am:
	* tests/check/elements/skeldec.c: Try to fix Annodex plugin.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* tests/check/Makefile.am: Disable those checks as well.

2006-02-24  Julien MOUTTE  <julien@moutte.net>

	* ext/Makefile.am: Disable annodex for now until we figure out
	how to make it build.
	* ext/gdk_pixbuf/Makefile.am: Note for Thomas :
	Add a rule to your checklist : "please try to at least build 
	what you are going to commit into -good, or if you are too lazy
	to do that, please check that the buildbots are not crying because
	of your commit."

2006-02-24  Edgard Lima  <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/gdk_pixbuf/Makefile.am:
	* ext/gdk_pixbuf/gstgdkpixbuf.c:
	* ext/gdk_pixbuf/gstgdkpixbuf.h:
	* ext/gdk_pixbuf/pixbufscale.c:
	* ext/gdk_pixbuf/pixbufscale.h:
	  Gdkpixbuf ported from 0.8 to 0.10 by
	  Renato Filho <renato.filho@indt.org.br>.
	  gst_loader and gdkpixbufanimation still need port.

2006-02-24  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* ext/Makefile.am:
	* ext/annodex/Makefile.am:
	* ext/annodex/gstannodex.c:
	* ext/annodex/gstannodex.h:
	* ext/annodex/gstcmmldec.c:
	* ext/annodex/gstcmmldec.h:
	* ext/annodex/gstcmmlenc.c:
	* ext/annodex/gstcmmlenc.h:
	* ext/annodex/gstcmmlparser.c:
	* ext/annodex/gstcmmlparser.h:
	* ext/annodex/gstcmmltag.c:
	* ext/annodex/gstcmmltag.h:
	* ext/annodex/gstcmmlutils.c:
	* ext/annodex/gstcmmlutils.h:
	* ext/annodex/gstskeldec.c:
	* ext/annodex/gstskeldec.h:
	* ext/annodex/gstskeltag.c:
	* ext/annodex/gstskeltag.h:
	* tests/check/Makefile.am:
	* tests/check/elements/cmmldec.c:
	* tests/check/elements/cmmlenc.c:
	* tests/check/elements/skeldec.c:
	  Add Annodex elements from Alessendro Decina: skeleton and CMML. 
	  Includes tests & docs, oh my! Passes Thomas's -good checklist
	  entirely. Wow.

2006-02-24  Michael Smith  <msmith@fluendo.com>

	* autogen.sh:
	  Check for automake 1.9 as well.

2006-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacenc.c:
	  Change min. sample rate to 8kHz to match flacdec's.
	  
2006-02-23  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cdio/Makefile.am:
	  Add GST_BASE_CFLAGS and GST_BASE_LIBS (seems to be
	  required for Cygwin, see #317048)

	* gst/rtp/gstasteriskh263.c:
	  Cygwin has includes for both the unix network socket API
	  and the windows API, but only one can be included, so fix
	  includes to only use one or the other, prefering the unxi
	  one (#317048).

2006-02-23  Philippe Kalaf  <philippe.kalaf at collabora.co.uk>

	* rtp/gst/gstrtppcmadepay.c:
	* rtp/gst/gstrtppcmadepay.h:
	* rtp/gst/gstgstrtppcmapay.c:
	* rtp/gst/gstgstrtppcmapay.h:
	* rtp/gst/gstrtppcmudepay.c:
	* rtp/gst/gstrtppcmudepay.h:
	* rtp/gst/gstrtppcmupay.c:
	* rtp/gst/gstrtppcmupay.h:
	* rtp/gst/Makefile.am:
	* rtp/gst/gstrtp.c:
	* rtp/gst/README:
	Separated the G711 payloaders/depayloaders into separate elements for
	mulaw/alaw. Also removed the old g711 payloaders/depayloaders.

2006-02-22  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_base_init), (gst_dvdec_init),
	(gst_dvdec_change_state):
	* ext/dv/gstdvdec.h:
	* ext/dv/gstdvdemux.c: (gst_dvdemux_base_init), (gst_dvdemux_init),
	(gst_dvdemux_src_convert), (gst_dvdemux_sink_convert),
	(gst_dvdemux_src_query), (gst_dvdemux_sink_query),
	(gst_dvdemux_handle_sink_event), (gst_dvdemux_demux_frame),
	(gst_dvdemux_flush), (gst_dvdemux_chain),
	(gst_dvdemux_change_state):
	* ext/dv/gstdvdemux.h:
	Ueber spiffify some more, added debug category.
	Use _scale.
	Use segments, respect playback rate from newsegment.
	Fix refcount issue.

2006-02-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* 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  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_src_convert),
	(gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event),
	(gst_avi_demux_parse_file_header), (gst_avi_demux_stream_init),
	(gst_avi_demux_parse_avih), (gst_avi_demux_parse_superindex),
	(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
	(gst_avi_demux_stream_header), (gst_avi_demux_change_state):
	Use scaling code for added precission and more correct stop
	position in case scale==0.

2006-02-19  Wim Taymans  <wim@fluendo.com>

	* gst/flx/gstflxdec.c: (gst_flxdec_src_query_handler),
	(gst_flxdec_chain):
	* gst/flx/gstflxdec.h:
	Implement DURATION query.

2006-02-19  Wim Taymans  <wim@fluendo.com>

	* gst/flx/flx_color.h:
	* gst/flx/flx_fmt.h:
	* gst/flx/gstflxdec.c: (gst_flxdec_init),
	(gst_flxdec_src_query_handler), (flx_decode_color),
	(gst_flxdec_chain):
	* gst/flx/gstflxdec.h:
	Set MALLOCDATA for the temp buffers so we don't leak.
	Some debug cleanups.
	Consume all data in the adapter before leaving the chain
	function. Fixes #330678.

2006-02-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3tags.c: (id3demux_id3v2_frames_to_tag_list):
	* gst/id3demux/id3v2frames.c: (id3v2_genre_fields_to_taglist):
	 Handle 0 data size in otherwise valid frames.
	 Handle numeric strings in 2.4.0 even when not in parentheses 

2006-02-18  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_subtitle_caps),
	(gst_matroska_demux_plugin_init):
	* gst/matroska/matroska-ids.h:
	  Recognise SSA/ASS and USF subtitle formats and
	  set proper caps when they are found.

2006-02-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_decode_direct),
	(gst_jpeg_dec_chain):
	  Fix invalid memory access for some odd-sized images
	  (see image contained in quicktime stream in #327083);
	  use g_malloc() instead of g_alloca().

2006-02-17  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_chain):
	Patch from Sebastien Cote, fixes #319884

2006-02-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cdio/gstcdio.c: (plugin_init):
	  Init debug category (#331253).

2006-02-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
	  Pass extra_data to gst_riff_create_audio_caps(), so that
	  WAVEFORMATEX stuff works. Post audio codec name and post
	  it as taglist on the bus. Allow up to 8 channesl for raw
	  PCM in the source pad template caps.

2006-02-16  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init),
	(gst_multipart_demux_class_init), (gst_multipart_demux_init),
	(gst_multipart_demux_finalize), (gst_multipart_find_pad_by_mime),
	(gst_multipart_demux_chain), (gst_multipart_demux_change_state),
	(gst_multipart_set_property), (gst_multipart_get_property):
	Applied #318663. Gives quite a few false positives in
	autoscan mode, but it's better than nothing. Not closing yet.

2006-02-16  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.args:
	* docs/plugins/inspect/plugin-udp.xml:
	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init), (gst_udpsrc_init),
	(gst_udpsrc_start):
	Update documentation.
	Fix args.

2006-02-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3tags.c: (id3demux_id3v2_frames_to_tag_list):
	ID3 2.3.0 used synch-safe integers for the tag size, but not for the
	frame size. (Fixes #331368)

2006-02-16  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/README:
	Updated README.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_get_type),
	(gst_rtspsrc_class_init), (gst_rtspsrc_set_property),
	(gst_rtspsrc_get_property), (gst_rtspsrc_stream_setup_rtp):
	* gst/rtsp/gstrtspsrc.h:
	Make sure the RTP port is an even port an try to allocate 
	another if not.
	Added retry property to control max retries for port allocation.
	Make sure RTCP port is RTP port+1.
	Cleanup when port allocation fails.
	Fixes #319183.
	
2006-02-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/alpha/gstalpha.c: (gst_alpha_change_state):
	  Don't ignore return value of the parent class's state
	  change function (#331385, patch by: Wouter Paesen).

2006-02-15  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	* ext/Makefile.am:
	* ext/hal/Makefile.am:
	* ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init),
	(gst_hal_audio_sink_class_init), (gst_hal_audio_sink_reset),
	(gst_hal_audio_sink_init), (gst_hal_audio_sink_dispose),
	(do_toggle_element), (gst_hal_audio_sink_set_property),
	(gst_hal_audio_sink_get_property),
	(gst_hal_audio_sink_change_state):
	* ext/hal/gsthalaudiosink.h:
	* ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init),
	(gst_hal_audio_src_class_init), (gst_hal_audio_src_reset),
	(gst_hal_audio_src_init), (gst_hal_audio_src_dispose),
	(do_toggle_element), (gst_hal_audio_src_set_property),
	(gst_hal_audio_src_get_property), (gst_hal_audio_src_change_state):
	* ext/hal/gsthalaudiosrc.h:
	* ext/hal/gsthalelements.c: (plugin_init):
	* ext/hal/gsthalelements.h:
	* ext/hal/hal.c: (gst_hal_get_string),
	(gst_hal_render_bin_from_udi), (gst_hal_get_audio_sink),
	(gst_hal_get_audio_src):
	* ext/hal/hal.h:
	Add HAL sound device wrapper plugins. Closes #329106

2006-02-15  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event):
	Add comment in a fultile attempt to stop the copy-and-paste 
	paradigm leading to duplication of bad code.

	* gst/rtsp/rtsptransport.c: (rtsp_transport_parse):
	Mime parameters have to be checked case insensitive

2006-02-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_sync_streams):
	  Advance stream time for lagging subtitle streams by sending
	  newsegment events with the update flag set.

2006-02-14  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_header):
	There can be bogus data before the hdrl LIST tag in the RIFF header.
	It's hard to say if it's not respecting the AVI specifications or not,
	but since Google Video is producing AVIs like that and the other player
	don't seem to complain, I guess we should do the same.

2006-02-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (parse_insert_string_field),
	(parse_split_strings):
	Add more validation to ensure that a char encoding conversion
	produced a valid UTF-8 string.

2006-02-13  Mark Nauwelaerts <manauw@skynet.be>

	Reviewed by: Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
	Properly handle end of segment. Closes #330885.

2006-02-13  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4gpay.h:
	For got to commit this one.

2006-02-12  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_class_init),
	(gst_rtp_mp4g_pay_init), (gst_rtp_mp4g_pay_parse_audio_config),
	(gst_rtp_mp4g_pay_parse_video_config), (gst_rtp_mp4g_pay_new_caps),
	(gst_rtp_mp4g_pay_setcaps), (gst_rtp_mp4g_pay_flush):
	* gst/rtp/gstrtpmp4gpay.h:
	Make more things work.
	Handle ACC config strings.

2006-02-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_handle_buffer):
	  set timestamps if no incoming timestamps set

2006-02-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size),
	(gst_tag_demux_do_typefind):
	  ... and fix the very same leaks in GstTagDemux.

2006-02-11  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size),
	(gst_id3demux_do_typefind):
	Fix a couple of mem leaks. (Patch by Jonathan Matthew
	<jonathan at kaolin dot wh9 dot net>)

2006-02-10  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_setcaps):
	First set options, then set caps or else the baseclass
	will not know about the options, duh.

2006-02-10  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_class_init),
	(gst_rtp_mp4v_pay_setcaps):
	Don't waste time looking for a config string if we have codec_info
	on the incomming caps.

2006-02-10  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/README:
	Say something about case-sensitivity of caps vs mime-attributes.

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_class_init),
	(gst_rtp_amr_pay_handle_buffer):
	* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_get_type),
	(gst_rtp_mp4g_pay_base_init), (gst_rtp_mp4g_pay_class_init),
	(gst_rtp_mp4g_pay_init), (gst_rtp_mp4g_pay_finalize),
	(gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps),
	(gst_rtp_mp4g_pay_flush), (gst_rtp_mp4g_pay_handle_buffer),
	(gst_rtp_mp4g_pay_set_property), (gst_rtp_mp4g_pay_get_property),
	(gst_rtp_mp4g_pay_plugin_init):
	* gst/rtp/gstrtpmp4gpay.h:
	Added beginnings of mpeg4-generic payloader (RFC 3640)

2006-02-09  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/Makefile.am:
	* gst/rtsp/gstrtpdec.c: (gst_rtpdec_get_type),
	(gst_rtpdec_class_init), (gst_rtpdec_init), (gst_rtpdec_getcaps),
	(gst_rtpdec_chain_rtp), (gst_rtpdec_chain_rtcp),
	(gst_rtpdec_set_property), (gst_rtpdec_get_property),
	(gst_rtpdec_change_state):
	* gst/rtsp/gstrtpdec.h:
	* gst/rtsp/gstrtsp.c: (plugin_init):
	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport):
	* gst/rtsp/rtspconnection.c: (read_body),
	(rtsp_connection_receive):
	* gst/rtsp/rtspmessage.c: (rtsp_message_dump):
	Resurected rtpdec to make rtspsrc happy again.
	Skip attributes from the session id.
	Don't crash when dumping a message with an empty body.


2006-02-09  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_chain):
	Added more meaningfull warnings when something goes wrong.
	Clear F bit on outgoing AMR packets.

	* gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_class_init),
	(gst_rtp_amr_pay_handle_buffer):
	Added debugging category
	Support payloading of multiple AMR frames.

	* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_depay_data):
	Added some debugging.

2006-02-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Back to CVS

=== release 0.10.2 ===

2006-02-09  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.2, "Papa was a rolling stone"

2006-02-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Bump core and plugins-base requirement to 0.10.2.2
	  for API additions (and 1 migration of gst_bin_find_unconnected_pad)

2006-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflac.c: (plugin_init):
	* ext/speex/gstspeex.c: (plugin_init):
	  Register musicbrainz tags.

2006-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gconf/gconf.h:
	  Remove declaration of function that no longer exists.

2006-02-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/shout2/gstshout2.c: (gst_shout2send_render),
	(gst_shout2send_setcaps), (gst_shout2send_change_state):
	Make shout2 work for non ogg streams

2006-02-06  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_class_init),
	(gst_multiudpsink_render), (gst_multiudpsink_get_property),
	(gst_multiudpsink_init_send), (gst_multiudpsink_add),
	(gst_multiudpsink_remove), (gst_multiudpsink_clear),
	(gst_multiudpsink_get_stats), (gst_multiudpsink_change_state):
	* gst/udp/gstmultiudpsink.h:
	Updated docs.
	Added properties bytes-served, bytes_to_serve.
	Post proper error messages,
	Emit client added signal too.

2006-02-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_class_init),
	(gst_multiudpsink_get_stats):
	  adding docs for multiudpsink

2006-02-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/level/gstlevel.c: (gst_level_transform_ip):
	  peak below decay is not necessarily an error, so don't ERROR log

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/ebml-write.c: (gst_ebml_write_reset),
	(gst_ebml_write_flush_cache), (gst_ebml_write_element_push),
	(gst_ebml_write_seek):
	* gst/matroska/ebml-write.h:
	  Make sure we send a newsegment event in BYTES format
	  before sending buffers (#328531).

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_src_query),
	(gst_dvdemux_sink_query):
	* ext/flac/gstflacdec.c: (gst_flac_dec_src_query):
	* ext/speex/gstspeexdec.c: (speex_get_query_types),
	(speex_dec_src_query):
	* ext/speex/gstspeexenc.c: (gst_speexenc_src_query),
	(gst_speexenc_sink_query):
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_get_src_query_types),
	(gst_matroska_demux_handle_src_query):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_get_query_types),
	(gst_wavparse_pad_query):
	  Pass unhandled queries upstream instead of just dropping
	  them (#326446). Update query type arrays here and there.

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/elements/matroskamux.c: (setup_src_pad):
	  Collectpads in core got changed and now also holds a
	  reference to any pad that is part of it. Fix refcount
	  checks in test case accordingly.

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/gstapedemux.h:
	  Fix include, for now GstTagDemux is in the apetag dir.

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/inspect/plugin-cdio.xml:
	  Add cdio plugin to docs.

	* ext/cdio/gstcdiocddasrc.c:
	  Add gtk-doc blurb.

	* ext/cdio/gstcdio.c:
	  The plugin is called 'cdio' not 'cddio'.

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	* docs/plugins/inspect/plugin-apetag.xml:
	* gst/apetag/Makefile.am:
	* gst/apetag/gstapedemux.c:
	* gst/apetag/gstapedemux.h:
	* gst/apetag/gsttagdemux.c:
	* gst/apetag/gsttagdemux.h:
	  Add APE tag demuxer (#325649).

2006-02-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gconf/gconf.c: (gst_gconf_get_default_audio_sink),
	(gst_gconf_get_default_video_sink),
	(gst_gconf_get_default_audio_src),
	(gst_gconf_get_default_video_src):
	* ext/gconf/gconf.h:
	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_reset),
	(gst_gconf_audio_sink_init), (gst_gconf_audio_sink_dispose),
	(do_toggle_element):
	* ext/gconf/gstgconfaudiosink.h:
	* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_reset),
	(gst_gconf_audio_src_init), (gst_gconf_audio_src_dispose),
	(do_toggle_element):
	* ext/gconf/gstgconfaudiosrc.h:
	* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_reset),
	(gst_gconf_video_sink_init), (gst_gconf_video_sink_dispose),
	(do_toggle_element):
	* ext/gconf/gstgconfvideosink.h:
	* ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_reset),
	(gst_gconf_video_src_init), (gst_gconf_video_src_dispose),
	(do_toggle_element):
	* ext/gconf/gstgconfvideosrc.h:
	  Ignore changing the GConf key to "". Ignore GConf key updates
	  that don't actually change the string.
	  For now, ignore the GConf key when the state is > READY, as
	  it breaks streaming. Sometime it will be nice to bring the
	  new sink online even mid-stream, by sending NEWSEGMENT info
	  and possibly prerolling.
	  (Fixes #326736)

2006-02-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/goom/filters.c: (zoomFilterNew), (calculatePXandPY),
	(setPixelRGB), (setPixelRGB_), (getPixelRGB), (getPixelRGB_),
	(zoomFilterSetResolution), (zoomFilterDestroy),
	(zoomFilterFastRGB), (pointFilter):
	* gst/goom/filters.h:
	* gst/goom/goom_core.c: (goom_init), (goom_set_resolution),
	(goom_update), (goom_close):
	* gst/goom/goom_core.h:
	* gst/goom/goom_tools.h:
	* gst/goom/graphic.c:
	* gst/goom/gstgoom.c: (gst_goom_class_init), (gst_goom_init),
	(gst_goom_dispose), (gst_goom_src_setcaps), (gst_goom_chain):
	* gst/goom/gstgoom.h:
	* gst/goom/lines.c: (goom_lines):
	* gst/goom/lines.h:
	  Make goom reentrant by moving all important static variables
	  into instance structures.
	  (Fixes #329181)

2006-02-04  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
	(gst_avi_demux_all_source_pads_unlinked),
	(gst_avi_demux_process_next_entry):
	* gst/avi/gstavidemux.h:
	  Third attempt, use gst_pad_is_linked() this time.

2006-02-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
	(parse_split_strings):
	Adjust for data length indicators when parsing (Fixes #329810)
	Fix stupid bug parsing UTF-8 tag text.
	Output tag strings with multiple fields as multiple tags, so the
	app gets all the data.

2006-02-03  Edgard Lima <edgard.lima@indt.org.br>

	* ext/flac/gstflacenc.c:
	Fixed a bug add in last commit, where no event is send. Thanks Tim to
	show me.
	
2006-02-03  Edgard Lima <edgard.lima@indt.org.br>

	* ext/flac/gstflacenc.c:
	* gst/matroska/ebml-read.c:
	Just make it compile with --disable-gst-debug.

2006-02-03  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (parse_text_identification_frame),
	(id3v2_tag_to_taglist), (id3v2_genre_string_to_taglist),
	(id3v2_genre_fields_to_taglist):
	  Never output a tag with a null contents string.

2006-02-02  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_all_source_pads_unlinked):
	  Only pause if all pads are unlinked AND we've tried to send data
	  on all of them at least once.

2006-02-02  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_all_source_pads_unlinked),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_loop):
	  Make loop function/task pause itself when all source pads are
	  unlinked.

2006-02-02  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/gconf/gconf.c: (gst_gconf_render_bin_from_key):
	  Use new functions from core to render a bin from a
	  string. Fixes build. Up requirements to core CVS.

2006-02-01  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/auparse/gstauparse.c: (gst_au_parse_chain):
	  Don't push buffers into the adapter that we are going to
	  push downstream again without framing anyway. Also, the
	  adaptor takes ownership of buffers put into it (fixes
	  auparse pushing invalid buffers for .au files with
	  ADPCM contents). Finally, set caps on all outgoing buffers.

2006-01-31  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/gstid3demux.c: (gst_id3demux_chain),
	(gst_id3demux_read_id3v1), (gst_id3demux_sink_activate),
	(gst_id3demux_send_tag_event):
	* gst/id3demux/id3tags.c: (id3demux_read_id3v1_tag):
	Someone should kick my butt. Remove ID3v1 tags from the end of the
	file.

	Improve error messages. Send the TAG message as soon as we complete
	typefinding, instead of waiting until we send the first buffer.
	Downstream tag event is still sent before the first buffer.

2006-01-27  Jan Gerber  <j@bootlab.org>

	Reviewed by: Andy Wingo <wingo@pobox.com>

	* ext/dv/gstdvdec.c (gst_dvdec_change_state):
	* ext/dv/gstdvdemux.c (gst_dvdemux_change_state):
	Call dv_set_error_log (dv_decoder_t *, NULL); after dv_decoder_new
	to not have warings flooding stderr. this is the suggested way
	also used in dvgrab and kino. (#328336)

2006-01-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/oss/gstosssink.c: (gst_oss_sink_class_init),
	(gst_oss_sink_init), (gst_oss_sink_finalise):
	  Free the device name string when finalised.

2006-01-25  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/id3demux/gstid3demux.c: (gst_id3demux_remove_srcpad):
	  Don't put function calls in g_return_if_fail() statements,
	  or they'll be replaced with NOOPs if someone compiles with
	  G_DISABLE_CHECKS defined.
	  
2006-01-25  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
	Never trust ANY information encoded in a media file, especially
	when it's giving you sizes. (Fixes #328452)

2006-01-24  Edgard Lima <edgard.lima@indt.org.br>

	* gst/rtp/gstrtpg711pay.c:
	Patch written by Kai Vehmanen <kai.vehmanen@nokia.com> applied. See
	bug #325148.

2006-01-23  Edward Hervey  <edward@fluendo.com>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps),
	(gst_matroska_demux_audio_caps), (gst_matroska_demux_plugin_init):
	* gst/matroska/matroska-ids.h:
	Added recognition of Real Audio and Video streams in matroska demuxer.

2006-01-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
	  Remove errant break statement, and fix compilation with
	  older GCC.

2006-01-23  Brian Cameron  <brian dot cameron at sun dot com>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* sys/sunaudio/gstsunaudiomixerctrl.c:
	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_init):
	  Export functions that are needed in other parts of the code,
	  makes the mixer actually work; adjust magic minimum buffer-time
	  value from 3ms to 5ms to work around stuttering during mp3
	  playback (#327765).

2006-01-23  Michal Benes  <michal dot benes at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_best_pad),
	(gst_matroska_mux_write_data), (gst_matroska_mux_collected):
	  Fix possible deadlock in matroska muxer (#327825).

2006-01-23  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/libpng/gstpngenc.c: (gst_pngenc_chain):
	* gst/avi/gstavidemux.c: (gst_avi_demux_invert):
	* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps):
	* gst/rtsp/sdpmessage.h:
	* gst/udp/gstdynudpsink.c: (gst_dynudpsink_render):
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_get_stats):
	  C89 fixes: declare variables at the beginning of a block and
	  make gcc-2.9x happy (#328264; patch by: Jens Granseuer
	  <jensgr at gmx dot net>).

2006-01-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
	* gst/id3demux/id3tags.h:
	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
	(parse_comment_frame), (parse_text_identification_frame),
	(id3v2_tag_to_taglist), (id3v2_are_digits),
	(id3v2_genre_string_to_taglist), (id3v2_genre_fields_to_taglist),
	(parse_split_strings), (free_tag_strings):
	  Rewrite parsing of text tags to handle multiple NULL terminated
	  strings. Parse numeric genre strings and ID3v2 type
	  "(3)(6)Alternative" style genre strings.
	  Parse dates that are only YYYY or YYYY-mm format.
	  (Fixes #328241 and #322154)

2006-01-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/videobox/gstvideobox.c: (gst_video_box_class_init):
	  Don't forget to initialize liboil, otherwise our oil functions
	  will crash (fixes #327871; patch by: Christoph Burghardt
	  <hawkes at web dot de>).

2006-01-19  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Use plain AS_LIBTOOL_TAGS instead of AS_LIBTOOL_TAGS([CXX]), just
	  like in the core and gst-plugins-base. Fixes #324367 and #326683;
	  patch by: Brian Cameron <brian dot cameron at sun dot com>

2006-01-19  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cdio/gstcdio.c: (gst_cdio_add_cdtext_field), (plugin_init):
	* ext/cdio/gstcdio.h:
	* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_get_cdtext):
	  Fix build for libcdio versions >= 76; give slightly lower rank
	  than cdparanoia.

2006-01-18  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/cdio/Makefile.am:
	* ext/cdio/gstcdio.c:
	* ext/cdio/gstcdio.h:
	* ext/cdio/gstcdiocddasrc.c:
	* ext/cdio/gstcdiocddasrc.h:
	  Port libcdio cdda source, formerly known as cddasrc, now known as
	  cdiocddasrc (fixes #323327). Should also read CD-TEXT if available,
	  but that's not tested (fixes #317658).

2006-01-18  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_pad_convert):
	  Fix conversion from TIME to BYTES format (fixes #326864;
	  patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>)

2006-01-15  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
	  Fix compilation of id3demux when zlib is not present.
	  (Fixes #326602; patch by: Sergey Scobich)

2006-01-15  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/esd/Makefile.am:
	  Add $(ESD_CFLAGS), otherwise build will fail for folks
	  with libesd in a non-standard prefix (#327009).

2006-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to HEAD

=== release 0.10.1 ===

2006-01-13  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.1, "Li"

2006-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	  patch by: Wim Taymans

	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
	  fix memleak.  Fixes #326618

2006-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	  patch by: Mike Smith

	* gst/level/gstlevel.c: (gst_level_message_new),
	(gst_level_message_append_channel):
	  Fix memleak.  Fixes #326612

2006-01-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  prereleasing
	* 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 translations

2006-01-10  Michael Smith  <msmith@fluendo.com>

	* gst/level/gstlevel.c: (gst_level_class_init),
	(gst_level_dispose):
	  Don't leak filter arrays.

2006-01-09 Brian Cameron <brian.cameron@sun.com>

	reviewed by: Christian Schaller <uraeus@gnome.org>
	
	* configure.ac:
	* gst-plugins-good.spec.in:
	* sys/Makefile.am:
	* sys/sunaudio/Makefile.am:
	* sys/sunaudio/gstsunaudio.c: (plugin_init):
	* sys/sunaudio/gstsunaudiomixer.c: (gst_sunaudiomixer_base_init),
	(gst_sunaudiomixer_class_init), (gst_sunaudiomixer_init),
	(gst_sunaudiomixer_change_state):
	* sys/sunaudio/gstsunaudiomixer.h:
	* sys/sunaudio/gstsunaudiomixerctrl.c:
	(gst_sunaudiomixer_ctrl_open), (gst_sunaudiomixer_ctrl_build_list),
	(gst_sunaudiomixer_ctrl_new), (gst_sunaudiomixer_ctrl_free),
	(gst_sunaudiomixer_ctrl_list_tracks),
	(gst_sunaudiomixer_ctrl_get_volume),
	(gst_sunaudiomixer_ctrl_set_volume),
	(gst_sunaudiomixer_ctrl_set_mute),
	(gst_sunaudiomixer_ctrl_set_record):
	* sys/sunaudio/gstsunaudiomixerctrl.h:
	* sys/sunaudio/gstsunaudiomixertrack.c:
	(gst_sunaudiomixer_track_class_init),
	(gst_sunaudiomixer_track_init), (fill_labels),
	(gst_sunaudiomixer_track_new):
	* sys/sunaudio/gstsunaudiomixertrack.h:
	* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_get_type),
	(gst_sunaudiosink_dispose), (gst_sunaudiosink_base_init),
	(gst_sunaudiosink_set_property), (gst_sunaudiosink_get_property),
	(gst_sunaudiosink_getcaps), (gst_sunaudiosink_open),
	(gst_sunaudiosink_close), (gst_sunaudiosink_prepare),
	(gst_sunaudiosink_unprepare), (gst_sunaudiosink_write),
	(gst_sunaudiosink_delay), (gst_sunaudiosink_reset):
	* sys/sunaudio/gstsunaudiosink.h:

	Add SunAudio plugin - tested to make sure it doesn't break
	the build under GNU/Linux.	

2005-01-07  Philippe Khalaf  <philippe.kalaf@collabora.co.uk>

	* gst-plugins-good/gst/udp/gstdynudpsink.c:
	* gst-plugins-good/gst/udp/gstudpsrc.c:
	Allow udpsrc and dynudpsink to take a sockfd as a parameter. For udpsrc,
	overrides the port or multicast parameters. Fixes bugs #323021.
	API addition: adds GstUDPSrc::sockfd property	

2006-01-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gconf/Makefile.am:
	* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init),
	(gst_gconf_audio_src_class_init), (gst_gconf_audio_src_reset),
	(gst_gconf_audio_src_init), (gst_gconf_audio_src_dispose),
	(do_toggle_element), (cb_toggle_element),
	(gst_gconf_audio_src_change_state):
	* ext/gconf/gstgconfaudiosrc.h:
	* ext/gconf/gstgconfelements.c: (plugin_init):
	* ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init),
	(gst_gconf_video_src_class_init), (gst_gconf_video_src_reset),
	(gst_gconf_video_src_init), (gst_gconf_video_src_dispose),
	(do_toggle_element), (cb_toggle_element),
	(gst_gconf_video_src_change_state):
	* ext/gconf/gstgconfvideosrc.h:
	  Add new gconfaudiosrc and gconfvideosrc elements
	  (needed for gnome-sound-recorder).

2006-01-06  Edward Hervey  <edward@fluendo.com>

	* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad):
	Add gst_element_no_more_pads() for proper decodebin behaviour.
	* gst/id3demux/id3v2frames.c: (parse_comment_frame),
	(parse_text_identification_frame), (parse_split_strings):
	Failure to decode some tags is not a GST_ERROR() but a
	GST_WARNING()
	When iterating over a chunk of text, check that we haven't gone too
	far.

2006-01-05  Stefan Kost  <ensonic@users.sf.net>

	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(plugin_init):
	  call oil_init() when using liboil

2006-01-04  Wim Taymans  <wim@fluendo.com>

	* ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
	Fix leaks.

2006-01-02  Alessandro Decina  <alessandro at nnva dot org>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_dec_write),
	(gst_flac_dec_convert_src), (gst_flac_dec_src_query),
	(gst_flac_dec_change_state):
	  Don't g_assert() where we should just return FALSE; remove
	  unnecessary g_assert(); initialize some fields properly in
	  state change function (fixes #325504). Also, use
	  GST_DEBUG_OBJECT in two more places.

2005-12-30  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	  also remove smoothwave's Makefile.am
	* docs/plugins/Makefile.am:
	  fix plugin docs

2005-12-30  Stefan Kost  <ensonic@users.sf.net>

	* tests/examples/Makefile.am:
	  added missing Makefile.am

2005-12-30  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* gst/level/Makefile.am:
	* gst/level/level-example.c:
	* tests/Makefile.am:
	* tests/examples/level/Makefile.am:
	* tests/examples/level/level-example.c: (message_handler), (main):
	  moved level-example to tests/examples/level-example
	* tests/old/examples/level/demo.c: (main):
	* tests/old/examples/level/plot.c: (main):
	  some initial fixes

2005-12-29  Michael Smith  <msmith@fluendo.com>

	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_render),
	(gst_multiudpsink_remove), (gst_multiudpsink_get_stats):
	* gst/udp/gstmultiudpsink.h:
	  Track packets sent per client in addition to bytes sent; provide
	  this info through get-stats signal

2005-12-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/auparse/gstauparse.c: (gst_au_parse_dispose):
	  Can't use gst_object_unref() on a GstAdapter (#325191).

2005-12-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
	If a broken tag has 0 bytes payload, at least still skip
	the 10 byte header

2005-12-22  Philippe Khalaf  <burger@speedy.org>

	* gst-plugins-good/gst/rtp/gstrtph263pdepay.h:
	* gst-plugins-good/gst/rtp/gstrtph263pdepay.c:
	* gst-plugins-good/gst/rtp/gstrtpmp4vdepay.h:
	* gst-plugins-good/gst/rtp/gstrtpmp4vdepay.c:
	  Making these depayloaders (H263+ and mpeg4 video) inherit from
	  RtpBaseDepayloaderClass. Fixes bugs #323922 and #323908.

2005-12-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/plugins/gst-plugins-good-plugins.args:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	Regenerate the plugin hiearchy.

2005-12-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.args:
	* gst/id3demux/gstid3demux.c: (gst_id3demux_get_type),
	(gst_id3demux_base_init), (gst_id3demux_class_init),
	(gst_id3demux_chain):
	* gst/id3demux/gstid3demux.h:
	  Add documentation for id3demux.
	  Don't fail if the first buffer is not at offset 0, just
	  attempt to typefind and do pass through
	  Rename the gst_type function from gst_gst_id3demux..

2005-12-20  Michael Smith  <msmith@fluendo.com>

	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_render),
	(gst_multiudpsink_add), (gst_multiudpsink_remove),
	(gst_multiudpsink_get_stats):
	* gst/udp/gstmultiudpsink.h:
	  Collect statistics; return them from get_stats.

2005-12-19  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_scan):
	Stupid signedness issue...

2005-12-19  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream),
	(gst_avi_demux_parse_odml), (gst_avi_demux_peek_tag),
	(gst_avi_demux_next_data_buffer), (gst_avi_demux_stream_scan),
	(gst_avi_demux_stream_header), (gst_avi_demux_loop):
	Construct index for indexless files.
	Make sure pad/buffers are correctly reset to NULL once we don't need
	them anymore, else we get lovely segfaults/assertions.
	* gst/wavparse/gstwavparse.c:
	Yes, you can have 96KHz audio and wma in wav :(

2005-12-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Check for optional dependency on zlib for id3demux

	* gst/id3demux/Makefile.am:
	* gst/id3demux/gstid3demux.c: (gst_gst_id3demux_get_type),
	(gst_id3demux_base_init), (gst_id3demux_class_init),
	(gst_id3demux_reset), (gst_id3demux_init), (gst_id3demux_dispose),
	(gst_id3demux_add_srcpad), (gst_id3demux_remove_srcpad),
	(gst_id3demux_trim_buffer), (gst_id3demux_chain),
	(gst_id3demux_set_property), (gst_id3demux_get_property),
	(id3demux_get_upstream_size), (gst_id3demux_srcpad_event),
	(gst_id3demux_read_id3v1), (gst_id3demux_read_id3v2),
	(gst_id3demux_sink_activate), (gst_id3demux_src_activate_pull),
	(gst_id3demux_src_checkgetrange), (gst_id3demux_read_range),
	(gst_id3demux_src_getrange), (gst_id3demux_change_state),
	(gst_id3demux_pad_query), (gst_id3demux_get_query_types),
	(simple_find_peek), (simple_find_suggest),
	(gst_id3demux_do_typefind), (gst_id3demux_send_tag_event),
	(plugin_init):
	* gst/id3demux/gstid3demux.h:
	* gst/id3demux/id3tags.c: (read_synch_uint),
	(id3demux_read_id3v1_tag), (id3demux_read_id3v2_tag),
	(id3demux_id3v2_frame_hdr_size), (convert_fid_to_v240),
	(id3demux_id3v2_frames_to_tag_list):
	* gst/id3demux/id3tags.h:
	* gst/id3demux/id3v2.4.0-frames.txt:
	* gst/id3demux/id3v2.4.0-structure.txt:
	* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
	(parse_comment_frame), (parse_text_identification_frame),
	(id3v2_tag_to_taglist), (parse_split_strings):
	  All new LGPL id3 demuxer. Can use zlib for compressed frames, 
	  otherwise it discards them. Works on my test files. 

	* gst/wavparse/gstwavparse.c: (gst_wavparse_loop):
	  Don't send EOS to a non-existing srcpad
	  The debug category can be static

2005-12-16  Stefan Kost  <ensonic@users.sf.net>

	* ext/esd/esdmon.c: (gst_esdmon_open_audio):
	* ext/esd/esdsink.c: (gst_esdsink_prepare):
	* gst/multipart/multipartdemux.c:
	  change some char* into char[]

2005-12-16  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_reset),
	(gst_wavparse_other), (gst_wavparse_perform_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
	(gst_wavparse_loop), (gst_wavparse_pad_convert),
	(gst_wavparse_srcpad_event), (gst_wavparse_sink_activate_pull):
	* gst/wavparse/gstwavparse.h:
	Use GstSegment to implement more seeking features.

2005-12-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/rtsp/rtspconnection.c:
	  Add <netinet/in.h> include and move <arpa/inet.h> include
	  to make things work on OpenBSD as well (fixes #323717;
	  patch by: Benjamin Pineau)

2005-12-14  Edgard Lima <edgard.lima@indt.org.br>

	* gst/rtp/gstrtpspeexdepay.c:
	* gst/rtp/gstrtpspeexpay.c:
	Set clock rate to be fixed in 8000. It fixes bug #324012.

2005-12-14  Philippe Khalaf  <burger@speedy.org>

	* gst-plugins-good/gst/rtp/gstasteriskh263.c:
	* gst-plugins-good/gst/rtp/gstrtpamrdepay.c:
	* gst-plugins-good/gst/rtp/gstrtpamrpay.c:
	* gst-plugins-good/gst/rtp/gstrtpg711depay.c:
	* gst-plugins-good/gst/rtp/gstrtpg711depay.c:
	* gst-plugins-good/gst/rtp/gstrtpgsmdepay.c:
	* gst-plugins-good/gst/rtp/gstrtph263pay.c:
	* gst-plugins-good/gst/rtp/gstrtph263pdepay.c:
	* gst-plugins-good/gst/rtp/gstrtph263ppay.c:
	* gst-plugins-good/gst/rtp/gstrtpmp4vdepay.c:
	* gst-plugins-good/gst/rtp/gstrtpmp4vpay.c:
	* gst-plugins-good/gst/rtp/gstrtpmpadepay.c:
	* gst-plugins-good/gst/rtp/gstrtpmpapay.c:
	* gst-plugins-good/gst/rtp/README:
	Fixed payload range in payloder caps. Removed payload range completely
	from depayloaders as they don't require payload type in their caps.
	In effect, there isn't any specific payload type for any given codec,
	only suggestions.
	Fixes bug #324011.

2005-12-13  Julien MOUTTE  <julien@moutte.net>

	* gst/videomixer/videomixer.c: (gst_videomixer_init),
	(gst_videomixer_fill_queues), (gst_videomixer_blend_buffers),
	(gst_videomixer_collected): Code cleanup and re-enabling 
	queued time validity check for correct EOS handling.

2005-12-13  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gstossmixerelement.c: (gst_oss_mixer_element_class_init),
	(gst_oss_mixer_element_get_property),
	(gst_oss_mixer_element_change_state):
	Add 'device-name' property and fix state change function.

2005-12-13  Edward Hervey  <edward@fluendo.com>

	* gst/flx/gstflxdec.c: (gst_flxdec_chain): 
	If the speed of the file is null in the header, set the frame_time to
	the default setting of GST_SECOND / 70. Which is the default
	frame_delay for .fli files as stated in this document :
	http://www.compuphase.com/flic.htm
	Would be nice to have the time conversion done properly too (duration =
	flxh->frames * flxdec->frame_time)

2005-12-12  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	* gst/videomixer/videomixer.c: (gst_videomixer_pad_sink_setcaps),
	(gst_videomixer_getcaps), (gst_videomixer_fill_queues),
	(gst_videomixer_update_queues), (gst_videomixer_collected): Adding
	documentation for videomixer on my way with a funny sample
	pipeline.

2005-12-12  Julien MOUTTE  <julien@moutte.net>

	* gst/videomixer/videomixer.c: (gst_videomixer_pad_sink_setcaps),
	(gst_videomixer_getcaps), (gst_videomixer_fill_queues),
	(gst_videomixer_update_queues), (gst_videomixer_collected):
	Fix caps negotiation. (#323896)

2005-12-12  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup_or_simpleblock):
	  Set correct timestamps on audio laces, fixes playback of mp3 from
		matroska.

2005-12-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/auparse/gstauparse.c: (gst_au_parse_base_init),
	(gst_au_parse_class_init), (gst_au_parse_init),
	(gst_au_parse_dispose), (gst_au_parse_chain),
	(gst_au_parse_change_state), (plugin_init):
	* gst/auparse/gstauparse.h:
	  Use gst_object_unref() for GstObjects instead of
	  g_object_unref() and fix a mem leak in a debug
	  statement; while we're at it, also borgify, use
	  boilerplate macros and clean up a little bit.

2005-12-11  Edward Hervey  <edward@fluendo.com>

	* gst/debug/efence.c: (gst_efence_init), (gst_efence_getrange),
	(gst_efence_checkgetrange), (gst_efence_activate_src_pull):
	Added pull mode.

2005-12-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/goom/gstgoom.c:
	* gst/level/level-example.c: (main):
	* gst/smoothwave/demo-osssrc.c: (main):
	  Use audiotestsrc instead of sinesrc (#323798).

2005-12-11  Stefan Kost  <ensonic@users.sf.net>

	* sys/oss/gstosssink.c: (gst_oss_sink_class_init):
	  more debug-func-ptr usage

2005-12-11  Zeeshan Ali <zeenix at gmail dot com>

	* gst/flx/flx_color.c: (flx_colorspace_convert):
	* gst/flx/flx_color.h:
	* gst/flx/flx_fmt.h:
	* gst/flx/gstflxdec.c: (flx_decode_chunks), (gst_flxdec_chain):
	* gst/flx/gstflxdec.h:
	  Now flxdec works on big-endian machines as well.

2005-12-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/debug/efence.c: (gst_efence_init), (gst_efence_chain),
	(gst_fenced_buffer_copy):
	  Make sure GST_BUFFER_DATA is set on fenced copied buffers; fix
	  GST_DEBUG crasher where GST_TIME_FORMAT was not used in
	  conjunction with GST_TIME_ARGS. Also, don't leak pad templates
	  and use GST_DEBUG_FUNCPTR for pad functions.

2005-12-10  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (gst_flac_dec_base_init),
	(gst_flac_dec_class_init), (gst_flac_dec_init),
	(gst_flac_dec_metadata_callback), (gst_flac_dec_error_callback),
	(gst_flac_dec_eof), (gst_flac_dec_write), (gst_flac_dec_loop),
	(gst_flac_dec_convert_src), (gst_flac_dec_get_src_query_types),
	(gst_flac_dec_src_query), (gst_flac_dec_send_newsegment),
	(gst_flac_dec_handle_seek_event), (gst_flac_dec_src_event),
	(gst_flac_dec_change_state):
	* ext/flac/gstflacdec.h:
	  Rewrite flacdec a bit, so that even seeking might work now. Most
	  importantly, don't act upon any flow return values we get, just tell
	  the decoder everything's dandy and act on the flow return values
	  later on in the loop function. We don't want to mess up the internal
	  decoder state for non-fatal things like flushing pads etc. Other
	  than that, use GstSegment (segment seeks don't work yet though, but
	  should be easy to add), use boilerplate macros, drop the superfluous
	  'flacdec:' from debug messages, use gst_util_uint64_scale_int, and
	  lots of other things.

2005-12-10  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Update comment in OSS includes check.

	* sys/oss/gstossdmabuffer.c:
	* sys/oss/gstosshelper.c:
	* sys/oss/gstossmixer.c:
	* sys/oss/gstossmixertrack.c:
	* sys/oss/gstosssink.c:
	* sys/oss/gstosssrc.c:
	* sys/oss/oss_probe.c:
	  Don't assume the OSS soundcard.h include is always in
	  the sys/ directory. Instead, use the existing defines
	  from config.h to include the right file. Fixes
	  compilation on OpenBSD 3.8 (#323718).

2005-12-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	* docs/plugins/inspect/plugin-1394.xml:
	* docs/plugins/inspect/plugin-aasink.xml:
	* docs/plugins/inspect/plugin-alaw.xml:
	* docs/plugins/inspect/plugin-alpha.xml:
	* docs/plugins/inspect/plugin-alphacolor.xml:
	* docs/plugins/inspect/plugin-auparse.xml:
	* docs/plugins/inspect/plugin-autodetect.xml:
	* docs/plugins/inspect/plugin-avi.xml:
	* docs/plugins/inspect/plugin-cacasink.xml:
	* docs/plugins/inspect/plugin-cairo.xml:
	* docs/plugins/inspect/plugin-cutter.xml:
	* docs/plugins/inspect/plugin-debug.xml:
	* docs/plugins/inspect/plugin-dv.xml:
	* docs/plugins/inspect/plugin-efence.xml:
	* docs/plugins/inspect/plugin-effectv.xml:
	* docs/plugins/inspect/plugin-esdsink.xml:
	* docs/plugins/inspect/plugin-flac.xml:
	* docs/plugins/inspect/plugin-flxdec.xml:
	* docs/plugins/inspect/plugin-gconfelements.xml:
	* docs/plugins/inspect/plugin-goom.xml:
	* docs/plugins/inspect/plugin-jpeg.xml:
	* docs/plugins/inspect/plugin-level.xml:
	* docs/plugins/inspect/plugin-matroska.xml:
	* docs/plugins/inspect/plugin-mulaw.xml:
	* docs/plugins/inspect/plugin-multipart.xml:
	* docs/plugins/inspect/plugin-navigationtest.xml:
	* docs/plugins/inspect/plugin-ossaudio.xml:
	* docs/plugins/inspect/plugin-png.xml:
	* docs/plugins/inspect/plugin-rtp.xml:
	* docs/plugins/inspect/plugin-rtsp.xml:
	* docs/plugins/inspect/plugin-shout2send.xml:
	* docs/plugins/inspect/plugin-smpte.xml:
	* docs/plugins/inspect/plugin-speex.xml:
	* docs/plugins/inspect/plugin-udp.xml:
	* docs/plugins/inspect/plugin-videobox.xml:
	* docs/plugins/inspect/plugin-videoflip.xml:
	* docs/plugins/inspect/plugin-videomixer.xml:
	* docs/plugins/inspect/plugin-wavenc.xml:
	* docs/plugins/inspect/plugin-wavparse.xml:
	* ext/flac/gstflac.c: (plugin_init):
	* ext/flac/gstflacdec.c: (flacdec_get_type),
	(gst_flac_dec_base_init), (gst_flac_dec_class_init),
	(gst_flac_dec_init), (gst_flac_dec_finalize),
	(gst_flac_dec_update_metadata), (gst_flac_dec_metadata_callback),
	(gst_flac_dec_error_callback), (gst_flac_dec_seek),
	(gst_flac_dec_tell), (gst_flac_dec_length), (gst_flac_dec_eof),
	(gst_flac_dec_read), (gst_flac_dec_write), (gst_flac_dec_loop),
	(gst_flac_dec_get_src_formats), (gst_flac_dec_convert_src),
	(gst_flac_dec_get_src_query_types), (gst_flac_dec_src_query),
	(gst_flac_dec_src_event), (gst_flac_dec_sink_activate),
	(gst_flac_dec_sink_activate_pull), (gst_flac_dec_change_state):
	* ext/flac/gstflacdec.h:
	* ext/flac/gstflacenc.c: (gst_flac_enc_quality_get_type),
	(gst_flac_enc_base_init), (gst_flac_enc_class_init),
	(gst_flac_enc_init), (gst_flac_enc_finalize), (add_one_tag),
	(gst_flac_enc_set_metadata), (gst_flac_enc_sink_setcaps),
	(gst_flac_enc_update_quality), (gst_flac_enc_seek_callback),
	(gst_flac_enc_write_callback), (gst_flac_enc_tell_callback),
	(gst_flac_enc_sink_event), (gst_flac_enc_chain),
	(gst_flac_enc_set_property), (gst_flac_enc_get_property),
	(gst_flac_enc_change_state):
	* ext/flac/gstflacenc.h:
	  borgify and fix up documentation

2005-12-09  Michael Smith  <msmith@fluendo.com>

	* ext/flac/gstflacdec.c: (raw_caps_factory), (gst_flacdec_write):
	  Accept a wider range of flac files, more closely matching flac spec.

2005-12-08  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/Makefile.am: Add multipart elements.
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt: Fix flac.
	* docs/plugins/gst-plugins-good-plugins.hierarchy:
	* gst/multipart/multipartdemux.c:
	* gst/multipart/multipartmux.c: Add docs.

2005-12-07  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event),
	(gst_avi_demux_parse_stream), (gst_avi_demux_stream_header),
	(gst_avi_demux_invert):
	Memleak and crasher fixes.
	* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
	(gst_wavparse_create_sourcepad), (gst_wavparse_stream_headers):
	Memleak fixes

2005-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/aalib/gstaasink.h:
	* ext/cairo/gsttextoverlay.h:
	* ext/dv/gstdvdec.h:
	* ext/dv/gstdvdemux.c:
	* ext/dv/gstdvdemux.h:
	* ext/esd/esdsink.h:
	* ext/flac/flac_compat.h:
	* ext/flac/gstflacdec.h:
	* ext/flac/gstflacenc.h:
	* ext/gconf/gconf.h:
	* ext/gconf/gstgconfaudiosink.h:
	* ext/gconf/gstgconfvideosink.h:
	* ext/gdk_pixbuf/gstgdkanimation.h:
	* ext/jpeg/gstjpegdec.h:
	* ext/jpeg/smokecodec.h:
	* ext/jpeg/smokeformat.h:
	* ext/ladspa/gstsignalprocessor.h:
	* ext/ladspa/search.c: (LADSPAPluginSearch):
	* ext/ladspa/utils.h:
	* ext/libmng/gstmng.c:
	* ext/libmng/gstmngdec.h:
	* ext/libmng/gstmngenc.c:
	* ext/libmng/gstmngenc.h:
	* ext/libpng/gstpng.c:
	* ext/libpng/gstpngenc.c:
	* ext/libpng/gstpngenc.h:
	* ext/shout2/gstshout2.h:
	* ext/speex/gstspeexdec.h:
	* ext/speex/gstspeexenc.c:
	* ext/speex/gstspeexenc.h:
	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	* gst/autodetect/gstautoaudiosink.h:
	* gst/autodetect/gstautovideosink.h:
	* gst/avi/gstavidemux.h:
	* gst/cutter/gstcutter.c: (gst_cutter_chain),
	(gst_cutter_set_property), (gst_cutter_get_caps):
	* gst/cutter/gstcutter.h:
	* gst/debug/tests.c: (md5_process_block):
	* gst/debug/tests.h:
	* gst/effectv/gstwarp.c:
	* gst/flx/flx_fmt.h:
	* gst/flx/gstflxdec.h:
	* gst/goom/filters.c: (setPixelRGB), (getPixelRGB), (getPixelRGB_),
	(zoomFilterFastRGB):
	* gst/goom/filters.h:
	* gst/goom/goom_tools.h:
	* gst/law/alaw-encode.c:
	* gst/level/gstlevel.c:
	* gst/level/gstlevel.h:
	* gst/matroska/ebml-write.h:
	* gst/matroska/matroska-demux.h:
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-mux.h:
	* gst/monoscope/convolve.c: (convolve_match):
	* gst/monoscope/convolve.h:
	* gst/multipart/multipartmux.c:
	* gst/oldcore/gstaggregator.c:
	* gst/oldcore/gstaggregator.h:
	* gst/oldcore/gstmd5sink.c: (md5_process_block):
	* gst/oldcore/gstmd5sink.h:
	* gst/oldcore/gstmultifilesrc.c:
	* gst/oldcore/gstmultifilesrc.h:
	* gst/oldcore/gstpipefilter.h:
	* gst/oldcore/gstshaper.h:
	* gst/rtp/gstrtpL16depay.h:
	* gst/rtp/gstrtpL16pay.h:
	* gst/rtp/gstrtpdepay.h:
	* gst/rtp/gstrtpmp4vpay.c:
	* gst/rtp/gstrtpmp4vpay.h:
	* gst/rtsp/gstrtspsrc.c:
	* gst/rtsp/gstrtspsrc.h:
	* gst/rtsp/rtspconnection.h:
	* gst/rtsp/rtspdefs.h:
	* gst/rtsp/rtspmessage.h:
	* gst/rtsp/rtsptransport.h:
	* gst/rtsp/rtspurl.c:
	* gst/rtsp/rtspurl.h:
	* gst/rtsp/sdpmessage.c:
	* gst/rtsp/sdpmessage.h:
	* gst/smpte/barboxwipes.c:
	* gst/smpte/gstmask.h:
	* gst/smpte/gstsmpte.h:
	* gst/smpte/paint.c:
	* gst/smpte/paint.h:
	* gst/udp/gstdynudpsink.h:
	* gst/udp/gstmultiudpsink.h:
	* gst/udp/gstudpsink.c:
	* gst/udp/gstudpsink.h:
	* gst/udp/gstudpsrc.c:
	* gst/videomixer/videomixer.c:
	* gst/wavenc/riff.h:
	* gst/wavparse/gstwavparse.h:
	* sys/oss/gstossdmabuffer.h:
	* sys/oss/gstossmixer.h:
	* sys/oss/gstossmixerelement.h:
	* sys/oss/gstossmixertrack.h:
	* sys/oss/gstosssink.c:
	* sys/oss/gstosssink.h:
	* sys/oss/gstosssrc.c:
	* sys/oss/gstosssrc.h:
	* sys/osxaudio/gstosxaudioelement.h:
	* sys/osxaudio/gstosxaudiosink.h:
	* sys/osxaudio/gstosxaudiosrc.h:
	  expand tabs

=== release 0.10.0 ===

2005-12-05   <thomas (at) apestaart (dot) org>

	* configure.ac:
	  releasing 0.10.0, "Abondance"

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-05  Michael Smith  <msmith@fluendo.com>

	* docs/plugins/gst-plugins-good-plugins.args:
	  Remove args for plugins that aren't in -good.

=== release 0.9.7 ===

2005-12-01   <thomas (at) apestaart (dot) org>

	* configure.ac:
	  releasing 0.9.7, "Mijn Hond Heeft Geen Neus"

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* docs/plugins/.cvsignore:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-multipart.xml:
	* docs/plugins/inspect/plugin-rtp.xml:
	  add multipart plugin to docs

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/pango/Makefile.am:
	* ext/pango/gstclockoverlay.c:
	* ext/pango/gstclockoverlay.h:
	* ext/pango/gsttextoverlay.c:
	* ext/pango/gsttextoverlay.h:
	* ext/pango/gsttextrender.c:
	* ext/pango/gsttextrender.h:
	* ext/pango/gsttimeoverlay.c:
	* ext/pango/gsttimeoverlay.h:
	  move pango to base

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtpL16depay.c:
	* gst/rtp/gstrtpL16depay.h:
	* gst/rtp/gstrtpL16parse.c:
	* gst/rtp/gstrtpL16parse.h:
	* gst/rtp/gstrtpgsmdepay.c:
	* gst/rtp/gstrtpgsmdepay.h:
	* gst/rtp/gstrtpgsmparse.c:
	* gst/rtp/gstrtpgsmparse.h:
	  parsers are depayers

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstasteriskh263.c:
	* gst/rtp/gstrtp.c:
	* gst/rtp/gstrtpL16enc.c:
	* gst/rtp/gstrtpL16enc.h:
	* gst/rtp/gstrtpL16parse.c:
	* gst/rtp/gstrtpL16parse.h:
	* gst/rtp/gstrtpL16pay.c:
	* gst/rtp/gstrtpL16pay.h:
	* gst/rtp/gstrtpamrdec.c:
	* gst/rtp/gstrtpamrdec.h:
	* gst/rtp/gstrtpamrdepay.c:
	* gst/rtp/gstrtpamrdepay.h:
	* gst/rtp/gstrtpamrenc.c:
	* gst/rtp/gstrtpamrenc.h:
	* gst/rtp/gstrtpamrpay.c:
	* gst/rtp/gstrtpamrpay.h:
	* gst/rtp/gstrtpdec.c:
	* gst/rtp/gstrtpdec.h:
	* gst/rtp/gstrtpdepay.c:
	* gst/rtp/gstrtpdepay.h:
	* gst/rtp/gstrtpg711dec.c:
	* gst/rtp/gstrtpg711dec.h:
	* gst/rtp/gstrtpg711depay.c:
	* gst/rtp/gstrtpg711depay.h:
	* gst/rtp/gstrtpg711enc.c:
	* gst/rtp/gstrtpg711enc.h:
	* gst/rtp/gstrtpg711pay.c:
	* gst/rtp/gstrtpg711pay.h:
	* gst/rtp/gstrtpgsmenc.c:
	* gst/rtp/gstrtpgsmenc.h:
	* gst/rtp/gstrtpgsmparse.c:
	* gst/rtp/gstrtpgsmparse.h:
	* gst/rtp/gstrtpgsmpay.c:
	* gst/rtp/gstrtpgsmpay.h:
	* gst/rtp/gstrtph263enc.c:
	* gst/rtp/gstrtph263enc.h:
	* gst/rtp/gstrtph263pay.c:
	* gst/rtp/gstrtph263pay.h:
	* gst/rtp/gstrtph263pdec.c:
	* gst/rtp/gstrtph263pdec.h:
	* gst/rtp/gstrtph263pdepay.c:
	* gst/rtp/gstrtph263pdepay.h:
	* gst/rtp/gstrtph263penc.c:
	* gst/rtp/gstrtph263penc.h:
	* gst/rtp/gstrtph263ppay.c:
	* gst/rtp/gstrtph263ppay.h:
	* gst/rtp/gstrtpmp4vdec.c:
	* gst/rtp/gstrtpmp4vdec.h:
	* gst/rtp/gstrtpmp4vdepay.c:
	* gst/rtp/gstrtpmp4vdepay.h:
	* gst/rtp/gstrtpmp4venc.c:
	* gst/rtp/gstrtpmp4venc.h:
	* gst/rtp/gstrtpmp4vpay.c:
	* gst/rtp/gstrtpmp4vpay.h:
	* gst/rtp/gstrtpmpadec.c:
	* gst/rtp/gstrtpmpadec.h:
	* gst/rtp/gstrtpmpadepay.c:
	* gst/rtp/gstrtpmpadepay.h:
	* gst/rtp/gstrtpmpaenc.c:
	* gst/rtp/gstrtpmpaenc.h:
	* gst/rtp/gstrtpmpapay.c:
	* gst/rtp/gstrtpmpapay.h:
	* gst/rtp/gstrtpspeexdec.c:
	* gst/rtp/gstrtpspeexdec.h:
	* gst/rtp/gstrtpspeexdepay.c:
	* gst/rtp/gstrtpspeexdepay.h:
	* gst/rtp/gstrtpspeexenc.c:
	* gst/rtp/gstrtpspeexenc.h:
	* gst/rtp/gstrtpspeexpay.c:
	* gst/rtp/gstrtpspeexpay.h:
	  Do burger's rename for rtp payloaders and depayloaders

2005-11-30  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_chain):
	* ext/dv/gstdvdemux.c: (gst_dvdemux_demux_frame):
	* ext/dv/gstdvdemux.h:
	Fix seeking in dvdemux again, add some more debug info.

2005-11-30  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	  fix tests

2005-11-30  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* PORTED_09:
	* docs/random/PORTED_09:
	  move
	* tests/Makefile.am:
	  add
	* win32/gst.sln:
	  remove

2005-11-30  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* Makefile.am:
	* check/.cvsignore:
	* check/Makefile.am:
	* check/elements/.cvsignore:
	* check/elements/level.c:
	* check/elements/matroskamux.c:
	* configure.ac:
	* examples/Makefile.am:
	* examples/capsfilter/Makefile.am:
	* examples/capsfilter/capsfilter1.c:
	* examples/gob/Makefile.am:
	* examples/gob/gst-identity2.gob:
	* examples/gstplay/.cvsignore:
	* examples/gstplay/Makefile.am:
	* examples/gstplay/player.c:
	* examples/indexing/.cvsignore:
	* examples/indexing/Makefile.am:
	* examples/indexing/indexmpeg.c:
	* examples/level/Makefile.am:
	* examples/level/README:
	* examples/level/demo.c:
	* examples/level/plot.c:
	* examples/stats/Makefile.am:
	* examples/stats/mp2ogg.c:
	* examples/switch/.cvsignore:
	* examples/switch/Makefile.am:
	* examples/switch/switcher.c:
	  move under tests/

2005-11-30  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/pango/gsttextrender.c: (gst_text_render_base_init),
	(gst_text_render_class_init), (resize_bitmap),
	(gst_text_render_render_text), (gst_text_render_setcaps),
	(gst_text_render_fixate_caps), (gst_text_renderer_bitmap_to_ayuv),
	(gst_text_render_chain), (gst_text_render_finalize),
	(gst_text_render_init), (gst_text_render_set_property):
	* ext/pango/gsttextrender.h:
	  Add missing files.

2005-11-30  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/pango/Makefile.am:
	* ext/pango/gstclockoverlay.c: (gst_clock_overlay_base_init),
	(gst_clock_overlay_render_time), (gst_clock_overlay_get_text),
	(gst_clock_overlay_class_init), (gst_clock_overlay_init):
	* ext/pango/gstclockoverlay.h:
	* ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init),
	(gst_text_overlay_get_text), (gst_text_overlay_class_init),
	(gst_text_overlay_finalize), (gst_text_overlay_init),
	(gst_text_overlay_update_wrap_mode), (gst_text_overlay_setcaps),
	(gst_text_overlay_text_pad_linked),
	(gst_text_overlay_text_pad_unlinked),
	(gst_text_overlay_set_property), (gst_text_overlay_getcaps),
	(gst_text_overlay_shade_y), (gst_text_overlay_blit_yuv420),
	(gst_text_overlay_resize_bitmap), (gst_text_overlay_render_text),
	(gst_text_overlay_push_frame), (gst_text_overlay_pop_video),
	(gst_text_overlay_pop_text), (gst_text_overlay_collected),
	(gst_text_overlay_change_state), (plugin_init):
	* ext/pango/gsttextoverlay.h:
	* ext/pango/gsttimeoverlay.c: (gst_time_overlay_base_init),
	(gst_time_overlay_render_time), (gst_time_overlay_get_text),
	(gst_time_overlay_class_init), (gst_time_overlay_init):
	* ext/pango/gsttimeoverlay.h:
	  Port pango-based textoverlay, timeoverlay and textrender to 0.9 
	  and add background shading and text wrapping modes. Make 
	  timoverlay derive from textoverlay. Also add new clockoverlay
	  element.

2005-11-30  Julien MOUTTE  <julien@moutte.net>

	* gst/udp/Makefile.am: Moved to netbuffer.

2005-11-30  Julien MOUTTE  <julien@moutte.net>

	* configure.ac:
	* PORTED_O9:
	* gst/multipart/Makefile.am:
	* gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init),
	(gst_multipart_demux_class_init), (gst_multipart_demux_init),
	(gst_multipart_find_pad_by_mime), (gst_multipart_demux_chain),
	(gst_multipart_demux_change_state),
	(gst_multipart_demux_plugin_init):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_init), (gst_multipart_mux_finalize),
	(gst_multipart_mux_sinkconnect),
	(gst_multipart_mux_request_new_pad),
	(gst_multipart_mux_handle_src_event),
	(gst_multipart_mux_queue_pads), (gst_multipart_mux_collected),
	(gst_multipart_mux_change_state): Ported multipart mux/demux to
	0.9.

2005-11-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/debug/gstnavigationtest.c: (gst_navigationtest_get_type):
	* gst/debug/gstnavigationtest.h:
	* gst/effectv/gstaging.c: (gst_agingtv_get_type):
	* gst/effectv/gstdice.c: (gst_dicetv_get_type):
	* gst/effectv/gstedge.c: (gst_edgetv_get_type):
	* gst/effectv/gstquark.c: (gst_quarktv_get_type):
	* gst/effectv/gstrev.c: (gst_revtv_get_type):
	* gst/effectv/gstshagadelic.c: (gst_shagadelictv_get_type):
	* gst/effectv/gstvertigo.c: (gst_vertigotv_get_type):
	* gst/effectv/gstwarp.c: (gst_warptv_get_type):
	* gst/videofilter/gstvideoflip.c: (gst_video_flip_set_property),
	(gst_video_flip_get_type):
	* gst/videofilter/gstvideoflip.h:
	  update for symbols change

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/udp/gstdynudpsink.c:
	* gst/udp/gstudpsrc.c:
	  the old gstnet lib was renamed gstnetbuffer (#322257)

2005-11-29  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cairo/gsttextoverlay.c: (gst_text_overlay_render_text),
	(gst_text_overlay_collected):
	  Actually render the text from the text pad.

2005-11-29  Edward Hervey  <edward@fluendo.com>

	* gst/debug/gstnavseek.c: (gst_navseek_event):
	* gst/debug/progressreport.c: (gst_progress_report_event):
	Update for GstBaseTransform event virtual method

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/cairo/Makefile.am:
	  no need to link to videofilter

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/debug/Makefile.am:
	* gst/debug/gstnavigationtest.h:
	* gst/effectv/Makefile.am:
	* gst/effectv/gstaging.c:
	* gst/effectv/gstdice.c:
	* gst/effectv/gstedge.c:
	* gst/effectv/gstquark.c:
	* gst/effectv/gstrev.c:
	* gst/effectv/gstshagadelic.c:
	* gst/effectv/gstvertigo.c:
	* gst/effectv/gstwarp.c:
	* gst/videofilter/Makefile.am:
	* gst/videofilter/gstvideofilter.c:
	* gst/videofilter/gstvideofilter.h:
	* gst/videofilter/gstvideoflip.h:
	  remove the videofilter library and link to the one in base

2005-11-28  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
	Useless check now we're setting the current entry correctly.

2005-11-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_resync), (gst_jpegenc_chain),
	(gst_jpegenc_set_property), (gst_jpegenc_get_property),
	(gst_jpegenc_change_state):
	  Don't leak input buffer in chain function (fixes #322667); make 
	  state change function thread-safe; don't repeat the current function
	  name in GST_DEBUG statements; use GST_ROUND_UP_* macros; use
	  gst_pad_alloc_buffer(); misc. minor cleanups.

2005-11-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_video_pad_setcaps):
	Look for pixel-aspect-ratio in caps, not pixel_width and
	pixel_height (Fixes: #322645)

2005-11-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_video_pad_setcaps):
	From Michal Benes:
	frame duration should be GST_SECOND / framerate, not
	GST_SECOND * framerate. (Fixes: #322643)

2005-11-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  fix up GST_PLUGIN_LDFLAGS
	* gst/rtsp/rtspconnection.c:
	  fix includes (see #317043)
	* gst/videofilter/Makefile.am:
	  stop installing this library

2005-11-26  Edward Hervey  <edward@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_sink_setcaps):
	Handle the case where the incoming Video dv stream doesn't have
	a pixel aspect ratio set.

2005-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* ext/flac/gstflacdec.c:
	  document flacdec

2005-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/inspect/plugin-autodetect.xml:
	* ext/cairo/gstcairo.c: (plugin_init):
	* ext/cairo/gsttextoverlay.c: (gst_text_overlay_base_init),
	(gst_text_overlay_class_init), (gst_text_overlay_finalize),
	(gst_text_overlay_init), (gst_text_overlay_font_init),
	(gst_text_overlay_set_property), (gst_text_overlay_render_text),
	(gst_text_overlay_getcaps), (gst_text_overlay_setcaps),
	(gst_text_overlay_text_pad_linked),
	(gst_text_overlay_text_pad_unlinked), (gst_text_overlay_shade_y),
	(gst_text_overlay_blit_1), (gst_text_overlay_blit_sub2x2),
	(gst_text_overlay_push_frame), (gst_text_overlay_pop_video),
	(gst_text_overlay_pop_text), (gst_text_overlay_collected),
	(gst_text_overlay_change_state):
	* ext/cairo/gsttextoverlay.h:
	* ext/cairo/gsttimeoverlay.c:
	(gst_cairo_time_overlay_update_font_height),
	(gst_cairo_time_overlay_set_caps),
	(gst_cairo_time_overlay_get_unit_size),
	(gst_cairo_time_overlay_print_smpte_time),
	(gst_cairo_time_overlay_transform),
	(gst_cairo_time_overlay_base_init),
	(gst_cairo_time_overlay_class_init), (gst_cairo_time_overlay_init),
	(gst_cairo_time_overlay_get_type):
	* ext/cairo/gsttimeoverlay.h:
	  do some name borgifying
	  document

2005-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_base_init):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_base_init),
	(gst_auto_video_sink_factory_filter):
	  documenting auto*sink
	  using strstr for the video sink lookup, class field is not ordered
	* docs/plugins/inspect/plugin-1394.xml:
	* docs/plugins/inspect/plugin-aasink.xml:
	* docs/plugins/inspect/plugin-alaw.xml:
	* docs/plugins/inspect/plugin-alpha.xml:
	* docs/plugins/inspect/plugin-alphacolor.xml:
	* docs/plugins/inspect/plugin-auparse.xml:
	* docs/plugins/inspect/plugin-autodetect.xml:
	* docs/plugins/inspect/plugin-avi.xml:
	* docs/plugins/inspect/plugin-cacasink.xml:
	* docs/plugins/inspect/plugin-cairo.xml:
	* docs/plugins/inspect/plugin-cutter.xml:
	* docs/plugins/inspect/plugin-debug.xml:
	* docs/plugins/inspect/plugin-dv.xml:
	* docs/plugins/inspect/plugin-efence.xml:
	* docs/plugins/inspect/plugin-effectv.xml:
	* docs/plugins/inspect/plugin-esdsink.xml:
	* docs/plugins/inspect/plugin-flac.xml:
	* docs/plugins/inspect/plugin-flxdec.xml:
	* docs/plugins/inspect/plugin-gconfelements.xml:
	* docs/plugins/inspect/plugin-goom.xml:
	* docs/plugins/inspect/plugin-jpeg.xml:
	* docs/plugins/inspect/plugin-level.xml:
	* docs/plugins/inspect/plugin-matroska.xml:
	* docs/plugins/inspect/plugin-mulaw.xml:
	* docs/plugins/inspect/plugin-navigationtest.xml:
	* docs/plugins/inspect/plugin-ossaudio.xml:
	* docs/plugins/inspect/plugin-png.xml:
	* docs/plugins/inspect/plugin-rtp.xml:
	* docs/plugins/inspect/plugin-rtsp.xml:
	* docs/plugins/inspect/plugin-shout2send.xml:
	* docs/plugins/inspect/plugin-smpte.xml:
	* docs/plugins/inspect/plugin-speex.xml:
	* docs/plugins/inspect/plugin-udp.xml:
	* docs/plugins/inspect/plugin-videobox.xml:
	* docs/plugins/inspect/plugin-videoflip.xml:
	* docs/plugins/inspect/plugin-videomixer.xml:
	* docs/plugins/inspect/plugin-wavenc.xml:
	* docs/plugins/inspect/plugin-wavparse.xml:
	  update for HEAD version

2005-11-25  Michael Smith  <msmith@fluendo.com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_stop):
	  Patch from Sebastien Cote to close control sockets in udpsrc.

2005-11-24  Julien MOUTTE  <julien@moutte.net>

	* gst/effectv/gstquark.c: (gst_quarktv_set_caps),
	(gst_quarktv_get_unit_size), (gst_quarktv_transform),
	(gst_quarktv_planetable_clear), (gst_quarktv_change_state),
	(gst_quarktv_base_init), (gst_quarktv_class_init),
	(gst_quarktv_init): Flush the planes list on reverse caps
	negotiation. This was crashing because of differently sized
	buffers.

2005-11-24  Julien MOUTTE  <julien@moutte.net>

	* gst/debug/gstnavigationtest.c: (draw_box_planar411):
	* gst/videofilter/gstvideoflip.c: (gst_videoflip_method_get_type),
	(gst_videoflip_set_caps), (gst_videoflip_transform_caps),
	(gst_videoflip_get_unit_size), (gst_videoflip_flip),
	(gst_videoflip_transform), (gst_videoflip_handle_src_event),
	(gst_videoflip_set_property), (gst_videoflip_base_init),
	(gst_videoflip_class_init), (gst_videoflip_init): Handle strides
	correctly, fix identity flipping, convert navigation event 
	correctly again.

2005-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: back to HEAD

=== release 0.9.6 ===

2005-11-23  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.9.6, "Everything's Not Lost"

2005-11-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/debug/gstnavigationtest.c: (gst_navigationtest_init):
	Oops, initialise the framerate GValue

2005-11-23  Julien MOUTTE  <julien@moutte.net>

	* ext/cairo/gsttimeoverlay.c: (gst_timeoverlay_update_font_height),
	(gst_timeoverlay_set_caps), (gst_timeoverlay_get_unit_size),
	(gst_timeoverlay_transform), (gst_timeoverlay_base_init),
	(gst_timeoverlay_class_init), (gst_timeoverlay_init),
	(gst_timeoverlay_get_type):
	* ext/cairo/gsttimeoverlay.h:
	* gst/debug/Makefile.am:
	* gst/debug/gstnavigationtest.c:
	(gst_navigationtest_handle_src_event),
	(gst_navigationtest_get_unit_size), (gst_navigationtest_set_caps),
	(gst_navigationtest_transform), (gst_navigationtest_change_state),
	(gst_navigationtest_base_init), (gst_navigationtest_class_init),
	(gst_navigationtest_init), (gst_navigationtest_get_type),
	(plugin_init):
	* gst/debug/gstnavigationtest.h:
	* gst/effectv/Makefile.am:
	* gst/effectv/gstaging.c: (gst_agingtv_set_caps),
	(gst_agingtv_get_unit_size), (gst_agingtv_transform),
	(gst_agingtv_base_init), (gst_agingtv_class_init),
	(gst_agingtv_init), (gst_agingtv_get_type):
	* gst/effectv/gstdice.c: (gst_dicetv_set_caps),
	(gst_dicetv_get_unit_size), (gst_dicetv_transform),
	(gst_dicetv_base_init), (gst_dicetv_class_init), (gst_dicetv_init),
	(gst_dicetv_get_type):
	* gst/effectv/gstedge.c: (gst_edgetv_set_caps),
	(gst_edgetv_get_unit_size), (gst_edgetv_transform),
	(gst_edgetv_base_init), (gst_edgetv_class_init), (gst_edgetv_init),
	(gst_edgetv_get_type):
	* gst/effectv/gsteffectv.c:
	* gst/effectv/gsteffectv.h:
	* gst/effectv/gstquark.c: (gst_quarktv_set_caps),
	(gst_quarktv_get_unit_size), (fastrand), (gst_quarktv_transform),
	(gst_quarktv_change_state), (gst_quarktv_base_init),
	(gst_quarktv_class_init), (gst_quarktv_init),
	(gst_quarktv_get_type):
	* gst/effectv/gstrev.c: (gst_revtv_set_caps),
	(gst_revtv_get_unit_size), (gst_revtv_transform),
	(gst_revtv_base_init), (gst_revtv_class_init), (gst_revtv_init),
	(gst_revtv_get_type):
	* gst/effectv/gstshagadelic.c: (gst_shagadelictv_set_caps),
	(gst_shagadelictv_get_unit_size), (gst_shagadelictv_transform),
	(gst_shagadelictv_base_init), (gst_shagadelictv_class_init),
	(gst_shagadelictv_init), (gst_shagadelictv_get_type):
	* gst/effectv/gstvertigo.c: (gst_vertigotv_set_caps),
	(gst_vertigotv_get_unit_size), (gst_vertigotv_transform),
	(gst_vertigotv_base_init), (gst_vertigotv_class_init),
	(gst_vertigotv_init), (gst_vertigotv_get_type):
	* gst/effectv/gstwarp.c: (gst_warptv_set_caps),
	(gst_warptv_get_unit_size), (gst_warptv_transform),
	(gst_warptv_base_init), (gst_warptv_class_init), (gst_warptv_init),
	(gst_warptv_get_type):
	* gst/videofilter/Makefile.am:
	* gst/videofilter/gstvideobalance.c:
	* gst/videofilter/gstvideobalance.h:
	* gst/videofilter/gstvideofilter.c: (gst_videofilter_get_type),
	(gst_videofilter_class_init), (gst_videofilter_init):
	* gst/videofilter/gstvideofilter.h:
	* gst/videofilter/gstvideoflip.c: (gst_videoflip_set_caps),
	(gst_videoflip_transform_caps), (gst_videoflip_get_unit_size),
	(gst_videoflip_flip), (gst_videoflip_transform),
	(gst_videoflip_handle_src_event), (gst_videoflip_set_property),
	(gst_videoflip_base_init), (gst_videoflip_class_init),
	(gst_videoflip_init), (plugin_init), (gst_videoflip_get_type):
	* gst/videofilter/gstvideoflip.h: VideoFilter inherits from
	BaseTransform, it's just a place holder for now and every video
	effect plugin has been ported to use BaseTransform features 
	directly. QuarkTV was fixed too (was broken), navigationtest works
	and best for the end, videoflip converts navigation events depending
	on flip method ! Fixes #320953

2005-11-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/aalib/gstaasink.c: (gst_aasink_fixate):
	* ext/cairo/gsttextoverlay.c: (gst_text_overlay_collected):
	* gst/goom/gstgoom.c: (gst_goom_init), (gst_goom_src_setcaps),
	(gst_goom_src_negotiate), (gst_goom_chain):
	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_video_pad_setcaps):
	* sys/osxvideo/osxvideosink.m:
	  Fixes for API changes

2005-11-23  Michael Smith <msmith@fluendo.com>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_setcaps),
	(gst_jpeg_dec_chain), (gst_jpeg_dec_change_state):
	* ext/jpeg/gstjpegdec.h:
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_setcaps):
	* ext/jpeg/gstjpegenc.h:
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_setcaps),
	(gst_smokeenc_resync):
	* ext/jpeg/gstsmokeenc.h:
	  JPEG fractiony goodness.

2005-11-22  Michael Smith <msmith@fluendo.com>

	* gst/goom/filters.c:
	* gst/goom/graphic.h:
	  Fix compilation by making some functions static inline instead of
	  extern inline, matching the way they're used.

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/cairo/gsttextoverlay.c: (gst_text_overlay_init),
	(gst_text_overlay_setcaps), (gst_text_overlay_collected):
	* ext/cairo/gsttextoverlay.h:
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_link):
	* ext/gdk_pixbuf/gstgdkpixbuf.h:
	* ext/libpng/gstpngdec.c: (gst_pngdec_init),
	(gst_pngdec_caps_create_and_set):
	* ext/libpng/gstpngdec.h:
	* ext/libpng/gstpngenc.c: (gst_pngenc_setcaps):
	* gst/alpha/gstalphacolor.c: (gst_alpha_color_set_caps):
	* gst/avi/gstavimux.c: (gst_avimux_init),
	(gst_avimux_vidsinkconnect):
	* gst/flx/gstflxdec.c: (gst_flxdec_chain):
	* gst/goom/gstgoom.c: (gst_goom_init), (gst_goom_src_setcaps),
	(gst_goom_src_negotiate), (gst_goom_chain):
	* gst/goom/gstgoom.h:
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps):
	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_video_pad_setcaps):
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	  More fractional framerate conversions 

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/aalib/gstaasink.c: (gst_aasink_fixate):
	* gst/debug/gstnavigationtest.c:
	(gst_navigationtest_handle_src_event):
	* gst/videofilter/gstvideofilter.c:
	(gst_videofilter_format_get_structure), (gst_videofilter_setcaps),
	(gst_videofilter_init):
	* gst/videofilter/gstvideofilter.h:
	  Convert to fractional framerates.

2005-11-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/aalib/gstaasink.c:
	* ext/dv/gstdvdec.c:
	* ext/esd/esdmon.c:
	* ext/flac/gstflacenc.c:
	* ext/gdk_pixbuf/pixbufscale.c:
	* ext/libcaca/gstcacasink.c:
	* ext/shout2/gstshout2.c:
	* gst/alpha/gstalpha.c:
	* gst/oldcore/gstaggregator.c:
	* gst/oldcore/gstshaper.c:
	* gst/smpte/barboxwipes.c:
	* gst/smpte/gstsmpte.c:
	* gst/videobox/gstvideobox.c:
	* gst/videofilter/gstvideoflip.c:
	* gst/videomixer/videomixer.c:
	  fix up more enums

2005-11-22  Michael Smith <msmith@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_pad_sink_setcaps),
	(gst_videomixer_getcaps), (gst_videomixer_fill_queues),
	(gst_videomixer_update_queues):
	  Fractional framerates, videomixer.

2005-11-22  Michael Smith <msmith@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_sink_setcaps):
	* ext/dv/gstdvdec.h:
	* ext/dv/gstdvdemux.c: (gst_dvdemux_init),
	(gst_dvdemux_src_convert), (gst_dvdemux_sink_convert),
	(gst_dvdemux_demux_video), (gst_dvdemux_demux_frame),
	(gst_dvdemux_flush):
	* ext/dv/gstdvdemux.h:
	  Fractional framerates for DV. 

2005-11-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_find_best), (gst_auto_audio_sink_detect):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_find_best), (gst_auto_video_sink_detect):
	  Use gst_plugin_feature_list_free() to free feature list and
	  in the case of autovideosink free the list at all. Also
	  miscellaneous cosmetic fixes.

2005-11-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/cutter/gstcutter.c: (gst_cutter_chain),
	(gst_cutter_set_property), (gst_cutter_get_caps):
	  copy calculation code from level; remove use of some audio
	  functions

2005-11-22  Andy Wingo  <wingo@pobox.com>

	* Update for gst_tag_setter API changes.

2005-11-22  Andy Wingo  <wingo@pobox.com>

	* ext/dv/gstdvdemux.c (gst_dvdemux_handle_sink_event)
	(gst_dvdemux_demux_frame)
	* ext/flac/gstflacdec.c (gst_flacdec_write)
	* ext/flac/gstflacenc.c (gst_flacenc_seek_callback)
	(gst_flacenc_sink_event)
	* ext/gconf/gstgconfaudiosink.c (gst_gconf_audio_sink_init)
	* ext/gconf/gstgconfvideosink.c (gst_gconf_video_sink_init)
	* ext/libpng/gstpngdec.c (gst_pngdec_caps_create_and_set)
	* ext/speex/gstspeexdec.c (speex_dec_event, speex_dec_chain)
	* gst/auparse/gstauparse.c (gst_auparse_chain)
	* gst/autodetect/gstautoaudiosink.c (gst_auto_audio_sink_init)
	* gst/autodetect/gstautovideosink.c (gst_auto_video_sink_init)
	* gst/avi/gstavidemux.c (gst_avi_demux_stream_header)
	(gst_avi_demux_handle_seek)
	* gst/goom/gstgoom.c (gst_goom_event)
	* gst/matroska/ebml-write.c (gst_ebml_write_seek)
	* gst/matroska/matroska-demux.c
	(gst_matroska_demux_handle_seek_event)
	(gst_matroska_demux_loop_stream_parse_id)
	* gst/wavenc/gstwavenc.c (gst_wavenc_stop_file)
	* gst/wavparse/gstwavparse.c (gst_wavparse_handle_seek)
	(gst_wavparse_stream_headers): Run update-funcnames.

2005-11-22  Edward Hervey  <edward@fluendo.com>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_class_init),
	(gst_dv1394src_init), (gst_dv1394src_dispose),
	(gst_dv1394src_set_property), (gst_dv1394src_discover_avc_node),
	(gst_dv1394src_uri_set_uri):
	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
	(gst_udpsrc_update_uri), (gst_udpsrc_set_uri),
	(gst_udpsrc_set_property), (gst_udpsrc_uri_get_uri):
	URIHandler interface and element properties are now properly
	synchronized for DV1394src and UDPSrc

2005-11-22  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/Makefile.am:
	* ext/speex/Makefile.am:
	  libgsttagedit has been renamed to libgsttag.

2005-11-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/rtspconnection.c: (read_body):
	Apply patch from Sebastien Cote to fix #319184.

2005-11-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* gst/cutter/Makefile.am:
	* gst/cutter/gstcutter.c: (gst_cutter_class_init),
	(gst_cutter_init), (gst_cutter_message_new), (gst_cutter_chain),
	(gst_cutter_set_property), (gst_cutter_get_property),
	(plugin_init), (gst_cutter_get_caps):
	  port cutter
	* gst/level/gstlevel.c:
	  fix up plugin details

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* 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  Michael Smith <msmith@fluendo.com>

	* gst/auparse/gstauparse.c: (gst_auparse_dispose):
	  gst_object_unref, not g_object_unref

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
	(gst_wavparse_create_sourcepad), (gst_wavparse_sink_activate):
	  Use GST_DEBUG_FUNCPTR; add debug message in pad activate function.

2005-11-21  Michael Smith <msmith@fluendo.com>

	* gst/auparse/Makefile.am:
	* gst/auparse/gstauparse.c: (gst_auparse_class_init),
	(gst_auparse_init), (gst_auparse_dispose), (gst_auparse_chain),
	(gst_auparse_change_state):
	* gst/auparse/gstauparse.h:
	  Partially fix #161712. playbin still doesn't work on these files,
	  (on the bug report, Andy says we aren't typefinding it for some
	  reason?) but at least auparse isn't totally busted like it was before.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* *.h:
	* *.c: Ran scripts/update-macros. Oh yes.

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_sync_streams):
	  Filler events are gone for now, comment out section generating
	  them.

2005-11-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/aalib/gstaasink.c: (gst_aasink_fixate):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_srcfixate):
	* gst/goom/gstgoom.c: (gst_goom_src_negotiate):
	* sys/osxvideo/osxvideosink.m:
	  Rename gst_caps_structure_fixate_* to gst_structure_fixate_*
	  (#322027)

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/aalib/gstaasink.c: (gst_aasink_setcaps):
	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_file_header),
	(gst_avi_demux_read_subindexes), (gst_avi_demux_parse_stream),
	(gst_avi_demux_parse_odml), (gst_avi_demux_stream_index),
	(gst_avi_demux_sync), (gst_avi_demux_stream_header),
	(gst_avi_demux_stream_data):
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps):
	* gst/wavenc/gstwavenc.c: (write_metadata):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_adtl),
	(gst_wavparse_parse_file_header), (gst_wavparse_stream_headers):
	Fixes for GST_FOURCC_FORMAT API change.

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cairo/gsttextoverlay.c: (gst_text_overlay_finalize),
	(gst_text_overlay_init), (gst_text_overlay_text_pad_linked),
	(gst_text_overlay_text_pad_unlinked), (gst_text_overlay_pop_video),
	(gst_text_overlay_pop_text), (gst_text_overlay_collected),
	(gst_text_overlay_change_state):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_init),
	(gst_matroska_mux_reset), (gst_matroska_mux_request_new_pad),
	(gst_matroska_mux_best_pad), (gst_matroska_mux_change_state):
	* gst/smpte/gstsmpte.c: (gst_smpte_init), (gst_smpte_collected):
	* gst/videomixer/videomixer.c: (gst_videomixer_init),
	(gst_videomixer_request_new_pad), (gst_videomixer_fill_queues),
	(gst_videomixer_change_state):
	  Fix for collect pads API change. Also fix textoverlay state
	  change function.

2005-11-20  Julien MOUTTE  <julien@moutte.net>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_start): Replace
	GST_PAD_IS_USABLE by something approaching it.

2005-11-20  Julien MOUTTE  <julien@moutte.net>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_start): Fix for
	API changes.
	* gst/wavenc/gstwavenc.c: (gst_wavenc_chain): Fix for API changes,
	but also fix the code that was not checking return values from
	pad_push neither using pad_alloc_buffer.

2005-11-18  Edward Hervey  <edward@fluendo.com>

	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init),
	(gst_pngenc_chain):
	Added debug category
	Return GST_FLOW_UNEXPECTED when sending an EOS, so the whole pipeline
	goes to EOS.

2005-11-17  Edgard Lima <edgard.lima@indt.org.br>

	* gst/rtp/Makefile.am
	* gst/rtp/gstrtp.c
	* gst/rtp/gstrtpg711enc.c: (gst_rtpg711enc_src_template),
	(gst_rtpg711enc_class_init), (gst_rtpg711enc_init),
	(gst_rtpg711enc_finalize), (gst_rtpg711enc_setcaps),
	(gst_rtpg711enc_flush), (gst_rtpg711enc_handle_buffer):
	* gst/rtp/gstrtpg711enc.h:
	* gst/rtp/gstrtpg711dec.c: (gst_rtpg711dec_sink_template):
	* gst/rtp/gstrtpspeexenc.c:
	* gst/rtp/gstrtpspeexenc.h:
	* gst/rtp/gstrtpspeexdec.c:
	* gst/rtp/gstrtpspeexdec.h:
	Created Speex payloader and depayloader; Optimize G711 payloader to
	use adapter and send packets until MTU size.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* check/elements/matroskamux.c: (setup_src_pad), (setup_sink_pad):
	Fix leak in check.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* gst/flx/gstflxdec.c: (gst_flxdec_change_state):
	Fix state change.

2005-11-16  Andy Wingo  <wingo@pobox.com>

	* gst/udp/gstudpsrc.c: Clean up with the boilerplate macro.
	(gst_udpsrc_create): Move comment.

2005-11-15  Vincent Torri  <torri at iecn dot u-nancy dot fr>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
	  When seeking, seek to closest index entry at or before the requested
	  seek position, not just the closest one (#321001).

2005-11-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (swap_line), (gst_avi_demux_invert),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data):
	  Invert DIB images again (see #132341).

2005-11-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  rework configure.ac file
	* ext/aalib/gstaasink.c:
	* ext/cairo/gstcairo.c:
	* ext/dv/gstdv.c:
	* ext/esd/gstesd.c:
	* ext/flac/gstflac.c:
	* ext/gconf/gstgconfelements.c:
	* ext/gdk_pixbuf/gstgdkpixbuf.c:
	* ext/jpeg/gstjpeg.c:
	* ext/ladspa/gstladspa.c:
	* ext/libcaca/gstcacasink.c:
	* ext/libmng/gstmng.c:
	* ext/libpng/gstpng.c:
	* ext/mikmod/gstmikmod.c:
	* ext/pango/gsttextoverlay.c:
	* ext/pango/gsttimeoverlay.c:
	* ext/raw1394/gst1394.c:
	* ext/speex/gstspeex.c:
	* gst/alpha/Makefile.am:
	* gst/alpha/gstalpha.c:
	* gst/alpha/gstalphacolor.c:
	* gst/auparse/gstauparse.c:
	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_factory_filter),
	(gst_auto_audio_sink_find_best), (gst_auto_audio_sink_detect):
	* gst/autodetect/gstautodetect.c:
	* gst/avi/gstavi.c:
	* gst/cutter/gstcutter.c:
	* gst/debug/efence.c:
	* gst/debug/gstdebug.c:
	* gst/debug/gstnavigationtest.c:
	* gst/effectv/gsteffectv.c:
	* gst/flx/gstflxdec.c:
	* gst/goom/gstgoom.c:
	* gst/interleave/plugin.c:
	* gst/law/alaw.c:
	* gst/law/mulaw.c:
	* gst/level/gstlevel.c:
	* gst/matroska/ebml-write.c: (gst_ebml_write_seek):
	* gst/matroska/matroska.c:
	* gst/median/gstmedian.c:
	* gst/monoscope/gstmonoscope.c:
	* gst/multipart/multipart.c:
	* gst/oldcore/gstelements.c:
	* gst/rtp/gstrtp.c:
	* gst/rtsp/gstrtsp.c:
	* gst/smoothwave/gstsmoothwave.c:
	* gst/smpte/gstsmpte.c:
	* gst/udp/gstudp.c:
	* gst/videobox/gstvideobox.c:
	* gst/videofilter/gstgamma.c:
	* gst/videofilter/gstvideobalance.c:
	* gst/videofilter/gstvideoflip.c:
	* gst/videofilter/gstvideotemplate.c:
	* gst/videomixer/videomixer.c:
	* gst/wavenc/gstwavenc.c:
	* gst/wavparse/gstwavparse.c:
	* sys/oss/gstossaudio.c:
	* sys/osxaudio/gstosxaudio.c:
	  update GST_PLUGIN_DEFINE
	* gst/rtp/Makefile.am:
	* gst/rtp/gstasteriskh263.c:
	  check for htons/htonl headers and possibly link to winsock2 lib

2005-11-12  Edward Hervey  <edward@fluendo.com>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain): 
	Only GST_DEBUG() information on the valid components.

2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: back to HEAD

=== release 0.9.5 ===

2005-11-11  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.9.5, "Phone Alarm"

2005-11-11  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_event),
	(gst_avi_demux_stream_header), (gst_avi_demux_handle_seek),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
	(gst_avi_demux_loop):
	* gst/avi/gstavidemux.h:
	Yeah, implement proper seeking. Exact seeking and segment seeking.
	Still need to do some checks for segment_stop.

2005-11-10  Josef Zlomek  <josef dot zlomek at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-mux.c: (gst_matroska_mux_write_data):
	  Don't try to ready buffer duration from buffer that we don't
	  own any  longer and that might already have been unreffed.
	  (#321136)

2005-11-09  Zeeshan Ali  <zeenix@gmail.com>

	* gst/flx/gstflxdec.c: (flx_decode_delta_fli),
	(flx_decode_delta_flc), (gst_flxdec_chain):
	Attempting to optimize the code for embedded systems.

2005-11-08  Alessandro Decina  <alessandro at nnva dot org>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gstosssink.c: (gst_oss_sink_close):
	  Don't re-use already closed file descriptor. (#320920)

2005-11-07  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gstosssink.c: (gst_oss_sink_dispose),
	(gst_oss_sink_set_property), (gst_oss_sink_getcaps),
	(gst_oss_sink_prepare):
	* sys/oss/gstosssink.h:
	  Cache probed caps; fix debug output for SET_PARAM macros.

2005-11-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cairo/Makefile.am:
	* ext/cairo/gstcairo.c: (plugin_init):
	* ext/cairo/gsttextoverlay.c: (gst_text_overlay_base_init),
	(gst_text_overlay_class_init), (gst_text_overlay_finalize),
	(gst_text_overlay_init), (gst_text_overlay_font_init),
	(gst_text_overlay_set_property), (gst_text_overlay_render_text),
	(gst_text_overlay_getcaps), (gst_text_overlay_setcaps),
	(gst_text_overlay_text_pad_linked),
	(gst_text_overlay_text_pad_unlinked), (gst_text_overlay_shade_y),
	(gst_text_overlay_blit_1), (gst_text_overlay_blit_sub2x2),
	(gst_text_overlay_push_frame), (gst_text_overlay_pop_video),
	(gst_text_overlay_pop_text), (gst_text_overlay_collected),
	(gst_text_overlay_change_state):
	* ext/cairo/gsttextoverlay.h:
	  Port cairo textoverlay plugin to 0.9. Add 'shaded-background'
	  property and redo positioning. Doesn't handle upstream renegotiation
	  yet though.

2005-11-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
	(gst_avi_demux_loop):
	  No need to take the STREAM_LOCK in the loop function. Improve
	  some debug messages. Don't leak pad names in debug messages.

2005-11-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_push_vorbis_codec_priv_data),
	(gst_matroska_demux_add_wvpk_header):
	  Don't error out when the source pad isn't linked.

2005-11-02  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gconf/gstgconfaudiosink.c: (do_toggle_element),
	(gst_gconf_audio_sink_change_state):
	* ext/gconf/gstgconfvideosink.c: (do_toggle_element),
	(gst_gconf_video_sink_change_state):
	  Fix state change functions here as well and set kid
	  to NULL state before removing it.

2005-11-01  Edward Hervey  <edward@fluendo.com>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_stop_file),
	(gst_wavenc_init), (gst_wavenc_event), (gst_wavenc_chain):
	Added proper event handlind, 
	made downstream newsegment event use GST_FORMAT_BYTES (otherwise it's
	ignored),
	and don't set a duration of 0 for buffers otherwise they are discarded
	by GstBaseSink.

	GstWavEnc needs some serious loving, after going through the code I'm
	really wondering how this can stay in -good ...

2005-11-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/elements/matroskamux.c: (setup_src_pad), (setup_sink_pad),
	(setup_matroskamux), (check_buffer_data), (GST_START_TEST):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_finalize),
	(gst_matroska_mux_reset), (gst_matroska_mux_audio_pad_setcaps),
	(gst_matroska_mux_start), (gst_matroska_mux_write_data),
	(gst_matroska_mux_collected):
	  Fix leaks and invalid memory access as reported by valgrind

2005-11-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: Michal Benes <michal.benes@xeris.cz>

	* check/Makefile.am:
	* gst/matroska/ebml-write.c: (gst_ebml_write_seek):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_handle_src_event),
	(gst_matroska_mux_audio_pad_setcaps), (gst_matroska_mux_start):
	  add a unit test for matroskamux
	  fix the bugs that the unit test exposed

2005-11-01  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_class_init),
	(gst_auto_audio_sink_change_state):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_class_init),
	(gst_auto_video_sink_change_state):
	  Fix state change function and use GST_DEBUG_FUNCPTR in
	  class_init.

2005-11-01  Josef Zlomek  <josef dot zlomek at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/ebml-write.c: (gst_ebml_write_new),
	(gst_ebml_write_reset), (gst_ebml_write_element_new):
	* gst/matroska/ebml-write.h:
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_write_data):
	  Set timestamps on outgoing ebml headers as well, so that the
	  element after matroskamux can get the timestamp already when
	  reading the first ebml element and doesn't have to wait for
	  the actual data buffer for that (#320308).
	  
2005-10-31  Andy Wingo  <wingo@pobox.com>

	* gst/videomixer/videomixer.c (gst_videomixer_pad_unlink)
	(gst_videomixer_pad_link): Kill some memleaks.
	(gst_videomixer_pad_get_property): Style fix.
	(gst_videomixer_pad_set_property): Style fix.
	(gst_videomixer_pad_init): Style fix.
	(gst_videomixer_update_queues): Kill memleak.
	(gst_videomixer_loop): Kill memleak.
	(gst_videomixer_collected): Kill memleak.

2005-10-31  Edgard Lima <edgard.lima@indt.org.br>

	* gst/auparse/gstauparse.c: gst_auparse_init, gst_auparse_chain,
	gst_auparse_change_state:
	Just some cleanup.

2005-10-31  Edgard Lima <edgard.lima@indt.org.br>

	* ext/speex/gstspeexenc.c: (gst_speexenc_chain)
	Add checks to GST_FLOW_NOT_LINKED for values returned
	from gst_pad_push.
	
2005-10-31  Zeeshan Ali  <zeenix@gmail.com>

	* gst/rtp/gstrtpg711dec.c: (gst_rtpg711dec_setcaps),
	(gst_rtpg711dec_process):
	* gst/rtp/gstrtpgsmenc.c:
	Payloader now sets some default caps on the srcpad if caps on the sinkpad
	are never set. This is important for the g711 to work with burger's rtpbin
	element.

2005-10-28  Edgard Lima <edgard.lima@cin.ufpe.br>

	* ext/speex/gstspeexenc.c: (gst_speexenc_chain), 
	(gst_speexenc_push_buffer):
	Add checks for return values from gst_pad_push and
	gst_pad_alloc_buffer.

2005-10-28  Michal Benes  <michal dot benes at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_init_stream),
	(gst_matroska_demux_parse_info),
	(gst_matroska_demux_parse_blockgroup_or_simpleblock),
	(gst_matroska_demux_parse_cluster):
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init),
	(gst_matroska_mux_init), (gst_matroska_mux_start),
	(gst_matroska_mux_create_buffer_header),
	(gst_matroska_mux_write_data), (gst_matroska_mux_set_property),
	(gst_matroska_mux_get_property):
	* gst/matroska/matroska-mux.h:
	  Add SimpleBlock support to matroska demuxer and muxer (part of
	  Matroska v2). (#319731)

2005-10-28  Wim Taymans  <wim@fluendo.com>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init), (gst_jpeg_dec_chain),
	(gst_jpeg_dec_change_state):
	* ext/jpeg/gstjpegdec.h:
	Cleanups. Don't create caps for every chain.

2005-10-27  Edgard Lima  Edgard Lima  <edgard.lima@indt.org.br>

	* gst/law/alaw-encode.c: (gst_alawenc_init),
        (alawenc_setcaps), (gst_alawenc_chain)
	* gst/law/alaw-encode.h:
	* gst/law/mulaw-encode.c: (gst_mulawenc_init),
        (mulawenc_setcaps), (gst_mulawenc_chain)
	* gst/law/mulaw-encode.h:
	Set timestamp on buffer and it allows RTP G711 elements
	work properly.

2005-10-27  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstosssrc.c: (gst_oss_src_prepare):
	Set correct format on oss instead of a silly value. 

2005-10-27  Julien MOUTTE  <julien@moutte.net>

	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_transform_caps), (gst_video_box_set_caps),
	(gst_video_box_get_unit_size), (gst_video_box_copy_plane_i420),
	(gst_video_box_i420), (gst_video_box_ayuv): Use liboil for
	I420 rendering as well, doesn't bring much for my platform.
	Might help on some other platforms.

2005-10-27  Zeeshan Ali  <zeenix@gmail.com>

	* gst/rtp/gstrtpgsmenc.c:
	* gst/rtp/gstrtpgsmparse.c:
	Declaring the padtemplate correctly.

2005-10-26  Zeeshan Ali  <zeenix@gmail.com>

	* gst/rtp/gstrtpg711dec.c:
	* gst/rtp/gstrtpg711enc.c:
	* gst/rtp/gstrtpgsmenc.c:
	* gst/rtp/gstrtpgsmparse.c:
	Setting the proper copyright notice.

2005-10-26  Julien MOUTTE  <julien@moutte.net>

	* gst/videobox/Makefile.am: Use liboil.
	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_set_property), (gst_video_box_transform_caps),
	(gst_video_box_set_caps), (gst_video_box_get_unit_size),
	(gst_video_box_ayuv): Lot of optimization in AYUV rendering
	using liboil. Will dot the same to I420 border generation
	tomorrow.

2005-10-26  Zeeshan Ali  <zeenix@gmail.com>

	* gst/rtp/gstrtpg711dec.c: (gst_rtpg711dec_base_init),
	(gst_rtpg711dec_class_init), (gst_rtpg711dec_init),
	(gst_rtpg711dec_setcaps), (gst_rtpg711dec_process):
	* gst/rtp/gstrtpg711dec.h:
	* gst/rtp/gstrtpg711enc.c: (gst_rtpg711enc_base_init),
	(gst_rtpg711enc_init), (gst_rtpg711enc_handle_buffer):
	* gst/rtp/gstrtpgsmenc.c: (gst_rtpgsmenc_base_init),
	(gst_rtpgsmenc_init), (gst_rtpgsmenc_setcaps),
	(gst_rtpgsmenc_handle_buffer):
	* gst/rtp/gstrtpgsmparse.c: (gst_rtpgsmparse_base_init),
	(gst_rtpgsmparse_class_init), (gst_rtpgsmparse_init),
	(gst_rtpgsmparse_setcaps), (gst_rtpgsmparse_process):
	* gst/rtp/gstrtpgsmparse.h:
	Hacked the G711 (de)payloader to try to make things right. rtpg711dec now
	inherits from the basertpdepayloader.

2005-10-26  Julien MOUTTE  <julien@moutte.net>

	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_transform_caps), (gst_video_box_get_unit_size),
	(gst_video_box_ayuv): Removing this forgotten debug.

2005-10-26  Julien MOUTTE  <julien@moutte.net>

	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_transform_caps), (gst_video_box_get_unit_size),
	(gst_video_box_ayuv): Fix the stride issue when boxing to AYUV.

2005-10-26  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gstossaudio.c:
	* sys/oss/gstossdmabuffer.c:
	* sys/oss/gstosshelper.c:
	* sys/oss/gstossmixer.c:
	* sys/oss/gstossmixerelement.c:
	* sys/oss/gstossmixertrack.c:
	* sys/oss/gstosssink.c:
	* sys/oss/gstosssrc.c:
	  Actually use the 'oss' debug category we register.

2005-10-26  Julien MOUTTE  <julien@moutte.net>

	* gst/videomixer/videomixer.c: (gst_videomixer_pad_set_property),
	(gst_videomixer_pad_sink_setcaps), (gst_videomixer_getcaps):
	Use gst_pad_get_parent and drop the ref that was added through
	that call.

2005-10-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/rtp/gstrtpgsmenc.c:
	  Fix compilation

2005-10-25  Edgard Lima  <edgard.lima@indt.org.br>

	* gst/rtp/gstrtpg711dec.c
	Just removed a couple of lines of weird code used during
	development/test time.

2005-10-25  Edgard Lima  <edgard.lima@indt.org.br>

	* gst/rtp/Makefile.am
	* gst/rtp/gstrtp.c
	* gst/rtp/gstrtpg711enc.c
	* gst/rtp/gstrtpg711enc.h
	* gst/rtp/gstrtpg711dec.c
	* gst/rtp/gstrtpg711dec.h
	Created G711 payloader and depayloader (it supports mulaw and alaw
	(dec)encoders)

2005-10-25  Julien MOUTTE  <julien@moutte.net>

	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_transform_caps), (gst_video_box_get_unit_size):
	Doh ! I introduced wingo's bug again ! Sorry...

2005-10-25  Christian Schaller <christian@fluendo.com> 

	* gst/rtp/Makefile.am: add missing header files for disting

2005-10-25  Zeeshan Ali  <zeenix@gmail.com>

	* gst/rtp/gstrtpgsmenc.c: (gst_rtpgsmenc_get_type),
	(gst_rtpgsmenc_base_init), (gst_rtpgsmenc_class_init),
	(gst_rtpgsmenc_init), (gst_rtpgsmenc_setcaps),
	(gst_rtpgsmenc_handle_buffer):
	* gst/rtp/gstrtpgsmenc.h:
	* gst/rtp/gstrtpgsmparse.c: (gst_rtpgsmparse_get_type),
	(gst_rtpgsmparse_base_init), (gst_rtpgsmparse_class_init),
	(gst_rtpgsmparse_init), (gst_rtpgsmparse_setcaps),
	(gst_rtpgsmparse_finalize), (gst_rtpgsmparse_process):
	* gst/rtp/gstrtpgsmparse.h:
	Getting the GSM (de)payloader working and compatible with our plans for RTP.

2005-10-25  Julien MOUTTE  <julien@moutte.net>

	* ext/libpng/gstpngdec.c: (user_info_callback),
	(gst_pngdec_caps_create_and_set), (gst_pngdec_task): Push
	a newsegment event, move some redundant code in a single place.

2005-10-25  Julien MOUTTE  <julien@moutte.net>

	* ext/libpng/gstpngdec.c: (user_info_callback),
	(gst_pngdec_caps_create_and_set), (gst_pngdec_task): Temporary
	hack to get correct colors order when we have a png image with
	alpha channel.

2005-10-24  Edward Hervey  <edward@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_add_pads): 
	Call gst_element_no_more_pads when there will be no more pads.

2005-10-24  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstasteriskh263.c: (gst_asteriskh263_get_type),
	(gst_asteriskh263_base_init), (gst_asteriskh263_class_init),
	(gst_asteriskh263_init), (gst_asteriskh263_finalize),
	(gst_asteriskh263_chain), (gst_asteriskh263_set_property),
	(gst_asteriskh263_get_property), (gst_asteriskh263_change_state),
	(gst_asteriskh263_plugin_init):
	* gst/rtp/gstasteriskh263.h:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtph263enc.c: (gst_rtph263enc_get_type),
	(gst_rtph263enc_base_init), (gst_rtph263enc_class_init),
	(gst_rtph263enc_init), (gst_rtph263enc_finalize),
	(gst_rtph263enc_setcaps), (gst_rtph263enc_gobfiner),
	(gst_rtph263enc_flush), (gst_rtph263enc_handle_buffer),
	(gst_rtph263enc_plugin_init):
	* gst/rtp/gstrtph263enc.h:
	Added two new payloaders, an RFC 2190 payloader for h263 and
	a payload convertor for an asterisk server.

2005-10-24  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gstosssrc.c: (gst_oss_src_prepare):
	  Set bytes_per_sample correctly (is not always 4, but 
	  depends on width and number of channels).

2005-10-24  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacenc.c: (gst_flacenc_base_init),
	(gst_flacenc_init), (gst_flacenc_sink_setcaps),
	(gst_flacenc_seek_callback), (gst_flacenc_write_callback),
	(gst_flacenc_sink_event), (gst_flacenc_chain),
	(gst_flacenc_set_property), (gst_flacenc_get_property),
	(gst_flacenc_change_state):
	* ext/flac/gstflacenc.h:
	  Fix seeking, so that flacenc can rewrite the header with the
	  correct duration and amount of samples and all that at EOS;
	  also set timestamps and granulepos on outgoing buffers; add
	  debug category; fix state change function.
	  
2005-10-24  Julien MOUTTE  <julien@moutte.net>

	* gst/videomixer/videomixer.c: Don't restrict video geometry
	from 16 to 4096.

2005-10-24  Julien MOUTTE  <julien@moutte.net>

	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_transform_caps), (gst_video_box_get_unit_size):
	Fix caps negotiation correctly, add debugging category.

2005-10-24  Christian Schaller  <christian@fluendo.com>

	* configure.ac: Port over Thomas's change from base listing all plugins

2005-10-24  Julien MOUTTE  <julien@moutte.net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_init): Don't use fixed caps on
	a sink pad.

2005-10-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/upload.mak:
	  back to HEAD

=== release 0.9.4 ===

2005-10-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Releasing 0.9.4, "Dromiceiomimus"

2005-10-21  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/speex/gstspeexenc.c: (gst_speexenc_get_query_types),
	(gst_speexenc_src_query):
	  Add position and duration query, fix query type function.
	  
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps):
	  Let's not set non-fixed caps on source pads.

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_demux_frame):
	* gst/avi/gstavidemux.c: (gst_avi_demux_get_src_query_types),
	(gst_avi_demux_handle_seek):
	Set correct stream_time in newsegment event.
	avi can also handle a duration query now.

2005-10-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_src_query),
	(gst_matroska_demux_handle_seek_event),
	(gst_matroska_demux_loop_stream_parse_id):
	  Fix duration query; fix basetime in newsegment event after
	  seek; fix duration in initial newsegment event.

	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_audio_pad_setcaps), (gst_matroska_mux_start):
	  Extract number of channels and samplerate from vorbis headers;
	  add some debug messages when querying the durations of the
	  input streams.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
	(gst_wavparse_pad_convert), (gst_wavparse_srcpad_event):
	Set stream time correctly in newsegment.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek):
	Correctly fill in the stream time.

2005-10-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/elements/level.c: (GST_START_TEST):
	* gst/level/gstlevel.c: (gst_level_message_new):
	* gst/level/level-example.c: (message_handler):
	  use ELEMENT messages instead

2005-10-19  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_get_src_query_types),
	(gst_dvdemux_src_query):
	* ext/flac/gstflacdec.c: (gst_flacdec_length),
	(gst_flacdec_src_query):
	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_query):
	* ext/speex/gstspeexdec.c: (speex_dec_src_query):
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
	* gst/debug/gstnavseek.c: (gst_navseek_seek):
	* gst/debug/progressreport.c: (gst_progress_report_report):
	* gst/matroska/ebml-read.c: (gst_ebml_read_get_length):
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_src_query):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
	(gst_wavparse_pad_convert), (gst_wavparse_pad_query),
	(gst_wavparse_srcpad_event):
	API change fix.

2005-10-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/goom/filters.c:
	* gst/goom/graphic.h:
	* gst/goom/lines.c:
	  Make inline functions either 'static inline' or 'extern inline',
	  otherwise the Forte compiler apparently won't inline them (#317300).

2005-10-19  Julien MOUTTE  <julien@moutte.net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_class_init),
	(gst_pngdec_init), (user_error_fn), (user_warning_fn),
	(user_info_callback), (user_endrow_callback), (user_end_callback),
	(user_read_data), (gst_pngdec_caps_create_and_set),
	(gst_pngdec_task), (gst_pngdec_chain), (gst_pngdec_sink_event),
	(gst_pngdec_libpng_clear), (gst_pngdec_libpng_init),
	(gst_pngdec_change_state), (gst_pngdec_sink_activate_push),
	(gst_pngdec_sink_activate_pull), (gst_pngdec_sink_activate):
	* ext/libpng/gstpngdec.h: Complete rewrite of pngdec. It's now
	very nice and handle push/pull based model. if you have filesrc
	connected to it, it will do random access to load the png file.
	If you have a network source that can't do _getrange, it does 
	progressive loading through the chain function.
	* gst/alpha/gstalphacolor.c: (gst_alpha_color_transform_caps),
	(transform_rgb), (transform_bgr): Fix caps negotiation correctly
	thanks to Master Wim Taymans ;-)

2005-10-18  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/Makefile.am:
	* gst/matroska/ebml-read.c:
	* gst/matroska/ebml-read.h:
	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-demux.h:
	* gst/matroska/matroska.c: (plugin_init):
	  Ported matroska demuxer to 0.9.

2005-10-18  Michal Benes  <michal dot benes at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/matroska/matroska-mux.c:
	(gst_matroska_mux_video_pad_setcaps),
	(gst_matroska_mux_audio_pad_setcaps):
	  Fix mpeg4 input handling (#318847); also, while we're at it,
	  fix media type for Motion-JPEG: should be image/jpeg.

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
	(gst_wavparse_pad_convert), (gst_wavparse_srcpad_event):
	Fix for segment-start/stop API change.

2005-10-17  Julien MOUTTE  <julien@moutte.net>

	* gst/alpha/gstalphacolor.c: (gst_alpha_color_transform_caps),
	(transform_rgb), (transform_bgr): Handle caps negotiation in a better
	way.

2005-10-17  Julien MOUTTE  <julien@moutte.net>

	* gst/videobox/gstvideobox.c: (gst_video_box_transform_caps),
	(gst_video_box_get_unit_size): Fix caps nego some more to get AYUV
	output declared in transform_caps.

2005-10-17  Julien MOUTTE  <julien@moutte.net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_init): We use fixed caps.

2005-10-17  Julien MOUTTE  <julien@moutte.net>

	* gst/videobox/gstvideobox.c: (gst_video_box_transform_caps),
	(gst_video_box_get_unit_size): Fix wrong size calculations and
	implement get_unit_size correctly.

2005-10-17  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Enable flx plugin.

	* gst/flx/gstflxdec.c: (flx_decode_chunks):
	  Fix gcc4 signedness issue.

2005-10-17  Julien MOUTTE  <julien@moutte.net>

	* configure.ac: Adding videomixer.
	* ext/libpng/gstpngdec.c: (gst_pngdec_class_init),
	(user_read_data), (gst_pngdec_chain): More debugging.
	* gst/alpha/Makefile.am: Adding alphacolor
	* gst/alpha/gstalphacolor.c: (gst_alpha_color_base_init),
	(gst_alpha_color_class_init), (gst_alpha_color_init),
	(gst_alpha_color_transform_caps), (gst_alpha_color_set_caps),
	(transform_rgb), (transform_bgr), (gst_alpha_color_transform_ip),
	(plugin_init): Ported to 0.9 using in place base tranform.
	* gst/videomixer/Makefile.am:
	* gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type),
	(gst_videomixer_pad_class_init), (gst_videomixer_pad_sink_setcaps),
	(gst_videomixer_pad_link), (gst_videomixer_pad_unlink),
	(gst_videomixer_pad_init), (gst_videomixer_class_init),
	(gst_videomixer_init), (gst_videomixer_getcaps),
	(gst_videomixer_request_new_pad), (gst_videomixer_fill_queues),
	(gst_videomixer_blend_buffers), (gst_videomixer_update_queues),
	(gst_videomixer_collected), (gst_videomixer_change_state): Ported
	to 0.9 using collectpads.

2005-10-17  Zeeshan Ali  <zeenix at gmail dot com>

	* configure.ac:
	* gst/flx/Makefile.am:
	* gst/flx/gstflxdec.c: (gst_flxdec_init),
	(gst_flxdec_src_event_handler), (gst_flxdec_sink_event_handler),
	(gst_flxdec_chain), (gst_flxdec_change_state), (plugin_init):
	* gst/flx/gstflxdec.h:
	flx plugin ported to 0.9

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/shout2/gstshout2.c: (gst_shout2send_change_state):
	  use new gst_version_string()

2005-10-16  Andy Wingo  <wingo@pobox.com>

	* configure.ac: GLIB_CHECK.

2005-10-15  Julien MOUTTE  <julien@moutte.net>

	* ext/libpng/Makefile.am:
	* ext/libpng/gstpng.c: (plugin_init):
	* ext/libpng/gstpngdec.c: (gst_pngdec_class_init),
	(gst_pngdec_init), (user_read_data), (gst_pngdec_chain):
	* ext/libpng/gstpngdec.h: Ported pngdec to 0.9

2005-10-14  Michal Benes  <michal dot benes at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* gst/matroska/Makefile.am:
	* gst/matroska/ebml-ids.h:
	* gst/matroska/ebml-write.c:
	* gst/matroska/ebml-write.h:
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-mux.c:
	* gst/matroska/matroska-mux.h:
	* gst/matroska/matroska.c: (plugin_init):
	  Port matroska muxer to 0.9 (#318847).

2005-10-13  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/speex/gstspeexenc.c: (gst_speexenc_get_tag_value),
	(comment_init), (comment_add):
	  Fix handling of GST_TAG_DATE, which is now of GST_TYPE_DATE;
	  use GST_READ_UINT32_LE() and friends rather than the private
	  implementation of those same macros.

2005-10-13  Stefan Kost  <ensonic@users.sf.net>

	* examples/stats/mp2ogg.c:
	  more typo fixes

2005-10-12  Stefan Kost  <ensonic@users.sf.net>

	* examples/indexing/indexmpeg.c: (main):
	* ext/esd/esdmon.c: (gst_esdmon_open_audio),
	(gst_esdmon_close_audio), (gst_esdmon_change_state):
	* ext/esd/esdmon.h:
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_init):
	* ext/pango/gsttextoverlay.c: (gst_textoverlay_init):
	* gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_init):
	* gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_init):
	* gst/avi/gstavimux.c: (gst_avimux_init):
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_init):
	* gst/multipart/multipartdemux.c: (gst_multipart_demux_init):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_init):
	* gst/oldcore/gstmultifilesrc.c: (gst_multifilesrc_init),
	(gst_multifilesrc_get), (gst_multifilesrc_open_file),
	(gst_multifilesrc_close_file), (gst_multifilesrc_change_state):
	* gst/oldcore/gstmultifilesrc.h:
	* gst/oldcore/gstpipefilter.c: (gst_pipefilter_init),
	(gst_pipefilter_open_file), (gst_pipefilter_close_file),
	(gst_pipefilter_change_state):
	* gst/oldcore/gstpipefilter.h:
	* gst/smoothwave/gstsmoothwave.c: (gst_smoothwave_init):
	* gst/videomixer/videomixer.c: (gst_videomixer_init):
	* sys/osxaudio/gstosxaudiosink.c: (gst_osxaudiosink_init):
	* sys/osxaudio/gstosxaudiosink.h:
	* sys/osxaudio/gstosxaudiosrc.h:
	  renamed GST_FLAGS macros to GST_OBJECT_FLAGS
	  moved bitshift from macro to enum definition

2005-10-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/Makefile.am:
	* ext/cairo/Makefile.am:
	* ext/cairo/gstcairo.c: (plugin_init):
	* ext/cairo/gsttextoverlay.c: (gst_textoverlay_change_state):
	* ext/cairo/gsttimeoverlay.c: (gst_timeoverlay_update_font_height),
	(gst_timeoverlay_setup), (gst_timeoverlay_planar411):
	* ext/cairo/gsttimeoverlay.h:
	  update of cairo-based timeoverlay to 1.0 Cairo API
	  doesn't work yet for resizing of output sink

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeexdec.c: (speex_dec_event), (speex_dec_chain):
	newsegment API fix.

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_handle_sink_event),
	(gst_dvdemux_demux_frame):
	* ext/flac/gstflacdec.c: (gst_flacdec_write):
	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_header),
	(gst_avi_demux_handle_seek):
	* gst/goom/gstgoom.c: (gst_goom_event):
	* gst/wavenc/gstwavenc.c: (gst_wavenc_stop_file):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
	(gst_wavparse_loop), (gst_wavparse_pad_convert),
	(gst_wavparse_srcpad_event):
	newsegment API update.

2005-10-11  Andy Wingo  <wingo@pobox.com>

	* ext/speex/gstspeexenc.c: Signedness cleanups.

2005-10-10  Edgard Lima <edgard.lima@indt.org.br>

	* PORTED_09:
	* ext/speex/Makefile.am:
	* ext/speex/gstspeex.c:
	* ext/speex/gstspeexenc.c:
	Speexenc ported to 0.9

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstosssink.c: (gst_oss_sink_class_init),
	(gst_oss_sink_init), (gst_oss_sink_set_property),
	(gst_oss_sink_get_property), (gst_oss_sink_open),
	(gst_oss_sink_prepare), (gst_oss_sink_reset):
	* sys/oss/gstosssink.h:
	* sys/oss/gstosssrc.c: (gst_oss_src_class_init),
	(gst_oss_src_set_property), (gst_oss_src_init), (gst_oss_src_open),
	(gst_oss_src_prepare):
	Cleanups, make device configurable in the sink, handle and report
	errors.

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_reset):
	* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_reset):
	Make sure element is NULL before removing from the bin.

2005-10-07  Andy Wingo  <wingo@pobox.com>

	* ext/raw1394/gstdv1394src.c: Make interruptible, so it won't
	block forever in a read().
	(gst_dv1394src_bus_reset): Post a message when the cable is
	unplugged.
	(gst_dv1394src_create, gst_dv1394src_unlock): Remove some prints.
	(gst_dv1394src_bus_reset): Don't unref the message.

	* ext/raw1394/gstdv1394src.c: Clean up for style before doing some
	hacking. The only change should be that the state change stuff was
	put into basesrc's start() and stop() routines, which coalesces
	some steps.

2005-10-07  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Add check for mmap
	  
	* gst/debug/Makefile.am:
	  Only compile efence plugin on systems that have mmap.

2005-10-05  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/debug/Makefile.am:
	* gst/debug/breakmydata.c:
	* gst/debug/gstdebug.c:
	* gst/debug/gstnavigationtest.c:
	* gst/debug/gstnavseek.c: 
	* gst/debug/gstnavseek.h:
	* gst/debug/progressreport.c: 
	* gst/debug/testplugin.c:
	  Port progressreport, navseek, navigationtest, testsink and
	  breakmydata.

2005-10-05  Edward Hervey  <edward@fluendo.com>

	* ext/dv/gstdvdemux.c: (gst_dvdemux_src_convert),
	(gst_dvdemux_src_query):
	Fixes for better conversion

2005-10-04  Michael Smith <msmith@fluendo.com>

	* gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_reset),
	(gst_auto_audio_sink_find_best), (gst_auto_audio_sink_detect):
	* gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_reset),
	(gst_auto_video_sink_find_best), (gst_auto_video_sink_detect):
	  Set state of elements to NULL before removing from bins.
	  Set state of test element to NULL if we failed to move it to READY

2005-10-04  Edward Hervey  <edward@fluendo.com>

	* ext/dv/Makefile.am:
	* ext/dv/gstdvdemux.c: (gst_dvdemux_src_query), (gst_dvdemux_src_conver): 
	Added DEFAULT <==> BYTES, TIME conversions on srcpad,
	Corrected the query function for position so it doesn't forget what
	format was asked, and calls the conversion functions on the correct pad.

2005-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to development

=== release 0.9.3 ===

2005-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Releasing 0.9.3, "Aramis"

2005-10-03  Andy Wingo  <wingo@pobox.com>

	* ext/flac/gstflacdec.c (gst_flacdec_write): Deal with pad_alloc
	error returns.

2005-10-02  Andy Wingo  <wingo@pobox.com>

	* configure.ac (GST_PLUGIN_LDFLAGS): Change to be like -base.

	* ext/flac/gstflacenc.c: Ported to 0.9.

	* ext/flac/gstflacdec.c (gst_flacdec_loop): Handle errors better.

	* ext/flac/Makefile.am: Add the GST_PLUGINS_BASE cflags and libs,
	and link to gsttagedit. Enable flacenc.

	* ext/flac/gstflacdec.c: Re-enable tag reading.

2005-09-30  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_setcaps):
	* gst/rtp/gstrtpgsmparse.c:
	* gst/rtp/gstrtph263penc.c:
	* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_class_init),
	(gst_rtpmp4venc_parse_data), (gst_rtpmp4venc_handle_buffer),
	(gst_rtpmp4venc_set_property):
	* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_handle_buffer):
	Various class and caps fixes from Andre Magalhaes (andrunko)

2005-09-29  Wim Taymans  <wim@fluendo.com>

	* gst/level/level-example.c: (main):
	Update for new bus API.

2005-09-28  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Fix unexpanded autoconf macro GST_DOC, which has been renamed
	  to GST_DOCBOOK_CHECK (see common/m4/gst-doc.m4) (#316202).

2005-09-27  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/oss/gstosssink.c: (gst_oss_sink_prepare):
	  Fix playback of mono streams (bytes_per_sample should be set
	  from the sample width and the number of channels negotiated,
	  and not just be set to 4) (#317338)

2005-09-26  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_flush),
	(gst_rtpmpaenc_handle_buffer):
	Set buffer duration correctly.

2005-09-26  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_base_init),
	(gst_avi_demux_class_init), (gst_avi_demux_parse_stream),
	(gst_avi_demux_change_state):
	  Don't crash when encountering a stream with an unknown fourcc or
	  codec id. Instead, create a pad of type video/x-avi-unknown or
	  audio/x-avi-unknown, which as a side-effect also results in less
	  confusing error messages in players ('no decoder' vs. 'no streams');
	  minor fixes to state change function and class_init function.

2005-09-24  Wim Taymans  <wim@fluendo.com>

	* gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_init):
	* gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_init):
	These are sinks.

2005-09-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/elements/level.c: (GST_START_TEST):
	  fix test for new GstClockTime use
	* gst/level/gstlevel.c: (gst_level_init), (gst_level_set_caps),
	(gst_level_transform_ip):
	* gst/level/gstlevel.h:
	  fix up the decay peak, ensuring the decay peak is never lower
	  than the peak for that interval

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/gst-plugins-good-plugins.args:
	* docs/plugins/inspect/plugin-alpha.xml:
	* docs/plugins/inspect/plugin-rtp.xml:
	* gst/level/gstlevel.c: (gst_level_set_caps),
	(gst_level_transform_ip):
	  updating docs

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* check/elements/level.c: (GST_START_TEST):
	* gst/level/Makefile.am:
	* gst/level/gstlevel.c: (gst_level_class_init), (gst_level_init),
	(gst_level_set_property), (gst_level_get_property),
	(gst_level_set_caps), (gst_level_message_new),
	(gst_level_transform_ip):
	* gst/level/gstlevel.h:
	* gst/level/level-example.c: (message_handler), (main):
	  convert to using GstClockTime for all time values, finally.

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/auparse/Makefile.am:
	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	  fix up build
	* configure.ac:
	* 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/jpeg/Makefile.am:
	* ext/ladspa/Makefile.am:
	* ext/libcaca/Makefile.am:
	* ext/libmng/Makefile.am:
	* ext/libpng/Makefile.am:
	* ext/mikmod/Makefile.am:
	* ext/pango/Makefile.am:
	* ext/raw1394/Makefile.am:
	* ext/shout2/Makefile.am:
	* ext/speex/Makefile.am:
	* gst/alpha/Makefile.am:
	* gst/autodetect/Makefile.am:
	* gst/avi/Makefile.am:
	* gst/cutter/Makefile.am:
	* gst/debug/Makefile.am:
	* gst/effectv/Makefile.am:
	* gst/flx/Makefile.am:
	* gst/goom/Makefile.am:
	* gst/interleave/Makefile.am:
	* gst/law/Makefile.am:
	* gst/matroska/Makefile.am:
	* gst/median/Makefile.am:
	* gst/monoscope/Makefile.am:
	* gst/multipart/Makefile.am:
	* gst/oldcore/Makefile.am:
	* gst/rtp/Makefile.am:
	* gst/rtsp/Makefile.am:
	* gst/smoothwave/Makefile.am:
	* gst/smpte/Makefile.am:
	* gst/videobox/Makefile.am:
	* gst/videofilter/Makefile.am:
	* gst/videomixer/Makefile.am:
	* gst/wavenc/Makefile.am:
	* gst/wavparse/Makefile.am:
	* sys/oss/Makefile.am:
	* sys/osxaudio/Makefile.am:
	* sys/osxvideo/Makefile.am:
	  fix up GST_LIBS use

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/auparse/Makefile.am:
	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	  fix build of auparse

2005-09-22 Edgard Lima (edgard.lima@indt.org.br)

	* configure.ac:
	* PORTED_09:
	* gst/auparse/gstauparse.c:
	* gst/auparse/gstauparse.h:
	Auparse ported to 0.9.

2005-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/TODO:
	* gst/rtp/gstrtpdec.c: (gst_rtpdec_getcaps):
	* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_class_init),
	(gst_rtpmp4venc_parse_data), (gst_rtpmp4venc_handle_buffer),
	(gst_rtpmp4venc_set_property):
	* gst/rtp/gstrtpmp4venc.h:
	* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_handle_buffer):
	* gst/rtp/gstrtpmpaenc.h:
	Use is_filled to both check MTU and max-ptime of base class.

2005-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_class_init),
	(gst_rtpmp4venc_parse_data), (gst_rtpmp4venc_handle_buffer),
	(gst_rtpmp4venc_set_property):
	Don't fragment packets with multiple frames.

2005-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/TODO:
	* gst/rtp/gstrtpmp4vdec.c: (gst_rtpmp4vdec_setcaps):
	* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_class_init),
	(gst_rtpmp4venc_init), (gst_rtpmp4venc_parse_data),
	(gst_rtpmp4venc_handle_buffer), (gst_rtpmp4venc_set_property),
	(gst_rtpmp4venc_get_property):
	* gst/rtp/gstrtpmp4venc.h:
	Remove g_print.
	Update TODO
	Make payload encoder a bit smarter and more correct with
	timestamps.
	Added option in payloader to include config string in-band.

2005-09-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_parse_rtpmap),
	(gst_rtspsrc_media_to_caps), (gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_send):
	Strip spaces for key/value pairs.

2005-09-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_parse_rtpmap),
	(gst_rtspsrc_media_to_caps), (gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_send),
	(gst_rtspsrc_change_state):
	More SDP parsing and caps setting.
	Do NO_PREROLL differently.
	add pads only after negotiated.

	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
	(gst_udpsrc_getcaps):
	Implement the getcaps function.

2005-09-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_sink_setcaps),
	(gst_rtpamrdec_chain):
	Handle multiple AMr packets per payload. Handle CRC and
	parse ILL/ILP.

	* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_setcaps):
	Make caps params strings for easy SDP mapping.
	
	* gst/rtp/gstrtpdec.c: (gst_rtpdec_init), (gst_rtpdec_getcaps):
	Handle capsnego better.

	* gst/rtp/gstrtpmp4vdec.c: (gst_rtpmp4vdec_setcaps):
	* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_new_caps):
	Generate and parse config string in the caps.

2005-09-21  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/README:
	Update README

	* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_sink_setcaps):
	Make extra params as strings.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_set_state),
	(gst_rtspsrc_parse_rtpmap), (gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_stream_setup_rtp), (gst_rtspsrc_send):
	Make state change return NO_PREROLL as this is a live
	source.

	* gst/udp/gstudpsrc.c: (gst_udpsrc_set_property):
	Don't unref old caps when NULL.

2005-09-20  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_get_type),
	(gst_rtspsrc_parse_rtpmap), (gst_rtspsrc_media_to_caps),
	(gst_rtspsrc_stream_setup_rtp), (gst_rtspsrc_send),
	(gst_rtspsrc_open), (gst_rtspsrc_uri_get_type),
	(gst_rtspsrc_uri_get_protocols), (gst_rtspsrc_uri_get_uri),
	(gst_rtspsrc_uri_set_uri), (gst_rtspsrc_uri_handler_init):
	* gst/rtsp/sdpmessage.c: (sdp_media_get_format):
	* gst/rtsp/sdpmessage.h:
	Add URI handler.
	Parse SDP and create caps.

2005-09-20  Stefan Kost  <ensonic@users.sf.net>

	* gst/alpha/gstalpha.c:
	  fix element description

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtph263pdec.c: (gst_rtph263pdec_chain):
	Don't check payload for now.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_reset),
	(gst_wavparse_init), (gst_wavparse_parse_file_header),
	(gst_wavparse_stream_init), (gst_wavparse_handle_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
	(gst_wavparse_loop), (gst_wavparse_pad_convert),
	(gst_wavparse_pad_query), (gst_wavparse_srcpad_event),
	(gst_wavparse_change_state):
	* gst/wavparse/gstwavparse.h:
	Fix wavparse some more.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* check/elements/level.c: (GST_START_TEST):
	Fix for bus API change.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* gst/level/level-example.c: (main):
	Fix for new bus API.

	* gst/udp/gstudpsrc.c: (gst_udpsrc_set_property):
	Set caps on pads.

2005-09-15  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/README:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
	(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
	(gst_rtpamrdec_change_state):
	* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
	(gst_rtpamrenc_class_init), (gst_rtpamrenc_init),
	(gst_rtpamrenc_setcaps), (gst_rtpamrenc_handle_buffer):
	* gst/rtp/gstrtpamrenc.h:
	* gst/rtp/gstrtpgsmenc.c: (gst_rtpgsmenc_get_type),
	(gst_rtpgsmenc_class_init), (gst_rtpgsmenc_init),
	(gst_rtpgsmenc_setcaps), (gst_rtpgsmenc_handle_buffer):
	* gst/rtp/gstrtpgsmenc.h:
	* gst/rtp/gstrtpgsmparse.c: (gst_rtpgsmparse_class_init),
	(gst_rtpgsm_caps_nego), (gst_rtpgsmparse_chain),
	(gst_rtpgsmparse_set_property), (gst_rtpgsmparse_get_property),
	(gst_rtpgsmparse_change_state):
	* gst/rtp/gstrtpgsmparse.h:
	* gst/rtp/gstrtph263pdec.c: (gst_rtph263pdec_class_init),
	(gst_rtph263pdec_finalize), (gst_rtph263pdec_change_state):
	* gst/rtp/gstrtph263penc.c: (gst_rtph263penc_get_type),
	(gst_rtph263penc_class_init), (gst_rtph263penc_init),
	(gst_rtph263penc_finalize), (gst_rtph263penc_setcaps),
	(gst_rtph263penc_flush), (gst_rtph263penc_handle_buffer):
	* gst/rtp/gstrtph263penc.h:
	* gst/rtp/gstrtpmp4vdec.c: (gst_rtpmp4vdec_setcaps),
	(gst_rtpmp4vdec_chain), (gst_rtpmp4vdec_change_state):
	* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_get_type),
	(gst_rtpmp4venc_class_init), (gst_rtpmp4venc_init),
	(gst_rtpmp4venc_finalize), (gst_rtpmp4venc_new_caps),
	(gst_rtpmp4venc_setcaps), (gst_rtpmp4venc_flush),
	(gst_rtpmp4venc_parse_data), (gst_rtpmp4venc_handle_buffer):
	* gst/rtp/gstrtpmp4venc.h:
	* gst/rtp/gstrtpmpadec.c:
	* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_get_type),
	(gst_rtpmpaenc_class_init), (gst_rtpmpaenc_init),
	(gst_rtpmpaenc_finalize), (gst_rtpmpaenc_setcaps),
	(gst_rtpmpaenc_flush), (gst_rtpmpaenc_handle_buffer):
	* gst/rtp/gstrtpmpaenc.h:
	Updates to payloader/depayloaders, make payloaders use
	the base classes.
	Updated README with suggested RTP caps and how to convert
	to/from SDP.
	Added config descriptor in mp4v payloader.

2005-09-15  Andy Wingo  <wingo@pobox.com>

	* gst/autodetect/gstautoaudiosink.c (gst_auto_audio_sink_find_best): 
	* gst/autodetect/gstautovideosink.c
	(gst_auto_video_sink_find_best): Update for new registry API.

2005-09-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/c-to-xml.py:
	* common/gtk-doc-plugins.mak:
	  a simple py script to generate valid xml from a C example
	  probably also need to strip an MIT license when we decide
	* docs/plugins/Makefile.am:
	* gst/level/Makefile.am:
	* gst/level/gstlevel.c: (gst_level_init):
	* gst/level/level-example.c: (message_handler), (main):
	  add an example to level that will show up in the docs
	* gst/rtp/TODO:
	  add a note for the future

2005-09-14  Michael Smith <msmith@fluendo.com>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_class_init):
	  Actually define the debug object being used in wavenc. Fixes #316205

2005-09-14  Michael Smith <msmith@fluendo.com>

	* gst/smpte/Makefile.am:
	  Link against GST_BASE_LIBS, to get it linked against libgstbase;
	  needed to build on windows (bug 316204)

2005-09-12  Andy Wingo  <wingo@pobox.com>

	* autogen.sh (package): Now type 'make' to build gst-plugins-good.

2005-09-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* gst/fdsrc/Makefile.am:
	* gst/fdsrc/gstfdsrc.c:
	* gst/fdsrc/gstfdsrc.h:
	  Move fdsrc back into gstreamer core elements.

	* gst/level/gstlevel.c: (gst_level_class_init),
	(gst_level_transform_ip):
	* gst/videobox/gstvideobox.c: (gst_video_box_set_property):
	  Basetransform changes.

2005-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
	* ext/jpeg/smokecodec.c: (find_best_size):
	  fix compiler warnings

2005-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-plugins-good.spec.in:
	  spec file fixes
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_class_init),
	(gst_multiudpsink_render), (gst_multiudpsink_add),
	(gst_multiudpsink_clear):
	  it actually helps to actually stream if we hook up the
	  "add" signal to an actual implementation
	* gst/udp/gstudpsrc.c: (gst_udpsrc_start):
	  some debugging

2005-09-08  Flavio Oliveira  <flavio.oliveira@indt.org.br>

	* ext/jpeg/Makefile.am:
	* ext/jpeg/gstjpeg.c
	* ext/jpeg/gstjpegenc.c:
	* ext/jpeg/gstsmokeenc.c:

2005-09-07  Stefan Kost  <ensonic@users.sf.net>

	* ext/flac/gstflacdec.c:
	* ext/flac/gstflacenc.c:
	* ext/flac/gstflactag.c:
	* ext/speex/gstspeexenc.c:
	  gsttaginterface.h -> gsttagsetter.h

2005-09-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* gst/debug/Makefile.am:
	* gst/debug/efence.c: (gst_efence_class_init), (gst_efence_init),
	(gst_efence_chain), (gst_efence_buffer_alloc), (plugin_init),
	(gst_fenced_buffer_finalize), (gst_fenced_buffer_copy),
	(gst_fenced_buffer_alloc), (gst_fenced_buffer_class_init),
	(gst_fenced_buffer_init), (gst_fenced_buffer_get_type):
	  Port to 0.9 and re-enable efence plugin.

2005-09-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/flac/gstflacdec.c: (flac_caps_factory), (raw_caps_factory),
	(gst_flacdec_write), (gst_flacdec_convert_src):
	* ext/flac/gstflacdec.h:
	  Add support for flac files with 24/32 bits per sample; and misc.
	  minor clean-ups. Seeking is still partly broken (for me at least).

2005-09-06  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpmp4vdec.c: (gst_rtpmp4vdec_get_type),
	(gst_rtpmp4vdec_base_init), (gst_rtpmp4vdec_class_init),
	(gst_rtpmp4vdec_init), (gst_rtpmp4vdec_setcaps),
	(gst_rtpmp4vdec_chain), (gst_rtpmp4vdec_set_property),
	(gst_rtpmp4vdec_get_property), (gst_rtpmp4vdec_change_state),
	(gst_rtpmp4vdec_plugin_init):
	* gst/rtp/gstrtpmp4vdec.h:
	* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_get_type),
	(gst_rtpmp4venc_base_init), (gst_rtpmp4venc_class_init),
	(gst_rtpmp4venc_init), (gst_rtpmp4venc_setcaps),
	(gst_rtpmp4venc_flush), (gst_rtpmp4venc_chain),
	(gst_rtpmp4venc_set_property), (gst_rtpmp4venc_get_property),
	(gst_rtpmp4venc_change_state), (gst_rtpmp4venc_plugin_init):
	* gst/rtp/gstrtpmp4venc.h:
	* gst/rtp/gstrtpmpadec.c: (gst_rtpmpadec_chain):
	* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_flush):
	Added mpeg4 video payload encoder/decoder.
	Added some docs in mpa payloader.

=== release 0.9.1 ===

2005-09-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* README:
	* RELEASE:
	* autogen.sh:
	* configure.ac:
	  releasing 0.9.1, "Blondie"

2005-09-05  Andy Wingo  <wingo@pobox.com>

	* ext/dv/gstdvdemux.c (gst_dvdemux_chain): Move the pad adding
	here from the state change handler, so we fire signals without
	holding the state lock.

2005-09-02  Andy Wingo  <wingo@pobox.com>

	* All plugins updated for element state changes.

2005-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* check/.cvsignore:
	* check/Makefile.am:
	* check/elements/.cvsignore:
	* check/elements/level.c: (setup_level), (cleanup_level),
	(GST_START_TEST), (level_suite), (main):
	  add a test for level
	* common/release.mak:
	  move the enum checking to release.mak
	* configure.ac:
	  add valgrind and check checking
	* gst/level/gstlevel.c: (gst_level_transform):
	* gst/level/gstlevel.h:
	  fix Andy's cast bug
	  convert a field to int
	  fix the arithmetic to int when checking for emit so that a
	  100-sample buffer of a 1000Hz stream triggers after 0.1 sec

2005-09-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	  add docs to build
	* common/plugins.xsl:
	  wrap Description into a refsect2
	* docs/Makefile.am:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* gst/goom/Makefile.am:
	* gst/goom/gstgoom.c: (gst_goom_get_type), (gst_goom_base_init),
	(gst_goom_class_init), (gst_goom_init), (gst_goom_dispose),
	(gst_goom_sink_setcaps), (gst_goom_src_setcaps),
	(gst_goom_src_negotiate), (gst_goom_event), (gst_goom_chain),
	(gst_goom_change_state):
	* gst/goom/gstgoom.h:
	  GstGOOM -> GstGoom
	  add an example launch line
	* gst/level/gstlevel.h:
	* gst/monoscope/gstmonoscope.c:
	  cleanups

2005-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
	* docs/plugins/gst-plugins-good-plugins-sections.txt:
	* docs/plugins/gst-plugins-good-plugins.types:
	  document elements and plugins.  Shazam !

2005-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* split off gst-plugins-good from gst-plugins.  Old ChangeLog can
	  be found under doc/random/ChangeLog-0.8
