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

	* Updates for two-arg init from GST_BOILERPLATE.

	* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_init): Use
	the second arg for the class, because G_OBJECT_GET_CLASS (self)
	returns the wrong thing.
	(gst_signal_processor_add_pad_from_template): Make pads of the
	right type.

	* ext/ladspa/gstladspa.c (gst_ladspa_class_get_param_spec): Make
	writable param specs G_PARAM_CONSTRUCT so default values work.
	(gst_ladspa_init): Use the second arg for the class.

2005-08-26  Andy Wingo  <wingo@pobox.com>

	* ext/ladspa/gstladspa.c: 
	* ext/ladspa/gstladspa.h: Finish porting, still doesn't work but
	it does compile and register. I have more features than you.
	
	* ext/ladspa/gstsignalprocessor.h: 
	* ext/ladspa/gstsignalprocessor.c: Updates, bug fixen.

2005-08-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/effectv/gstquark.c: (gst_quarktv_init),
	(gst_quarktv_change_state):
	  do proper cleanup/creation, fixes state changes

2005-08-25  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/level/gstlevel.c: (gst_level_message_new):
	Revert unpopular change for GST_MESSAGE_SRC to GObject.

2005-08-25  Andy Wingo  <wingo@pobox.com>

	* ext/ladspa/gstladspa.h: 
	* ext/ladspa/gstladspa.c: Halfway-ported. Doesn't compile yet.

	* ext/ladspa/gstsignalprocessor.h:
	* ext/ladspa/gstsignalprocessor.c: New files, the start of a base
	class for DSP elements.

	* configure.ac: Sort the external libs checks, add a ladspa check,
	output the ladspa makefile.

2005-08-25  Owen Fraser-Green  <owen@discobabe.net>

	* gst/realmedia/rmdemux.c (gst_rmdemux_loop, gst_rmdemux_chain):
	Fixed EOS.
	(gst_rmdemux_parse_indx_data, gst_rmdemux_parse_indx): Handle
	malformed index headers where the packet size is incorrect.

2005-08-24  Andy Wingo  <wingo@pobox.com>

	* ext/dv/gstdvdemux.c (gst_dvdemux_demux_frame): Send out valid
	segment end timestamps.

2005-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/Makefile.am:
	  lame and mpegaudioparse seem to work
	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_transform_caps), (gst_video_box_get_unit_size):
	  update for basetransform changes

2005-08-24  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/level/gstlevel.c: (gst_level_message_new):
	  GST_MESSAGE_SRC became a GObject

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

	* ext/speex/gstspeexenc.h:
	  Fixed include path of adapter

2005-08-23  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeexdec.c: (gst_speex_dec_class_init):
	* ext/speex/gstspeexenc.c: (gst_speexenc_class_init):
	Fix property warning.

2005-08-23  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
	(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain):
	* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
	(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
	* gst/rtp/gstrtph263penc.c: (gst_rtph263penc_class_init),
	(gst_rtph263penc_flush), (gst_rtph263penc_chain):
	Small updates, RFC reference to payload encoders.

2005-08-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/speex/Makefile.am:
	* ext/speex/gstspeex.c: (plugin_init):
	* ext/speex/gstspeexdec.c: (speex_get_query_types),
	(gst_speex_dec_init), (speex_dec_src_query), (speex_dec_src_event),
	(speex_dec_event), (speex_dec_chain):
	  Port speexdec. Leads to some unfamiliar warnings on console,
	  but works otherwise.

2005-08-23  Andy Wingo  <wingo@pobox.com>

	* sys/oss/gstosssrc.c (gst_oss_src_open): Set the device-name
	property after opening the mixer.

	* sys/oss/gstosssrc.c: 
	* sys/oss/gstosssrc.h: Easy to implement a mixer, eh...

	* sys/oss/gstossmixerelement.h:
	* sys/oss/gstossmixerelement.c: Added mixer element like
	alsamixer.

	* sys/oss/Makefile.am: 
	* sys/oss/gstossaudio.c: Register the ossmixer element.
	
	* sys/oss/gstossmixer.h:
	* sys/oss/gstossmixer.c: Refactored to be more like alsamixer.

	* sys/oss/gstossmixertrack.h:
	* sys/oss/gstossmixertrack.c: Split out from gstossmixer.[ch],
	like gstalsamixer.

	* sys/oss/gstosssrc.c:
	* sys/oss/gstosssink.c: Where before we used a gstosselement
	object as a helper library, now just call functions from
	gstosshelper.

	* sys/oss/gstosshelper.h:
	* sys/oss/gstosshelper.c: Made a real library. Removed
	propertyprobe for now, should add it back later.
	
	* sys/oss/gstosselement.h:
	* sys/oss/gstosselement.c: Removed, we don't have a shared base
	class.
	
	* sys/oss/gstosshelper.c (gst_oss_helper_probe_caps): Search
	higher-to-lower, makes 16 bit appear earlier in the caps, which
	makes it preferred.

	* sys/oss/gstosssrc.h: 
	* sys/oss/gstosssrc.c: Totally ported, dude.

	* sys/oss/Makefile.am:
	* sys/oss/gstossaudio.c: Add osssrc.
	
	* sys/oss/gstosssink.c: We do native byte order.

2005-08-23  Owen Fraser-Green  <owen@discobabe.net>

	* gst/realmedia/rmdemux.c (gst_rmdemux_src_event): Fixed bug
	causing events to be passed wrong way.
	(gst_rmdemux_parse_packet): Avoid accidentally skipping audio.

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

	* ext/mad/gstid3tag.c: (gst_id3_tag_init),
	(gst_id3_tag_sink_event), (gst_id3_tag_do_caps_nego),
	(gst_id3_tag_chain), (gst_id3_tag_change_state), (plugin_init):
	  Works a bit better now, but still needs a rewrite to use
	  get_range instead of this seeking nastiness.

2005-08-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/flac/Makefile.am:
	* ext/flac/gstflac.c: (plugin_init):
	* ext/flac/gstflacdec.c: (flacdec_get_type), (gst_flacdec_init),
	(gst_flacdec_update_metadata), (gst_flacdec_seek),
	(gst_flacdec_tell), (gst_flacdec_length), (gst_flacdec_read),
	(gst_flacdec_write), (gst_flacdec_loop),
	(gst_flacdec_get_src_query_types), (gst_flacdec_src_query),
	(gst_flacdec_src_event), (gst_flacdec_sink_activate),
	(gst_flacdec_sink_activate_pull), (gst_flacdec_change_state):
	* ext/flac/gstflacdec.h:
	  Port flacdec (seeking is still slow'ish).

2005-08-22  Owen Fraser-Green  <owen@discobabe.net>

	* gst/realmedia/rmdemux.c: 
	(gst_rmdemux_perform_seek, gst_rmdemux_parse_packet): 
	Seeking improvements.

2005-08-19  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_class_init):
	Remove get_time code that is both wrong and unneeded.

2005-08-19  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtph263penc.c: (gst_rtph263penc_class_init),
	(gst_rtph263penc_flush), (gst_rtph263penc_chain),
	(gst_rtph263penc_set_property), (gst_rtph263penc_get_property):
	* gst/rtp/gstrtph263penc.h:
	Added configurable pt and ssrc, to be merged in the caps or
	a base class...

2005-08-19  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtph263pdec.c: (gst_rtph263pdec_init),
	(gst_rtph263pdec_chain):
	* gst/rtp/gstrtph263penc.c: (gst_rtph263penc_class_init),
	(gst_rtph263penc_flush), (gst_rtph263penc_chain):
	Some cleanups in the h263p (de)payloaders.

2005-08-19  Wim Taymans  <wim@fluendo.com>

	* ext/amrnb/amrnbdec.c:
	* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
	* ext/amrnb/amrnbparse.c:
	Update caps with audio/AMR.
	
	* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
	(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
	(gst_rtpamrdec_change_state):
	* gst/rtp/gstrtpamrdec.h:
	* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
	(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
	Dont set FT headers twice, it was already in the encoded
	bitstream.
	
	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
	(gst_rtspsrc_close), (gst_rtspsrc_play):
	* gst/rtsp/rtspconnection.c: (parse_line):
	Cleanups
	
	* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
	(gst_udpsrc_create), (gst_udpsrc_set_property),
	(gst_udpsrc_get_property):
	* gst/udp/gstudpsrc.h:
	Added caps property, we need this soon to type the buffers.

2005-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
	(gst_rtpamrdec_chain):
	Fix up amr depayloader a bit.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
	(gst_rtspsrc_close), (gst_rtspsrc_play):
	Look for options result in Public and Allow header fields..
	spec says Allow but some servers return Public...

2005-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
	(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
	(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property):
	* gst/rtp/gstrtpamrenc.h:
	Added payload_type and ssrc properties to the payloader.

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
	(gst_rtspsrc_close), (gst_rtspsrc_play):
	Options need to be stripped and are in the Public header field.

	* gst/rtsp/rtspurl.c: (rtsp_url_parse):
	Fix url / parsing...


2005-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
	(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
	(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
	(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
	(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
	* gst/rtp/gstrtpamrdec.h:
	* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
	(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
	(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
	(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
	(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
	* gst/rtp/gstrtpamrenc.h:
	* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
	(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
	Added very simplistic amr payloader. depayloader does not
	work yet.

2005-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
	(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
	(gst_rtspsrc_change_state):
	* gst/rtsp/gstrtspsrc.h:
	* gst/rtsp/rtspdefs.c: (rtsp_method_as_text), (rtsp_find_method):
	* gst/rtsp/rtspdefs.h:
	* gst/rtsp/rtsptransport.c: (rtsp_transport_parse):
	Handle RTSP defaults better.
	Issue OPTIONS request to figure out what we are allowed to do.
	Make the methods a bitfield so we can easily collect supported 
	options.
	Fix rtsp_find_method.
	Do proper RTSP connection shutdown.

2005-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp-common.h:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpL16enc.h:
	* gst/rtp/gstrtpdec.c: (gst_rtpdec_get_type),
	(gst_rtpdec_class_init), (gst_rtpdec_chain_rtp),
	(gst_rtpdec_chain_rtcp), (gst_rtpdec_change_state),
	(gst_rtpdec_plugin_init):
	* gst/rtp/gstrtph263pdec.c: (gst_rtph263pdec_get_type),
	(gst_rtph263pdec_base_init), (gst_rtph263pdec_class_init),
	(gst_rtph263pdec_init), (gst_rtph263pdec_chain),
	(gst_rtph263pdec_set_property), (gst_rtph263pdec_get_property),
	(gst_rtph263pdec_change_state), (gst_rtph263pdec_plugin_init):
	* gst/rtp/gstrtph263pdec.h:
	* gst/rtp/gstrtph263penc.c: (gst_rtph263penc_get_type),
	(gst_rtph263penc_base_init), (gst_rtph263penc_class_init),
	(gst_rtph263penc_init), (gst_rtph263penc_flush),
	(gst_rtph263penc_chain), (gst_rtph263penc_set_property),
	(gst_rtph263penc_get_property), (gst_rtph263penc_change_state),
	(gst_rtph263penc_plugin_init):
	* gst/rtp/gstrtph263penc.h:
	* gst/rtp/gstrtpmpadec.c: (gst_rtpmpadec_get_type),
	(gst_rtpmpadec_base_init), (gst_rtpmpadec_class_init),
	(gst_rtpmpadec_init), (gst_rtpmpadec_chain),
	(gst_rtpmpadec_set_property), (gst_rtpmpadec_get_property),
	(gst_rtpmpadec_change_state), (gst_rtpmpadec_plugin_init):
	* gst/rtp/gstrtpmpadec.h:
	* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_get_type),
	(gst_rtpmpaenc_base_init), (gst_rtpmpaenc_class_init),
	(gst_rtpmpaenc_init), (gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain),
	(gst_rtpmpaenc_set_property), (gst_rtpmpaenc_get_property),
	(gst_rtpmpaenc_change_state), (gst_rtpmpaenc_plugin_init):
	* gst/rtp/gstrtpmpaenc.h:
	* gst/rtp/rtp-packet.c:
	* gst/rtp/rtp-packet.h:
	Remove old code that is now in gst-libs/gst/rtp/.
	Added some payload/depayloaders.

	* gst/udp/gstudpsink.c: (gst_udpsink_class_init):
	Fix port number range.

2005-08-17  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	Added mpegaudioparse

	* ext/lame/gstlame.c: (gst_lame_src_getcaps),
	(gst_lame_src_setcaps), (gst_lame_sink_setcaps),
	(gst_lame_sink_event), (gst_lame_chain):
	Some cleanups.
	Fix memleak.

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	(gst_mp3parse_class_init), (gst_mp3parse_init),
	(gst_mp3parse_chain), (gst_mp3parse_change_state):
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	Ported mpegaudioparse

2005-08-17  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open), (gst_rtspsrc_play):
	Support absolute control urls too.

2005-08-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
	(gst_avi_demux_stream_header):
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_add_stream), (qtdemux_parse_tree):
	  Uncomment metadata and codec-name handling.

2005-08-16  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* ext/amrnb/amrnbparse.c: (gst_amrnbparse_read_header):
	Fix compile warning.

	* ext/lame/gstlame.c: (gst_lame_class_init),
	(gst_lame_src_getcaps), (gst_lame_src_setcaps),
	(gst_lame_sink_setcaps), (gst_lame_init), (gst_lame_sink_event),
	(gst_lame_chain), (gst_lame_change_state):
	* ext/lame/gstlame.h:
	Port lame plugin

2005-08-16  Andy Wingo  <wingo@pobox.com>

	* ext/dv/gstdvdemux.c (gst_dvdemux_flush): Use gst_adapter_take so
	we have our own copy of the data.
	(gst_dvdemux_demux_video): Set the take() data as malloc_data so
	it will get freed later.

	* ext/raw1394/gstdv1394src.c (gst_dv1394src_iso_receive): Note
	license info in the source code -- was only in the commit log
	before.

	* ext/dv/gstdvdec.h:
	* ext/dv/gstdvdec.c: Only decodes systemstream=FALSE dv video --
	old pipelines using dvdec should probably have a dvdemux first.

	* ext/dv/gstdvdemux.h:
	* ext/dv/gstdvdemux.c: Split out from dvdec, chunks the incoming
	systemstream=TRUE data into frames, sets caps data, and spits out
	PCM audio in addition to systemstream=FALSE video frames. Operates
	in chain mode only for now; should make a getrange version as
	well.

	* ext/dv/gstdv.c: New file, registers the libgstdv plugin.

	* ext/dv/Makefile.am: Library name changed to libgstdv. Split
	dvdec into dvdemux and dvdec.

2005-08-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_event), (gst_faad_chain):
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header):
	  Handle _push() return values.

2005-08-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_event):
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header):
	  Fix debug.

2005-08-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
	(qtdemux_video_caps):
	  Forwardport from 0.8 to implement RLE.

2005-08-15  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/README:
	Added rtsp server implementation docs.

2005-08-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/aalib/gstaasink.c:
	  aalib is LGPL, so this plugin can be LGPL
	* ext/arts/gst_arts.c: (plugin_init):
	  rename, we don't like underscores
	* ext/audiofile/gstaf.c:
	* ext/sndfile/gstsf.c:
	  rename, we like a descriptive plugin name
	* ext/gconf/gstgconfelements.c:
	  change description a little
	* ext/musicbrainz/gsttrm.c:
	  musicbrainz is LGPL, so plugin can be LGPL
	* ext/raw1394/gst1394.c:
	  rename, we like all-digit names
	* gst/equalizer/gstiirequalizer.c:
	* gst/fdsrc/gstfdsrc.c:
	* gst/multifilesink/gstmultifilesink.c:
	  rename
	* gst/virtualdub/gstvirtualdub.c:
	  use GST_PLUGIN_DEFINE
	* sys/dxr3/dxr3init.c:
	  only uses system headers, and code is LGPL, so plugin is LGPL

2005-08-13  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/mad/Makefile.am:
	* gst/avi/Makefile.am:
	* gst/effectv/Makefile.am:
	* gst/udp/Makefile.am:
	* gst/wavparse/Makefile.am:
	  Use -lgstfoo-@GST_MAJORMINOR@ instead of -lgstfoo-0.9

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

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_decode_indirect),
	(gst_jpeg_dec_decode_direct), (gst_jpeg_dec_chain):
	  Fix decoding of pictures with certain uneven or unaligned
	  widths where jpeglib needs more horizontal padding than our
	  I420 buffers provide, resulting in blocky artifacts at the
	  left side of the picture (#164176). 
	  Also make use of our shiny new GST_ROUND_N() macros.

2005-08-11  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init), (gst_jpeg_dec_chain),
	(gst_jpeg_dec_change_state):
	* ext/jpeg/gstjpegdec.h:
	  Fix crashes/invalid memory access for pictures that have a height
	  that is not a multiple of 16 (or rather: v_samp_factor * DCTSIZE).
	  
	  Also fix the state change function for downwards state changes
	  (need to chain up to parent before destroying our resources, to 
	  make sure pads get deactivated and our chain function isn't
	  running and using those very same resources in another thread).

	  The jpeg line buffer only needs to be v_samp_factor*DCTSIZE lines
	  per plane, not picture_height lines; allocate that on the stack.

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

	* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers),
	(gst_wavparse_stream_data):
	  Add some fixes from 0.8 branch: allow 24/32bps songs and
	  blockalign samples to the header-specified size, if any
	  (#311070); error out on channels==0 or bitrate==0 
	  (#309043, #304588).

2005-08-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/level/gstlevel.c: (gst_level_init), (gst_level_set_caps),
	(gst_level_transform):
	* gst/level/gstlevel.h:
	  remove unused MS struct member
	  don't reset the CS values for channels on every _chain, so that
	  level actually correctly calculates the RMS value.  sigh.
	  calculate RMS values correctly for peak and decay peak sums;
	  before we were signalling them as if they already were amplitude
	  and not power values.  sigh.
	Remind me to not try and pretend I'm writing DSP code.

2005-08-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_class_init), (gst_faad_setcaps):
	  Add debug category, remove Close() call that made it crash
	  whenever reusing, renegotiating or anything; Close() actually
	  free()s the handle and should only be called on READY->NULL.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header):
	  Actually set caps on buffer (in addition to pad), also.

2005-08-10  Owen Fraser-Green  <owen@discobabe.net>

	* gst/realmedia/rmdemux.c (gst_rmdemux_sink_activate) 
	(gst_rmdemux_sink_activate_push, gst_rmdemux_sink_activate_pull) 
	(gst_rmdemux_loop, gst_rmdemux_src_event) 
	(gst_rmdemux_perform_seek, gst_rmdemux_src_query): Implemented
	push-pull and seeking.

2005-08-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_event):
	  Sign/unsign mismatch.
	* configure.ac:
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init),
	(gst_qtdemux_init), (gst_qtdemux_get_src_query_types),
	(gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event),
	(plugin_init), (gst_qtdemux_handle_sink_event),
	(gst_qtdemux_change_state), (gst_qtdemux_loop_header),
	(qtdemux_sink_activate), (qtdemux_sink_activate_pull),
	(gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_parse_tree),
	(qtdemux_parse_trak), (qtdemux_video_caps), (qtdemux_audio_caps):
	* gst/qtdemux/qtdemux.h:
	  Half-assed port (hey, it works).

2005-08-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_header):
	  Fix AVI header parsing: add missing break statement after
	  GST_RIFF_INFO_LIST parsing code; gst_riff_read_chunk() has
	  already advanced the avi->offset, no need to do it twice
	  (fixes MovieOfMovies.avi).

2005-08-09  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init),
	(gst_jpeg_dec_setcaps), (gst_jpeg_dec_chain),
	(gst_jpeg_dec_change_state):
	* ext/jpeg/gstjpegdec.h:
	  Make mjpeg actually work and skip jpeg data parsing if we
	  know that the input is packetized (ie. each input buffer
	  is exactly one jpeg frame).

2005-08-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_init), (gst_mad_chain):
	  It'd be nice if I could listen to my mp3 files, so send out an
	  initial discont, as the sink apparently wants.

2005-08-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event),
	(gst_avi_demux_handle_seek):
	  Fix seeking (or, well, fix threading issue where a variable was
	  set before a lock was taken and was already unset before that
	  same lock was taken and was thus no longer in existance when it
	  actually had to be used).

2005-08-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
	  Mixing binary and logical operators is not going to work; fix
	  position-querying in Totem.

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

	* ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_class_init),
	(gst_faad_init), (gst_faad_setcaps), (gst_faad_srcgetcaps),
	(gst_faad_event), (gst_faad_update_caps), (gst_faad_chain),
	(gst_faad_change_state):
	* ext/faad/gstfaad.h:
	  Fix negotiation (#310932) and miscellaneous other stuff. Probably
	  still needs some more work.

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

	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init),
	(gst_jpeg_dec_setcaps), (gst_jpeg_dec_chain):
	  Add setcaps() function (for mjpeg).

2005-08-08  Andy Wingo  <wingo@pobox.com>

	* ext/esd/esdsink.c (gst_esdsink_getcaps): Seems that wierd
	va_list caps setting function was borked. Fixed esdsink.

	* sys/oss/gstosssink.c (gst_oss_sink_open, gst_oss_sink_close) 
	(gst_oss_sink_prepare, gst_oss_sink_unprepare): Update for newer
	audiosink api.

	* ext/raw1394/gstdv1394src.c (gst_dv1394src_get_property) 
	(gst_dv1394src_set_property): Style. All about the style.

	* ext/esd/esdsink.c (gst_esdsink_getcaps): Return specific caps
	only if in READY or higher (i.e., if _open() has been called.)
	(gst_esdsink_open, gst_esdsink_close, gst_esdsink_prepare) 
	(gst_esdsink_unprepare): Update for audiosink changes.
	(gst_esdsink_change_state): Die!

2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/jpeg/Makefile.am:
	  Fix compile.

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

	* configure.ac:
	* ext/Makefile.am:
	* ext/jpeg/Makefile.am:
	* ext/jpeg/gstjpeg.c: (plugin_init):
	* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_get_type),
	(gst_jpeg_dec_finalize), (gst_jpeg_dec_base_init),
	(gst_jpeg_dec_class_init), (gst_jpeg_dec_fill_input_buffer),
	(gst_jpeg_dec_init_source), (gst_jpeg_dec_skip_input_data),
	(gst_jpeg_dec_resync_to_restart), (gst_jpeg_dec_term_source),
	(gst_jpeg_dec_my_output_message), (gst_jpeg_dec_my_emit_message),
	(gst_jpeg_dec_my_error_exit), (gst_jpeg_dec_init),
	(is_jpeg_start_marker), (is_jpeg_end_marker),
	(gst_jpeg_dec_find_jpeg_header), (gst_jpeg_dec_ensure_header),
	(gst_jpeg_dec_have_end_marker),
	(gst_jpeg_dec_parse_tag_has_entropy_segment),
	(gst_jpeg_dec_parse_image_data), (gst_jpeg_dec_chain),
	(gst_jpeg_dec_change_state):
	* ext/jpeg/gstjpegdec.h:
	  Port jpegdec to 0.9; handles 'progressive loading' now, ie. input does
	  no longer need to be one single buffer.

2005-08-04  Andy Wingo  <wingo@pobox.com>

	* sys/oss/gstossaudio.c (plugin_init): Second-class citizen.

	* gst/videobox/gstvideobox.c (gst_video_box_get_size): Update for
	API changes.

	* configure.ac (DEFAULT_AUDIOSINK, DEFAULT_VIDEOSINK): Set to
	autoaudiosink and autovideosink.

2005-08-04  Edward Hervey  <edward@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_parse_stream), (gst_avi_demux_process_next_entry):
	You need to allocatate (len+1) characters to store a len size string.
	Also don't stop the processing task if the output pad is not linked.

2005-08-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_reset),
	(gst_gconf_audio_sink_init), (do_toggle_element),
	(cb_toggle_element), (gst_gconf_audio_sink_change_state):
	* ext/gconf/gstgconfaudiosink.h:
	* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_reset),
	(gst_gconf_video_sink_init), (do_toggle_element),
	(cb_toggle_element), (gst_gconf_video_sink_change_state):
	* ext/gconf/gstgconfvideosink.h:
	* gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_reset),
	(gst_auto_audio_sink_init), (gst_auto_audio_sink_detect),
	(gst_auto_audio_sink_change_state):
	* gst/autodetect/gstautoaudiosink.h:
	* gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_reset),
	(gst_auto_video_sink_init), (gst_auto_video_sink_detect),
	(gst_auto_video_sink_change_state):
	* gst/autodetect/gstautovideosink.h:
	  Use new ghostpad API; now they actually work in Totem, also.

2005-08-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/Makefile.am:
	  Fix uninstalled build.

2005-08-02  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	* ext/Makefile.am:
	* ext/libpng/Makefile.am:
	* ext/libpng/gstpng.c:
	* ext/libpng/gstpngenc.c:
	Ported pngenc , still have to port pngdec...

2005-08-01  Stefan Kost  <ensonic@users.sf.net>

	reviewed by: <delete if not using a buddy>

	* configure.ac:
	* ext/ladspa/Makefile.am:
	* ext/ladspa/gstladspa.c: (gst_ladspa_init), (gst_ladspa_loop),
	(gst_ladspa_chain), (gst_ladspa_get), (plugin_init):
	* ext/ladspa/gstladspa.h:
          deactivate and remove dparams (libgstcontrol)

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_event):
	Compile fixes.

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* ext/amrnb/amrnbparse.c: (gst_amrnbparse_event),
	(gst_amrnbparse_loop):
	* ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event),
	(gst_dvdec_handle_src_event), (gst_dvdec_decode_frame):
	* ext/mad/gstid3tag.c: (gst_id3_tag_src_event),
	(gst_id3_tag_sink_event), (gst_id3_tag_chain):
	* ext/mad/gstmad.c: (gst_mad_src_query), (index_seek),
	(normal_seek), (gst_mad_sink_event), (gst_mad_chain):
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/shout2/gstshout2.c: (gst_shout2send_event):
	* ext/sidplay/gstsiddec.cc:
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event),
	(gst_avi_demux_send_event), (gst_avi_demux_stream_header),
	(gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry):
	* gst/goom/gstgoom.c: (gst_goom_event):
	* gst/realmedia/rmdemux.c: (gst_rmdemux_sink_event),
	(gst_rmdemux_chain), (gst_rmdemux_send_event),
	(gst_rmdemux_add_stream):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek),
	(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
	(gst_wavparse_loop), (gst_wavparse_srcpad_event):
	Various event updates and cleanups.

2005-07-25  Christian Schaller  <uraeus@gnome.org>


	* gst-plugins.spec.in: add silence and videoflip
	* gst/videofilter/Makefile.am: add missing header to noinst

2005-07-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videofilter/Makefile.am:
	* gst/videofilter/gstgamma.c: (gst_gamma_setup):
	* gst/videofilter/gstvideobalance.c: (gst_videobalance_setup):
	* gst/videofilter/gstvideofilter.c: (gst_videofilter_class_init),
	(gst_videofilter_getcaps), (gst_videofilter_setcaps),
	(gst_videofilter_init), (gst_videofilter_chain),
	(gst_videofilter_set_property), (gst_videofilter_get_property),
	(gst_videofilter_setup), (gst_videofilter_class_add_pad_templates):
	* gst/videofilter/gstvideofilter.h:
	* gst/videofilter/gstvideoflip.c: (gst_videoflip_init),
	(gst_videoflip_set_property), (gst_videoflip_get_property),
	(plugin_init), (gst_videoflip_setup), (gst_videoflip_planar411):
	  forward port from 0.9 and enable videoflip now that it works

2005-07-23  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	* gst/silence/Makefile.am:
	* gst/silence/gstsilence.h:
	* gst/silence/gstsilence.c:
	Ported silence to 0.9 using GstBaseSrc ... 180 lines :)

2005-07-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_src_event):
	  First try forwarding events, makes seeking in AVI files with mp3
	  audio work again.

2005-07-20  Andy Wingo  <wingo@pobox.com>

	* ext/mpeg2dec/gstmpeg2dec.c (gst_mpeg2dec_sink_event): Signedness
	fix.

2005-07-20  Edward Hervey  <edward@fluendo.com>

	* configure.ac: 
	* gst/wavparse/gstwavparse.c: 
	* gst/wavparse/gstwavparse.h:
	* gst/wavparse/Makefile.am:
	Ported wavparse to 0.9 . Playing, seeking and state changes work.
	Could need more loving on the headers though.

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/gconf/Makefile.am:
	* ext/gconf/gconf.c: (gst_bin_find_unconnected_pad),
	(gst_gconf_render_bin_from_description),
	(gst_gconf_get_default_video_sink):
	* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init),
	(gst_gconf_audio_sink_class_init), (gst_gconf_audio_sink_dispose),
	(cb_toggle_element), (gst_gconf_audio_sink_change_state):
	* ext/gconf/gstgconfelements.h:
	* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init),
	(gst_gconf_video_sink_class_init), (gst_gconf_video_sink_dispose),
	(cb_toggle_element), (gst_gconf_video_sink_change_state):
	* gst/autodetect/gstautoaudiosink.c:
	(gst_auto_audio_sink_base_init), (gst_auto_audio_sink_class_init),
	(gst_auto_audio_sink_detect), (gst_auto_audio_sink_change_state):
	* gst/autodetect/gstautovideosink.c:
	(gst_auto_video_sink_base_init), (gst_auto_video_sink_class_init),
	(gst_auto_video_sink_find_best), (gst_auto_video_sink_detect):
	  Port auto/gconfsinks to 0.9. They actually appear to work here in
	  Totem as well, making them actually useful.

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/Makefile.am:
	  Fix uninstalled build.

2005-07-19  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstosssink.c: (gst_oss_sink_get_format),
	(gst_oss_sink_open):
	Parse spec to set correct oss values.

2005-07-19  Edgard N. A. G. Lima <edgard.lima@indt.org.br>

        * configure.ac
	* ext/Makefile.am
	* ext/amrnb/amrnbdec.c
	* ext/amrnb/amrnbenc.c
	* ext/amrnb/amrnbparse.c
	* ext/faad/gstfaad.c
	* ext/mpeg2dec/gstmpeg2dec.c
	Ported amrnb, faad, mpeg2dec to 0.9

2005-07-19  Andy Wingo  <wingo@pobox.com>

	* ext/dv/gstdvdec.c (gst_dvdec_decode_video): Set the proper
	framerate on the outbound buffer.

	* ext/dv/gstdvdec.c (gst_dvdec_decode_video): Don't clobber
	alloc_buffer's return value.
	(gst_dvdec_decode_frame): Handle unlinked pads with grace and
	agility.

	* ext/dv/gstdvdec.h: Fix signedness error.

2005-07-19  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_src_convert),
	(gst_dvdec_sink_convert), (gst_dvdec_get_src_query_types),
	(gst_dvdec_src_query), (gst_dvdec_get_sink_query_types),
	(gst_dvdec_sink_query), (gst_dvdec_send_event),
	(gst_dvdec_handle_sink_event), (gst_dvdec_handle_src_event),
	(gst_dvdec_decode_audio), (gst_dvdec_decode_video),
	(gst_dvdec_decode_frame), (gst_dvdec_flush), (gst_dvdec_chain):
	* ext/dv/gstdvdec.h:
	Implemented seeking in dvdec.

2005-07-19  Andy Wingo  <wingo@pobox.com>

	* ext/Makefile.am: Enable dvdev and raw1394src.

2005-07-18  Andy Wingo  <wingo@pobox.com>

	* configure.ac: Use AS_LIBTOOL_TAGS. Fix crap gettext commit
	comment.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_add_element),
	(gst_rtspsrc_play):
	Fix for core changes.

2005-07-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/mad/gstid3tag.c: (gst_id3_tag_sink_event):
	  When returning to NORMAL state after reading tags,
	  pass on the discont event.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/realmedia/rmdemux.c: (gst_rmdemux_sink_event),
	(gst_rmdemux_change_state), (gst_rmdemux_chain),
	(gst_rmdemux_get_stream_by_id), (gst_rmdemux_send_event),
	(gst_rmdemux_add_stream):
	Send discont event before pushing first buffer.

2005-07-17  Philippe Khalaf <burger@speedy.org>

	* gst/fdsrc/gstfdsrc.c:
	Removed #include <gst_private.h>

2005-07-16  Philippe Khalaf <burger@speedy.org>

	* gst/fdsrc/gstfdsrc.c:
	* gst/fdsrc/gstfdsrc.h:
	* gst/fdsrc/Makefile.am:
	Moved fdsrc 0.9 port from gstreamer/gst/elements to here.

2005-07-16  Wim Taymans  <wim@fluendo.com>

	* ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_sink_event),
	(gst_mad_chain):
	Add convert function for proper timestamp calculations.

	* gst/avi/gstavidemux.c: (gst_avi_demux_send_event),
	(gst_avi_demux_stream_header), (gst_avi_demux_handle_seek),
	(gst_avi_demux_process_next_entry), (gst_avi_demux_loop):
	Send out initial discont.

2005-07-15  Wim Taymans  <wim@fluendo.com>

	* gst/level/gstlevel.c: (gst_level_transform):
	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_get_size), (gst_video_box_transform):
	Port to new base class.

2005-07-14  Wim Taymans  <wim@fluendo.com>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_get_type),
	(gst_dv1394src_class_init), (gst_dv1394src_init),
	(gst_dv1394src_iso_receive), (gst_dv1394src_create),
	(gst_dv1394src_change_state), (gst_dv1394src_query):
	It's PUSH_SRC now.

2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_get_type),
	(gst_udpsrc_class_init):
	  more autistic cleanliness in functions/names/defines


2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/aalib/gstaasink.c: (gst_aasink_get_type),
	(gst_aasink_class_init), (gst_aasink_init):
	* ext/esd/esdsink.c: (gst_esdsink_get_type),
	(gst_esdsink_class_init):
	* ext/libcaca/gstcacasink.c: (gst_cacasink_get_type),
	(gst_cacasink_class_init), (gst_cacasink_init):
	* ext/shout2/gstshout2.c: (gst_shout2send_get_type),
	(gst_shout2send_class_init), (gst_shout2send_init):
	* gst/udp/gstdynudpsink.c: (gst_dynudpsink_get_type),
	(gst_dynudpsink_class_init):
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_get_type),
	(gst_multiudpsink_class_init):
	  more macro splitting

2005-07-08  Andy Wingo  <wingo@pobox.com>

	* sys/oss/: Port from THREADED+wim's fixes.

	* gst/avi/Makefile.am (libgstavi_la_CFLAGS): No gettext hacks, the
	defines come from config.h.

	* autogen.sh: Run autopoint, etc.

	* Makefile.am (DIST_SUBDIRS, SUBDIRS): Go into po/.

	* configure.ac: Add gettext stuff.

2005-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/videobox/gstvideobox.c: (gst_video_box_init),
	(gst_video_box_transform_caps), (gst_video_box_set_caps):
	Logic was reversed. Needs some  more fixes in the transform
	function to include AYUV output.
	Moved AYUV as prefered format.

2005-07-07  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* ext/dv/Makefile.am:
	* ext/dv/gstdvdec.c: (gst_dvdec_class_init), (gst_dvdec_init),
	(gst_dvdec_get_src_query_types), (gst_dvdec_src_query),
	(gst_dvdec_handle_sink_event), (gst_dvdec_handle_src_event),
	(gst_dvdec_video_getcaps), (gst_dvdec_video_setcaps),
	(gst_dvdec_decode_audio), (gst_dvdec_decode_video),
	(gst_dvdec_decode_frame), (gst_dvdec_chain),
	(gst_dvdec_change_state), (gst_dvdec_set_property),
	(gst_dvdec_get_property), (plugin_init):
	* ext/dv/gstdvdec.h:
	* ext/esd/esdsink.c: (gst_esdsink_class_init):
	Ported DVdec to 0.9.
	Parent of esdsink is GstAudioSink.

2005-07-07  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* ext/raw1394/Makefile.am:
	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_get_type),
	(gst_dv1394src_class_init), (gst_dv1394src_init),
	(gst_dv1394src_iso_receive), (gst_dv1394src_create),
	(gst_dv1394src_change_state), (gst_dv1394src_convert),
	(gst_dv1394src_get_query_types), (gst_dv1394src_query):
	* ext/raw1394/gstdv1394src.h:
	Ported the 1394 source to 0.9.

2005-07-07  Wim Taymans  <wim@fluendo.com>

	* ext/mad/gstid3tag.c: (gst_id3_tag_get_query_types):
	* ext/mad/gstmad.c: (gst_mad_get_query_types), (gst_mad_src_query):
	* gst/avi/gstavidemux.c: (gst_avi_demux_get_src_query_types):
	Remove deprecated/unsed code.

2005-07-06  Edward Hervey  <edward@fluendo.com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_init): 
	GST_BASESRC --> GST_BASE_SRC

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* gst/oneton: Removed (replaced by deinterleave).

	* gst/adder:
	* gst/audioconvert:
	* gst/audiorate:
	* gst/audioscale:
	* gst/ffmpegcolorspace:
	* gst/playback:
	* gst/sine:
	* gst/subparse:
	* gst/tags:
	* gst/tcp:
	* gst/videoscale:
	* gst/volume: Removed dirs that are now in gst-plugins-base.

2005-07-05  Edward Hervey  <edward@fluendo.com>

	* configure.ac: (GST_PLUGINS_ALL): 
	videofilter must be compiled first, since other plugins depend ont it.

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* Way, way, way too many files:
	Remove crack comment from the 2000 era.

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* gst/videobox/gstvideobox.c: Clean up, port to 0.9, use
	BaseTransform.

	* gst/videobox/Makefile.am: Link to base libs, include
	plugins-base cflags, dist the README.

	* configure.ac (GST_PLUGIN_ALL, AC_CONFIG_FILES): Add videobox to
	the build.

2005-07-04  Wim Taymans  <wim@fluendo.com>

	* gst/realmedia/rmdemux.c:
	I don't think that piece of changelog should go there.

2005-07-04  Andy Wingo  <wingo@pobox.com>

	* examples/level/:
	* examples/level/Makefile.am:
	* examples/level/README:
	* examples/level/demo.c:
	* examples/level/plot.c: Examples moved out of the source dir. Not
	updated tho.

	* configure.ac: Add level to the build.

	* gst/level/Makefile.am:
	* gst/level/gstlevel.h:
	* gst/level/gstlevel.c: Cleaned up, ported to 0.9.

	* ext/aalib/gstaasink.c (gst_aasink_fixate): Update for newer
	fixate prototype.

2005-07-03  Owen Fraser-Green  <owen@discobabe.net>

	* gst/realmedia/rmdemux.c (gst_rmdemux_add_stream),
	(gst_rmdemux_src_getcaps), (gst_rmdemux_chain): 
	Added getcaps function no_more_pads call

2005-07-01  Philippe Khalaf <burger@speedy.org>
	* gst/udp/Makefile.am:
	* gst/udp/gstudp.c:
	* gst/udp/gstdynudpsink.c: (new)
	* gst/udp/gstdynudpsink.h: (new)
	  Added new element (udpdynsink) that receives GstNetBuffers and sends the
	  udp packets to the source given in the buffer. It's used by rtpsession
	  element for now.
	* gst/udp/gstudpsrc.c:
	  Fixed memory leak.

2005-07-01  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* ext/mad/Makefile.am:
	* sys/oss/Makefile.am:
	Roll gstreamer-interfaces-0.9.pc into gstreamer-plugins-base-0.9.pc

2005-07-01  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/libcaca/Makefile.am:
	* ext/mad/Makefile.am:
	* gst/effectv/Makefile.am:
	* gst/udp/Makefile.am:
	  Replace GST_PLUGINS_LIBS_* with GST_PLUGINS_BASE_*

	* ext/mad/gstid3tag.c: (gst_id3_tag_src_query),
	(gst_id3_tag_src_event), (gst_id3_tag_sink_event),
	(gst_id3_tag_chain), (plugin_init):
	* ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_chain):
	  Signedness warning fix, use gst_pad_get_peer instead of GST_PAD_PEER
	  in querying and event handling, because we're not holding the pad
	  lock and the peer may disappear.
	* gst/avi/gstavidemux.c: (gst_avi_demux_parse_subindex),
	(gst_avi_demux_parse_index), (gst_avi_demux_massage_index):
	  Signedness warning fixes.

	* gst/videofilter/gstvideotemplate.c: (plugin_init):
	  Remove gst_library_load

2005-06-30  Edward Hervey  <edward@fluendo.com>

	* gst/avi/Makefile.am: (libgstavi_la_LIBADD):
	Added linking to libgstriff-0.9
	
	* ext/mad/gstmad.c: (gst_mad_src_query): 
	check the format of the upstream query and return query if it's the
	same format as the requested one.

2005-06-30  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
	  Compiler pains.

2005-06-30  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* gst/avi/Makefile.am:
	* gst/avi/gstavi.c: (plugin_init):
	* gst/avi/gstavidemux.c: (gst_avi_demux_get_type),
	(gst_avi_demux_class_init), (gst_avi_demux_init),
	(gst_avi_demux_reset), (gst_avi_demux_index_next),
	(gst_avi_demux_index_entry_for_time),
	(gst_avi_demux_index_entry_for_byte),
	(gst_avi_demux_index_entry_for_frame), (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_read_subindexes),
	(gst_avi_demux_parse_stream), (gst_avi_demux_parse_odml),
	(gst_avi_demux_parse_index), (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_scan), (gst_avi_demux_massage_index),
	(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_demux_sink_activate),
	(gst_avi_demux_sink_activate_pull):
	* gst/avi/gstavidemux.h:
	  Port from -THREADED to HEAD, and fix for latest API changes of
	  the day. Keep avimux dead for now.

2005-06-29  Wim Taymans  <wim@fluendo.com>

	* ext/shout2/gstshout2.c: (gst_shout2send_render):
	Fix build.

2005-06-29  Andy Wingo  <wingo@pobox.com>

	* gst/videofilter/gstvideoexample.c: Removed gst_library_load, I
	think. Whatever this plugin actually does, that I don't know.

2005-06-29  Andy Wingo  <wingo@pobox.com>

	* ext/mad/gstid3tag.c (gst_id3_tag_get_event_masks): Reschmoove.

	* ext/mad/gstmad.c (gst_mad_get_event_masks): Remove.
	(gst_mad_chain): Appease GCC.

	* ext/libcaca/gstcacasink.c (gst_cacasink_setcaps): Signedness.

	* ext/aalib/gstaasink.c (gst_aasink_fixate): Unref caps, not free.
	(gst_aasink_scale): Signedness.

	* gst/udp/gstudpsink.c (gst_udpsink_get_type): Actually add the
	URI handler.

	* gst/udp/gstudpsrc.c (gst_udpsrc_start):
	(gst_udpsrc_create): Signedness.

	* gst/rtsp/sdpmessage.c (sdp_message_parse_buffer): Thanks
	compiler!
	(sdp_parse_line): Signedness fix.

	* configure.ac (GST_CFLAGS): GCC strikes back!!! Let the build
	breakage ensue!!!

	* gst/rtsp/gstrtspsrc.c (gst_rtspsrc_loop, gst_rtspsrc_open):
	Signedness, unused var fixes.
	(gst_rtspsrc_close): Unused?

	* gst/realmedia/rmdemux.c (re_hexdump_bytes): Unused.

	* gst/law/mulaw-encode.c (gst_mulawenc_chain): Signeness fix.

	* gst/law/alaw-encode.c (alawenc_getcaps): Remove unneeded
	declarations. Typo (probably crasher) fix.
	
	* gst/law/mulaw-encode.c (mulawdec_getcaps): 
	* gst/law/mulaw-encode.c (mulawenc_getcaps): 
	* gst/law/alaw-decode.c (alawdec_getcaps): Same crasher fix.

	* gst/goom/gstgoom.c (gst_goom_init): Hook up the event function.

	* gst/effectv/gstwarp.c (gst_warptv_setup): Signedness fix.

	* gst/effectv/gstdice.c (gst_dicetv_draw): Um, deferencing
	uninitialized pointer not good.

	* gst/videofilter/gstvideoexample.c (plugin_init): 
	* gst/videofilter/Makefile.am (libgstvideoexample_la_LIBADD): Link
	to libgstvideofilter instead of gst_library_load.

	* gst/alpha/gstalpha.c (gst_alpha_chroma_key_i420) 
	(gst_alpha_chroma_key_ayuv): Signedness fixen.

2005-06-29  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type),
	(gst_rtspsrc_class_init), (gst_rtspsrc_create_stream),
	(gst_rtspsrc_add_element), (gst_rtspsrc_set_state),
	(gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (find_stream),
	(gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_play),
	(gst_rtspsrc_change_state):
	Fix case where outpad could not be decided.

2005-06-29  Andy Wingo  <wingo@pobox.com>

	* ext/Makefile.am (MAD_DIR): Add mad to the build.

2005-06-28  Wim Taymans  <wim@fluendo.com>

	* ext/mad/gstid3tag.c: (gst_id3_tag_src_link):
	* gst/udp/gstudpsrc.c: (gst_udpsrc_init):
	Fix old RPAD macro.
	basesrc -> base_src

2005-06-27  Wim Taymans  <wim@fluendo.com>

	* ext/mad/gstid3tag.c: (gst_id3_tag_src_link):
	* ext/mad/gstmad.c: (gst_mad_chain):
	RPAD_ -> PAD
	Fix args in bufferalloc function call.
	Makes the mad plugin compile again

2005-06-27  Owen Fraser-Green  <owen@discobabe.net>

	* gst/realmedia/rmdemux.c: Rewrote to use gstadapter. Also parses
	audio and video header packets for known properties.

2005-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type),
	(gst_rtspsrc_class_init), (gst_rtspsrc_create_stream),
	(gst_rtspsrc_add_element), (gst_rtspsrc_set_state),
	(gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (find_stream),
	(gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_play),
	(gst_rtspsrc_change_state):
	* gst/rtsp/rtspurl.c: (rtsp_url_parse):
	Make rtspsrc a live source.
	Don't try to parse NULL urls.

2005-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_init):
	Make udpsrc a live source.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/udp/Makefile.am:
	Use versioned net lib.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/udp/Makefile.am:
	Fix hack in makefile.

2005-06-02  Andy Wingo  <wingo@pobox.com>

	* ext/mad/gstid3tag.c: Finish porting to 0.9: no more gstdata,
	check for link functions before calling them, give
	gst_message_new_tag its own copy of the tag list, set the parser
	state before sending the event (because in 0.9 events are
	processed immediately), casting fixes.

	* ext/mad/Makefile.am (libgstmad_la_LDFLAGS): Link with
	gsttagedit.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/udp/Makefile.am:
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_get_type),
	(gst_multiudpsink_base_init), (gst_multiudpsink_class_init),
	(gst_multiudpsink_init), (gst_multiudpsink_finalize),
	(gst_multiudpsink_get_times), (gst_multiudpsink_render),
	(gst_multiudpsink_set_property), (gst_multiudpsink_init_send),
	(gst_multiudpsink_add), (client_compare), (free_client),
	(gst_multiudpsink_remove), (gst_multiudpsink_clear),
	(gst_multiudpsink_get_stats):
	* gst/udp/gstudpsrc.c: (gst_udpsrc_get_type),
	(gst_udpsrc_base_init), (gst_udpsrc_class_init),
	(gst_udpsrc_create), (gst_udpsrc_set_uri), (gst_udpsrc_start),
	(gst_udpsrc_unlock), (gst_udpsrc_stop):
	Use NetBuffer and small cleanups.
	Implement client removal in multiudpsink.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/README:
	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type),
	(gst_rtspsrc_class_init), (gst_rtspsrc_create_stream),
	(gst_rtspsrc_add_element), (gst_rtspsrc_set_state),
	(gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (find_stream),
	(gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_play),
	(gst_rtspsrc_change_state):
	* gst/rtsp/rtsptransport.c: (rtsp_transport_new),
	(rtsp_transport_init), (parse_mode), (parse_range),
	(rtsp_transport_parse), (rtsp_transport_free):
	RTSP cleanups.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/effectv/gstquark.c: (gst_quarktv_chain):
	* gst/goom/gstgoom.c: (gst_goom_chain):
	* gst/videobox/Makefile.am:
	* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
	(gst_video_box_init), (gst_video_box_sink_setcaps),
	(gst_video_box_chain):
	* gst/videofilter/gstvideofilter.c: (gst_videofilter_chain):
	* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
	(gst_videorate_getcaps), (gst_videorate_setcaps),
	(gst_videorate_init), (gst_videorate_event), (gst_videorate_chain),
	(gst_videorate_change_state):
	Bufferalloc changes.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* ext/mad/gstmad.c: (gst_mad_chain), (gst_mad_change_state):
	* ext/sidplay/gstsiddec.cc:
	* gst/alpha/gstalpha.c: (gst_alpha_chain):
	* gst/goom/gstgoom.c: (gst_goom_chain):
	No need to take the lock anymore,  core already did
	that before calling us.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* ext/amrnb/amrnbdec.c: (gst_amrnbdec_init), (gst_amrnbdec_chain),
	(gst_amrnbdec_state_change):
	* ext/amrnb/amrnbenc.c: (gst_amrnbenc_base_init),
	(gst_amrnbenc_finalize), (gst_amrnbenc_chain),
	(gst_amrnbenc_state_change):
	* ext/amrnb/amrnbparse.c: (gst_amrnbparse_init),
	(gst_amrnbparse_query), (gst_amrnbparse_chain),
	(gst_amrnbparse_read_header), (gst_amrnbparse_loop),
	(gst_amrnbparse_sink_activate), (gst_amrnbparse_state_change):
	Core already took the lock.

2005-05-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/esd/Makefile.am:
	  Disable tcp elements and esdmon (they don't compile).

2005-05-19  Jan Schmidt  <thaytan@mad.scientist.com>

	* Makefile.am:
	* ext/Makefile.am:
	* sys/Makefile.am:
	  Make my automake version shut up about undefined variables
	* gst/goom/gstgoom.c:
	  GstAdapter moved to base objects. 

2005-05-18  Wim Taymans  <wim@fluendo.com>

	* ext/amrnb/Makefile.am:
	* ext/amrnb/amrnb.c: (plugin_init):
	* ext/amrnb/amrnbdec.c: (gst_amrnbdec_init),
	(gst_amrnbdec_setcaps), (gst_amrnbdec_chain),
	(gst_amrnbdec_state_change):
	* ext/amrnb/amrnbdec.h:
	* ext/amrnb/amrnbenc.c: (gst_amrnbenc_get_type),
	(gst_amrnbenc_base_init), (gst_amrnbenc_class_init),
	(gst_amrnbenc_init), (gst_amrnbenc_finalize),
	(gst_amrnbenc_setcaps), (gst_amrnbenc_chain),
	(gst_amrnbenc_state_change):
	* ext/amrnb/amrnbenc.h:
	* ext/amrnb/amrnbparse.c: (gst_amrnbparse_init),
	(gst_amrnbparse_query), (gst_amrnbparse_event),
	(gst_amrnbparse_chain), (gst_amrnbparse_read_header),
	(gst_amrnbparse_loop), (gst_amrnbparse_sink_activate),
	(gst_amrnbparse_state_change):
	* ext/amrnb/amrnbparse.h:
	Ported AMR decoder/parse.
	Added AMR encoder.

2005-05-18  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/goom/Makefile.am:
	* gst/goom/gstgoom.c: (gst_goom_init), (gst_goom_sink_setcaps),
	(gst_goom_src_setcaps), (gst_goom_src_negotiate), (gst_goom_event),
	(gst_goom_chain), (gst_goom_change_state), (plugin_init):
	Ported goom.
	Added goom and alpha to build.

2005-05-17  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/alpha/Makefile.am:
	* gst/alpha/gstalpha.c: (gst_alpha_class_init), (gst_alpha_init),
	(gst_alpha_sink_setcaps), (gst_alpha_chain):
	Ported alpha,  remove alphacolor as functionality is in
	ffmpegcolorspace.

2005-05-17  Wim Taymans  <wim@fluendo.com>

	* ext/libcaca/gstcacasink.c: (gst_cacasink_setcaps),
	(gst_cacasink_render), (gst_cacasink_open), (gst_cacasink_close),
	(gst_cacasink_change_state):
	* ext/libcaca/gstcacasink.h:
	Cleanups.

2005-05-15  David Schleef  <ds@schleef.org>

	Move core plugins out of core.  I don't mind fdsrc/fdsink
	going back into the core; they were just disabled there, so
	I moved them.  Some of this stuff could (should) be deleted.
	* gst/oldcore/Makefile.am:
	* gst/oldcore/gstaggregator.c:
	* gst/oldcore/gstaggregator.h:
	* gst/oldcore/gstelements.c:
	* gst/oldcore/gstfdsink.c:
	* gst/oldcore/gstfdsink.h:
	* gst/oldcore/gstfdsrc.c:
	* gst/oldcore/gstfdsrc.h:
	* gst/oldcore/gstmd5sink.c:
	* gst/oldcore/gstmd5sink.h:
	* gst/oldcore/gstmultifilesrc.c:
	* gst/oldcore/gstmultifilesrc.h:
	* gst/oldcore/gstpipefilter.c:
	* gst/oldcore/gstpipefilter.h:
	* gst/oldcore/gstshaper.c:
	* gst/oldcore/gstshaper.h:
	* gst/oldcore/gststatistics.c:
	* gst/oldcore/gststatistics.h:

2005-05-13  Christian Schaller  <uraeus@gnome.org>

	* ext/Makefile.am: dist esd directory
	* gst-plugins.spec.in: add rtp plugins and esd plugin
	* gst/effectv/Makefile.am: fix videofilter linking
	* gst/rtp/Makefile.am: add missing headers 
	* gst/rtsp/Makefile.am: add missing headers

2005-05-12  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* ext/sidplay/gstsiddec.cc:
	Add working plugins to build.
	Make sidplay compile again.

2005-05-12  Wim Taymans  <wim@fluendo.com>

	* ext/mad/gstid3tag.c: (gst_id3_tag_src_query):
	* ext/mad/gstmad.c: (gst_mad_chain):
	Fix mad and id3tag compilation again.

2005-05-12  Wim Taymans  <wim@fluendo.com>

	* gst/udp/.cvsignore:
	* gst/udp/Makefile.am:
	* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_get_type),
	(gst_multiudpsink_base_init), (gst_multiudpsink_class_init),
	(gst_multiudpsink_init), (gst_multiudpsink_finalize),
	(gst_multiudpsink_get_times), (gst_multiudpsink_render),
	(gst_multiudpsink_set_property), (gst_multiudpsink_get_property),
	(gst_multiudpsink_init_send), (gst_multiudpsink_close),
	(gst_multiudpsink_add), (gst_multiudpsink_remove),
	(gst_multiudpsink_clear), (gst_multiudpsink_get_stats),
	(gst_multiudpsink_change_state):
	* gst/udp/gstmultiudpsink.h:
	* gst/udp/gstudp-marshal.list:
	* gst/udp/gstudp.c: (plugin_init):
	* gst/udp/gstudp.h:
	* gst/udp/gstudpsink.c: (gst_udpsink_get_type),
	(gst_udpsink_base_init), (gst_udpsink_class_init),
	(gst_udpsink_init), (gst_udpsink_set_uri),
	(gst_udpsink_set_property), (gst_udpsink_get_property),
	(gst_udpsink_uri_get_type), (gst_udpsink_uri_get_protocols),
	(gst_udpsink_uri_get_uri), (gst_udpsink_uri_set_uri),
	(gst_udpsink_uri_handler_init):
	* gst/udp/gstudpsink.h:
	* gst/udp/gstudpsrc.c: (gst_udpsrc_get_type),
	(gst_udpsrc_base_init), (gst_udpsrc_class_init),
	(gst_udpsrc_create), (gst_udpsrc_set_uri), (gst_udpsrc_start),
	(gst_udpsrc_unlock), (gst_udpsrc_stop):
	* gst/udp/gstudpsrc.h:
	Added multifdsink to send UDP to multiple addresses.
	Cleaned up UDP source/sink elements some more.
	Make UDP sink extends from multiudpsink.

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

	* ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_sink_event):
	  Make queries actually work (update core first).

2005-05-12  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/README:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get_type),
	(gst_tcpclientsrc_base_init), (gst_tcpclientsrc_class_init),
	(gst_tcpclientsrc_init), (gst_tcpclientsrc_getcaps),
	(gst_tcpclientsrc_stop), (gst_tcpclientsrc_eos),
	(gst_tcpclientsrc_create), (gst_tcpclientsrc_start):
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_get_type),
	(gst_tcpserversrc_base_init), (gst_tcpserversrc_class_init),
	(gst_tcpserversrc_init), (gst_tcpserversrc_create),
	(gst_tcpserversrc_start), (gst_tcpserversrc_stop):
	* gst/tcp/gsttcpserversrc.h:
	* gst/tcp/gsttcpsrc.c: (gst_tcpsrc_get_type),
	(gst_tcpsrc_base_init), (gst_tcpsrc_class_init), (gst_tcpsrc_init),
	(gst_tcpsrc_create), (gst_tcpsrc_start), (gst_tcpsrc_stop):
	* gst/tcp/gsttcpsrc.h:
	* gst/udp/gstudpsink.c: (gst_udpsink_base_init),
	(gst_udpsink_init), (gst_udpsink_get_times), (gst_udpsink_render),
	(gst_udpsink_set_property), (gst_udpsink_get_property),
	(gst_udpsink_change_state):
	* gst/udp/gstudpsink.h:
	* gst/udp/gstudpsrc.c: (gst_udpsrc_get_type),
	(gst_udpsrc_base_init), (gst_udpsrc_class_init), (gst_udpsrc_init),
	(gst_udpsrc_create), (gst_udpsrc_set_uri), (gst_udpsrc_start),
	(gst_udpsrc_stop):
	* gst/udp/gstudpsrc.h:
	Make UDP and TCP elements use PushSrc.


2005-05-11  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/mad/gstmad.c: (gst_mad_init), (gst_mad_src_query),
	(index_seek), (normal_seek), (gst_mad_sink_event):
	  Port to new query API and replace gst_pad_convert()
	  and gst_pad_get_formats() usage. gstid3tag looks like
	  it needs some more love before it will work again, if 
	  not a rewrite.

2005-05-12  Zeeshan Ali  <zeenix@gmail.com>

	* gst/effectv/Makefile.am:
	Fixed the effectv build again.

2005-05-11  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/Makefile.am:
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_get_type),
	(gst_multifdsink_base_init), (gst_multifdsink_class_init),
	(gst_multifdsink_init), (gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_render),
	(gst_multifdsink_change_state):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_get_type),
	(gst_tcpclientsink_base_init), (gst_tcpclientsink_class_init),
	(gst_tcpclientsink_init), (gst_tcpclientsink_render),
	(gst_tcpclientsink_set_property), (gst_tcpclientsink_get_property),
	(gst_tcpclientsink_change_state):
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init),
	(gst_tcpclientsrc_init_receive):
	* gst/tcp/gsttcpplugin.c: (plugin_init):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init):
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init):
	* gst/tcp/gsttcpsink.c: (gst_tcpsink_get_type),
	(gst_tcpsink_base_init), (gst_tcpsink_class_init),
	(gst_tcpsink_setcaps), (gst_tcpsink_init), (gst_tcpsink_get_times),
	(gst_tcpsink_render), (gst_tcpsink_set_property),
	(gst_tcpsink_get_property):
	* gst/tcp/gsttcpsink.h:
	* gst/tcp/gsttcpsrc.c: (gst_tcpsrc_class_init), (gst_tcpsrc_get):
	Ported over some sink elements.
	Sources not ported yet as they require a PushSource base class.

2005-05-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/effectv/Makefile.am:
	* gst/videofilter/Makefile.am:
	  Turn videofilter into a library (private for now)

2005-05-11  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/README:
	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type),
	(gst_rtspsrc_class_init), (gst_rtspsrc_create_stream),
	(gst_rtspsrc_add_element), (gst_rtspsrc_set_state),
	(gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (find_stream),
	(gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_play):
	* gst/rtsp/rtsp.h:
	* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
	(rtsp_connection_send), (read_line), (parse_request_line),
	(parse_line), (read_body), (rtsp_connection_receive),
	(rtsp_connection_free):
	* gst/rtsp/rtspconnection.h:
	* gst/rtsp/rtspdefs.c: (rtsp_find_method):
	* gst/rtsp/rtspdefs.h:
	* gst/rtsp/rtspmessage.c: (rtsp_message_set_body),
	(rtsp_message_take_body):
	* gst/rtsp/rtspmessage.h:
	* gst/rtsp/rtspstream.h:
	* gst/rtsp/sdpmessage.c: (sdp_parse_line):
	Added README
	Some cleanups.

2005-05-11  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_add_element),
	(gst_rtspsrc_set_state), (gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (find_stream),
	(gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_close),
	(gst_rtspsrc_play), (gst_rtspsrc_change_state):
	* gst/rtsp/gstrtspsrc.h:
	Setup UDP sources correctly, receives raw data from RTSP
	compliant servers now.

2005-05-11  Wim Taymans  <wim@fluendo.com>

	* gst/rtsp/.cvsignore:
	* gst/rtsp/Makefile.am:
	* gst/rtsp/gstrtsp.c: (plugin_init):
	* gst/rtsp/gstrtsp.h:
	* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type),
	(gst_rtspsrc_get_type), (gst_rtspsrc_base_init),
	(gst_rtspsrc_class_init), (gst_rtspsrc_init),
	(gst_rtspsrc_set_property), (gst_rtspsrc_get_property),
	(gst_rtspsrc_create_stream), (rtspsrc_add_element),
	(gst_rtspsrc_stream_setup_rtp),
	(gst_rtspsrc_stream_configure_transport), (find_stream),
	(gst_rtspsrc_loop), (gst_rtspsrc_send), (gst_rtspsrc_open),
	(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
	(gst_rtspsrc_activate), (gst_rtspsrc_change_state):
	* gst/rtsp/gstrtspsrc.h:
	* gst/rtsp/rtsp.h:
	* gst/rtsp/rtspconnection.c: (rtsp_connection_open),
	(rtsp_connection_create), (append_header), (rtsp_connection_send),
	(read_line), (read_string), (read_key), (parse_response_status),
	(parse_line), (read_body), (rtsp_connection_receive),
	(rtsp_connection_close):
	* gst/rtsp/rtspconnection.h:
	* gst/rtsp/rtspdefs.c: (rtsp_init_status), (rtsp_method_as_text),
	(rtsp_header_as_text), (rtsp_status_as_text),
	(rtsp_status_to_string), (rtsp_find_header_field):
	* gst/rtsp/rtspdefs.h:
	* 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_add_header), (rtsp_message_remove_header),
	(rtsp_message_get_header), (rtsp_message_get_header_copy),
	(rtsp_message_set_body), (rtsp_message_set_body_copy),
	(rtsp_message_get_body), (rtsp_message_get_body_copy), (dump_mem),
	(dump_key_value), (rtsp_message_dump):
	* gst/rtsp/rtspmessage.h:
	* gst/rtsp/rtspstream.h:
	* gst/rtsp/rtsptransport.c: (rtsp_transport_new),
	(rtsp_transport_init), (parse_mode), (parse_range),
	(rtsp_transport_parse), (rtsp_transport_free):
	* gst/rtsp/rtsptransport.h:
	* gst/rtsp/rtspurl.c: (rtsp_url_parse), (rtsp_url_free):
	* gst/rtsp/rtspurl.h:
	* gst/rtsp/sdp.h:
	* gst/rtsp/sdpmessage.c: (sdp_message_new), (sdp_message_init),
	(sdp_message_clean), (sdp_message_free), (sdp_media_new),
	(sdp_media_init), (sdp_message_set_origin),
	(sdp_message_get_origin), (sdp_message_set_connection),
	(sdp_message_get_connection), (sdp_message_add_bandwidth),
	(sdp_message_add_time), (sdp_message_add_zone),
	(sdp_message_set_key), (sdp_message_get_key),
	(sdp_message_get_attribute_val), (sdp_message_add_attribute),
	(sdp_message_add_media), (sdp_media_add_attribute),
	(sdp_media_add_bandwidth), (sdp_media_add_format),
	(sdp_media_get_attribute_val), (read_string), (read_string_del),
	(sdp_parse_line), (sdp_message_parse_buffer), (print_media),
	(sdp_message_dump):
	* gst/rtsp/sdpmessage.h:
	* gst/rtsp/test.c: (main):
	Ported to 0.9.
	Set up transports, init UDP ports, init RTP session managers.

2005-05-11  Wim Taymans  <wim@fluendo.com>

	* gst/rtp/Makefile.am:
	* gst/rtp/gstrtp.c: (plugin_init):
	* gst/rtp/gstrtpdec.c: (gst_rtpdec_get_type),
	(gst_rtpdec_class_init), (gst_rtpdec_init), (gst_rtpdec_chain_rtp),
	(gst_rtpdec_chain_rtcp), (gst_rtpdec_set_property),
	(gst_rtpdec_get_property), (gst_rtpdec_change_state),
	(gst_rtpdec_plugin_init):
	* gst/rtp/gstrtpdec.h:
	* gst/udp/gstudpsink.c: (gst_udpsink_base_init),
	(gst_udpsink_get_times), (gst_udpsink_render),
	(gst_udpsink_change_state):
	* gst/udp/gstudpsrc.c: (gst_udpsrc_get_type),
	(gst_udpsrc_base_init), (gst_udpsrc_class_init), (gst_udpsrc_init),
	(gst_udpsrc_loop), (gst_udpsrc_set_uri), (gst_udpsrc_set_property),
	(gst_udpsrc_get_property), (gst_udpsrc_init_receive),
	(gst_udpsrc_activate), (gst_udpsrc_change_state),
	(gst_udpsrc_uri_get_type), (gst_udpsrc_uri_get_protocols),
	(gst_udpsrc_uri_get_uri), (gst_udpsrc_uri_set_uri),
	(gst_udpsrc_uri_handler_init):
	* gst/udp/gstudpsrc.h:
	UDP fixes, added uri handler.
	Added rtpdec that will manage the RTP session in the future.

2005-05-10  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* PORTED_09:
	* configure.ac:
	* ext/Makefile.am:
	* ext/esd/Makefile.am:
	* ext/esd/esdsink.c: (gst_esdsink_get_type),
	(gst_esdsink_class_init), (gst_esdsink_init),
	(gst_esdsink_dispose), (gst_esdsink_change_state),
	(gst_caps_set_each), (gst_esdsink_getcaps), (gst_esdsink_open),
	(gst_esdsink_close), (gst_esdsink_write), (gst_esdsink_delay),
	(gst_esdsink_reset), (gst_esdsink_set_property),
	(gst_esdsink_get_property), (gst_esdsink_factory_init):
	* ext/esd/esdsink.h:
	* ext/esd/gstesd.c: (plugin_init):
	Ported esdsink plugin

2005-05-10  Wim Taymans  <wim@fluendo.com>

	* gst/udp/Makefile.am:
	* gst/udp/gstudpsink.c: (gst_udpsink_get_type),
	(gst_udpsink_base_init), (gst_udpsink_class_init),
	(gst_udpsink_init), (gst_udpsink_get_times), (gst_udpsink_render),
	(gst_udpsink_set_property), (gst_udpsink_get_property),
	(gst_udpsink_init_send), (gst_udpsink_close),
	(gst_udpsink_change_state):
	* gst/udp/gstudpsink.h:
	* gst/udp/gstudpsrc.c: (gst_udpsrc_base_init),
	(gst_udpsrc_class_init), (gst_udpsrc_init), (gst_udpsrc_loop),
	(gst_udpsrc_set_property), (gst_udpsrc_get_property),
	(gst_udpsrc_init_receive), (gst_udpsrc_close),
	(gst_udpsrc_activate), (gst_udpsrc_change_state):
	* gst/udp/gstudpsrc.h:
	Ported udp src/sink.

2005-05-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* PORTED_09:
	* configure.ac:
	* ext/Makefile.am:
	* ext/shout2/Makefile.am:
	* ext/shout2/gstshout2.c: (gst_shout2send_get_type),
	(gst_shout2send_base_init), (gst_shout2send_class_init),
	(gst_shout2send_init), (gst_shout2send_event),
	(gst_shout2send_render), (gst_shout2send_set_property),
	(gst_shout2send_get_property), (gst_shout2send_setcaps),
	(gst_shout2send_change_state):
	* ext/shout2/gstshout2.h:

	Port shout2 plugin

2005-05-08  Zeeshan Ali   <zeenix@gmail.com>

	* configure.ac:
	* ext/Makefile.am:
	* ext/libcaca/Makefile.am:
	* ext/libcaca/gstcacasink.c: (gst_cacasink_get_type),
	(gst_cacasink_class_init), (gst_cacasink_get_times),
	(gst_cacasink_setcaps), (gst_cacasink_init), (gst_cacasink_render),
	(plugin_init):
	* ext/libcaca/gstcacasink.h:
	Ported the libcaca plugin.

2005-05-08  Zeeshan Ali  <zeenix@gmail.com>

	* configure.ac:
	* ext/mad/Makefile.am:
	* effectv/Makefile.am:
	Fixed a few things to enable the mad and effectv to be able to find the
	headers in the gst-plugins-base/gst-libs and to link against the libs
	in there.

2005-05-07  Zeeshan Ali  <zeenix@gmail.com>

	* configure.ac:
	Fixed the build by fixing a small mistake of Wim.
	
2005-05-06  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* ext/aalib/Makefile.am:
	* ext/aalib/gstaasink.c: (gst_aasink_get_type),
	(gst_aasink_class_init), (gst_aasink_fixate), (gst_aasink_setcaps),
	(gst_aasink_init), (gst_aasink_get_times), (gst_aasink_render),
	(gst_aasink_set_property), (gst_aasink_get_property),
	(gst_aasink_open), (gst_aasink_close), (gst_aasink_change_state):
	* ext/aalib/gstaasink.h:
	* gst/smpte/Makefile.am:
	* gst/smpte/gstsmpte.c: (gst_smpte_setcaps), (gst_smpte_init),
	(gst_smpte_collected):
	* gst/smpte/gstsmpte.h:
	Ported 2 more plugins. usgly hack in the Makefile.am though, I'm
	sure someone will fix it.

2005-05-06  Christian Schaller  <uraeus@gnome.org>

	* configure.ac: add sidplay
	* ext/Makefile.am: add sidplay
	* ext/sidplay/Makefile.am: add GST_PLUGINS_CFLAGS
	* ext/sidplay/gstsiddec.cc: remove bytestream.h

2005-05-06  Christian Schaller  <uraeus@gnome.org>

	* configure.ac: add gst-plugins-libs

2005-05-06  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* ext/sidplay/gstsiddec.cc:
	* ext/sidplay/gstsiddec.h:
	Ported sidplay.

2005-05-06  Christian Schaller  <uraeus@gnome.org>

	* configure.ac: 
	* ext/mad/Makefile.am: add linking of gstinterfaces
	* ext/mad/gstid3tag.c: (plugin_init): remove library_load
	* gst-plugins.spec.in: 
	* gst/effectv/Makefile.am: link to libgstvideofilter
	* gst/effectv/gsteffectv.c: (plugin_init): same as for mad
	* gst/videofilter/Makefile.am: make sure videoflip is not built

2005-05-06  Wim Taymans  <wim@fluendo.com>

	* gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_setcaps),
	(gst_alawdec_init), (gst_alawdec_chain):
	* gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_setcaps),
	(gst_alawenc_init), (gst_alawenc_chain):
	* gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_setcaps),
	(gst_mulawdec_init), (gst_mulawdec_chain):
	* gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_setcaps),
	(gst_mulawenc_init), (gst_mulawenc_chain):
	Ported alaw and mulaw plugins to 0.9, fixed the negotiation as
	well.

2005-05-06  Christian Schaller  <uraeus@gnome.org>

	* ext/alsa: removed plugins that are now in gst-plugins-base
	* ext/gnomevfs:
	* ext/theora:
	* ext/vorbis:
	* gst/adder:
	* gst/audioconvert:
	* gst/ffmpegcolorspace:
	* gst/typefind:
	* gst/videofilter: comment out videoflip and gamma plugins

2005-05-06  Christian Schaller  <uraeus@gnome.org>

	* gst-libs: Remove all files as this is in gst-plugins-base now
	* gst-libs/README: add a remove informing of this move

2005-05-06  Christian Schaller <uraeus@gnome.org> 

	* PORTED_09: update to add videofilter
	* configure.ac: re-add videofilter
	* gst/videofilter/Makefile.am: remove videobalance (not ported yet)
	* gst/videofilter/gstgamma.c: (gst_gamma_class_init):
	* gst/videofilter/gstvideobalance.c: (gst_videobalance_class_init):
	* gst/videofilter/gstvideofilter.c: (gst_videofilter_getcaps),
	(gst_videofilter_setcaps), (gst_videofilter_init),
	(gst_videofilter_chain), (gst_videofilter_set_output_size):
	* gst/videofilter/gstvideoflip.c: (gst_videoflip_class_init):

2005-05-06  Christian Schaller <uraeus@gnome.org>

	* ext/mad: ported plugin from threaded branch
	* gst/effectv: ported plugins from threaded branch
	* gst/law: enable law plugin as it compiles (Wim will fixor)

2005-05-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	fix typo

2005-05-05  Christian Schaller <uraeus@gnome.org>

	* Update configure.ac and Makefiles to only build what is actually
	ported and not moved into gst-plugins-base

2005-02-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  hunting season on 0.9 is now OPEN

2005-02-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
	  Kick the hell out of gcc for not warning me about a symbol conflict.

2005-02-22  Luca Ognibene  <luogni@tin.it>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_link):
	  Don't leak caps string (fixes #168134)

	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init),
	(gst_jpegenc_init), (gst_jpegenc_finalize),
	(gst_jpegenc_change_state):
	  Don't leak line buffers and context struct (fixes #168133).

2005-02-21  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/dirac/gstdiracdec.cc:
	(gst_diracdec_chain):
	  Since dirac 0.5.0 the framerate in dirac is expressed as a
	  rational number. Fix build and up requirement to 0.5.0, and
	  also pass parameters to gst_diracdec_link in the right order
	  (fixes #167959).

2005-02-21  Maciej Katafiasz  <mathrick@freedesktop.org>

	* ext/faad/gstfaad.c: (gst_faad_sinkconnect), (gst_faad_chain):
	* ext/faad/gstfaad.h:
	TEH LONGEST DEBUGGING SESSION EVAR is over. Fix interaction with 
	certain invalid muxed streams, where some packets will contain 
	junk after decoder data. Partially fixes #149158.

2005-02-21  Jan Schmidt <thaytan@mad.scientist.com>
	* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain):
          Make sure we only write to writable buffers

2005-02-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data):
	  Do actually fix invalid RIFF fmt header values for alaw
	  and mulaw audio instead of just saying so.

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
	  Give gst_riff_create_audio_caps_with_data() a chance to
	  fix up broken format header fields before extracting any
	  parameters from the header. (fixes #167633)

2005-02-19  Martin Holters  <martin.holters@gmx.de>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/audioconvert/bufferframesconvert.c:
	(buffer_frames_convert_link):
	  Don't leak othercaps. (fixes #167878)

2005-02-19  Arwed v. Merkatz  <v.merkatz@gmx.net>>

	* configure.ac:
	* ext/libvisual/visual.c: (gst_visual_srclink),
	(gst_visual_change_state):
	  Support libvisual 0.2.0.

2005-02-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_chain):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_resync), (gst_jpegenc_chain):
	  Use same rowstrides for I420 as used everywhere else.

2005-02-17  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_invert):
	  Declare variables at beginning of block and make gcc-2.95 happy
	  (fixes # 167482, patch by Gergely Nagy).
	  
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpclientsrc.h:
	  Move some includes into the header, so that struct sockaddr_in is
	  defined when it should be defined on FreeBSD as well (fixes
	  #167483).
	  
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive):
	  Don't pass uninitialised values to setsockopt() here either.

2005-02-17  Luca Ognibene  <luogni at tin dot it>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init_send):
	  Don't pass uninitialised values to setsockopt(). (fixes #167704)

2005-02-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (add_sink):
	  Invert bin_add/link order to workaround deadlock in opt.

2005-02-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/modplug/gstmodplug.cc:
	  Add missing break causing position queries to fail.

2005-02-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_populate):
	  Granpos can apparently be -1, which screws up calculations...

2005-02-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
	(gst_ximagesink_send_pending_navigation),
	(gst_ximagesink_navigation_send_event), (gst_ximagesink_finalize),
	(gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
	(gst_xvimagesink_send_pending_navigation),
	(gst_xvimagesink_navigation_send_event),
	(gst_xvimagesink_finalize), (gst_xvimagesink_init):
	* sys/xvimage/xvimagesink.h:
	  Use a mutex protected list to marshal navigation
	  events into the stream thread from whichever thread
	  sends them.

2005-02-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/speed/demo-mp3.c: (time_tick_cb), (main):
	  Display current position and track length; misc. clean-ups.
	  
	* gst/speed/gstspeed.c: (speed_get_query_types), (speed_src_query),
	(speed_init), (speed_chain):
	  Add query function, so that the stream length and current position
	  get adjusted when queried (note that current position queries may
	  still be wrong if the audio sink returns values based on buffer
	  timestamps instead of passing on the query).

2005-02-13  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link),
	(gst_audio_convert_channels):
	  create channel conversion matrix when linking
	* gst/audioconvert/.cvsignore:
	* gst/audioconvert/Makefile.am:
	* gst/audioconvert/channelmixtest.c: (main):
	  add (ugly) test that ensures stereo <=> mono conversion works
	  correctly

2005-02-13  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstchannelmix.h:
	  include missing header file
	* gst/audioconvert/gstchannelmix.c:
	(gst_audio_convert_fill_compatible):
	  use same sign for both channels when converting to/from compatible
	  channel. Previously used different signs made the signals cancel
	  each other out and appear like silence. (fixes #167269)

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

	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c:
	  Convert to and from YV12 (fixes #156379).

2005-02-12  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new),
	(gst_ximagesink_sink_link), (gst_ximagesink_change_state),
	(gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id),
	(gst_ximagesink_expose), (gst_ximagesink_set_property),
	(gst_ximagesink_finalize), (gst_ximagesink_init): Protect interface
        methods from chain and negotiation and vice versa (Fixes #166142).
	* sys/ximage/ximagesink.h: Add stream_lock.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
	(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_expose): Check for xcontext before trying to link.

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

	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_open):
	  Don't send "Hey! You gave me a NULL pointer you naughty person" as
	  error message when we can't open the DVD device (when dvdnav_open()
	  fails, src->dvdnav is NULL, so dvdnav_err_to_string() will return
	  the above). Send something more useful instead (fixes #167117).

2005-02-11  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_sink_link), (gst_xvimagesink_change_state),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
	(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_expose), (gst_xvimagesink_set_property),
	(gst_xvimagesink_finalize), (gst_xvimagesink_init): Protect interface
	methods from chain and negotiation and vice versa (Fixes #166142).
	Fix a possible bug of images in the buffer pool being discarded because
	we are looking at the wrong geometry.
	* sys/xvimage/xvimagesink.h: Add stream_lock.

2005-02-11  David Schleef  <ds@schleef.org>

	* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer): Change uint to
	unsigned int. (fixes #167128)

2005-02-11  David Schleef  <ds@schleef.org>

	* gst/librfb/Makefile.am: Testing stuff before committing is
	  for wimps... and people with fast machines.  Fix stupid
	  mistake.

2005-02-11  David Schleef  <ds@schleef.org>

	* configure.ac: Pull in librfb from my CVS tree, because it is
	  too small and annoying to be separate.  Move rfbsrc plugin
	  to gst/.
	* ext/Makefile.am:
	* ext/librfb/Makefile.am:
	* ext/librfb/gstrfbsrc.c:
	* gst/librfb/Makefile.am:
	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfb.c:
	* gst/librfb/rfb.h:
	* gst/librfb/rfbbuffer.c:
	* gst/librfb/rfbbuffer.h:
	* gst/librfb/rfbbytestream.c:
	* gst/librfb/rfbbytestream.h:
	* gst/librfb/rfbcontext.h:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	* gst/librfb/rfbutil.h:

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

	* gst/speed/Makefile.am:
	* gst/speed/demo-mp3.c: (main):
	* gst/speed/filter.func:
	* gst/speed/gstspeed.c: (speed_link), (speed_parse_caps),
	(speed_class_init), (speed_init), (speed_chain_int16),
	(speed_chain_float32), (speed_chain), (speed_set_property),
	(speed_get_property), (speed_change_state):
	* gst/speed/gstspeed.h:
	  Fix speed element and make it chain-based (fixes #156467),
	  and make it handle more than one channel.

2005-02-10  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dts/gstdtsdec.c: (gst_dtsdec_init), (gst_dtsdec_channels),
	(gst_dtsdec_handle_event), (gst_dtsdec_handle_frame),
	(gst_dtsdec_chain), (gst_dtsdec_change_state):
	* ext/dts/gstdtsdec.h:
          Don't clobber the stack constructing the channels array.
	  Make the element chain-based. DTS tracks can now be played.
	  
2005-02-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/multichannel.h:
	* gst-libs/gst/gconf/gconf.h:
	* gst-libs/gst/idct/idct.h:
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/play/play.h:
	* gst-libs/gst/resample/private.h:
	* gst-libs/gst/resample/resample.h:
	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/video/video.h:
	* gst-libs/gst/video/videosink.h:
	  Add G_BEGIN_DECLS and G_END_DECLS around headers where
	  missing, so that they work when included from C++ code.

2005-02-09  David Schleef  <ds@schleef.org>

	* testsuite/gst-lint: Check for non-statically scoped
	  parent_class variables.  This won't be a problem once
	  plugins are loaded with RTLD_LOCAL.

2005-02-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mplex/gstmplexibitstream.cc:
	  gcc madness.

2005-02-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstogmparse.c:
	* gst/debug/gstnavigationtest.c:
	  Die, thou faulty symbol pollutors (non-static parent_class).

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mplex/gstmplexibitstream.cc:
	  Fix event handling (#165525).

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mikmod/gstmikmod.c:
	* gst/modplug/gstmodplug.cc:
	  Add missing endianness to template (fixes #165509).

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_data):
	  Fix wrong order of reading of optional bytes (#165290).

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  Implement FILLER event awareness.

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_convert):
	  Fix track calculations (#166208).

2005-02-08  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_init), (gst_pngdec_chain):
	* ext/libpng/gstpngenc.c:
	  Fix byte-order, use proper fixed caps. Fixes #164197.

2005-02-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Add dvdlpcmdec 

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_reset),
	(free_all_buffers), (gst_mpeg2dec_alloc_buffer):
	  Don't push buffers if the src pad isn't negotiated yet.
	  
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_buffer_to_default_format),
	(gst_audio_convert_buffer_from_default_format):
	  Add support for 24-bit width.

	* gst/dvdlpcmdec/.cvsignore:
	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_get_type),
	(gst_dvdlpcmdec_base_init), (gst_dvdlpcmdec_class_init),
	(gst_dvdlpcm_reset), (gst_dvdlpcmdec_init), (gst_dvdlpcmdec_link),
	(gst_dvdlpcmdec_chain), (gst_dvdlpcmdec_change_state),
	(plugin_init):
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  New decoder for rearranging DVD LPCM into our audio/x-raw-int
	  format. Needs support for the channels maps if someone can find 
	  a DVD LPCM track with > 2 channels.

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_handle_dvd_event),
	(gst_dvd_demux_send_discont), (gst_dvd_demux_handle_discont),
	(gst_dvd_demux_get_audio_stream), (gst_dvd_demux_process_private):
	* gst/mpegstream/gstdvddemux.h:
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont),
	(gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_init_stream),
	(gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_handle_src_query):
	* gst/mpegstream/gstmpegdemux.h:
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_reset),
	(gst_mpeg_parse_parse_packhead), (gst_mpeg_parse_loop),
	(gst_mpeg_parse_get_rate), (gst_mpeg_parse_convert_src),
	(gst_mpeg_parse_handle_src_query),
	(gst_mpeg_parse_handle_src_event):
	  Use audio/x-dvd-lpcm for LPCM output.
	  Add DTS output.

2005-02-08  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/alpha/gstalphacolor.c: (gst_alpha_color_sink_link),
	(transform_rgb), (transform_bgr), (gst_alpha_color_chain):
	  Add BGRA handling (#165736).

2005-02-08  Francis Labonte  <francis_labonte@hotmail.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/law/alaw-decode.c: (alawdec_link):
	* gst/law/alaw-encode.c: (alawenc_link):
	* gst/law/mulaw-decode.c: (mulawdec_link):
	* gst/law/mulaw-encode.c: (mulawenc_link):
	  Fix caps memleaks (#166600).

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

	* ext/tarkin/mem.h:
	* ext/tarkin/wavelet.h:
	* ext/tarkin/yuv.h:
	* gst/ffmpegcolorspace/avcodec.h:
	  Include "_stdint.h" instead of <stdint.h>. Fixes build on
	  systems that don't have stdint.h, like Solaris9 (fixes #166631).

2005-02-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_change_state):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_clear),
	(gst_xvimagesink_change_state):
	  Clear window on PAUSED->READY instead of READY->PAUSED. Stop
	  Xv video (and thereby regenerate Xv colourkey) in clear() so
	  that PLAY -> READY -> PLAY works (fixes #162504).

2005-02-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_getcaps):
	  Switch to list instead of range, since MJPEG-devices really just
	  support decimations, not any size.

2005-02-05  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_open_decoder),
	(gst_mpeg2dec_reset), (free_all_buffers),
	(gst_mpeg2dec_alloc_buffer), (handle_sequence):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  The libmpeg2 user-allocated buffer management is awkward, 
	  to say the least. Hopefully this fixes things.

2005-02-04  Andy Wingo  <wingo@pobox.com>

	* gst/audioconvert/bufferframesconvert.c
	(buffer_frames_convert_fixate): New function, fixates to 256
	frames per buffer by default. (Much better than 1.)
	(buffer_frames_convert_init): Set the fixate function for both src
	and sink pad.
	(buffer_frames_convert_link): After success setting nonfixed caps,
	get the negotiated caps so we can know how many buffer-frames it
	will be. No idea how this worked at all before.

2005-02-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
	(gst_mpeg2dec_close_decoder), (put_buffer), (check_buffer),
	(free_buffer), (free_all_buffers), (gst_mpeg2dec_alloc_buffer),
	(handle_sequence), (handle_picture):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  Rearrange buffer tracking and refcounting and refactor
	  a little for readability. 

2005-02-04  Jan Schmidt  <thaytan@mad.scientist.com>
	* sys/v4l/gstv4l.c: (plugin_init):
	* sys/v4l/gstv4ljpegsrc.c: (gst_v4ljpegsrc_get_type),
	(gst_v4ljpegsrc_base_init), (gst_v4ljpegsrc_class_init),
	(gst_v4ljpegsrc_init), (gst_v4ljpegsrc_src_link),
	(gst_v4ljpegsrc_getcaps), (gst_v4ljpegsrc_get):
	* sys/v4l/gstv4ljpegsrc.h:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_open), (gst_v4lsrc_src_link):
	* sys/v4l/v4l_calls.h:
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_palette_name),
	(gst_v4lsrc_get_fps):
	* sys/v4l/v4lsrc_calls.h:
	  Add new v4ljpegsrc for handling the ov51x hacky "I'll give
	  you jpeg inside rgb frames" driver.
	  Don't error in the v4lsrc link function, just return 
	  REFUSED.

2005-02-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state),
	(gst_qcamsrc_open):
	  Use GST_ELEMENT_ERROR, not g_warning, if open failed.

2005-02-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Change caps on MJPEG-B so it doesn't interfere with MJPEG/JPEG.

2005-02-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_change_state):
	  Reset negotiated state on PAUSED->READY.

2005-02-02  David Schleef  <ds@schleef.org>

	* configure.ac: Put DEFAULT_AUDIOSINK in config.h and use
	whereever possible.  (Fixes #165997)
	* examples/capsfilter/capsfilter1.c: (main):
	* examples/dynparams/filter.c: (create_ui):
	* examples/seeking/cdparanoia.c: (get_track_info), (main):
	* examples/seeking/chained.c: (main):
	* examples/seeking/seek.c: (make_mod_pipeline), (make_dv_pipeline),
	(make_wav_pipeline), (make_flac_pipeline), (make_sid_pipeline),
	(make_vorbis_pipeline), (make_mp3_pipeline), (make_avi_pipeline),
	(make_mpeg_pipeline), (make_mpegnt_pipeline):
	* examples/seeking/spider_seek.c: (make_spider_pipeline):
	* examples/switch/switcher.c: (main):
	* ext/dv/demo-play.c: (main):
	* ext/faad/gstfaad.c: (gst_faad_change_state):
	* ext/mad/gstmad.c: (gst_mad_chain):
	* ext/smoothwave/demo-osssrc.c: (main):
	* gst-libs/gst/gconf/gconf.c: (gst_gconf_set_string),
	(gst_gconf_render_bin_from_description),
	(gst_gconf_get_default_audio_sink),
	(gst_gconf_get_default_video_sink),
	(gst_gconf_get_default_audio_src),
	(gst_gconf_get_default_video_src),
	(gst_gconf_get_default_visualization_element):
	* gst/level/demo.c: (main):
	* gst/level/plot.c: (main):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	* gst/playback/test.c: (gen_video_element), (gen_audio_element):
	* gst/playondemand/demo-mp3.c: (setup_pipeline):
	* gst/sine/demo-dparams.c: (main):
	* gst/spectrum/demo-osssrc.c: (main):
	* gst/speed/demo-mp3.c: (main):
	* gst/volume/demo.c: (main):
	* testsuite/embed/embed.c: (main):

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

	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_class_init),
	(gst_tcpclientsink_finalize):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init),
	(gst_tcpclientsrc_finalize):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_init), (gst_tcpserversink_finalize):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init),
	(gst_tcpserversrc_init), (gst_tcpserversrc_finalize):
	  Don't leak the hostname when shutting down.
	  In tcpserversrc, take a copy of the default hostname.

2005-02-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_iso_receive):
	  Set caps to systemstream=TRUE.

2005-02-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* testsuite/Makefile.am:
	  Fix more OSX buildbots.

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

	* ext/mpeg2dec/gstmpeg2dec.c:
	  Don't send things to NULL PAD_PEERs

	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_chain):
	  Copy-on-write the incoming buffer.

	* gst/mpegstream/gstdvddemux.h:
	* gst/mpegstream/gstmpegclock.h:
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead),
	(normal_seek), (gst_mpeg_demux_handle_src_event):
	* gst/mpegstream/gstmpegdemux.h:
	* gst/mpegstream/gstmpegpacketize.h:
	* gst/mpegstream/gstmpegparse.c:
	(gst_mpeg_parse_update_streaminfo), (gst_mpeg_parse_reset),
	(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead),
	(gst_mpeg_parse_loop), (gst_mpeg_parse_get_rate),
	(gst_mpeg_parse_convert_src), (gst_mpeg_parse_handle_src_query),
	(gst_mpeg_parse_handle_src_event), (gst_mpeg_parse_change_state):
	* gst/mpegstream/gstmpegparse.h:
	* gst/mpegstream/gstrfc2250enc.h:
          Various changes to the way time is computed that make seeking and
	  total time estimation much better here.
	  Use G_BEGIN/END_DECLS instead of __cplusplus

	* gst/videocrop/gstvideocrop.c: (gst_video_crop_chain):
	  Use gst_buffer_stamp instead of only copying the TIMESTAMP

2005-02-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/subparse/gstsubparse.c:
	  Fix OSX buildbot.

2005-01-31  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/theora/theoraenc.c: (theora_buffer_from_packet),
	(theora_enc_chain), (theora_enc_change_state):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_init),
	(gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_chain),
	(gst_vorbisenc_change_state):
	* ext/vorbis/vorbisenc.h:
	  Set granulepos and timestamp correctly for streams not
	  starting at 0, taking into account the initial delay.

2005-01-31  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/mpegstream/gstdvddemux.c:
	  Add audio/x-dts to audio pad template caps

2005-01-30  David Schleef  <ds@schleef.org>

	* ext/polyp/polypsink.c: (gst_polypsink_base_init),
	(create_context), (gst_polypsink_link): Fix silly endianness
	bug.  Add some debugging.  Remove float from caps; it doesn't
	work.  Attempt to get remote audio working.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add 3IV2 fourcc.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream), (swap_line),
	(gst_avi_demux_invert), (gst_avi_demux_process_next_entry),
	(gst_avi_demux_stream_data):
	* gst/avi/gstavidemux.h:
	  Invert DIB images. Fixes #132341.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_chain):
	  D'oh, reference the palette data, not the palette structure.
	  Fixes color distortion in #132341.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_link):
	  PAR can be non-fixed when not provided as argument (#162626).

2005-01-29  David Moore  <dcm@acm.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header):
	  Re-apply patch from #142272 that allows non-seekable sources,
	  re-proposed by Daniel Drake <dsd@gentoo.org>.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/rtp/gstrtpgsmenc.c: (gst_rtpgsmenc_init):
	  Use the src template for creating the src pad (#162330).

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/musepack/Makefile.am:
	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_class_init),
	(gst_musepackdec_init), (gst_musepackdec_dispose),
	(gst_musepackdec_src_query), (gst_musepackdec_src_convert),
	(gst_musepack_stream_init), (gst_musepackdec_loop),
	(gst_musepackdec_change_state):
	* ext/musepack/gstmusepackdec.cpp:
	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek),
	(gst_musepack_reader_read), (gst_musepack_reader_seek),
	(gst_musepack_reader_tell), (gst_musepack_reader_get_size),
	(gst_musepack_reader_canseek), (gst_musepack_init_reader):
	* ext/musepack/gstmusepackreader.cpp:
	* ext/musepack/gstmusepackreader.h:
	  Update to 1.1 API (#165446).

2005-01-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/Makefile.am:
	  Unbreak buildbot.

2005-01-28  Andy Wingo  <wingo@pobox.com>

	* ext/dv/gstdvdec.c: Change the pixel aspect ratio of dvdec output
	to reflect a different dubious internet source. Add a reference
	and some commentary.

2005-01-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gststreamselector.c: (gst_stream_selector_init),
	(gst_stream_selector_get_caps), (gst_stream_selector_chain):
	* gst/playback/gststreamselector.h:
	  Be more selective when we're redoing caps negotiation from
	  within the chain function on a stream change.

2005-01-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/amrnb/Makefile.am:
	* ext/amrnb/amrnb.c: (plugin_init):
	* ext/amrnb/amrnbdec.c: (gst_amrnbdec_get_type),
	(gst_amrnbdec_base_init), (gst_amrnbdec_class_init),
	(gst_amrnbdec_init), (gst_amrnbdec_link), (gst_amrnbdec_chain),
	(gst_amrnbdec_state_change):
	* ext/amrnb/amrnbdec.h:
	* ext/amrnb/amrnbparse.c: (gst_amrnbparse_get_type),
	(gst_amrnbparse_base_init), (gst_amrnbparse_class_init),
	(gst_amrnbparse_init), (gst_amrnbparse_formats),
	(gst_amrnbparse_querytypes), (gst_amrnbparse_query),
	(gst_amrnbparse_handle_event), (gst_amrnbparse_reserve),
	(gst_amrnbparse_loop), (gst_amrnbparse_state_change):
	* ext/amrnb/amrnbparse.h:
	  Add support for AMR-NB (mobile phone audio format; #155163, #163286).
	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Add AMR-NB/-WB raw formats.
	* ext/alsa/gstalsa.c: (gst_alsa_link):
	  Keep valid time when changing format.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse_trak):
	  Add some more format-specific options (#140141, #143555, #155163).

2005-01-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup):
	  Fix logic error in timing of subtitle stream synchronization.
	* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
	  Add skip-chunk, which is found in kodak-camera streams.

2005-01-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/vi.po:
	  Adding Vietnamese translation (submitted by Clytie Siddall)

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (try_to_link_1):
	  Use realpad for signal.

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstid3demuxbin.c: (gst_id3demux_bin_base_init):
	  Fix category so decodebin picks it up.

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/Makefile.am:
	* ext/mad/gstid3demuxbin.c: (gst_id3demux_bin_get_type),
	(gst_id3demux_bin_base_init), (gst_id3demux_bin_class_init),
	(gst_id3demux_bin_init), (gst_id3demux_bin_remove_pad),
	(found_type), (gst_id3demux_bin_change_state):
	* ext/mad/gstid3tag.c: (gst_id3_tag_add_src_pad),
	(gst_id3_tag_init), (gst_id3_tag_handle_event),
	(gst_id3_tag_src_link), (gst_id3_tag_chain),
	(gst_id3_tag_change_state), (plugin_init):
	* ext/mad/gstmad.h:
	  Add id3demuxbin (which is a simple bin consisting of id3demux
	  and typefind), take over rank from id3demux, remove typefind
	  code from id3demux. Makes all broken mp3s that I know of work,
	  and thereby fixes #152688.

2005-01-27  Edward Hervey  <bilboed@bilboed.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_src_event):
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event):
	  Allow seeks on audio pad, make mad forward those (#164826).
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
	  Set duration (#165335).

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
	(gst_asf_demux_commit_taglist), (gst_asf_demux_process_comment),
	(gst_asf_demux_process_ext_content_desc),
	(gst_asf_demux_change_state), (gst_asf_demux_add_audio_stream),
	(gst_asf_demux_add_video_stream), (gst_asf_demux_setup_pad):
	* gst/asfdemux/gstasfdemux.h:
	  Improve metadata display, e.g. if the metadata comes before the
	  streams are loaded (which is perfectly valid).

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* tools/gst-launch-ext-m.m:
	  Fix AVI/ASF pipelines (#165340).

2005-01-26  Amaury Jacquot  <sxpert@esitcom.org>
	* ext/cairo/gsttextoverlay.c: include  string.h and strings.h to fix
	build failure on amd64

2005-01-26  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/mad/gstid3tag.c: (mad_id3_parse_latin1_string),
	(mad_id3_parse_comment_frame), (gst_mad_id3_to_tag_list):
	  Check environment variables GST_ID3V2_TAG_ENCODING,
	  GST_ID3_TAG_ENCODING and GST_TAG_ENCODING for a colon-separated
	  list of character encodings to force interpretation of non-unicode
	  strings stored in an ID3v2 tag to a particular encoding. If none
	  is specified, try to use current locale's encoding, then fall back
	  to ISO-8859-1 (which will always succeed). (Resolves #149274)
	* gst/tags/gstid3tag.c: (gst_tag_from_id3_tag),
	(gst_tag_extract_id3v1_string), (gst_tag_list_new_from_id3v1):
	  Check environment variables GST_ID3V1_TAG_ENCODING,
	  GST_ID3_TAG_ENCODING and GST_TAG_ENCODING for a colon-separated
	  list of character encodings to use in case a string encountered
	  in an ID3v1 tag is not valid UTF-8 already. If no encoding is
	  specified, try to use the current locale's encoding, then fall
	  back to ISO-8859-1 (which will always succeed).

2005-01-25  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain):
	  - on half framerate, compute the rate in advance so the comparisons
	    don't compare wrong values
	  - don't use mad_synth/frame_mute anymore, this mirrors mad_decoder
	    behaviour
	  - don't use mad_header_decode anymore, mad_frame_decode does that
	    automatically
	  - when getting rid of consumed bytes, reset the stream's skiplen
	  (fixes #163867)

2005-01-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init)
	  Use 1/2 a second for default max_discont, as PES streams from DVB
	  seem to have larger spacings in the SCR. 
	  Fix a typo.

2005-01-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (group_commit):
	  Notify delayed stream-info availability.

2005-01-26  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/a52dec/gsta52dec.c: (gst_a52dec_push),
	(gst_a52dec_handle_event), (gst_a52dec_chain):
	Add some debug output. Check that a discont has a valid
	time associated.
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
	(gst_alsa_sink_loop):
	Ignore TAG events. A little extra debug for broken timestamps.
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init), (dvdnavsrc_loop),
	(dvdnavsrc_change_state):
	Ensure we send a discont to engage the link before we send any
	other events.
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_init),
	(dvdreadsrc_finalize), (_close), (_open), (_seek_title),
	(_seek_chapter), (seek_sector), (dvdreadsrc_get),
	(dvdreadsrc_uri_get_uri), (dvdreadsrc_uri_set_uri):
	Handle URI of the form dvd://title[,chapter[,angle]]. Currently only
	dvd://title works in totem because typefinding sends a seek that ends
	up going back to chapter 1 regardless.
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	Output correct timestamps and handle disconts.
	* ext/ogg/gstoggdemux.c: (get_relative):
	Small guard against a null dereference.
	* ext/pango/gsttextoverlay.c: (gst_textoverlay_finalize),
	(gst_textoverlay_set_property):
	Free memory when done. Don't call gst_event_filler_get_duration on
	EOS events. Use GST_LOG and GST_WARNING instead of g_message and
	g_warning.
	* ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init),
	(draw_line), (gst_smoothwave_dispose), (gst_sw_sinklink),
	(gst_sw_srclink), (gst_smoothwave_chain):
	Draw solid lines, prettier colours.
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
	Add a default palette that'll work for some movies.
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_init),
	(gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_send_discont),
	(gst_dvd_demux_send_subbuffer), (gst_dvd_demux_reset):
	* gst/mpegstream/gstdvddemux.h:
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont),
	(gst_mpeg_demux_parse_syshead), (gst_mpeg_demux_parse_pes):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init),
	(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead):
	* gst/mpegstream/gstmpegparse.h:
	Use PTM/NAV events when for timestamp adjustment when connected to 
	dvdnavsrc. Don't use many discont events where one suffices.
	* gst/playback/gstplaybasebin.c: (group_destroy),
	(gen_preroll_element), (gst_play_base_bin_add_element):
	* gst/playback/gstplaybasebin.h:
	Make sure we remove subtitles from the same bin we put them in.
	* gst/subparse/gstsubparse.c: (convert_encoding), (parse_subrip),
	(gst_subparse_buffer_format_autodetect),
	(gst_subparse_change_state):
	Fix some memleaks and invalid accesses.
	* gst/typefind/gsttypefindfunctions.c: (ogganx_type_find),
	(oggskel_type_find), (cmml_type_find), (plugin_init):
	Some typefind functions for Annodex v3.0 files
	* gst/wavparse/gstwavparse.h:
	GstRiffReadClass is the correct parent class.

2005-01-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  Add extradata to huffyuv (fixes #165013).
	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data):
	  Fix extradata extraction if it is in the chunk size.

2005-01-25  Edward Hervey  <bilboed@bilboed.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/effectv/gstquark.c: (gst_quarktv_class_init),
	(gst_quarktv_change_state), (gst_quarktv_dispose):
	  Memory free'ing location fix (#164708).

2005-01-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (group_commit),
	(gen_preroll_element), (probe_triggered), (gen_source_element),
	(setup_source), (gst_play_base_bin_change_state),
	(gst_play_base_bin_add_element):
	  Don't block for streams.
	* gst/playback/gststreaminfo.c: (stream_info_change_state),
	(gst_stream_info_set_mute):
	  Use gst_pad_set_active_recursive.

2005-01-25  Andy Wingo  <wingo@pobox.com>

	* sys/v4l/gstv4lelement.c (gst_v4l_iface_supported): Fix compile
	for #ifndef HAVE_XVIDEO.

2005-01-24  Jeffrey C. Ollie

	reviewed by: Maciej Katafiasz  <mathrick@freedesktop.org>

	* ext/gsm/gstgsmdec.c: (gst_gsmdec_init), (gst_gsmdec_chain):
	* ext/gsm/gstgsmdec.h:
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_init), (gst_gsmenc_chain):
	* ext/gsm/gstgsmenc.h:
	Fix rate to 8kHz as per spec, removes obscure errors when no rate
	was given by property. Add proper buffer timestamps and offsets.

2005-01-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data):
	  Audio can be <8000Hz.

2005-01-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	  Explicit state change to workaround refcount bugs.

2005-01-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_write_tag),
	(gst_avimux_riff_get_avi_header):
	  Fix...

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_element_data),
	(gst_riff_read_element_data):
	* gst-libs/gst/riff/riff-read.h:
	  Add _peek version (req'ed in CDXA).
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_init),
	(gst_cdxaparse_loop):
	  Fix parsing in playbin.
	* gst/playback/gstdecodebin.c: (close_pad_link):
	  Ignore current_ pads, they cause major annoyance.

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  Safety guard.

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_write_tag):
	  Fix padding...

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/ebml-read.c: (gst_ebml_read_buffer):
	  Allow for 0-sized buffers. Fixes length query problems in
	  starwars.mkv from the testsuite.

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

	* gst/videobox/gstvideobox.c: (gst_video_box_copy_plane_i420),
	(gst_video_box_i420), (gst_video_box_chain):
	  Fix row strides for I420 (fixes #163159)
	  
2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
	  MPEG2 has a useful rate property, so we can actually use that.
	  For MPEG-1, continue using the bytes/time properties.

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add intel-h263.

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain):
	  Fail if caps negotiation fails. Should fix #162184, and should
	  definately be in there regardless of it fixing the actual bug.
	* gst/avi/gstavimux.c: (gst_avimux_get_type), (gst_avimux_init),
	(gst_avimux_write_tag), (gst_avimux_riff_get_avi_header),
	(gst_avimux_riff_get_avix_header),
	(gst_avimux_riff_get_video_header),
	(gst_avimux_riff_get_audio_header), (gst_avimux_write_index),
	(gst_avimux_start_file), (gst_avimux_handle_event),
	(gst_avimux_change_state):
	* gst/avi/gstavimux.h:
	  Refactor structure writing to use GST_WRITE_UINT macros, add
	  metadata writing support.

2005-01-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gststreaminfo.c: (gst_stream_info_dispose):
	  Elements may already be destroyed when this function is called.

2005-01-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header), (gst_qtdemux_handle_esds):
	  More memory leak fixes (#149162).

2005-01-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_add_stream):
	  Fix two memleaks.

2005-01-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
	  Argh...

2005-01-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
	  Fix off-by-one bug. Fixes warnings during playback of sincity.mp4
	  when fixating to six channels in Totem.

2005-01-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dvdread/dvdreadsrc.c: (get_next_cell_for):
	  Fix compile warnings on Solaris 10 buildbot

2005-01-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dvdread/dvdreadsrc.c: (_read):
	  Don't read beyond the last cell in a chapter (fixes 
	  invalid memory access)

2005-01-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dvdread/stream_labels.c:
	(dvdreadsrc_get_audio_stream_labels):
	  Use NULL for an empty GList instead of g_list_alloc(); fix 
	  memory leaks; s/LCPM/LPCM/; use g_strdup_printf() instead 
	  of GString (easier to bulk free later)

2005-01-17  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps):
	  Fix BGRA32 caps (#164209).

2005-01-17  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pixfmt):
	  alpha_mask can be RGBA/ABGR. Fixes #164265.

2005-01-17  Francis Labonte  <francis_labonte@hotmail.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer),
	(gst_mpeg2dec_alloc_buffer):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  Crop if decoding size is not the actual image size (#163676).

2005-01-17  Steve Baker  <steve@stevebaker.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (aiff_type_find),
	(svx_type_find), (sds_type_find), (ircam_type_find), (plugin_init):
	  Add libsndfile typefind functions (#163309).

2005-01-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* tools/gst-launch-ext-m.m:
	  Add .aac, fix .m1v/.m2v (#163891).

2005-01-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsaclock.c: (gst_alsa_clock_wait):
	  Sanity check, don't wait endlessly since the clock might not
	  actually run at this point (which is a deadlock). Fixes #164069.

2005-01-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (probe_triggered):
	  Of course, only pause if group is done...

2005-01-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (probe_triggered):
	  Thread safety.

2005-01-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/swfdec/gstswfdec.c: (gst_swfdec_change_state):
	  Don't return state change success when the parent
	  failed.

2005-01-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_handle_event):
	  Free events (fix memleak in #162905).

2005-01-15  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pixfmt):
	  Fix for depth = 15. Fixes #161675.

2005-01-14  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps):
	  Set FPS correctly, even for webcams and the like.
	* sys/v4l/v4l_calls.c: (gst_v4l_set_chan_norm):
	  Don error on setting while capturing.

2005-01-14  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	* gst/subparse/gstsubparse.c: (parse_mdvdsub):
	* gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect):
	  I'm a bad boy. using /1001. to force C to do float division
	  and not integer division (as it did in my last commit)
	  Thanks to David I. Lehn for pointing this mistake.

2005-01-14  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported):
	  Revert Johan´s 1.35->1.36 since it breaks compat.

2005-01-14  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	* ext/libfame/gstlibfame.c:
	* gst/subparse/gstsubparse.c: (parse_mdvdsub):
	* gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect):
          replace framerate aproximations by their real value
          (24000/1001, 30000/1001, 60000/1001)
          Finish fixing bug #164049

2005-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggmux.c:
	  eos/bos debugging
	* gst/tcp/gstmultifdsink.c:
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	  improve reusability of elements after state changes and errors
	  make multifdsink throw away streamheaders when receiving new ones

2005-01-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_rates_probe):
	  Fix for if items are already in list...

2005-01-12  Benjamin Otte  <otte@gnome.org>

	* gst/adder/gstadder.c: (gst_adder_loop):
	  fix adder a bit so it doesn't screw up with events as much anymore

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

	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_link),
	(pixbufscale_scale), (gst_pixbufscale_chain):
	* ext/gdk_pixbuf/pixbufscale.h:
	  Incorporate changes from Tim-Philipp Mueller <t.i.m@orange.net>
	  to ensure rowstrides are calculated the same way as 
	  ffmpegcolorspace
	  Use gst_buffer_stamp instead of copying TIMESTAMP manually, so
	  that we pick up duration and offset also.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_class_init),
	(gst_avimux_pad_unlink), (gst_avimux_release_pad):
	  Reusability fixes.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_update),
	(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
	(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record),
	(gst_alsa_mixer_set_option), (gst_alsa_mixer_get_option):
	  Update flags when requested.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_rates_probe):
	  Fix dmix.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_init), (gst_play_base_bin_dispose),
	(probe_triggered), (new_decoded_pad), (gen_source_element),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_init), (group_switch), (remove_sinks), (setup_sinks),
	(gst_play_bin_change_state):
	  Implement group-switch signal for use in apps to clear metadata
	  cache, clean up subtitle, add suburi property instead of # hack,
	  some error-out fixes.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  Debug.
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_grab_frame):
	  If we got a state change in the _get handler, don't return success.

2005-01-10  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_my_output_message),
	(gst_jpegdec_my_emit_message), (gst_jpegdec_init):
	  Make jpegdec quiet on MJPEG decoding
	* gst/asfdemux/README:
	  Fix mimetypes for MJPEG and H263

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/theora/theoradec.c: (theora_dec_chain):
	  Fix broken code generation by gcc by swapping arguments.
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
	  Fix \n in debug.

2005-01-10  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* TODO:
	  delete this file, it is by far outdated
	* ext/alsa/gstalsa.1: remove
	* ext/alsa/gstalsa.c: (add_rates), (add_channels), (gst_alsa_caps),
	(gst_alsa_check_sample_rates), (gst_alsa_rates_probe),
	(gst_alsa_get_caps):
	  Add HW probing for supported sample rates. Fixes #161704

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
	  Don't crash, biatch! :).

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musepack/gstmusepackreader.cpp:
	* gst/apetag/apedemux.c: (gst_ape_demux_stream_data):
	  Some work on tags - still doesn't work in playbin...
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
	  Handle events...

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_tree):
	  Also shove tags on kid pads.

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event):
	  Don't bail on unknown events.
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
	  Don't crash on events before negotiation.
	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
	  Send tags on pads, too.
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_request_new_pad):
	  Forward events on first pad if no input was selected yet.

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (setup_substreams):
	  Don't disable streamtype if the stream doesn't exist, since
	  then playing a video after audio will disable both and nothing
	  will happen. Fixes the testsuite.

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lxoverlay.c: (gst_v4l_xoverlay_interface_init),
	(gst_v4l_xoverlay_set_xwindow_id):
	* sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_interface_init),
	(gst_v4l2_xoverlay_set_xwindow_id):
	  Add debug categories, fix overlay disabling.

2005-01-10  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/alsa/gstalsa.c: (gst_alsa_class_init), (gst_alsa_get_caps):
	* ext/alsa/gstalsa.h:
	  Add HW probing for period_count/size and buffer_size MIX/MAX
	  Adjust default/user defined value if out of bounds
	  Should fix bug #162024

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event):
	  Fix warning (#161191).

2005-01-09  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dvdread/stream_labels.c:
	(dvdreadsrc_get_audio_stream_labels):
	  Fix warning (init the good variable in switch default)

2005-01-09  Koop Mast  <kwm@rainbow-runner.nl>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/tta/gstttaparse.c: (gst_tta_src_event):
	  Fix gcc-2.95 compile (#163485).

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/flac/gstflacenc.c: (gst_flacenc_init),
	(gst_flacenc_seek_callback), (gst_flacenc_write_callback),
	(gst_flacenc_tell_callback), (gst_flacenc_chain),
	(gst_flacenc_change_state):
	* ext/flac/gstflacenc.h:
	  Update for API change in flac-1.1.1. Update requirement in
	  configure.ac. Fixes #162974.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (group_destroy):
	  Remove hack to get rid of assert and get rid of unlinked
	  signals properly.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (setup_source):
	  Set source to NULL so that resources are free'ed. Fixes issues
	  with playback of CDDA and similar device-accessing things.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* testsuite/embed/Makefile.am:
	  test->noinst, fix make test in buildbot.

2005-01-09  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dvdread/stream_labels.c: new file
	* ext/dvdread/stream_labels.h: new file
	* ext/dvdread/Makefile.am:
	* ext/dvdread/dvdreadsrc.c: (_seek_title):
	  Extract audio stream label from DVD IFO files.
	  It only dump them on the console for now, still have to
	  make playbin aware of them.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (setup_source):
	  Fix hanging subs.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(gen_preroll_element), (remove_groups), (setup_subtitle),
	(gen_source_element), (setup_source):
	* gst/playback/gstplaybasebin.h:
	  Multiple .sub files is just a stupid idea... Fix some threading
	  mistakes. Interestingly, external .sub files cause playbin to
	  hang, I don't know why... Parsing fixes contributed by François
	  Kooman <fkooman@tuxed.net>.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* testsuite/embed/Makefile.am:
	  Fix buildbot.

2005-01-09  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init),
	(gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property),
	(gst_pngenc_set_property):
	* ext/libpng/gstpngenc.h:
	  Add compression level property (#163323).

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* examples/capsfilter/capsfilter1.c: (main):
	* examples/seeking/spider_seek.c: (make_spider_pipeline):
	* ext/dvdread/Makefile.am:
	* ext/dvdread/demo-play:
	* ext/dvdread/demo-play.c:
	* gconf/gstreamer.schemas.in:
	* gst-libs/gst/gconf/gconf.c:
	* sys/v4l/TODO:
	* testsuite/Makefile.am:
	* testsuite/embed/Makefile.am:
	* testsuite/embed/embed.c: (cb_expose), (main):
	  Remove all references to xvideosink, fix examples (#140845).
	* gst/playback/gstplaybasebin.c: (group_destroy):
	  Apparently, disposal does not unlink - so do explicitely.
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  Add debug.

2005-01-09  Maciej Katafiasz <mathrick@freedesktop.org>

	* README: fix PKG_CONFIG_PATH instructions, what was there
	previously was breaking default search path, not nice. 
	Fixes #163358

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioscale/gstaudioscale.c: (gst_audioscale_init),
	(gst_audioscale_chain):
	  %#^@^#@^@#^#@^#@^@#^@#^@#^@#^#@^#@^#@^@#^#@ fix seeking
	  when resampling - how the ^@$^!@^! is this possible?!?

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state):
	  Reset variables on READY.
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_request_new_pad),
	(gst_matroska_mux_loop):
	  Require data before writing header.

2005-01-09  Francis Labonte  <francis_labonte@hotmail.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_chain):
	  Don't call mad_stream_sync() directly after recovering sync.
	  Fixes #151661.

2005-01-09  Martin Eikermann  <meiker@upb.de>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init),
	(snapshot_handler), (gst_snapshot_sinkconnect),
	(gst_snapshot_chain):
	  Allocate resources when required, fix recursive signal emission
	  and fix caps. Fixes #161667.

2005-01-09  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_src_getcaps),
	(gst_pngdec_chain):
	  Handle only 8-bppc (bits-per-pixel-component) images, better
	  error handling and correct strides. Fixes #163177.
	* ext/libpng/gstpngenc.c: (gst_pngenc_sinklink),
	(gst_pngenc_chain):
	  Better error handling. Fixes #163348.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_get_type),
	(dvdnavsrc_uri_get_type), (dvdnavsrc_uri_get_protocols),
	(dvdnavsrc_uri_get_uri), (dvdnavsrc_uri_set_uri),
	(dvdnavsrc_uri_handler_init):
	  Add DVD-nav URI (dvdnav://) for Totem testing purposes.
	* gst/playback/gstplaybasebin.c: (gen_source_element):
	  Add MMS to streaming URIs.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event):
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_navigation_send_event):
	  Check for pad availability before sending event.

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-plugins.spec.in:
	  Add subparse.

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Since we use functions from CVS, up requirement.

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/Makefile.am:
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(group_destroy), (group_commit), (group_is_muted),
	(gen_preroll_element), (add_stream), (unknown_type),
	(probe_triggered), (preroll_unlinked), (mute_stream),
	(silence_stream), (new_decoded_pad), (setup_substreams),
	(setup_source), (get_active_source), (mute_group_type),
	(muted_group_change_state), (set_active_source),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
	(play_base_eos), (gst_play_base_bin_change_state):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (add_sink), (setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
	(gst_stream_info_dispose), (stream_info_mute_pad),
	(stream_info_change_state), (gst_stream_info_set_mute):
	* gst/playback/gststreamselector.c: (gst_stream_selector_get_type),
	(gst_stream_selector_base_init), (gst_stream_selector_class_init),
	(gst_stream_selector_init), (gst_stream_selector_dispose),
	(gst_stream_selector_get_linked_pad),
	(gst_stream_selector_get_caps), (gst_stream_selector_link),
	(gst_stream_selector_get_linked_pads),
	(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
	* gst/playback/gststreamselector.h:
	  Adding stream selection support plus required properties for
	  applications to use this. Fully fixes #100931.

2005-01-08  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (nav_event_handler):
	  - handle nav events differently: forward every event no matter if it
	    was handled or not.
	  - translate events
	  You can now cheat by using navigationtest ! puzzle and moving the
	  mouse close to the edge of a tile. ;)

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_new):
	* ext/ogg/gstogmparse.c: (gst_ogm_text_parse_get_type),
	(gst_ogm_text_parse_base_init), (gst_ogm_text_parse_init),
	(gst_ogm_parse_get_sink_querytypes), (gst_ogm_parse_sink_convert),
	(gst_ogm_parse_sink_query), (gst_ogm_parse_chain),
	(gst_ogm_parse_plugin_init):
	* ext/pango/gsttextoverlay.c: (gst_textoverlay_linkedpads),
	(gst_textoverlay_link), (gst_textoverlay_getcaps),
	(gst_textoverlay_event), (gst_textoverlay_video_chain),
	(gst_textoverlay_loop), (gst_textoverlay_init), (plugin_init):
	* ext/pango/gsttextoverlay.h:
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_handle_seek_event),
	(gst_matroska_demux_sync_streams),
	(gst_matroska_demux_parse_blockgroup),
	(gst_matroska_demux_subtitle_caps),
	(gst_matroska_demux_plugin_init):
	* gst/matroska/matroska-ids.h:
	* gst/playback/gstdecodebin.c: (close_pad_link):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(gen_preroll_element), (remove_groups), (add_stream),
	(new_decoded_pad), (setup_subtitles), (gen_source_element),
	(setup_source):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gen_text_element), (setup_sinks):
	* gst/subparse/Makefile.am:
	* gst/subparse/gstsubparse.c: (gst_subparse_get_type),
	(gst_subparse_base_init), (gst_subparse_class_init),
	(gst_subparse_init), (gst_subparse_formats),
	(gst_subparse_eventmask), (gst_subparse_event),
	(gst_subparse_handle_event), (convert_encoding), (get_next_line),
	(parse_mdvdsub), (parse_mdvdsub_init), (parse_subrip),
	(parse_subrip_deinit), (parse_subrip_init), (parse_mpsub),
	(parse_mpsub_deinit), (parse_mpsub_init),
	(gst_subparse_buffer_format_autodetect),
	(gst_subparse_format_autodetect), (gst_subparse_loop),
	(gst_subparse_change_state), (gst_subparse_type_find),
	(plugin_init):
	* gst/subparse/gstsubparse.h:
	* gst/typefind/gsttypefindfunctions.c: (ogmtext_type_find),
	(plugin_init):
	  Add subtitle support, .sub parser (supports SRT and MPsub),
	  OGM text support, Matroska UTF-8 text support, deadlock fixes
	  all over the place, subtitle awareness in decodebin/playbin
	  and some fixes to textoverlay to handle subtitles in a stream
	  correctly. Fixes #100931.

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
	  Check for pad availability before doing a query on it.

2005-01-08  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	  really fix bpp24/32 dvdec caps (classic rgba indeed)
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	  don't send text tags if they are empty (bis repetita)

2005-01-08  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	 remove unneeded comment from dvdec
	  (related to DV 4CC codes in AVI files)
	  moved them in gstreamer/docs/random/mimetypes
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	 don't send text tags if they are empty
	 fix mem leak on error path
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c: (img_get_alpha_info):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	 adds BGR32 and BGRA32 to ffmpegcolorspace
	  (still bad colors, fixing it on next commit)
	  helps with dvdec outputing BGR32

2005-01-08  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	 Fix audio caps i just broke (missing ',')
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_get_type),
	(gst_matroska_mux_reset):
	 Fix typo + add FIXME about old "x-gst-metadata" crap

2005-01-07  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/demo-play.c: (main):
	 xvideosink -> xvimagesink
	* ext/dv/gstdvdec.c:
	 change rgb 32/32 caps to 24/32 (no alpha)
	 change nb of channels to be a list (2 or 4, not 2)
	 change sample rate to be a list (32, 44.1, 48 kHz) not a range
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	 Add 'date/year' to extracted metadata list

2005-01-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
	  The return value of fixate_to does not imply that the requested
	  value was set, so don't assume.

2005-01-07  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/gstpngdec.c:
	* ext/libpng/gstpngenc.c: (gst_pngenc_base_init),
	(gst_pngenc_sinklink), (gst_pngenc_init), (gst_pngenc_chain):
	* ext/libpng/gstpngenc.h:
	  Alpha support (encoder; #163161), mime fixage.

2005-01-07  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faac/gstfaac.c: (gst_faac_outputformat_get_type),
	(gst_faac_class_init), (gst_faac_init), (gst_faac_srcconnect),
	(gst_faac_set_property), (gst_faac_get_property):
	* ext/faac/gstfaac.h:
	  Allow for ADTS output (#153434).

2005-01-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps):
	  Fix against template (#150576).

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (draw_puzzle):
	  don't draw a puzzle if either width or height of tiles would be 0.

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (gst_puzzle_get_type),
	(gst_puzzle_class_init), (gst_puzzle_finalize):
	  no memleaks, please
	(gst_puzzle_create), (gst_puzzle_init),
	(gst_puzzle_set_property), (gst_puzzle_setup):
	  change initialization code around so we don't reshuffle on resize
	(draw_puzzle):
	  fix another stupid typo

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstvideoimage.c: (copy_hline_YUY2):
	  fix stupid typo that borked copying on YUY2

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (draw_puzzle):
	  fix edges when image sizes aren't multiples of tile sizes

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (gst_puzzle_base_init):
	  make RGB endianness work correctly
	(gst_puzzle_show), (gst_puzzle_swap), (gst_puzzle_move):
	  refactor and fix race with initial shuffling
	(nav_event_handler):
	  allow using the mouse to puzzle
	(draw_puzzle):
	  insist on tiles having width and height as multiples of 4 to get
	  clean YUV image handling
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_handle_xevents), (gst_xvimagesink_buffer_alloc):
	  s/DEBUG/LOG/ for common messages
	(gst_xvimagesink_navigation_send_event):
	  fix mouse event translation to not include screen PAR
	* sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event):
	  fix mouse event translation to actually work

2005-01-06  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	 Extract TrackNumber metadata + clean up code
	* gst/games/gstvideoimage.c: (gst_video_image_draw_rectangle):
	 Hope this is the good fix (var used unitialised)

2005-01-06  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_chain):
	  Only increment timestamp if it's valid. Fixes raw AAC streams.

2005-01-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	* gst/games/Makefile.am:
	* gst/games/gstpuzzle.c:
	  add a puzzle game with...
	* gst/games/gstvideoimage.c:
	* gst/games/gstvideoimage.h:
	  ... full colorspace support (that includes YUV9 and RGB16)) stolen
	  from videotestsrc and made into something that would be a nice
	  library for a lot of other plugins.

2005-01-06  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* configure.ac:
	 don't compile faad plugin if a RC of 2.0 is found
	 Fixes #155346 (and FC1 buildbot)
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	 try to make Solaris compiler happier

2005-01-06  Paul Jack  <pjack@sfaf.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init):
	  Fix segfault (#161667).

2005-01-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps):
	  Fix framerate reporting.

2005-01-05  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/riff/riff-ids.h:
	* gst/wavenc/riff.h:
	 Add AMR (VBR and CBR) ids to riff.h audio codec list
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc),
	(gst_asf_demux_process_object):
	  Retrieve more tags from ASF files (Genre, AlbumTitle, Artist)

2005-01-05  Martin Eikermann  <meiker@upb.de>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init),
	(gst_dvd_demux_handle_discont):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
	(gst_mpeg_demux_handle_discont):
	  Recreate pads on new-media (#160730).
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_new_pad):
	  Send discont even if manager changes timestamps (#161929).

2005-01-05  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/resample/resample.c: (gst_resample_sinc_ft_s16):
	  Fix invalid memory access (#159211).

2005-01-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* examples/gstplay/player.c: (main):
	  Don't iterate.
	* examples/seeking/seek.c: (fixate), (make_playerbin_pipeline):
	  Add visualizations.
	* ext/a52dec/gsta52dec.c: (gst_a52dec_push),
	(gst_a52dec_handle_frame):
	  Set duration.
	* ext/dvdnav/gst-dvd:
	  Add audioconvert. Fixes #161325.
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_get):
	  Explicitely case to gint64. Possible valgrind error.
	* gst-libs/gst/play/play.c: (caps_set), (setup_size),
	(gst_play_tick_callback), (gst_play_change_state),
	(gst_play_dispose), (gst_play_init), (gst_play_class_init),
	(gst_play_set_location), (gst_play_get_location),
	(gst_play_seek_to_time), (gst_play_set_data_src),
	(gst_play_set_video_sink), (gst_play_set_audio_sink),
	(gst_play_set_visualization), (gst_play_connect_visualization),
	(gst_play_get_framerate), (gst_play_get_all_by_interface),
	(gst_play_new):
	  Use playbin. Fixes #139749 and #147744.
	* gst/apetag/apedemux.c: (gst_ape_demux_parse_tags):
	  Add genre tag.
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_method_get_type),
	(audioscale_get_type), (gst_audioscale_base_init),
	(gst_audioscale_class_init), (gst_audioscale_expand_caps),
	(gst_audioscale_getcaps), (gst_audioscale_fixate),
	(gst_audioscale_link), (gst_audioscale_get_buffer),
	(gst_audioscale_decrease_rate), (gst_audioscale_increase_rate),
	(gst_audioscale_init), (gst_audioscale_dispose),
	(gst_audioscale_chain), (gst_audioscale_set_property),
	(gst_audioscale_get_property), (plugin_init):
	  Indent properly.
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private):
	  Fix LPCM.
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_udta),
	(qtdemux_tag_add_str), (qtdemux_tag_add_num),
	(qtdemux_tag_add_gnre), (qtdemux_video_caps):
	  Add more metadata (fixes #162656).

2005-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to cvs

=== release 0.8.7 ===

2005-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	  releasing 0.8.7, "Hyperspace"

2005-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Tim-Philipp Müller  <t.i.m@zen.co.uk>

	* gst/playback/gstplaybasebin.c:
	 Fix for #162924 - free caps after use, not before

2005-01-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c:
	* gst/wavparse/gstwavparse.c:
	  Fix for #154773 - fixes playback of small .wav files

2005-01-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* gst/audioscale/gstaudioscale.c:
	  Fix for #162819 - make audioscale reusable
	  Fixes playback of more than one file with playbin/totem

2004-12-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	* gst/ffmpegcolorspace/imgconvert.c:
	  clean up the mess that made me cry and avoid needless duplication

2004-12-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/imgconvert.c:
	  give some indication of why we're segfaulting

2004-12-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Fix indentation, fix v4l2 plugin detection.
	* ext/Makefile.am:
	  Fix libmms location (Maciej, use diff -u!).
	* ext/alsa/gstalsa.c: (gst_alsa_init):
	  Initialize caps cache to NULL.
	* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
	  Only change state on audiosink if it exists.

2004-12-28  Maciej Katafiasz  <mathrick@mathrick.org>

	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-demux.h:
	Fix Vorbis streams failing to decode in some files, where cluster_time
	isn't 0, because then it doesn't send codec_priv before actual data.
	Remove time-based test and replace it with marker set on beginning of
	new stream

2004-12-28  David Schleef  <ds@schleef.org>

	Merge patch from Ronald fixing problems with streaming
	text.
	* ext/cairo/gstcairo.c: (plugin_init):
	* ext/cairo/gsttextoverlay.c: (gst_textoverlay_render_text),
	(gst_text_overlay_blit_1), (gst_text_overlay_blit_sub2x2),
	(gst_textoverlay_video_chain), (gst_textoverlay_loop),
	(gst_textoverlay_font_init), (gst_textoverlay_init),
	(gst_textoverlay_set_property):
	* ext/cairo/gsttextoverlay.h:

2004-12-27  David Schleef  <ds@schleef.org>

	* ext/cairo/gsttextoverlay.c: (gst_textoverlay_render_text),
	(gst_text_overlay_blit_1), (gst_text_overlay_blit_sub2x2),
	(gst_textoverlay_video_chain), (gst_textoverlay_loop),
	(gst_textoverlay_font_init), (gst_textoverlay_init),
	(gst_textoverlay_set_property): Improvements to actually
	render text as white on black outline on video, including
	font selection and horizontal/vertical alignment.  (Ronald's
	christmas present)
	* ext/cairo/gsttextoverlay.h:

2004-12-26  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* ext/ogg/gstogg.c:
	* ext/ogg/gstogmparse.c:
	  fix ogm[audio/video]parse plugin registration
	  (riff won't load if bytestream is already loaded)

2004-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstchannelmix.c:
	  fix for GLIB < 2.4

2004-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	  disable docs again until it actually passes make distcheck.

2004-12-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_type_get), (qtdemux_audio_caps):
	* gst/typefind/gsttypefindfunctions.c: (q3gp_type_find),
	(plugin_init):
	  Add 3GP (variables name Q3GP because they can't start with a
	  number). Add samr audio fourcc (used in .3gp files), decoder
	  is work in progress. Also do a GST_WARNING instead of ERROR
	  in case of unknown nodes, to decrease output.

2004-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  really fix dist

2004-12-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/speex/gstspeexdec.h:
	* ext/speex/gstspeexenc.h:
	  Fixes #158382.  Make speex plugin compatible with both 1.0 and 1.1.
	  Fix detection code in configure.ac

2004-12-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup):
	  Save position, so that queries give proper return values. Don't
	  know how this could ever have worked before...

2004-12-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Put additional LAME check inside the conditional.  Fixes #152339

2004-12-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_scan):
	  Add some more debug. Fix logic error when setting movi offset
	  while reading index.

2004-12-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_scan), (gst_avi_demux_handle_seek),
	(gst_avi_demux_process_next_entry):
	  Add some debugging. Better detection of broken indexes and the
	  accompanying index recovery. No infinite loops on state changes
	  when we're still in our loopfunction.

2004-12-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Fix up.

2004-12-22  Archana Shah  <archana.shah@wipro.com>

	Reviewed by:  Ronald S. Bultje <rbultje@ronald.bitfreak.net>

	* sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_volume):
	  Normalizing the value before setting
	(gst_sunaudiomixer_get_volume):
	  Normalizing the value after getting. Fixes bug# 161980

2004-12-22  Christian Fredrik Kalager Schaller  <uraeus@gnome.org>

	* Makefile.am: Make sure docs gets disted
	* docs/Makefile.am: Make sure all needed files get disted
	* gst-plugins.spec.in: latest updates

2004-12-22  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
	Revert patch 1.38 as clock distribution over schedulers does
	not work correcly in the core yet.

2004-12-21  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* sys/oss/README: remove this file, which predates my birth
	  (and which content is by far outdated)

2004-12-20  Stefan Kost  <ensonic@users.sf.net>

	* Makefile.am:
	* configure.ac:
	* docs/Makefile.am:
	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-libs-docs.sgml:
	* docs/libs/gst-plugins-libs-sections.txt:
	* docs/libs/tmpl/gstgconf.sgml:
	* docs/upload.mak:
	* docs/version.entities.in:
	  Added boilerplate gtk-doc files for plugin-libs documentation.

2004-12-19  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/auparse/gstauparse.c: fix int and float audio caps

2004-12-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported):
	* sys/v4l2/gstv4l2element.c: (gst_v4l2_iface_supported):
	  g_assert() can be a macro, don't use #ifdef inside it.

2004-12-19  Edward Hervey  <bilboed@bilboed.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videorate/gstvideorate.c: (gst_videorate_blank_data),
	(gst_videorate_init), (gst_videorate_chain),
	(gst_videorate_change_state):
	  Event handling (fixes #159986).

2004-12-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  Add BLZ0 (Blizzard's version of DivX) fourcc.

2004-12-18  David Schleef  <ds@schleef.org>

	* gst/tta/gstttadec.c: (gst_tta_dec_link): And yet another
	portability fix.

2004-12-18  David Schleef  <ds@schleef.org>

	* gst/tta/ttadec.h: Disable some header code that isn't used
	and clearly isn't portable.

2004-12-18  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/imgconvert.c: (get_pix_fmt_info),
	(avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name),
	(avcodec_get_pix_fmt), (avpicture_layout),
	(avcodec_get_pix_fmt_loss), (avg_bits_per_pixel), (img_copy),
	(get_convert_table_entry), (img_convert), (img_get_alpha_info):
	Fix code to not use GCC extensions (and c99 extensions that
	Forte does not like.)

2004-12-19  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_link),
	(gst_deinterlace_chain):
	  Rowstride fixes. Fixes #161039.
	* gst/videocrop/gstvideocrop.c: (gst_video_crop_init),
	(gst_video_crop_get_property), (gst_video_crop_add_to_struct_val),
	(gst_video_crop_getcaps), (gst_video_crop_link),
	(gst_video_crop_i420), (gst_video_crop_chain),
	(gst_video_crop_change_state):
	  Rework of negotiation. Actually works now. Fixes #158650.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_ebmlnum_sint):
	  That was very stupid.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup):
	  Fix possible crasher.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_ebmlnum_uint),
	(gst_matroska_ebmlnum_sint), (gst_matroska_demux_parse_blockgroup):
	  Lace sizes can be zero.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musepack/gstmusepackdec.cpp:
	  Fetch error return values. Fixes #161624.
	* gst/apetag/apedemux.c: (gst_ape_demux_stream_data):
	  Really EOS.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index):
	  Work for truncated (unfinished download etc.) files. Fixes #160514.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  Fix for integer overflow. Makes #156001 not crash. Probably masks
	  the real bug.

2004-12-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ac3parse/gstac3parse.c: (plugin_init):
	  Parsers never have ranks. Fixes #159651.

2004-12-17  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/playback/gstdecodebin.c: (compare_ranks):
	  make sure the facotries are ordered the same every time even if they
	  have the same rank by using the name
	* gst/playback/gstdecodebin.c: (find_compatibles):
	  make sure we don't add factories to the list twice

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

	* configure.ac: look for musepack headers as musepack/*.h
	(fixes #159847)
	* ext/musepack/gstmusepackdec.h: use <musepack/*.h>
	* ext/musepack/gstmusepackreader.h: same

2004-12-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_auds_with_data):
	  Read extradata correctly (fixes #155879).

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

	* gst/audioscale/gstaudioscale.c: allow passthru of >2 channel
	audio.  does _not_ attempt or allow conversion unless channels
	is 1 or 2.

2004-12-16  Christian Fredrik Kalager Schaller  <uraeus@gnome.org>

	* tools/gst-launch-ext-m.m: fix mpeg and vob pipelines

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

	* gst/audioscale/gstaudioscale.c: the resample library only
	handles 1 or 2 channels.  Change caps to compensate.

2004-12-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (aac_rate_idx), (aac_profile_idx),
	(gst_matroska_demux_audio_caps):
	  Some MPEG-AAC hacks, because else it doesn't work...

2004-12-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add h264.

2004-12-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/audio/Makefile.am:
	  Try to fix buildbot.

2004-12-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gstmultifdsink.c:
	  Clean up and uniformize debugging.

2004-12-16  Edward Hervey  <bilboed@bilboed.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init),
	(gst_dvd_demux_reset), (gst_dvd_demux_change_state):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_reset),
	(gst_mpeg_demux_change_state):
	  Reset on ready. Fixes 160276.

2004-12-16  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_pad_link):
	  Fix memleak (#154815).

2004-12-16  James Bowes  <bowes@cs.dal.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init),
	(gst_musicbrainz_init), (gst_musicbrainz_chain),
	(gst_musicbrainz_set_property), (gst_musicbrainz_get_property):
	* ext/musicbrainz/gsttrm.h:
	  Add support for using a proxy server when getting a trm id from
	  the MusicBrainz database (#149613).

2004-12-16  Christophe Fergeau  <teuf@gnome.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (new_pad), (close_link):
	* gst/playback/gstplaybasebin.c: (new_decoded_pad):
	  Fix memleaks (#157233).

2004-12-16  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/resample/resample.c: (gst_resample_close):
	* gst-libs/gst/resample/resample.h:
	* gst/audioscale/gstaudioscale.c:
	  Fix memleak (#159215).

2004-12-16  Toni Willberg  <toniw@iki.fi>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosselement.c: (gst_osselement_probe_caps):
	* sys/oss/oss_probe.c: (main):
	  Check for mono/stereo support (similar to samplerate probing),
	  fixes #159433. Also add missing copyright header to oss_probe.c.

2004-12-15  David Schleef  <ds@schleef.org>

	* configure.ac: add audioresample and cairo plugins.  Remove
	HAVE_MMX stuff, because it's not used.
	* ext/Makefile.am: same
	* ext/audioresample/Makefile.am: You are not ready for an
	audio resampling element based on audioresample.
	* ext/audioresample/gstaudioresample.c:
	* ext/audioresample/gstaudioresample.h:
	* ext/cairo/Makefile.am: You are not ready for overlay elements
	based on cairo.  Don't look too closely, these elements kinda
	suck right now.
	* ext/cairo/gstcairo.c: new
	* ext/cairo/gsttextoverlay.c: new
	* ext/cairo/gsttextoverlay.h: new
	* ext/cairo/gsttimeoverlay.c: new
	* ext/cairo/gsttimeoverlay.h: new
	* gst-libs/gst/media-info/media-info-priv.h: fix compile
	problem with compilers that don't support variadic macros.

2004-12-15  Balamurali Viswanathan  <balamurali.viswanathan@wipro.com>

	Reviewed by:  David Schleef  <ds@schleef.org>

	* sys/sunaudio/gstsunaudio.c: (plugin_init):  Apply patch from
	Bala, registering sunaudiosrc (oops!), and cleaning up code a
	bit.  Also ran indent-gst.
	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_init),
	(gst_sunaudiosrc_change_state), (gst_sunaudiosrc_get),
	(gst_sunaudiosrc_setparams):

2004-12-14  David Schleef  <ds@schleef.org>

	* gst/festival/gstfestival.c: (gst_festival_chain): Set the
	output rate to 16000.  Should fix #160235.

2004-12-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
	Add typefinding for mpeg2 pes streams

2004-12-13  David Schleef  <ds@schleef.org>

	* configure.ac:  Applied patch from bug #143659, making default
	sources and sinks OS-dependent (for Solaris), and added code
	for OS/X.
	* gconf/gstreamer.schemas.in: use OS-dependent sinks in gconf.

2004-12-13  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/riff/riff-media.c:
	  forgot to add h2.64 to avidemux template caps

2004-12-13  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/wavenc/riff.h:
	* gst-libs/gst/riff/riff-media.c:
	* gst-libs/gst/riff/riff-ids.h:
	* gst/avi/gstavimux.c
	add 4CC code for VideoSoft h264 in AVI (VSSH)
	  fixes bug #160655
	remove s323 from riff, it's quicktime specific :(

2004-12-13  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/README
	* gst/wavenc/riff.h
	* gst-libs/gst/riff/riff-ids.h
	* gst-libs/gst/riff/riff-media.c
	* gst/qtdemux/qtdemux.c:
	  add new 4CC codes for h263 related codecs
	  fixes partially bug #155163

2004-12-12  Christian Fredrik Kalager Schaller  <christian at fluendo dot com>

	* configure.ac: Update polyaudio requirement to 0.7
	* ext/polyp/polypsink.c: (create_stream): add patch from iain (158258)

2004-12-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/interleave/deinterleave.c:
	fix my name's spelling! :)

2004-12-11  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* AUTHORS ChangeLog
	* gst/auparse/gstauparse.c
	* gst/interleave/deinterleave.c
	* gst/law/:
		alaw-decode.c alaw-encode.c
		mulaw-decode.c mulaw-encode.c
	* gst/oneton/gstoneton.c
	* sys/osxaudio/:
		gstosxaudioelement.c gstosxaudiosink.c gstosxaudiosrc.c
	* sys/osxvideo/:
		cocoawindow.h cocoawindow.m
		osxvideosink.h osxvideosink.m

	put the same mail address for Zaheer Abbas Merali everywhere

2004-12-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_loop):
	  Align by packetsize, and assert that we a packet available before
	  playing. The first makes webstreams work (they often include
	  trailing padding data in a packet), the second allows pausing a
	  ASF stream in totem without getting demux errors afterwards.

2004-12-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (get_relative):
	  Check for non-NULL before accessing member (end-of-chain).

2004-12-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
	(cdparanoia_set_property), (cdparanoia_get_property):
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init),
	(dvdnavsrc_set_property), (dvdnavsrc_get_property):
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
	(dvdreadsrc_init), (dvdreadsrc_set_property),
	(dvdreadsrc_get_property):
	* sys/vcd/vcdsrc.c: (gst_vcdsrc_class_init),
	(gst_vcdsrc_set_property), (gst_vcdsrc_get_property):
	  Synchronize property names where not yet the case. Devices are
	  now device=X, other versions are deprecated (but still exist).
	  Also use g_free() unconditionally.
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(setup_source), (gst_play_base_bin_get_property):
	  Expose source.

2004-12-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: move GCONF macro outside conditional for the am
	  conditional. Fixes #160439

2004-12-08  David Schleef  <ds@schleef.org>

	* tools/gst-visualise-m.m: Switch to elements that currently
	exist.

2004-12-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	  We love wrong commas.

2004-12-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_src_query):
	  Don't set DEFAULT, unsupported - makes length display incorrectly
	  in some cases.

2004-12-07  Christian Fredrik Kalager Schaller  <uraeus@gnome.org>

	* gst/monoscope/README: remove blurb about files being GPL
	* gst/monoscope/gstmonoscope.c: Change license field to LGPL
	* gst/monoscope/monoscope.c: Change license to BSD with explanation
	  monoscope is now effectively LGPL licensed

2004-12-07  Christian Fredrik Kalager Schaller  <uraeus@gnome.org>

	* gst/monoscope/README: Update information to be more correct
	* gst/monoscope/convolve.c: Relicense to LGPL
	* gst/monoscope/convolve.h: Relicense to LGPL

2004-12-06  Arwed v. Merkatz <v.merkatz@gmx.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	  set BUFFER_DURATION to correct values (mpeg1 audio frame length is fixed)
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_audio_pad_link):
	  set default_duration for mpeg1 audio

2004-12-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_get_caps), (gst_alsa_close_audio):
	* ext/alsa/gstalsa.h:
	  refactor big chunks of the core caps negotiation code to make it
	  a lot faster, because people claim it's really slow
	  (actually, just cache the getcaps when the device is opened)

2004-12-06  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_init),
	(gst_a52dec_handle_event), (gst_a52dec_update_streaminfo),
	(gst_a52dec_handle_frame), (gst_a52dec_chain),
	(gst_a52dec_change_state), (plugin_init):
	* ext/a52dec/gsta52dec.h:
	  Do something useful with timestamps. Make chain-based (since
	  there's really no reason to be loopbased).
	* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
	  Update current_byte/frame correctly.

2004-12-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/apetag/apedemux.c: (gst_ape_demux_parse_tags),
	(gst_ape_demux_stream_init):
	  Forward tags, too.

2004-12-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/apetag/apedemux.c: (gst_ape_demux_stream_init):
	  Let's make sure we're done typefinding when detecting tags.

2004-12-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/ebml-read.c: (gst_ebml_read_class_init),
	(gst_ebml_read_init), (gst_ebml_read_use_event),
	(gst_ebml_read_element_id), (gst_ebml_peek_id),
	(gst_ebml_read_seek), (gst_ebml_read_skip),
	(gst_ebml_read_reserve), (gst_ebml_read_buffer),
	(gst_ebml_read_master):
	* gst/matroska/ebml-read.h:
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_contents),
	(gst_matroska_demux_loop_stream), (gst_matroska_demux_audio_caps):
	  Disgustingly evil hack for working around INTERRUPT events and
	  their extremely annoying habit of being a pain in the ass. We
	  simply peek a cluster before reading any of it.

2004-12-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musepack/gstmusepackdec.cpp:
	  There's also floating point libmusepacks.

2004-12-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_chanpos_from_gst),
	(gst_faad_chanpos_to_gst), (gst_faad_chain):
	  Set DURATION even if source buffer didn't. Also use increasing
	  timestamps.
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data):
	  Block_align can have larger values than 8192.

2004-12-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_link):
	* gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_link):
	* gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_link):
	* gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_link):
	  Fix caps.

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/v4l_calls.c: (gst_v4l_get_chan_names):
	  Fix logic bug.

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_type_find):
	  Yay, another one.

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/esd/esdsink.c: (gst_esdsink_chain):
	  Make error actually say something useful (fixes #156798).
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add Intel Video 5.0 fourcc (IV50).

2004-12-01  Christophe Fergeau  <teuf@gnome.org>

	* ext/mad/gstmad.c: (mpg123_parse_xing_header): fix xing header
	detection on mono and stereo mp3 files.

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	  Don't crash on EMPTY caps (e.g. when the demuxer didn't recognize
	  the contained stream).

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_srcconnect), (gst_faad_chain):
	  Oops, remove debug.

2004-12-01  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/law/alaw-decode.c: (alawdec_getcaps):
	* gst/law/mulaw-decode.c: (mulawdec_getcaps):
	  Prevent warnings when negotiating caps (fixes #159338).

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_chain):
	  Remove old leftover that shouldn't be there...

2004-12-01  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event):
	  Don't forward DISCONT events (fixes #159684).

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (remove_sinks), (setup_sinks):
	  Unlink manually since sometimes bin disposal (and therefore
	  pad unlinking) is delayed, which will cause a new media file
	  to not be able to start playing instantly.

2004-11-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gststreaminfo.c: (stream_info_mute_pad):
	  On mute of an unlinked stream, check for pad availability so
	  we don't crash on unlinked pad.

2004-11-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_massage_index):
	  Fix quite humiliating bug in omitting 0-sized index chunks but
	  forgetting to count them for timestamps.

2004-11-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_loop):
	  Actually leave the loop if we failed to sync. Don't crash.

2004-11-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream),
	(gst_dvd_demux_process_private):
	* gst/mpegstream/gstdvddemux.h:
	  Fix crash (#159759). Doesn't work, though. :-(.

2004-11-28  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
	  more overwriting protection due to modifying channels one by one
	  instead of all at once

2004-11-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/gstchannelmix.c:
	(gst_audio_convert_fill_normalize):
	  Normalize using absolute values.

2004-11-28  Julien MOUTTE  <julien@moutte.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/directfb/Makefile.am:
	* ext/directfb/directfbvideosink.c: (gst_directfbvideosink_create),
	(gst_directfbvideosink_get_pixel_format),
	(gst_directfbvideosink_get_format_from_fourcc),
	(gst_directfbvideosink_fixate), (gst_directfbvideosink_getcaps),
	(gst_directfbvideosink_sink_link),
	(gst_directfbvideosink_change_state),
	(gst_directfbvideosink_chain), (gst_directfbvideosink_buffer_free),
	(gst_directfbvideosink_buffer_alloc),
	(gst_directfbvideosink_interface_supported),
	(gst_directfbvideosink_interface_init),
	(gst_directfbvideosink_navigation_send_event),
	(gst_directfbvideosink_navigation_init),
	(gst_directfbvideosink_set_property),
	(gst_directfbvideosink_get_property),
	(gst_directfbvideosink_finalize), (gst_directfbvideosink_init),
	(gst_directfbvideosink_base_init),
	(gst_directfbvideosink_class_init),
	(gst_directfbvideosink_get_type), (plugin_init):
	* ext/directfb/directfbvideosink.h: Adding a first version of
	directfbvideosink.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_init): Initializing some
	more.

2004-11-28  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
	  walk the samples backwards if out_channels > in_channels so we don't
	  overwrite data

2004-11-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/Makefile.am:
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init),
	(gst_audio_convert_link), (gst_audio_convert_change_state),
	(gst_audio_convert_channels):
	* gst/audioconvert/gstchannelmix.c:
	(gst_audio_convert_unset_matrix),
	(gst_audio_convert_fill_identical),
	(gst_audio_convert_fill_compatible),
	(gst_audio_convert_detect_pos), (gst_audio_convert_fill_one_other),
	(gst_audio_convert_fill_others),
	(gst_audio_convert_fill_normalize),
	(gst_audio_convert_fill_matrix), (gst_audio_convert_setup_matrix),
	(gst_audio_convert_passthrough), (gst_audio_convert_mix):
	* gst/audioconvert/gstchannelmix.h:
	  Implement a channel mixer.

2004-11-28  Martin Soto  <martinsoto@users.sourceforge.net>

	* ext/alsa/gstalsasink.c (gst_alsa_sink_loop):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsa.c (gst_alsa_set_clock):
	Make alsasink actually honor gst_element_set_clock and use that
	clock instead of its internal one.

2004-11-27  Christophe Fergeau  <teuf@gnome.org>

	* gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak
	(gst_play_base_bin_change_state): nullify source and decoder when
	going from READY to NULL so that we don't try to do weird stuff with
	them when going from NULL to READY
	* gst/playback/gstplaybin.c: (gst_play_bin_init): use gst_object_unref
	instead of g_object_unref
	(gen_video_element), (gen_audio_element): more refcounting fixes, now
	it should be correct
	(gst_play_bin_change_state): don't call remove_sinks if we are
	currently disposing the object

2004-11-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_loop):
	  Don't forget bass if it's there. Else left channel is silent...

2004-11-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_loop),
	(gst_a52dec_change_state):
	  Don't do sample adjusting anymore, we use float audio now.
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
	  Don't fixate to non-existing properties.

2004-11-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_channels),
	(gst_a52dec_change_state):
	  Advertise that we can do surround sound.

2004-11-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_reneg):
	  Add buffer-frames=0.
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_get_type),
	(dvdreadsrc_init), (dvdreadsrc_get_event_mask),
	(dvdreadsrc_get_query_types), (dvdreadsrc_get_formats),
	(dvdreadsrc_srcpad_event), (dvdreadsrc_srcpad_query),
	(_seek_title), (_seek_chapter), (get_next_cell_for), (_read),
	(seek_sector), (dvdreadsrc_get), (dvdreadsrc_open_file),
	(dvdreadsrc_change_state), (dvdreadsrc_uri_get_type),
	(dvdreadsrc_uri_get_protocols), (dvdreadsrc_uri_get_uri),
	(dvdreadsrc_uri_set_uri), (dvdreadsrc_uri_handler_init):
	* ext/dvdread/dvdreadsrc.h:
	  Add seeking, querying for bytes, sectors, title, angle and
	  chapter. Handle multiple chapters. Relicense to LGPL because
	  Billy agreed on that (thanks Billy!).

2004-11-27  Christophe Fergeau  <teuf@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_dispose):
	call parent dispose method

2004-11-27  Martin Soto  <martinsoto@users.sourceforge.net>

	* gst-libs/gst/audio/audioclock.c (gst_audio_clock_set_active)
	(gst_audio_clock_get_internal_time):
	Fix active <-> inactive transitions: ensure time value always
	grows and avoid abrupt value changes.

2004-11-27  Arwed v. Merkatz <v.merkatz@gmx.net>

	* configure.ac:
	* gst/tta/Makefile.am:
	* gst/tta/crc32.h:
	* gst/tta/filters.h:
	* gst/tta/gsttta.c:
	* gst/tta/gstttadec.c:
	* gst/tta/gstttadec.h:
	* gst/tta/gstttaparse.c:
	* gst/tta/gstttaparse.h:
	* gst/tta/ttadec.h:
	  added TTA parser and decoder

2004-11-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(probe_triggered), (check_queue), (buffer_underrun),
	(buffer_running), (buffer_overrun), (gen_source_element),
	(setup_source):
	* gst/playback/gstplaybasebin.h:
	  Implement buffering. Needs some more work.

2004-11-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/theora/theoradec.c: (theora_dec_chain):
	  Fix ilog mask range overflow.

2004-11-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_get_caps):
	  Don't omit the last (which in case of dmix is the only :) )
	  channel count. Don't set channels if <= 2.

2004-11-26  Christophe Fergeau  <teuf@gnome.org>

	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element): Removed 2 obsolete comments

2004-11-26  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/vorbis/oggvorbisenc.c
	* ext/vorbis/vorbisenc.c :
	  change description fields of those plugins to differentiate them
	  (pitivi show Encoders by description, they had the same one)

2004-11-25  Christophe Fergeau  <teuf@gnome.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gst_play_bin_dispose),
	(gst_play_bin_set_property), (gen_video_element),
	(gen_audio_element):
	  Refcounting fixes for provided audio-/videosinks.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element), (setup_sinks), (gst_play_bin_change_state):
	  Don't reference all sinks, but only the video- and audiosinks.
	  The vis. element should be disposed when we're done with it.
	  We don't have any reason to keep it around. This fixes warnings
	  when reusing playbin for playing multiple audio files with
	  vis. enabled. Also release audio device on pause - idea stolen
	  from Rhythmbox.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (gst_a52dec_push),
	(gst_a52dec_reneg), (gst_a52dec_loop), (plugin_init):
	* ext/alsa/gstalsa.c: (gst_alsa_get_caps):
	* ext/alsa/gstalsaplugin.c: (plugin_init):
	* ext/dts/gstdtsdec.c: (gst_dtsdec_channels),
	(gst_dtsdec_renegotiate), (gst_dtsdec_loop), (plugin_init):
	* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_chanpos_from_gst),
	(gst_faad_chanpos_to_gst), (gst_faad_sinkconnect),
	(gst_faad_srcgetcaps), (gst_faad_srcconnect), (gst_faad_chain),
	(gst_faad_change_state), (plugin_init):
	* ext/faad/gstfaad.h:
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/audio/audio.c: (plugin_init):
	* gst-libs/gst/audio/multichannel.c:
	(gst_audio_check_channel_positions),
	(gst_audio_get_channel_positions),
	(gst_audio_set_channel_positions),
	(gst_audio_set_structure_channel_positions_list),
	(add_list_to_struct), (gst_audio_set_caps_channel_positions_list),
	(gst_audio_fixate_channel_positions):
	* gst-libs/gst/audio/multichannel.h:
	* gst-libs/gst/audio/testchannels.c: (main):
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_class_init), (gst_audio_convert_init),
	(gst_audio_convert_dispose), (gst_audio_convert_getcaps),
	(gst_audio_convert_parse_caps), (gst_audio_convert_link),
	(gst_audio_convert_fixate), (gst_audio_convert_channels):
	* gst/audioconvert/plugin.c: (plugin_init):
	  Surround sound support.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
	  Fix position for discont if we're close as well. Nitpicking, but
	  saves a few milliseconds of extra waiting or skipping.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter):
	  We sometimes need parsers for playback, so add those too.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* gst/apetag/Makefile.am:
	* gst/apetag/apedemux.c: (gst_ape_demux_get_type),
	(gst_ape_demux_base_init), (gst_ape_demux_class_init),
	(gst_ape_demux_init), (gst_ape_demux_get_src_formats),
	(gst_ape_demux_get_src_query_types),
	(gst_ape_demux_handle_src_query), (gst_ape_demux_get_event_mask),
	(gst_ape_demux_handle_src_event), (gst_ape_demux_handle_event),
	(gst_ape_demux_typefind_peek), (gst_ape_demux_typefind_get_length),
	(gst_ape_demux_typefind_suggest), (gst_ape_demux_typefind),
	(gst_ape_demux_parse_tags), (gst_ape_demux_stream_init),
	(gst_ape_demux_stream_data), (gst_ape_demux_loop),
	(gst_ape_demux_change_state):
	* gst/apetag/apedemux.h:
	* gst/apetag/apetag.c: (plugin_init):
	* gst/typefind/gsttypefindfunctions.c: (apetag_type_find),
	(plugin_init):
	  APE v1/2 tag reader plus typefind function.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
	  Remove hacks for older core. Require newer core version
	  accordingly.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/cdxaparse/Makefile.am:
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_get_type),
	(gst_cdxaparse_class_init), (gst_cdxaparse_init),
	(gst_cdxaparse_loop), (gst_cdxaparse_change_state), (plugin_init):
	* gst/cdxaparse/gstcdxaparse.h:
	* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_get_type),
	(gst_cdxastrip_base_init), (gst_cdxastrip_class_init),
	(gst_cdxastrip_init), (gst_cdxastrip_get_src_formats),
	(gst_cdxastrip_get_src_query_types),
	(gst_cdxastrip_handle_src_query), (gst_cdxastrip_get_event_mask),
	(gst_cdxastrip_handle_src_event), (gst_cdxastrip_strip),
	(gst_cdxastrip_sync), (gst_cdxastrip_handle_event),
	(gst_cdxastrip_chain), (gst_cdxastrip_change_state):
	* gst/cdxaparse/gstcdxastrip.h:
	  SVCD/VCD header stripping separated from CDXA image parsing.
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find),
	(plugin_init):
	  Add VCD/SVCD header typefinding for VCD/SVCD.
	* sys/vcd/vcdsrc.c: (gst_vcdsrc_get_type), (gst_vcdsrc_base_init),
	(gst_vcdsrc_class_init), (gst_vcdsrc_init),
	(gst_vcdsrc_set_property), (gst_vcdsrc_get_property),
	(gst_vcdsrc_get_event_mask), (gst_vcdsrc_get_query_types),
	(gst_vcdsrc_get_formats), (gst_vcdsrc_srcpad_event),
	(gst_vcdsrc_srcpad_query), (gst_vcdsrc_get),
	(gst_vcdsrc_open_file), (gst_vcdsrc_close_file),
	(gst_vcdsrc_change_state), (gst_vcdsrc_msf),
	(gst_vcdsrc_recalculate), (gst_vcdsrc_uri_get_type),
	(gst_vcdsrc_uri_get_protocols), (gst_vcdsrc_uri_get_uri),
	(gst_vcdsrc_uri_set_uri), (gst_vcdsrc_uri_handler_init):
	* sys/vcd/vcdsrc.h:
	  Fix up, add seeking, querying, URI interface. Works in totem now.

2004-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to CVS

=== release 0.8.6 ===

2004-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	  releasing 0.8.6, "IOU Love"

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c:
	  Fix unplayable files error handling.  Fixes #158365

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c:
	  Fix broken mp3 typefinding.  Fixes #158375

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c:
	  Fix sync on broken files.  Fixes #158976

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Edward Hervey <bilboed@bilboed.com>

	* ext/libpng/gstpngenc.c:
	  Copy over buffer properties.  Fixes #158832

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Tim-Philipp Müller <t.i.m@zen.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  Fixes invalid reads (#158462)

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4lsrc_calls.c:
	  Probe less and cache it.  Fixes #159187.

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videorate/gstvideorate.c:
	  Handle all video formats. Fixes #159186.

2004-11-16  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/synaesthesia/gstsynaesthesia.c:
	(gst_synaesthesia_class_init), (gst_synaesthesia_init),
	(gst_synaesthesia_dispose), (gst_synaesthesia_finalize),
	(gst_synaesthesia_sink_link), (gst_synaesthesia_src_getcaps),
	(gst_synaesthesia_src_link), (gst_synaesthesia_chain),
	(gst_synaesthesia_change_state), (plugin_init):
	Fix up synaesthesia to work under different samplerates/ buffer sizes.
	Force 320x200 output, as that's the only thing the underlying
	synaesthesia implementation supports. Still needs to be made
	re-entrant.

2004-11-14  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Fix mpeg2enc configure check (similar to mplex check below).

2004-11-14  Koop Mast  <kwm@rainbow-runner.nl>

	reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	  Fix for gcc-2.95 (fixes #158221).

2004-11-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
	  Re-add clock distribution hack (until new core is released).
	  Fixes #158125.

2004-11-13  Arwed v. Merkatz  <v.merkatz@gmx.net>
	* configure.ac:
	  fix mplex configure check segfaulting on some systems (bug #140994)

2004-11-13  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_pcm_wait):
	  add debugging
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  do a wait when we enter the loop func with no data available to
	  write instead of getting into an 100% CPU loop by just returning and
	  being called again by the scheduler

2004-11-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* ext/libvisual/visual.c: (gst_visual_get_type),
	(libvisual_log_handler), (gst_visual_getcaps),
	(gst_visual_srclink), (gst_visual_change_state), (make_valid_name),
	(plugin_init):
	  Update libvisual to 0.1.7. Link in the debug handling to gstreamer
	* ext/smoothwave/Makefile.am:
	* ext/smoothwave/demo-osssrc.c: (main):
	* ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_class_init),
	(gst_smoothwave_init), (gst_smoothwave_dispose), (gst_sw_sinklink),
	(gst_sw_srclink), (gst_smoothwave_chain), (gst_sw_change_state),
	(plugin_init):
	* ext/smoothwave/gstsmoothwave.h:
	  Make gstsmoothwave a working element in the 20th century.

	* gst/chart/gstchart.c: (gst_chart_init), (gst_chart_srcconnect):
	  Fix incorrect link function

2004-11-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/volume/gstvolume.c:
	  Allow buffer-frames=0.

2004-11-12 Iain <iaingnome@gmail.com>

	* configure.ac: Check for polypaudio

	* ext/Makefile.am: Build the polyp dir

	* ext/polyp: The polypsink sources.

2004-10-30 Iain <iaingnome@gmail.com>

	* gst/interleave/interleave.c (interleave_unlink): Change the src pads
	caps to reflect the new number of channels.

2004-11-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  Fix for negotiation order problem. This would show when the
	  ALSA loopfuction was called before any other function. ALSA
	  wouldn't do anything because we're not negotiated yet, leading
	  to an infinite loop. Showed in e.g. Rhythmbox. Fixes #158006.

2004-11-11  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
	  No warnings (#157986).

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Prefer apev1/2 and id3v1 (at end of file) over musepack.

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_loop_stream):
	  Signal no-more-pads (so it works in playbin).

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musepack/gstmusepackreader.cpp:
	  Workaround for older core.

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/imgconvert.c: (yuv420p_to_yuv422):
	  Actually test for odd width/height rather than testing whether
	  a temporary variable that was 0 before we subtracted 1 is now
	  not equal to zero (which it always is).

2004-11-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l2/gstv4l2element.c: (gst_v4l2_iface_supported):
	Fix compilation if HAVE_XVIDEO is not defined

2004-11-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported):
	Fix compilation if HAVE_XVIDEO is not defined

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

	* gst/goom/gstgoom.c: (gst_goom_class_init), (gst_goom_init),
	(gst_goom_dispose), (gst_goom_sinkconnect), (gst_goom_chain),
	(gst_goom_change_state), (plugin_init):
	Use the bytestream adapter so goom doesn't depend on the input
	buffer size.
	Add a debug category

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state):
	  Only set hardware parameters *after* negotiation. Before
	  negotiation, it will set ANY and that seems to cause crashes
	  (see e.g. #151288, #153227).

2004-11-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time):
	  This seems to be antique leftover. It needs to pass error
	  checking.
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init),
	(gst_sdlvideosink_deinitsdl), (gst_sdlvideosink_initsdl),
	(gst_sdlvideosink_destroy), (gst_sdlvideosink_create),
	(gst_sdlvideosink_sinkconnect), (gst_sdlvideosink_chain):
	  Fix GstXOverlay implementation (#151059).

2004-11-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	  Don't assert (#157853).

2004-11-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
	  Fix bytes/samples confustion.
	(gst_alsa_sink_mmap), (gst_alsa_sink_loop):
	  Fix for underrun (#144389).

2004-11-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
	  Disable halfway-seek for pending release (since it needs a new
	  core release).

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4lsrc_calls.c:
	  add autoprobe-fps property so we can separate autoprobing parts

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/v4lsrc_calls.c:
	initialise fourcc to catch unset fourcc's, and debug

2004-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (close_pad_link), (try_to_link_1):
	* gst/playback/gstplaybin.c: (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_property),
	(remove_sinks), (setup_sinks), (gst_play_bin_change_state),
	(gst_play_bin_get_event_masks), (gst_play_bin_send_event),
	(gst_play_bin_get_formats), (gst_play_bin_convert),
	(gst_play_bin_get_query_types), (gst_play_bin_query):
	Cleanups and some more documentation.

2004-11-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libcaca/gstcacasink.c: (gst_cacasink_class_init),
	(gst_cacasink_init), (gst_cacasink_chain):
	* ext/libcaca/gstcacasink.h:
	Cacasink inherits from VideoSink, so let that store the clock.

2004-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/playback/README:
	* gst/playback/gstplaybasebin.c: (group_destroy), (group_is_muted),
	(add_stream), (unknown_type), (add_element_stream), (no_more_pads),
	(probe_triggered), (preroll_unlinked), (new_decoded_pad),
	(gst_play_base_bin_change_state), (gst_play_base_bin_found_tag):
	* gst/playback/gstplaybin.c: (gen_vis_element), (remove_sinks),
	(setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute),
	(gst_stream_info_is_mute), (gst_stream_info_set_property):
	* gst/playback/gststreaminfo.h:
	Updated README.
	Only switch groups if all streams have muted (EOSed).
	Send Tags in sync with the stream playback instead of in
	the playback/preroll phase.
	Some cleanups, free the fakesrc elements.

2004-11-09  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_get_caps_internal):
	  buffer-frames property was missing
	* ext/arts/gst_arts.c:
	  rate missing from sinkcaps
	* ext/audiofile/gstafparse.c:
	* ext/audiofile/gstafsink.c:
	* ext/audiofile/gstafsrc.c:
	* ext/swfdec/gstswfdec.c:
	  int audio doesn't know buffer-frames
	* ext/cdparanoia/gstcdparanoia.c:
	  int audio doesn't know chunksize either
	* ext/nas/nassink.c:
	  it's endianness, not endianess
	* gst-libs/gst/audio/audio.h:
	  make float standard pad template caps really describe float
	* gst/law/mulaw.c: (linear_factory):
	  signed only, please
	* gst/mpegstream/gstdvddemux.c:
	  widths of 20 are not valid

2004-11-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	Submitted by: Luca Ferretti <elle.uca@infinito.it>

	* po/LINGUAS:
	* po/it.po:
	  Add Italian

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

	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (close_pad_link), (try_to_link_1):
	* gst/playback/gstplaybasebin.c: (probe_triggered),
	(gst_play_base_bin_change_state):
	Updated README, added more comments for fixmes etc..

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

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
	We can remove this hack now.

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

	* gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_ayuv),
	(gst_videomixer_fill_checker), (gst_videomixer_fill_color),
	(gst_videomixer_blend_buffers), (gst_videomixer_loop):
	Only mix AYUV for maximum quality.

2004-11-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (get_relative), (gst_ogg_demux_src_query),
	(gst_ogg_demux_push), (gst_ogg_pad_push):
	  Let's act as if we're synchronized now! :).
	* ext/theora/theoradec.c: (theora_dec_chain):
	  Add some debug.

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

	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type),
	(gst_alpha_set_property), (gst_alpha_sink_link),
	(gst_alpha_set_ayuv), (gst_alpha_set_i420),
	(gst_alpha_chroma_key_ayuv), (gst_alpha_chroma_key_i420),
	(gst_alpha_init_params), (gst_alpha_chain):
	Implement alpha functions for AYUV too, this increases
	accuracy quite a bit.

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

	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info):
	* gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size),
	(shrink12), (img_get_alpha_info), (deinterlace_line),
	(deinterlace_line_inplace):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	Added AYUV colorspace and handle RGBA a bit more respectful.

2004-11-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  Actually always send a discont (cornercase when resending the
	  same serial-tagged chain twice).

2004-11-08  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_clear),
	(gst_ximagesink_finalize):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_clear),
	(gst_xvimagesink_finalize): Some more cleanups, leaks fixed and checks.

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

	* gst/typefind/gsttypefindfunctions.c: (aac_type_find):
	Don't segfault on NULL data.

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

	* gst/playback/gstdecodebin.c: (unlinked):
	* gst/playback/gstplay-marshal.list:
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_init), (group_create), (get_active_group),
	(get_building_group), (group_destroy), (group_commit),
	(queue_overrun), (remove_groups), (add_stream), (unknown_type),
	(add_element_stream), (no_more_pads), (probe_triggered),
	(preroll_unlinked), (new_decoded_pad), (removed_decoded_pad),
	(state_change), (setup_source), (gst_play_base_bin_get_property),
	(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
	(gst_play_base_bin_link_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(remove_sinks), (setup_sinks), (gst_play_bin_change_state):
	Add support for chained ogg files. Prepare for playlist
	support. This patch introduces the concept of pad groups, which
	together compose one playable media file.

2004-11-07  David Schleef  <ds@schleef.org>

	* testsuite/gst-lint: Check for pad templates that aren't statically
	scoped.

2004-11-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/musepack/Makefile.am:
	* ext/musepack/gstmusepackdec.cpp:
	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.cpp:
	* ext/musepack/gstmusepackreader.h:
	  Add musepack decoder.
	* ext/faad/gstfaad.c: (gst_faad_base_init):
	  Make pad templates static.
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find),
	(plugin_init):
	  Add musepack typefinder, make mp3 typefinding work halfway stream,
	  which doesn't actually work yet because id3demux doesn't implement
	  _get_length().

2004-11-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_queue_pads), (gst_ogg_mux_loop):
	  Fix interrupt event handling (#144436).

2004-11-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstid3tag.c: (gst_id3_tag_do_typefind):
	  Hide unused glory.

2004-11-06  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisenc.c: (raw_caps_factory):
	  Fix weird caps (#157548).

2004-11-06  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/rtp/gstrtpgsmparse.c: (gst_rtpgsm_caps_nego):
	  Add missing NULL terminator (#157543).

2004-11-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	  ports can go up to 65535.  Move common defines to gsttcp.h

2004-11-05  Wim Taymans  <wim@fluendo.com>

	* gst/videotestsrc/videotestsrc.c: (paint_setup_Y41B),
	(paint_hline_Y41B), (paint_setup_Y42B), (paint_hline_Y42B):
	Added two more colorspaces.

2004-11-05  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size),
	(yuv422p_to_yuv422), (yuv420p_to_yuv422), (shrink12),
	(img_convert), (deinterlace_line), (deinterlace_line_inplace):
	More stride fixes.

2004-11-05  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/gstalpha.c: (gst_alpha_set_property), (gst_alpha_add),
	(gst_alpha_chroma_key), (gst_alpha_init_params), (gst_alpha_chain):
	* gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_i420),
	(gst_videomixer_fill_checker), (gst_videomixer_blend_buffers),
	(gst_videomixer_loop):
	More stride fixes.

2004-11-05  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstmad.c: (gst_mad_chain):
	  don't overflow data buffer. Flush not needed sync data when syncing
	  failed.

2004-11-04  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type),
	(gst_alpha_class_init), (gst_alpha_init), (gst_alpha_set_property),
	(gst_alpha_get_property), (gst_alpha_add), (gst_alpha_chroma_key),
	(gst_alpha_init_params), (gst_alpha_chain),
	(gst_alpha_change_state):
	Updated the chroma keying algorithm with something more
	sophisticated.

2004-11-03  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_i420),
	(gst_videomixer_fill_checker), (gst_videomixer_fill_color),
	(gst_videomixer_blend_buffers), (gst_videomixer_loop):
	Fix stride issues. Does not completely work for odd
	heights.

2004-11-03  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type),
	(gst_alpha_chroma_key), (gst_alpha_chain):
	Fix stride issues. Does not completely work for odd
	heights.

2004-11-03  Christophe Fergeau  <teuf@gnome.org>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps):
	* gst/videoscale/videoscale.c: (videoscale_find_by_structure):
	leak fixes

2004-11-03  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size),
	(avpicture_alloc):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	Use correct _fill function to get correct strides.

2004-11-02  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_parse_tree),
	(qtdemux_parse_udta), (qtdemux_tag_add), (gst_qtdemux_handle_esds):
	Change all g_print()s to debugging.  Add a bunch of consistency
	checks.

2004-11-02  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(try_to_link_1), (get_our_ghost_pad), (remove_element_chain),
	(unlinked), (no_more_pads), (close_link):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(unknown_type), (add_element_stream), (new_decoded_pad),
	(removed_decoded_pad), (setup_source):
	* gst/playback/gststreaminfo.c: (gst_stream_info_get_type),
	(gst_stream_info_class_init), (gst_stream_info_init),
	(gst_stream_info_new), (gst_stream_info_dispose),
	(stream_info_mute_pad), (gst_stream_info_set_property),
	(gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	Fix playback of multiple files.
	a slightly different approach to handling dynamic pad removals.
	This one only looks at pads that we have linked.

2004-11-01  Christophe Fergeau  <teuf@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_finalize): fix an "invalid
	free" warning from libc.

2004-11-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(get_unconnected_element), (remove_starting_from), (pad_removed),
	(close_link):
	  Implement support for dynamic pad changing. We listen to "live"
	  pad removals (i.e. while playing) and re-setup autoplugging
	  after that. Playbasebin/playbin need some more work for this
	  to finally work, but decodebin supports (and replugs) chained
	  ogg now.

2004-11-02  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/alsa/gstalsa.c: (gst_alsa_class_init), (gst_alsa_dispose),
	(gst_alsa_finalize):
	* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init),
	(gst_cdaudio_finalize):
	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
	(cdparanoia_finalize):
	* ext/divx/gstdivxdec.c: (gst_divxdec_dispose):
	* ext/divx/gstdivxenc.c: (gst_divxenc_dispose):
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
	(dvdreadsrc_finalize):
	* ext/flac/gstflacdec.c: (gst_flacdec_class_init),
	(gst_flacdec_finalize):
	* ext/flac/gstflacenc.c: (gst_flacenc_class_init),
	(gst_flacenc_finalize):
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_class_init),
	(gst_gnomevfssink_finalize):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_class_init),
	(gst_gnomevfssrc_finalize):
	* ext/libfame/gstlibfame.c: (gst_fameenc_class_init),
	(gst_fameenc_finalize):
	* ext/nas/nassink.c: (gst_nassink_class_init),
	(gst_nassink_finalize):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_finalize),
	(gst_sdlvideosink_class_init):
	* ext/sndfile/gstsf.c: (gst_sf_dispose):
	* gst-libs/gst/mixer/mixertrack.c: (gst_mixer_track_dispose):
	* gst-libs/gst/tuner/tunerchannel.c: (gst_tuner_channel_dispose):
	* gst-libs/gst/tuner/tunernorm.c: (gst_tuner_norm_dispose):
	* gst-libs/gst/xwindowlistener/xwindowlistener.c:
	(gst_x_window_listener_dispose):
	* gst/audioscale/gstaudioscale.c:
	* gst/playondemand/gstplayondemand.c: (play_on_demand_class_init),
	(play_on_demand_finalize):
	* gst/videofilter/gstvideobalance.c: (gst_videobalance_dispose):
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain):
	* sys/cdrom/gstcdplayer.c: (cdplayer_class_init),
	(cdplayer_finalize):
	* sys/glsink/glimagesink.c: (gst_glimagesink_finalize),
	(gst_glimagesink_class_init):
	* sys/oss/gstosselement.c: (gst_osselement_class_init),
	(gst_osselement_finalize):
	* sys/oss/gstosssink.c: (gst_osssink_dispose):
	* sys/oss/gstosssrc.c: (gst_osssrc_dispose):
	* sys/v4l/gstv4lelement.c: (gst_v4lelement_dispose):
	  Fixes a bunch of problems with finalize and dispose functions,
	  either assumptions that dispose is only called once, or not calling
	  the parent class dispose/finalize function

2004-11-01  Stefan Kost  <ensonic@users.sf.net>

	* ext/esd/esdsink.c: (gst_esdsink_init), (gst_esdsink_link):
	  added two api precondition guards
	  use g_strdup with getenv to fix crash when using ENVVAR

2004-11-01  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/esd/esdsink.c: (gst_esdsink_class_init),
	(gst_esdsink_finalize):
	Use a finalize function, not dispose, and more importantly,
	call the parent class finalize function too

2004-11-01  Johan Dahlin  <johan@gnome.org>

	* ext/ogg/gstoggdemux.c:
	* gst/tags/gstvorbistag.c:
	Plug leaks.

2004-10-31  Benjamin Otte  <otte@gnome.org>

	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain):
	  lotsa memleaks today. But they're all small...

2004-10-31  Benjamin Otte  <otte@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  another memleak crushed

2004-10-31  Benjamin Otte  <otte@gnome.org>

	* gst/tags/gstvorbistag.c: (gst_tag_to_vorbis_comments):
	  fix memleak

2004-10-31  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  Hack to prevent crash when going to READY inside signal handler
	  while this function is active.

2004-10-31  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/Makefile.am:
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/common.h:
	* gst/ffmpegcolorspace/dsputil.c: (dsputil_static_init):
	* gst/ffmpegcolorspace/dsputil.h:
	* gst/ffmpegcolorspace/gstffmpeg.c: (plugin_init):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_get_palette), (gst_ffmpeg_set_palette),
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_smpfmt_to_caps),
	(gst_ffmpegcsp_codectype_to_caps), (gst_ffmpeg_caps_to_smpfmt),
	(gst_ffmpeg_caps_to_pixfmt), (gst_ffmpegcsp_caps_with_codectype),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info), (gst_ffmpegcsp_getcaps),
	(gst_ffmpegcsp_pad_link), (gst_ffmpegcsp_get_type),
	(gst_ffmpegcsp_base_init), (gst_ffmpegcsp_class_init),
	(gst_ffmpegcsp_init), (gst_ffmpegcsp_chain),
	(gst_ffmpegcsp_change_state), (gst_ffmpegcsp_set_property),
	(gst_ffmpegcsp_get_property), (gst_ffmpegcolorspace_register):
	* gst/ffmpegcolorspace/imgconvert.c:
	(avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name),
	(avcodec_get_pix_fmt), (avpicture_fill), (avpicture_layout),
	(avpicture_get_size), (avcodec_get_pix_fmt_loss),
	(avg_bits_per_pixel), (avcodec_find_best_pix_fmt1),
	(avcodec_find_best_pix_fmt), (img_copy_plane), (img_copy),
	(yuv422_to_yuv420p), (uyvy422_to_yuv420p), (uyvy422_to_yuv422p),
	(yuv422_to_yuv422p), (yuv422p_to_yuv422), (yuv422p_to_uyvy422),
	(uyvy411_to_yuv411p), (yuv420p_to_yuv422), (C_JPEG_TO_CCIR),
	(img_convert_init), (img_apply_table), (shrink41), (shrink21),
	(shrink12), (shrink22), (shrink44), (grow21_line), (grow41_line),
	(grow21), (grow22), (grow41), (grow44), (conv411),
	(gif_clut_index), (build_rgb_palette), (bitcopy_n), (mono_to_gray),
	(monowhite_to_gray), (monoblack_to_gray), (gray_to_mono),
	(gray_to_monowhite), (gray_to_monoblack), (avpicture_alloc),
	(avpicture_free), (is_yuv_planar), (img_convert),
	(get_alpha_info_pal8), (img_get_alpha_info), (deinterlace_line),
	(deinterlace_line_inplace), (deinterlace_bottom_field),
	(deinterlace_bottom_field_inplace), (avpicture_deinterlace):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	* gst/ffmpegcolorspace/mem.c: (av_malloc), (av_realloc), (av_free):
	* gst/ffmpegcolorspace/mmx.h:
	* gst/ffmpegcolorspace/utils.c: (av_mallocz), (av_strdup),
	(av_fast_realloc), (av_mallocz_static), (av_free_static),
	(av_freep), (avcodec_get_context_defaults),
	(avcodec_alloc_context), (avcodec_init):
	  Sync back from gst-ffmpeg. Deprecates ffcolorspace. Adds palette
	  handling plus update from ffmpeg CVS. Large clean-up.

2004-10-31  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/Makefile.am:
	  We need the marshallers for decodebin, too.

2004-10-30  David Schleef  <ds@schleef.org>

	* gst/typefind/gsttypefindfunctions.c: (qt_type_find): Make
	  quicktime typefinding work with 64-bit offsets.

2004-10-30  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event):
	  Set EOS on the element when processing an EOS event.
	* ext/speex/gstspeexdec.h:
	* ext/speex/gstspeexenc.h:
	  Only keep a const ptr to the mode
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data),
	(gst_riff_create_audio_template_caps):
	  Allow WMAV3, with up to 6 channels.
	* gst/asfdemux/gstasfmux.c: (gst_asfmux_request_new_pad):
	  Don't call gst_pad_set_event_function on a sink pad.
	* gst/mpegstream/gstdvddemux.c:
	(gst_dvd_demux_get_subpicture_stream),
	(gst_dvd_demux_set_cur_audio), (gst_dvd_demux_set_cur_subpicture):
	  Copy the explicit caps that were set across to the cur_* pads,
	  instead of trying to use a possibly non-existent negotiated caps.
	  Reset the type of subpicture pads to UNKNOWN after calling
	  init_stream, so that the caps get set.

2004-10-29  Martin Pitt  <martin.pitt@canonical.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
	  Don't touch buffer if it is of size 0 (fixes #151064).

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push), (gst_ogg_pad_push):
	  Synchronized discont handling.

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event),
	(gst_ogg_demux_push):
	  Make seeking sort-of exact again (fixes #156387).

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (unknown_type),
	(add_element_stream), (new_decoded_pad),
	(gst_play_base_bin_change_state):
	* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
	(gst_stream_info_init), (gst_stream_info_new),
	(gst_stream_info_dispose), (gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	  Make caps explicitely available. Makes testing for unsupported
	  types possible. Improves error reporting.

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_buffer_to_default_format):
	  Really don't touch read-only buffers (#156563).

2004-10-29  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewd by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
	  Fix memleak (#155223).

2004-10-29  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/.cvsignore:
	* gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type),
	(gst_multifdsink_class_init), (gst_multifdsink_init),
	(gst_multifdsink_add), (gst_multifdsink_remove),
	(gst_multifdsink_remove_client_link), (is_sync_frame),
	(gst_multifdsink_new_client),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property):
	* gst/tcp/gstmultifdsink.h:
	Added burst on connect sync_method, deprecated sync_clients,
	streamlined the sync code some more.

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (thread_error), (setup_source),
	(gst_play_base_bin_change_state):
	  Improve error reporting.

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

	* gst/tcp/Makefile.am:
	* gst/tcp/fdsetstress.c: (mess_some_more), (run_test), (main):
	* gst/tcp/gstfdset.c: (nearest_pow), (resize), (ensure_size),
	(gst_fdset_new), (gst_fdset_free), (gst_fdset_set_mode),
	(gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read),
	(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
	(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
	(gst_fdset_wait):
	Added more locks around fdset structures. Fixed/reworked
	the poll array resizing code.
	Added stress test for fdset.

2004-10-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link):
	fix build

2004-10-28  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link):
	  fix link function to always query channels and query width for
	  floats
	* configure.ac:
	  add equalizer dir
	* gst/equalizer/Makefile.am:
	* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_get_type),
	(gst_iir_equalizer_base_init), (gst_iir_equalizer_class_init),
	(gst_iir_equalizer_init), (gst_iir_equalizer_finalize),
	(arg_to_scale), (setup_filter),
	(gst_iir_equalizer_compute_frequencies),
	(gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property),
	(gst_iir_equalizer_filter_inplace), (gst_iir_equalizer_setup),
	(plugin_init):
	  add an equalizer

2004-10-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	Submitted by: Kjartan Maraas <kmaraas@broadpark.no>

	* po/LINGUAS:
	* po/nb.po:
	  Added Norwegian Bokmaal translation

2004-10-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	  Don't break on options (fixes #156488).

2004-10-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/cdaudio/Makefile.am:
	* sys/Makefile.am:
	  fix build on older automake

2004-10-26  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_video_getcaps),
	(gst_dvdec_video_link), (gst_dvdec_push), (gst_dvdec_loop):
	Allow a little margin when negotiating the framerate.

2004-10-26  Stefan Kost  <ensonic@users.sf.net>

	* gst/level/gstlevel.c:
	  synchonised naming of pads and pad-templates

2004-10-26  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event),
	(gst_ogg_demux_handle_event), (_find_chain_get_unknown_part),
	(_find_streams_check), (gst_ogg_demux_push):
	Fix EOS again. Needs to be done in a better way. We should not
	remove the pad if there is no new chained stream.

2004-10-26 Iain <iaingnome@gmail.com>

	* ext/ogg/gstoggdemux.c (gst_ogg_pad_new): Free the tag list.
	* gst/audioscale/gstaudioscale.c (gst_audioscale_link): Free the copy
	of the caps.
	* gst/interleave/interleave.c (interleave_class_init): Hook up release
	pad.
	(interleave_release_pad): Remove the pad.
	* gst/level/gstlevel.c: Allow the level to take 1 or 2 channels.
	* sys/sunaudio/gstsunaudio.c (gst_sunaudio_setparams): Pay attention to
	the set device.
	* sys/xvimage/xvimagesink.c (gst_xvimagesink_get_xv_support): Free the
	attrs
	(gst_xvimagesink_xcontext_clear): Free the xcontext.
	(gst_xvimagesink_finalize): Free the par.

2004-10-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_audsinkconnect),
	(gst_avimux_stop_file):
	  First calculate the rate, and only then use it. Hdr.rate is a
	  multiple and not a derivative of hdr.scale. Scale is not the
	  same as blockalign but is solely related to rate.

2004-10-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_init),
	(gst_gnomevfssink_handle_event), (gst_gnomevfssink_chain):
	  Implement seeking.

2004-10-25  James Henstridge  <james@jamesh.id.au>

	Reviewed by:  David Schleef  <ds@schleef.org>

	* examples/gstplay/player.c: (got_stream_length), (main):
	* examples/seeking/cdplayer.c: (update_scale):
	* examples/seeking/seek.c: (format_value), (update_scale):
	* examples/seeking/spider_seek.c: (format_value), (update_scale),
	(stop_seek):
	Build fixes on AMD64.

2004-10-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Ronald Bultje <rbultje at gnome dot org>

	* sys/v4l/v4l_calls.c: (gst_v4l_get_chan_names):
	Fix for some v4l cards which hang in v4lsrc

2004-10-25  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_remove),
	(gst_ogg_demux_push), (gst_ogg_chains_clear):
	Make sure to remove the pad when a new chain is
	encountered. Set some vars to NULL so we don't try
	to reference freed memory.

2004-10-25  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/Makefile.am:
	* examples/seeking/cdplayer.c: (update_scale):
	* examples/seeking/chained.c: (unlinked), (new_pad), (main):
	* examples/seeking/playbin.c: (make_playerbin_pipeline),
	(format_value), (update_scale), (iterate), (start_seek),
	(stop_seek), (print_media_info), (play_cb), (pause_cb), (stop_cb),
	(print_usage), (main):
	Added some more examples, update others.

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/flac/gstflacdec.c: (gst_flacdec_update_metadata):
	* ext/speex/gstspeexdec.c: (speex_dec_chain):
	* ext/theora/theoradec.c: (theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  Add codec-name metadata.

2004-10-25  Takao Fujiwara  <Takao.Fujiwara@Sun.COM>

	Reviewd by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	* ext/alsa/gstalsamixertrack.h:
	* po/POTFILES.in:
	  ALSA mixer track label internationalization (#154054).

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/theora/theoradec.c: (theora_dec_chain):
	  Export bitrate as metadata.

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	* ext/alsa/gstalsamixertrack.h:
	  Fix names, fix loop.

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/speex/gstspeexdec.c: (gst_speex_dec_init),
	(speex_dec_convert):
	  sinkconvert function so oggdemux can get the file length (totem).

2004-10-25  James Morrison  <ja2morri@csclub.uwaterloo.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
	  Don't push incomplete packets.
	* gst/typefind/gsttypefindfunctions.c: (m4a_type_find):
	  Fix MPEG-4 audio typefinding.

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/Makefile.am:
	* sys/v4l/gstv4l.c: (plugin_init):
	* sys/v4l/gstv4lelement.c: (gst_v4lelement_get_type),
	(gst_v4lelement_init), (gst_v4lelement_dispose),
	(gst_v4lelement_change_state):
	* sys/v4l/gstv4lelement.h:
	* sys/v4l/gstv4lxoverlay.c: (gst_v4l_xoverlay_open),
	(gst_v4l_xoverlay_close), (idle_refresh),
	(gst_v4l_xoverlay_set_xwindow_id):
	* sys/v4l/gstv4lxoverlay.h:
	* sys/v4l/v4l-overlay_calls.c:
	* sys/v4l/v4l_calls.h:
	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2.c: (plugin_init):
	* sys/v4l2/gstv4l2element.c: (gst_v4l2element_get_type),
	(gst_v4l2element_init), (gst_v4l2element_dispose),
	(gst_v4l2element_change_state):
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open),
	(gst_v4l2_xoverlay_close), (idle_refresh),
	(gst_v4l2_xoverlay_set_xwindow_id):
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2-overlay_calls.c:
	* sys/v4l2/v4l2_calls.h:
	  Remove client-side overlay handling, use the X-server v4l plugin
	  for that. Nicer overlay, less code. Also make the plugin
	  compileable without X (but then without overlay, obviously).
	  Makes xwindowlistener obsolete, should we remove that?

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssrc.c: (gst_osssrc_get_time), (gst_osssrc_get),
	(gst_osssrc_src_query):
	* sys/oss/gstosssrc.h:
	  OK, so people want offset in DEFAULT. This time, actually fix all
	  cases.
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps):
	  Add FPS properly.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfmux.c:
	* gst/avi/gstavimux.c:
	  Framerate.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2element.c: (gst_v4l2element_set_property):
	  Fix properties (channel, norm, frequency).

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2element.c: (gst_v4l2element_get_property):
	  Flag typo.
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_set_defaults):
	  No warnings.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_clear_format_list):
	  Fix hang.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2element.h:
	  Yet Another Hack (tm) for kernel header borkedness.
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_init),
	(gst_v4l2src_v4l2fourcc_to_caps), (gst_v4l2_fourcc_from_structure),
	(gst_v4l2src_link), (gst_v4l2src_getcaps),
	(gst_v4l2src_change_state):
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_init),
	(gst_v4l2src_capture_start), (gst_v4l2src_capture_stop):
	  Fix caps, keep track of state, work.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps):
	  Quiet.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssrc.c: (gst_osssrc_get):
	  Don't mix bytes and samples.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggmux.c:
	  Basic pad template which accepts OGM tracks, speex, flac, vorbis
	  and theora. Any is incorrect.
	* gst/asfdemux/gstasfmux.c: (gst_asfmux_vidsink_link):
	  Fix caps.
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_base_init):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_base_init),
	(gst_v4lmjpegsrc_init), (gst_v4lmjpegsrc_srcconnect),
	(gst_v4lmjpegsrc_getcaps), (gst_v4lmjpegsrc_change_state):
	* sys/v4l/gstv4lmjpegsrc.h:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps),
	(gst_v4lsrc_change_state):
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_start),
	(gst_v4lmjpegsrc_capture_stop):
	  Fix caps. Keep track of internal state. Work.

2004-10-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/Makefile.am:
	  Fix the build fixes.

2004-10-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (_find_chain_seek),
	(gst_ogg_pad_push):
	  Check for pad availability before using it.
	* ext/ogg/gstoggdemux.c: (_find_chain_process):
	  Fix parsing of chained ogg. Needs more work on the decoder side.

2004-10-22  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/spectrum/Makefile.am:
	* gst/spectrum/demo-osssrc.c: (spectrum_chain), (main),
	(idle_func):
	  Fix demo and reenable it. Yes, I'm currently playing with audio
	  analysis tools

2004-10-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  We love it if files that start at zero work too...

2004-10-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate):
	  Handle files with missing EOS headers.

2004-10-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/tcp/gsttcpserversink.c:
	(gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_init_send):
	Zero some variables first (need for accept not to return EINVAL)

2004-10-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_pad_push):
	* ext/theora/theoradec.c: (theora_dec_sink_convert),
	(theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
	(gst_vorbis_dec_init), (vorbis_dec_convert), (vorbis_dec_chain):
	  Seeking and querying finetune.

2004-10-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/raw1394/Makefile.am:
	  fix the build

2004-10-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate):
	  Wrong return.
	* gst/playback/Makefile.am:
	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
	* gst/playback/gstplay-marshal.list:
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init):
	  Fix marshallers.

2004-10-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event):
	  Silence.

2004-10-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_pad_populate),
	(gst_ogg_pad_push):
	  Yay for non-lineair granulepos in theora.

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

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_video_getcaps),
	(gst_dvdec_video_link), (gst_dvdec_push), (gst_dvdec_loop):
	* ext/dv/gstdvdec.h:
	Make sure we renegotiate aspect ratio when the camera switches.

2004-10-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_pad_push):
	  Start at zero.
	* ext/theora/theoradec.c: (theora_dec_chain):
	  Skip headers. Bad idea for chained ogg, but fixes seeking.

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

	* configure.ac:
	I swear, this is the last time I touch this.

2004-10-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_pad_populate),
	(_read_bos_process), (gst_ogg_demux_iterate), (gst_ogg_pad_new):
	  Faster seeking.
	* ext/theora/theoradec.c: (theora_dec_sink_convert):
	  Time-to-default conversion.
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  Don't error on unknown packets, just skip. We should probably
	  read them if we want to support chained ogg.

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

	* configure.ac:
	Added cdaudio to wrong list.

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

	* configure.ac:
	Revive cdaudio.

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

	* ext/dv/gstdvdec.c: (gst_dvdec_video_getcaps),
	(gst_dvdec_video_link), (gst_dvdec_push):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init),
	(gst_smokeenc_resync), (gst_smokeenc_chain):
	Fix mimetype on smoke encoder.
	Add aspect ratio to dvdec. Not sure if these
	values are correct though....

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

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_class_init):
	Fix vorbis property descriptions and ranges.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate):
	Really do nothing when no data is available.
	Go to the playing state when the stream is not seekable
	instead of failing.

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

	* ext/cdaudio/gstcdaudio.c: (_do_init), (gst_cdaudio_base_init),
	(gst_cdaudio_get_event_masks), (gst_cdaudio_send_event),
	(gst_cdaudio_query), (plugin_init), (cdaudio_uri_get_type),
	(cdaudio_uri_get_protocols), (cdaudio_uri_get_uri),
	(cdaudio_uri_set_uri), (cdaudio_uri_handler_init):
	Added uri handler for cd://
	Port to new API.

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

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(gst_decode_bin_init), (find_compatibles), (close_pad_link),
	(try_to_link_1), (no_more_pads), (close_link), (type_found):
	* gst/playback/gstplaybasebin.c: (gen_preroll_element),
	(remove_prerolls), (unknown_type), (add_element_stream),
	(new_decoded_pad), (setup_source), (gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_link_stream):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_vis_element), (remove_sinks), (setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
	(gst_stream_info_get_type), (gst_stream_info_class_init),
	(gst_stream_info_init), (gst_stream_info_new),
	(gst_stream_info_dispose), (stream_info_mute_pad),
	(gst_stream_info_set_property), (gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	Add sink padtemplate to decodebin.
	Added some more comments.
	Make queue size configurable in playbasebin.
	Added possibility to use elements as sinks (ex cdaudio).

2004-10-15  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeexenc.c: (gst_speexenc_class_init),
	(gst_speexenc_chain):
	Fix speex timestamps so that it gets muxed properly.

2004-10-15  Wim Taymans  <wim@fluendo.com>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_get_type),
	(gst_dv1394src_base_init), (gst_dv1394src_class_init),
	(gst_dv1394src_init), (gst_dv1394src_dispose),
	(gst_dv1394src_iso_receive), (gst_dv1394src_discover_avc_node),
	(gst_dv1394src_change_state), (gst_dv1394src_get_event_mask),
	(gst_dv1394src_event), (gst_dv1394src_get_formats),
	(gst_dv1394src_convert), (gst_dv1394src_get_query_types),
	(gst_dv1394src_query), (gst_dv1394src_uri_get_type),
	(gst_dv1394src_uri_get_protocols), (gst_dv1394src_uri_get_uri),
	(gst_dv1394src_uri_set_uri), (gst_dv1394src_uri_handler_init):
	* ext/raw1394/gstdv1394src.h:
	Added conversion/query functions.
	Update buffer timestamps,
	Added signals.
	Added uri dv:// so it might play from the firewire in playbin.
	Fix a possible leak.
	Added debugging.

2004-10-15  Wim Taymans  <wim@fluendo.com>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_class_init),
	(gst_dv1394src_init), (gst_dv1394src_set_property),
	(gst_dv1394src_get_property), (gst_dv1394src_iso_receive),
	(gst_dv1394src_discover_avc_node), (gst_dv1394src_change_state):
	* ext/raw1394/gstdv1394src.h:
	Added AV/C VTR control support needed for some cameras.
	Added automatic port detection.
	Added properties for selecting the channel.
	The configure.ac script is not yet updated to reflect the
	new libavc1394 and librom1394 dependencies.

2004-10-15  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse), (gst_qtdemux_handle_esds):
	An esds box is not a container.
	Fix parsing of mp4v boxes.
	Do not try to renegotiate fps for each frame. Need to
	find a better method. This should fix mp4 playback.

2004-10-14  David Schleef  <ds@schleef.org>

	* configure.ac: update for swfdec-0.3 and liboil-0.2
	* ext/swfdec/gstswfdec.c: update for swfdec-0.3
	* ext/swfdec/gstswfdec.h: same
	* gst/videofilter/gstvideobalance.c: update for liboil-0.2
	* gst/videotestsrc/videotestsrc.c: same

2004-10-14  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_remove_client_link),
	(is_sync_frame), (gst_multifdsink_new_client),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_change_state):
	Turn warnings into info.
	Don't allow a state change in the streaming thread.

2004-10-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/oggvorbisenc.c:
	* ext/vorbis/vorbisdec.c:
	  fix template sample rate

2004-10-13  Wim Taymans  <wim@fluendo.com>

	* ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain):
	Decoding the header first fixes some problems in resyncing
	in more mp3s.

2004-10-12  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_vis_element), (remove_sinks), (setup_sinks):
	Added vis plugin support, need to configure the vis
	element to activate it.

2004-10-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get),
	(gst_gnomevfssrc_srcpad_query), (gst_gnomevfssrc_srcpad_event):
	  Some debug.
	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_handle_src_event), (gst_avi_demux_read_superindex),
	(gst_avi_demux_read_subindexes), (gst_avi_demux_add_stream),
	(gst_avi_demux_stream_index), (gst_avi_demux_skip),
	(gst_avi_demux_sync), (gst_avi_demux_stream_scan),
	(gst_avi_demux_massage_index), (gst_avi_demux_stream_header):
	* gst/avi/gstavidemux.h:
	  Support for openDML-2.0 indx/ix## chunks. Support for broken index
	  recovery (where, if part of the index is broken, we will still read
	  the rest of the index and recover the broken part by stream
	  scanning). More broken media support. EOS workarounds. General AVI
	  braindamage headache recovery. Aspirin included.

2004-10-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_open),
	(cdparanoia_event), (cdparanoia_query):
	  Get rid of hideous lead-in.

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

	* gst/playback/gstplaybasebin.c: (setup_source):
	Wrong var used to get g_list_next.

2004-10-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
	(cdparanoia_get), (cdparanoia_open):
	  Report discid as metadata, add duration.

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

	* gst/playback/gstplaybasebin.c: (setup_source):
	Cleanup the previous pipeline a little earlier for the
	case that a source element provides raw data.

2004-10-11  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  reset v1 tag offset when there is no v1 tag. Fixes id3demux always
	  consuming the last 128 bytes, even though it was valid mp3 data.

2004-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps),
	(gst_v4lsrc_getcaps), (gst_v4lsrc_get):
	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay):
	Change g_warnings to GST_WARNING_OBJECT and fix colourspace issue

2004-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps):
	Fix for webcams that support only specific width or height

2004-10-09  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_stop_file):
	  Fix wrong discont event setup (fixes #154967).

2004-10-09  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	  Error out on invalid data (fixes #154807).

2004-10-09  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dvdread/dvdreadsrc.c: (_read):
	  Make titles > 0 work again (fixes #154834).

2004-10-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_template_caps):
	  WMV3 missing in template caps.

2004-10-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	  OK, so the original code was too strict. It makes random AVI files
	  hang for seconds upon opening, which is unacceptable and is far
	  beyond the original goal of getting multiple chunks for one-chunk
	  sounc stream files. So now do just that.

2004-10-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (setup_source),
	(gst_play_base_bin_change_state):
	  Actually clean up streaminfo if output fails. This would trigger
	  if, for example, there was no CD in the drive. No preroll, so
	  a streaminfo structure is created, but the subsequent state change
	  of the thread fails.
	* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
	  Don't change state if parent failed.

2004-10-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_init), (gst_play_bin_get_property), (handoff),
	(gen_video_element), (remove_sinks):
	  Add small bits of code for screenshot handling.

2004-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybin.c: (gst_play_bin_set_property),
	(gen_video_element), (gen_audio_element), (setup_sinks):
	Don't assume the user provided sinks are named "sink"...

2004-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (gen_preroll_element),
	(unknown_type), (setup_source), (gst_play_base_bin_remove_element),
	(gst_play_base_bin_link_stream):
	Do not try to autoplug sources that generate raw streams like
	cdparanoia.
	disconnect the preroll overrun signal when we don't need it anymore.

2004-10-08  Milosz Derezynski  <internalerror.rez@fhtw-berlin.de>

	* ext/cdparanoia/gstcdparanoia.c: (_do_init),
	Added reworked patch from #154903 from milosz derezynski (deadchip).

2004-10-08  Wim Taymans  <wim@fluendo.com>

	* ext/cdparanoia/gstcdparanoia.c: (_do_init),
	(cdparanoia_base_init), (cdparanoia_class_init), (cdparanoia_init),
	(cdparanoia_dispose), (cdparanoia_get), (cdparanoia_change_state),
	(cdparanoia_convert), (cdparanoia_uri_get_type),
	(cdparanoia_uri_get_protocols), (cdparanoia_uri_get_uri),
	(cdparanoia_uri_set_uri), (cdparanoia_uri_handler_init):
	* ext/cdparanoia/gstcdparanoia.h:
	This adds the cdda://<tracknum> uri.

2004-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(gst_decode_bin_init), (find_compatibles), (close_pad_link),
	(try_to_link_1), (no_more_pads), (close_link), (type_found):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(unknown_type), (gst_play_base_bin_remove_element),
	(gst_play_base_bin_link_stream):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_init),
	(gst_play_bin_set_property), (gen_video_element),
	(gen_audio_element), (setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
	(gst_stream_info_get_type), (gst_stream_info_class_init),
	(gst_stream_info_init), (gst_stream_info_new),
	(gst_stream_info_dispose), (stream_info_mute_pad),
	(gst_stream_info_set_property), (gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	Reuse the audio and video bins.
	Some internal cleanups in the stream selection code.

2004-10-08  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
	(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init):
	* sys/xvimage/xvimagesink.h: Reverting Ronald's changes as the issue is
	not coming from those elements. Moreover these elements should not keep
	the xid they have been given when in NULL state.

2004-10-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
	(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init):
	* sys/xvimage/xvimagesink.h:
	  Actually only create a new toplevel window if we're not gonna
	  embed it right after.

2004-10-07  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (play_base_bin_mute_pad),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream):
	* gst/playback/gstplaybin.c: (setup_sinks):
	Implement muting/unmuting of streams, mute streams that are not
	used.

2004-10-07  Wim Taymans  <wim@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (ac3_type_find),
	(plugin_init):
	Added lame audio/x-ac3 typefind function.

2004-10-06  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	  bump nano to cvs

=== release 0.8.5 ===

2004-10-06  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	  releasing 0.8.5, "Take You On"

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

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(no_more_pads), (close_link), (type_found):
	* gst/playback/gstplaybasebin.c: (new_decoded_pad):
	* gst/playback/gstplaybin.c: (gen_video_element):
	Do not signal the no_more_pads after the first pad when
	we are plugging a non dynamic element with multiple
	output pads (like swfdec, dvdec, ...).

2004-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump for prerelease

2004-10-06  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/wavparse/gstwavparse.c:
	  add ATRAC3 to STATIC CAPS to fix a warning

	* gst/matroska/ebml-read.c:
	* gst-libs/gst/riff/riff-read.c:
	  fix typos

2004-10-06  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/riff/riff-media.c:
	  generate caps for ATRAC3 audio streams

	* gst/realmedia/rmdemux.c:
	  generate caps for ATRAC3 audio streams

2004-10-06  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/wavparse/Makefile.am
	* gst/wavparse/riff.h
	* gst/wavparse/wavparse.vcproj
	  riff.h removal (unused and duplication with riff-ids.h)

2004-10-06  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/wavparse/gstwavparse.h
	  remove duplicated defines for audio codec codes

	* gst-libs/gst/riff/riff-ids.h
	* gst/wavenc/riff.h:
	  add "4CC" code for ATRAC3 audio streams
	  add "4CC" code for ITU_G721_ADPCM (unused for now)

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

	* gst/flx/gstflxdec.c: (gst_flxdec_init), (gst_flxdec_loop):
	Actually _do_ negotiation. Pass gdouble as arg instead
	of guint64 for the framerate.

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

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(find_compatibles), (close_pad_link), (try_to_link_1),
	(no_more_pads), (close_link), (type_found):
	* gst/playback/gstplaybasebin.c: (new_decoded_pad):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	Set state on newly added element to READY so that negotiation
	can happen ASAP.
	Addes some more debug info.
	Do not try to plug pads with multiple caps structures or ANY
	because it is too dangerous since we do not do dynamic
	replugging.

2004-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	written by: Gora Mohanty <gora_mohanty@yahoo.co.in>

	* po/LINGUAS:
	* po/or.po:
	  add Oriya translation

2004-10-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	  Prevent overwrite of size member. Makes audio sound crappy.

2004-10-05  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	Add rmvb to the list of known RealMedia extensions

2004-10-05  Wim Taymans  <wim@fluendo.com>

	* ext/libmng/gstmngdec.c: (gst_mngdec_loop), (mngdec_error),
	(mngdec_openstream), (mngdec_closestream),
	(mngdec_handle_sink_event), (mngdec_readdata),
	(mngdec_gettickcount), (mngdec_settimer), (mngdec_processheader),
	(mngdec_getcanvasline), (mngdec_refresh),
	(gst_mngdec_change_state):
	Set the framerate correctly.

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	  There was something wrong with the index massaging.

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

	* ext/jpeg/gstjpeg.c: (smoke_type_find), (plugin_init):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_init),
	(gst_smokedec_chain):
	* ext/jpeg/gstsmokedec.h:
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init),
	(gst_smokeenc_init), (gst_smokeenc_resync), (gst_smokeenc_chain):
	* ext/jpeg/gstsmokeenc.h:
	* ext/jpeg/smokecodec.c: (smokecodec_encode_new),
	(smokecodec_decode_new), (smokecodec_info_free),
	(smokecodec_set_quality), (smokecodec_get_quality),
	(smokecodec_set_threshold), (smokecodec_get_threshold),
	(smokecodec_set_bitrate), (smokecodec_get_bitrate),
	(find_best_size), (abs_diff), (put), (smokecodec_encode_id),
	(smokecodec_encode), (smokecodec_parse_id),
	(smokecodec_parse_header), (smokecodec_decode):
	* ext/jpeg/smokecodec.h:
	* ext/jpeg/smokeformat.h:
	Updated smoke, new bitstream, allows embedding in ogg.

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event):
	  Fix seeking in some files. All this code is no longer needed (and
	  actually breaks stuff) because we now synchronize the full index
	  right when reading the header.

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

	* configure.ac:
	configure update for libmng.

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

	* ext/libmng/Makefile.am:
	* ext/libmng/gstmng.c: (plugin_init):
	* ext/libmng/gstmng.h:
	* ext/libmng/gstmngdec.c: (gst_mngdec_get_type),
	(gst_mngdec_base_init), (gst_mngdec_class_init),
	(gst_mngdec_sinklink), (gst_mngdec_init), (gst_mngdec_src_getcaps),
	(gst_mngdec_loop), (gst_mngdec_get_property),
	(gst_mngdec_set_property), (mngdec_error), (mngdec_openstream),
	(mngdec_closestream), (mngdec_handle_sink_event),
	(mngdec_readdata), (mngdec_gettickcount), (mngdec_settimer),
	(mngdec_processheader), (mngdec_getcanvasline), (mngdec_refresh),
	(gst_mngdec_change_state):
	* ext/libmng/gstmngdec.h:
	* ext/libmng/gstmngenc.c: (gst_mngenc_get_type),
	(mng_caps_factory), (raw_caps_factory), (gst_mngenc_base_init),
	(gst_mngenc_class_init), (gst_mngenc_sinklink), (gst_mngenc_init),
	(gst_mngenc_chain), (gst_mngenc_get_property),
	(gst_mngenc_set_property):
	* ext/libmng/gstmngenc.h:
	Added basic MNG decoder. Needs more work. The encoder does
	not work yet.

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/realmedia/rmdemux.c: (gst_rmdemux_handle_sink_event),
	(gst_rmdemux_loop), (gst_rmdemux_add_stream),
	(gst_rmdemux_parse_mdpr), (gst_rmdemux_dump_mdpr):
	  Don't hang on length=0 chunks. Some negotiation fixes. Signal
	  no-more-pads.

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

	* configure.ac:
	  you need at least 1.0.4 of speex

2004-10-04 Iain <iaingnome@gmail.com>

	* ext/speex/gstspeexdec.h: Revert the includes changes.

	* ext/speex/gstspeexenc.[ch]: Revert the includes changes.

2004-09-30 Iain <iaingnome@gmail.com>

	* sys/sunaudio/gstsunaudio.c (gst_sunaudiosink_open): Use the device
	found during init or set as a property instead of hardcoding /dev/audio

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/realmedia/rmdemux.c: (gst_rmdemux_class_init),
	(gst_rmdemux_init), (gst_rmdemux_handle_sink_event),
	(gst_rmdemux_loop), (gst_rmdemux_add_stream), (re_hexdump_bytes),
	(re_dump_pascal_string), (gst_rmdemux_dump__rmf),
	(gst_rmdemux_dump_prop), (gst_rmdemux_parse_mdpr),
	(gst_rmdemux_dump_mdpr), (gst_rmdemux_dump_indx),
	(gst_rmdemux_dump_data):
	  Use debug category, fix EOS handling. filesrc ! rmdemux now
	  works.

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_scan), (sort), (gst_avi_demux_massage_index),
	(gst_avi_demux_stream_header), (gst_avi_demux_stream_data):
	  Improve allocation, cutting and sorting of the index. How takes a
	  few seconds instead of minutes.

2004-10-03  Christophe Fergeau  <teuf@gnome.org>

	* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr):
	  fixed compilation

2004-10-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add wing commander format mimetype/fourccs.
	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	  Don't crash if some value is 0.

2004-10-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add DIB fourcc (raw, palettized 8-bit RGB).
	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data):
	  Oops, fix strf_data reading bug.
	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
	  Use a non-NULL tag.
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Time for hacks. Sorry Dave. At least one quicktime movie (a
	  trailer) that I've encountered contains multiple video tracks.
	  One of those is the actual video track, the other are one-frame
	  tracks (images). Unfortunately, the number of frames according
	  to the trak header is 1 for each, so that doesn't help. So
	  instead, I look at the duration and discard tracks with a
	  duration shorter than 20% of the length of the stream. Better
	  than nothing.

2004-10-01  Christian Schaller <christian@fluendo.com>

	* ext/ivorbis/vorbis.c:
	  Patch from Phil Blundell (Bug 152341)

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

	* ext/speex/gstspeexdec.c: (gst_speex_dec_class_init),
	(speex_dec_get_formats), (speex_dec_convert),
	(speex_dec_src_query), (speex_dec_src_event), (speex_dec_event),
	(speex_dec_chain), (gst_speexdec_get_property),
	(gst_speexdec_set_property):
	Small cleanups.

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

	* gst/wavparse/gstwavparse.c: (gst_wavparse_class_init),
	(gst_wavparse_stream_init), (gst_wavparse_fmt),
	(gst_wavparse_other), (gst_wavparse_loop),
	(gst_wavparse_pad_convert), (gst_wavparse_pad_query),
	(gst_wavparse_srcpad_event):
	* gst/wavparse/gstwavparse.h:
	Added some more debugging info.
	Fix the case where the length of the file is 0.
	Make sure we seek to sample borders.

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

	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),
	(gst_decode_bin_init), (find_compatibles), (close_pad_link),
	(try_to_link_1), (no_more_pads), (close_link), (type_found):
	Add some debug info to decodebin, update README

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dvdnav/dvdnavsrc.c: (dvdnav_handle_navigation_event):
	  Don't use g_print(); use GST_DEBUG().

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_queue_pads):
	  Handle EOS properly.

2004-10-01  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_sinkconnect),
	(gst_faad_chain), (gst_faad_change_state):
	* ext/faad/gstfaad.h:
	  Allow playback of raw (unframed) MPEG AAC files (#148993).

2004-10-01  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
	  Throw error if we didn't recognize the stream. Fixes #152289.

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_link):
	  Fix negotiation.

2004-10-01  Francis Labonte  <francis_labonte@hotmail.com>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
	  Fix memleak.

2004-10-01  Balamurali Viswanathan  <balamurali.viswanathan@wipro.com>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_setparams):
	  Solve #152805.
	* sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_mute):
	  Solve 152806.

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_audio_caps_with_data):
	  Add codec_data handling (like asfdemux used to do).
	* gst/asfdemux/gstasf.c: (plugin_init):
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
	(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream):
	  Use riff-media for caps creation instead of our own (mostly
	  broken) copy of its functions.

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_try_capture):
	  Don't actually error out if we get another return value than
	  -EINVAL. Opposite to what I first thought, drivers have random
	  return values for this, although -EINVAL is the expected return
	  value. Since this is not fatal, we shouldn't use
	  GST_ELEMENT_ERROR() but just GST_ERROR_OBJECT().

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
	(dvdreadsrc_init), (dvdreadsrc_dispose), (dvdreadsrc_set_property),
	(dvdreadsrc_get_property), (_open), (_seek), (_read),
	(dvdreadsrc_get), (dvdreadsrc_open_file),
	(dvdreadsrc_change_state):
	  Fix. Don't do one big huge loop around the whole DVD, that will
	  cache all data and thus eat sizeof(dvd) (several GB) before we
	  see something.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek):
	  Actually NULL'ify event after using it.
	* gst/matroska/ebml-read.c: (gst_ebml_read_use_event),
	(gst_ebml_read_handle_event), (gst_ebml_read_element_id),
	(gst_ebml_read_element_length), (gst_ebml_read_element_data),
	(gst_ebml_read_seek), (gst_ebml_read_skip):
	  Handle events.
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init),
	(gst_dvd_demux_init), (gst_dvd_demux_get_audio_stream),
	(gst_dvd_demux_get_subpicture_stream), (gst_dvd_demux_plugin_init):
	  Fix timing (this will probably break if I seek using menus, but
	  I didn't get there yet). VOBs and normal DVDs should now work.
	  Add a mpeg2-only pad with high rank so this get autoplugged for
	  MPEG-2 movies.
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_base_init),
	(gst_mpeg_demux_class_init), (gst_mpeg_demux_init),
	(gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_get_video_stream),
	(gst_mpeg_demux_get_audio_stream),
	(gst_mpeg_demux_get_private_stream), (gst_mpeg_demux_parse_packet),
	(gst_mpeg_demux_parse_pes), (gst_mpeg_demux_plugin_init):
	  Use this as second rank for MPEG-1 and MPEG-2. Still use this for
	  MPEG-1 but use dvddemux for MPEG-2.
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init),
	(gst_mpeg_parse_init), (gst_mpeg_parse_new_pad),
	(gst_mpeg_parse_parse_packhead):
	  Timing. Only add pad template if it exists. Add sink template from
	  class and not from ourselves. This means we will always use the
	  correct sink template even if it is not the one defined in this
	  file.

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

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_packet),
	(gst_mpeg_demux_parse_pes):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
	Fix playback of mpeg again, timestamps where screwed up by
	patch 1.61.

2004-09-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/flac/gstflacdec.c: (gst_flacdec_src_query):
	  Only return true if we actually filled something in. Prevents
	  player applications from showing a random length for flac files.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init),
	(gst_riff_read_use_event), (gst_riff_read_handle_event),
	(gst_riff_read_seek), (gst_riff_read_skip), (gst_riff_read_strh),
	(gst_riff_read_strf_vids_with_data),
	(gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_iavs):
	  OK, ok, so I implemented event handling. Apparently it's normal
	  that we receive random events at random points without asking
	  for it.
	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
	(gst_avi_demux_handle_src_event), (gst_avi_demux_stream_index),
	(gst_avi_demux_sync), (gst_avi_demux_stream_scan),
	(gst_avi_demux_massage_index), (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:
	  Implement non-lineair chunk handling and subchunk processing.
	  The first solves playback of AVI files where the audio and video
	  data of individual buffers that we read are not synchronized.
	  This should not happen according to the wonderful AVI specs, but
	  of course it does happen in reality. It is also a prerequisite for
	  the second. Subchunk processing allows us to cut chunks in small
	  pieces and process each of these pieces separately. This is
	  required because I've seen several AVI files with incredibly large
	  audio chunks, even some files with only one audio chunk for the
	  whole file. This allows for proper playback including seeking.
	  This patch is supposed to fix all AVI A/V sync issues.
	* gst/flx/gstflxdec.c: (gst_flxdec_class_init),
	(flx_decode_chunks), (flx_decode_color), (gst_flxdec_loop):
	  Work.
	* gst/modplug/gstmodplug.cc:
	  Proper return value setting for the query() function.
	* gst/playback/gstplaybasebin.c: (setup_source):
	  Being in non-playing state (after, e.g., EOS) is not necessarily
	  a bad thing. Allow for that. This fixes playback of short files.
	  They don't actually playback fully now, because the clock already
	  runs. This means that small files (<500kB) with a small length
	  (<2sec) will still not or barely play. Other files, such as mod
	  or flx, will work correctly, however.

2004-09-28  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeex.c: (plugin_init):
	* ext/speex/gstspeexdec.c: (gst_speex_dec_base_init),
	(gst_speex_dec_class_init), (speex_dec_get_formats),
	(speex_get_event_masks), (speex_get_query_types),
	(gst_speex_dec_init), (speex_dec_convert), (speex_dec_src_query),
	(speex_dec_src_event), (speex_dec_event), (speex_dec_chain),
	(gst_speexdec_get_property), (gst_speexdec_set_property),
	(speex_dec_change_state):
	* ext/speex/gstspeexdec.h:
	* ext/speex/gstspeexenc.c: (gst_speexenc_get_formats),
	(gst_speexenc_get_type), (speex_caps_factory), (raw_caps_factory),
	(gst_speexenc_base_init), (gst_speexenc_class_init),
	(gst_speexenc_sinkconnect), (gst_speexenc_convert_src),
	(gst_speexenc_convert_sink), (gst_speexenc_get_query_types),
	(gst_speexenc_src_query), (gst_speexenc_init),
	(gst_speexenc_get_tag_value), (comment_init), (comment_add),
	(gst_speexenc_metadata_set1), (gst_speexenc_set_metadata),
	(gst_speexenc_setup), (gst_speexenc_buffer_from_data),
	(gst_speexenc_push_buffer), (gst_speexenc_set_header_on_caps),
	(gst_speexenc_chain), (gst_speexenc_get_property),
	(gst_speexenc_set_property), (gst_speexenc_change_state):
	* ext/speex/gstspeexenc.h:
	Rewrote speex encoder, make sure it can be embedded in ogg.
	Implemented speex decoder.

2004-09-28  Christian Schaller <christian@fluendo.com>

	* configure.ac:
	Remove kioslave plugin. Markey is brewing a new working one
	* ext/Makefile.am: Remove kioslave plugin
	* ext/kio: remove
	* gst-plugins.spec.in: remove kio plugin from spec

2004-09-27  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_remove_client_link),
	(is_sync_frame), (gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_new_client),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients):
	* gst/tcp/gstmultifdsink.h:
	Make syncing to keyframes actually work for new clients and lagging
	clients.

2004-09-26  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/debug/gstnavigationtest.c: (gst_navigationtest_class_init),
	(gst_navigationtest_handle_src_event), (draw_box_planar411),
	(gst_navigationtest_planar411), (gst_navigationtest_change_state):
	* gst/debug/gstnavigationtest.h:
	  make navigationtest display button-press and button-release events

2004-09-26 Iain <iaingnome@gmail.com>

	* gst/interleave/interleave.c (all_channels_new_media): Checks if all
	the channels have received a new media event.
	(interleave_buffered_loop): Compresses a new media event on all
	channels into one.

2004-09-26 Iain <iaingnome@gmail.com>

	* gst/wavenc/gstwavenc.c (gst_wavenc_chain): Company says we need to
	call the sinkpad's default event handler and not the srcpads. He also
	says this is confusing :)
	(gst_wavenc_stop_file): Company says that seek events only go upstream
	we should send a discontinuous downstream instead.

2004-09-25  Christian Schaller <christian@fluendo.com>

	* Update SPEC file to be usable in conjunction with Fedora Core,
	  Fedora.us and freshrpms packages
	* Fix typo in multifilesrc test Makefile

2004-09-24  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (new_decoded_pad):
	Only signal the no_more_pads signal when we have
	added the stream to our list.

2004-09-24  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (remove_prerolls),
	(new_decoded_pad):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (setup_sinks):
	Don't try to preroll or decode more than one audio/video
	track.

2004-09-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	  Throw error if we failed to find a suitable output. This should
	  throw an error if we successfully set up a pipeline (e.g. because
	  we recognized a media file) but found no decodable streams in it
	  (e.g. because it contains only media stream types for which we
	  have no decoders, or because it's not a media type).

2004-09-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dirac/Makefile.am:
	* ext/dirac/gstdirac.cc:
	* ext/dirac/gstdiracdec.cc:
	* ext/dirac/gstdiracdec.h:
	  Do something. Don't actually know if this works because I don't
	  have a demuxer yet.
	* ext/gsm/gstgsmdec.c: (gst_gsmdec_getcaps):
	  Add channels=1 to caps returned from _getcaps().
	* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_get_type),
	(gst_ogm_video_parse_get_type), (gst_ogm_audio_parse_base_init),
	(gst_ogm_video_parse_base_init), (gst_ogm_parse_init),
	(gst_ogm_audio_parse_init), (gst_ogm_video_parse_init),
	(gst_ogm_parse_sink_convert), (gst_ogm_parse_chain),
	(gst_ogm_parse_change_state):
	  Separate between audio/video so ogmaudioparse actually uses the
	  audio pad templates. Both audio and video work now, including
	  autoplugging. Also use sometimes-srcpad hack.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek):
	  Handle events better. Don't hang on infinite loops.
	* gst/avi/gstavidemux.c: (gst_avi_demux_class_init),
	(gst_avi_demux_init), (gst_avi_demux_reset),
	(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
	(gst_avi_demux_stream_header), (gst_avi_demux_stream_data),
	(gst_avi_demux_change_state):
	* gst/avi/gstavidemux.h:
	  Improve A/V sync. Still not perfect.
	* gst/matroska/ebml-read.c: (gst_ebml_read_seek),
	(gst_ebml_read_skip):
	  Handle events better.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	(gst_qtdemux_loop_header), (qtdemux_parse_trak),
	(qtdemux_audio_caps):
	  Add IMA4. Improve event handling. Save offset after a seek when
	  the headers are at the end of the file so that we don't end up in
	  an infinite loop.
	* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
	  Add low-priority typefind support for files with no length.

2004-09-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* testsuite/multifilesink/Makefile.am:
	fix typo

2004-09-22  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls): Fix
	mistakes from thaytan's patches.

2004-09-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy):
	  For completeness, XSync in the destroy function as xvimage does.

2004-09-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_getcaps):
	   Correct caps negotiation
	* gst/volume/gstvolume.c: (volume_chain_float),
	(volume_chain_int16):
	   Modify debug output to be little more informative
	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_destroy):
	  Add XSync calls after detaching from the shared memory segment to
	  avoid a crash.

2004-09-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_next_buffer), (gst_ogg_mux_loop):
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_init),
	(gst_vorbisenc_chain):
	* ext/vorbis/vorbisenc.h:
	remove explicit newmedia support from oggmux and vorbisenc
	add debug category to vorbisenc
	* gst/multifilesink/gstmultifilesink.c:
	(gst_multifilesink_class_init), (gst_multifilesink_init),
	(gst_multifilesink_dispose), (gst_multifilesink_set_location),
	(gst_multifilesink_set_property), (gst_multifilesink_next_file),
	(gst_multifilesink_handle_event), (gst_multifilesink_chain),
	(plugin_init):
	* gst/multifilesink/gstmultifilesink.h:
	add support for streamheader in multifilesink

2004-09-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (_read_var_length), (_read_guid),
	(gst_asf_demux_process_segment), (gst_asf_demux_handle_data),
	(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event):
	  Prevent infinite loops. More correct error reporting.
	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	  Error out if negotiation fails.
	* gst/playback/gstplaybasebin.c: (setup_source),
	(gst_play_base_bin_change_state), (gst_play_base_bin_error),
	(gst_play_base_bin_found_tag):
	  Error/tag forwarding. Pre-roll fixes for source errors on state
	  changes (e.g. "file does not exist") to prevent hangs.

2004-09-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* testsuite/multifilesink/Makefile.am:
	* testsuite/multifilesink/lame_test.c: (gst_newmedia_base_init),
	(gst_newmedia_class_init), (gst_newmedia_init),
	(gst_newmedia_chain), (gst_newmedia_trigger), (test_format),
	(newfile_signal), (test_signal), (main):
	* testsuite/multifilesink/multifilesrc_test.c: (main):
	* testsuite/multifilesink/oggtheora_test.c:
	(gst_newmedia_base_init), (gst_newmedia_class_init),
	(gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger),
	(test_format), (newfile_signal), (test_signal), (main):
	* testsuite/multifilesink/oggvorbis_test.c:
	(gst_newmedia_base_init), (gst_newmedia_class_init),
	(gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger),
	(test_format), (newfile_signal), (test_signal), (main):
	* testsuite/multifilesink/wavenc_test.c: (gst_newmedia_base_init),
	(gst_newmedia_class_init), (gst_newmedia_init),
	(gst_newmedia_chain), (gst_newmedia_trigger), (test_format),
	(newfile_signal), (test_signal), (main):
	New media tests

2004-09-20  Christian Schaller <christian@fluendo.com>

	* Fix mikmod license to LGPL as they have relicensed
	* Move Dirac and Effectv into LGPL section of README_license

2004-09-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_check_caps_reset),
	(gst_mad_change_state):
	  Allow for mp3 rate/channels changes. However, only very
	  conservatively. Reason that we *have* to enable this is smiply
	  because the mad find_sync() function is not good enough, it will
	  regularly sync on random data as valid frames and therefore make
	  us provide random caps as *final* caps of the stream. The best fix
	  I could think of is to simply require several of the same stream
	  changes in a row before we change caps.
	  The actual testcase that works now is #
	* ext/ogg/Makefile.am:
	* ext/ogg/gstogg.c: (plugin_init):
	* ext/ogg/gstogmparse.c:
	  OGM support (video only for now; I need an audio sample file).
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
	(gst_asf_demux_process_stream), (gst_asf_demux_video_caps),
	(gst_asf_demux_add_video_stream):
	  WMV extradata.
	* gst/playback/gstplaybasebin.c: (unknown_type):
	  Don't error out on single unknown-types after all. It's wrong.
	  If we found type of video and audio but not of a subtitle stream,
	  it will still error out (which is unwanted). Will find a better fix
	  later on.
	* gst/typefind/gsttypefindfunctions.c: (ogmvideo_type_find),
	(ogmaudio_type_find), (plugin_init):
	  OGM support.

2004-09-20  Johan Dahlin  <johan@gnome.org>

	* ext/jpeg/gstjpegdec.c (gst_jpegdec_chain): Allocate the buffer
	after setting caps.

2004-09-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_init), (gst_wavenc_chain):
	* gst/wavenc/gstwavenc.h:
	Added newmedia support to wavenc

2004-09-17  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_fd_has_closed),
	(gst_fdset_fd_has_error), (gst_fdset_fd_can_read),
	(gst_fdset_fd_can_write), (gst_fdset_wait):
	* gst/tcp/gstmultifdsink.c: (gst_client_status_get_type),
	(gst_multifdsink_init), (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_get_stats),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_handle_clients),
	(gst_multifdsink_close), (gst_multifdsink_change_state):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_removed):
	Small cleanups in fdset.c
	Use a hastable to map fd to the client structure for faster
	lookup in _remove and get_stats.
	Added virtual function to close the fds.
	Handle clients even when the select/poll call was unblocked because
	of a command.
	Implement syncing to keyframe in the recovery procedure.

2004-09-16 Iain <iaingnome@gmail.com>

	* gst/audioconvert/gstaudioconvert.c (_fixate_caps_to_int): Free the
	try caps.

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream):
	  Caps are only set if the type of the stream is unknown, but this
	  is initialized in ->init_stream(), so set to UNKNOWN after calling
	  ->init_stream() so that capsnego starts.

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_stream_data):
	  Just hardcode for raw audio then. AVI audio sucks.

2004-09-15  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps):
	* gst/matroska/matroska-mux.c: (audiosink_templ),
	(gst_matroska_mux_audio_pad_link):
	* gst/typefind/gsttypefindfunctions.c: (tta_caps), (plugin_init):
	Use audio/x-ttafile for tta files and audio/x-tta for raw tta frames.

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_stream_data):
	  Try to fix a/v sync issues.

2004-09-15  David Schleef  <ds@schleef.org>

	* configure.ac: remove NASM check, since we don't use it.  Update
	dirac check to 0.4
	* ext/dirac/gstdiracdec.cc: update to current 0.4 API
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	Initialized variables.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header), (qtdemux_parse), (qtdemux_parse_trak),
	(gst_qtdemux_handle_esds), (qtdemux_audio_caps): Fix seeking, add
	SVQ3 format

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_add_stream), (gst_avi_demux_stream_data):
	* gst/avi/gstavidemux.h:
	  Fix for compressed audio (mp3) timestamp generation. How did this
	  ever work?

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
	  Volume is a double not a float.

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

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_remove_client_link),
	(gst_multifdsink_handle_clients), (gst_multifdsink_change_state):
	Don't close the fd in multifdsink as we didn't open it in the
	first place. Some cleanups.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop):
	Fix the case where the muxer would mark pages as delta
	frames when they are not (vorbis only ogg).

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (state_change), (setup_source),
	(gst_play_base_bin_change_state):
	  Handle the case where we failed to setup a clear pipeline. This
	  will throw an error (or EOS, another nice case) and if you don't
	  catch that, the app will wait for the signal forever (and thus
	  hang).

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c:
	(gst_gnomevfssink_uri_get_protocols):
	* ext/gnomevfs/gstgnomevfssrc.c:
	(gst_gnomevfssrc_uri_get_protocols):
	* ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris):
	* ext/gnomevfs/gstgnomevfsuri.h:
	  Use _uri_new() instead of _open(), so it doesn't take as long and
	  Christophe's computer won't hang.
	* gst/playback/gstplaybasebin.c: (unknown_type):
	  Throw error on unknown media type, so apps actually display it.

2004-09-14  Brian Cameron  <brian.cameron@sun.com

	* tools/gst-launch-ext-m.m:  Changed ~ to $ENV{HOME} to allow
	  this script to work on Solaris since bash shell handles echo
	  differenly than bash.

2004-09-17  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (queue_overrun), (no_more_pads),
	(setup_source), (gst_play_base_bin_set_property),
	(gst_play_base_bin_add_element):
	* gst/playback/gstplaybin.c: (gst_play_bin_send_event):
	Some more work on making sure seeking pauses the pipeline and
	that changing the uri actually does something.

2004-09-17  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_wait):
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_close):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init_send),
	(gst_tcpserversink_close):
	Be a bit more paranoid when freeing memory.

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
	(qtdemux_parse_trak):
	  Don't crash by dividing by zero (see sample movie in #126922).

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
	  Don't touch non-existing data (fixes crash on file in #140147).

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c:
	(gst_play_base_bin_dispose), (gst_play_base_bin_set_property):
	  Handle double disposals, and proper change of URIs.

2004-09-13  Martin Eikermann <meiker@upb.de>

	* gst/mpegstream/gstmpegparse.c:
	  fix synchronistation for streams recorded from digital PCR
	  fixes bug #119376

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/Makefile.am:
	* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_get_type),
	(gst_gnomevfssink_dispose), (gst_gnomevfssink_init),
	(gst_gnomevfssink_uri_get_type),
	(gst_gnomevfssink_uri_get_protocols),
	(gst_gnomevfssink_uri_get_uri), (gst_gnomevfssink_uri_set_uri),
	(gst_gnomevfssink_uri_handler_init),
	(gst_gnomevfssink_set_property), (gst_gnomevfssink_get_property),
	(gst_gnomevfssink_open_file), (gst_gnomevfssink_close_file):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get_type),
	(gst_gnomevfssrc_init), (gst_gnomevfssrc_dispose),
	(gst_gnomevfssrc_uri_get_type),
	(gst_gnomevfssrc_uri_get_protocols), (gst_gnomevfssrc_uri_get_uri),
	(gst_gnomevfssrc_uri_set_uri), (gst_gnomevfssrc_uri_handler_init),
	(gst_gnomevfssrc_set_property), (gst_gnomevfssrc_get_property),
	(gst_gnomevfssrc_open_file), (gst_gnomevfssrc_close_file):
	* ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris):
	* ext/gnomevfs/gstgnomevfsuri.h:
	  Add URI support to Gnome-VFS plugins. Tries to load a fixed list
	  of fake URIs to see which this version of Gnome-VFS likes, and
	  uses that for the Gst-URI interface. Makes playbin support http://
	  streams. Also fix up some stupid behaviour in gnomevfssrc.

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_update),
	(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
	(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record),
	(gst_alsa_mixer_set_option), (gst_alsa_mixer_get_option):
	  Update mixer (to sync with other sessions) if we try to obtain
	  a new value. This makes alsamixer work accross applications.
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time):
	  Only call sync functions if we're running, else alsalib asserts.
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query):
	  Sometimes fails to compile. Possibly a gcc bug.
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	  Add a reference to an application-provided object, because we lose
	  this same reference if we add it to the bin. If we don't do this,
	  we can only use this object once and thus crash if we go from
	  ready to playing, back to ready and back to playing again.
	  Also add an audioscale element because several cheap soundcards -
	  like mine - don't support all samplerates.
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
	(gst_ximagesink_xcontext_clear), (gst_ximagesink_change_state):
	  Fix wrong order or PAR calls. Makes automatically obtained PAR
	  from the X server atually being used.

2004-09-12  David Schleef  <ds@schleef.org>

	Fixes: #151879, #151881, #151882, #151883, #151884, #151886,
	#151887, #152102, #152247.
	* examples/indexing/indexmpeg.c: 64-bit warning fixes.
	* examples/seeking/cdparanoia.c: same
	* examples/seeking/cdplayer.c: same
	* examples/seeking/seek.c: same
	* examples/seeking/spider_seek.c: same
	* examples/seeking/vorbisfile.c: same
	* examples/stats/mp2ogg.c: same
	* ext/esd/esdsink.c: (gst_esdsink_class_init),
	(gst_esdsink_dispose): Dispose of element properly.
	* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_seek): 64-bit warning
	fixes.
	* ext/nas/nassink.c: (gst_nassink_class_init),
	(gst_nassink_dispose): Dispose of element correctly.
	* gst/wavenc/gstwavenc.c: (gst_wavenc_chain): Fix leak.
	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy):
	Fix 64-bit warning.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy):
	Fix 64-bit warning.

2004-09-12  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* configure.ac : change speex detection as 1.1.6 now uses
	  .pc/pkg-config and they changed their headers location.

2004-09-09  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* gst/matroska/matroska-mux.h:
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_reset),
	(gst_matroska_mux_start), (gst_matroska_mux_finish),
	(gst_matroska_mux_write_data):
	  Write multiple blocks/frames per cluster.
		Write meta-seek information (seek heads).

2004-09-09  Scott Wheeler <wheeler@kde.org>

	* gst/gstplaybin.c: (gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_set_property), (gst_play_bin_get_property),
	(gen_audio_element), (gen_audio_element):
	  Add a volume element / property to the pipeline.

2004-09-07  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_blend_buffers):
	Copy timestamps from the master pad to the output buffers.

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/raw1394/gstdv1394src.c:
	  throw errors when applicable

2004-09-01  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* gst/matroska/ebml-ids.h:
	* gst/matroska/ebml-read.c: (gst_ebml_read_date):
	* gst/matroska/ebml-write.c: (gst_ebml_write_date):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_finish):
	  automatically convert unix time <-> ebml time when reading/writing
	  a date, use gst_ebml_write_uint to write CUETIME,
	  not gst_ebml_write_date.
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_create_uid),
	(gst_matroska_mux_reset), (gst_matroska_mux_audio_pad_link),
	(gst_matroska_mux_track_header), (gst_matroska_mux_start),
	(gst_matroska_mux_write_data):
	  Write track and segment UIDs, write muxing date, write
	  TRACKDEFAULTDURATION for TTA audio, write BLOCKDURATION if known.
	  Create cues for audio only files.

2004-08-31  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	  Re-commit ALSA switches.
	* gst/adder/gstadder.c: (gst_adder_loop):
	  64-bit fix (#151416).
	* gst/debug/progressreport.c: (gst_progressreport_report):
	  64-bit fix (#151419).
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_contents):
	  64-bit fix (#151420).
	* gst/playback/test3.c: (update_scale):
	  64-bit fix (#151421).

2004-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump nano to cvs

=== release 0.8.4 ===

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.8.4, "Alias"

2004-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/theora/Makefile.am:
	  fix makefile.  Fixes #151462.

2004-08-30  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_free), (gst_fdset_wait):
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write):
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init_send):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init_receive):
	Fix some memory leaks.

2004-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: David Schleef

	* configure.ac:
	* sys/Makefile.am:
	  rename our detection macro for V4L2.  Fixes #151236.

2004-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: David Schleef

	* configure.ac:
	  check to define LAMEPRESET.  Fixes #151232.

2004-08-27  David Schleef  <ds@schleef.org>

	* sys/glsink/glimagesink.c: (gst_glimagesink_ximage_put),
	(gst_glimagesink_xwindow_new), (gst_glimagesink_xcontext_get),
	(gst_glimagesink_fixate):  Move local variable declarations to
	make gcc-2.95 happy.

2004-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump nano for prerelease

2004-08-27  David Schleef  <ds@schleef.org>

	* sys/sunaudio/Makefile.am: Add sunaudiosrc patch from Bala
	* sys/sunaudio/gstsunaudiosrc.c:
	* sys/sunaudio/gstsunaudiosrc.h:

2004-08-27 Arwed v. Merkatz <v.merkatz@gmx.net>

	* gst/matroska/ebml-read.c: (gst_ebml_peed_id), (gst_ebml_read_element_id),
	handle EOS correctly
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_link):
	* gst/matroska/matroska-mux.h:
	added BITMAPINFOHEADER structure, mux video/x-divx and video/x-xvid in
	VFW compatibility mode

2004-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali

	* ext/ogg/gstoggmux.c:
	* ext/vorbis/vorbisenc.c:
	* ext/vorbis/vorbisenc.h:
	  handle NEWMEDIA

2004-08-26 Arwed v. Merkatz <v.merkatz@gmx.net>

	* gst/matroska/ebml-write.c: (gst_ebml_write_float),
	fix byte order reversion on little endian machines.
	* gst/matroska/matroska-mux.c: (audiosink_templ),
	(gst_matroska_mux_audio_pad_link):
	add TTA codec to the list of supported codecs.
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_init),
	(gst_matroska_mux_start), (gst_matroska_mux_finish),
	(gst_matroska_mux_write_data):
	* gst/matroska/matroska-mux.h:
	write segment duration correctly, write muxing app string, fixes bugs
	#140897 and #140898.
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_loop),
	wait for all pads to be negotiated before starting to mux.

2004-08-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_init), (gst_lame_chain):
	* ext/lame/gstlame.h:
	Added new media support to lame

2004-08-25 Arwed v. Merkatz <v.merkatz@gmx.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_blockgroup),
	send vorbis headers at the beginning of a stream, fixes bug #141554.
	Interpret BLOCKDURATION and set buffer duration accordingly, fixes
	bug #148950.
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps),
	(gst_matroska_demux_plugin_init):
	* gst/matroska/matroska-ids.h:
	enable demuxing of TTA audio streams, fixes bug #148951.
	* gst/typefind/gsttypefindfunctions.c: (tta_type_find), (plugin_init),
	enable typefinding for TTA audio files, fixes bug #148711.
	* ext/xvid/gstxviddec.c: (gst_xviddec_chain),
	set XVID_LOWDELAY flag for decoding so xvid always returns an image,
	fixes playback of packed bitstream and xvid with bframes, bug #135407.

2004-08-24  Sebastien Cote  <sc5@hermes.usherb.ca>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head),
	(gst_riff_read_element_data), (gst_riff_read_seek),
	(gst_riff_read_skip): fix infinite loop in wavparse, fixes bug
	#144616, patch reviewed by Ronald and committed by Christophe Fergeau
	<teuf@gnome.org>

2004-08-23 Iain <iaingnome@gmail.com>

	* ext/mad/gstid3tag.c (gst_mad_id3_to_tag_list): Special case COMM
	tags. They appear to be handled differently to normal.
	(tag_list_to_id3_tag_foreach): Ditto.

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

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop):
	Make sure we never send -1 granulepos.

2004-08-20  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_loop):
	I will accept bitchslappings with non sharp objects.

2004-08-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Clean up the test for lame presets

2004-08-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	* ext/lame/Makefile.am:
	* ext/lame/gstlame.c: (gst_lame_class_init),
	(gst_lame_set_property), (gst_lame_get_property), (gst_lame_setup):
	Only enable lame presets if version of lame has presets in API

2004-08-19  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/udp/gstudpsrc.c: (gst_udpsrc_init), (gst_udpsrc_get):
	* gst/udp/gstudpsrc.h:
	  Don't call gst_pad_push in a get function. Fixes #150449

2004-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_free), (gst_fdset_set_mode),
	(gst_fdset_get_mode), (gst_fdset_add_fd), (gst_fdset_remove_fd),
	(gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read),
	(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
	(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
	(gst_fdset_wait):
	* gst/tcp/gstfdset.h:
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write):
	* gst/tcp/gstmultifdsink.h:
	Some extra checks in gstfdset.
	Only use send() when the fd is a socket. Don't try to
	read from write only fds.

2004-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_add_fd), (gst_fdset_remove_fd),
	(gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read),
	(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
	(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
	(gst_fdset_wait):
	Add more locking and bounds checking.

2004-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (ensure_size), (gst_fdset_wait):
	Realloc test fdset in the lock and right before starting
	the poll call. Bump the limit to 4096.

2004-08-17  David Schleef  <ds@schleef.org>

	* sys/sunaudio/Makefile.am:
	* sys/sunaudio/gstsunaudio.c: Fix caps to handle full range
	of rates and channels.  Make debugging less obnoxious.

	Patch from Balamurali Viswanathan implementing a mixer for
	Sun audio.  (bug #144091):
	* sys/sunaudio/gstsunelement.c:
	* sys/sunaudio/gstsunelement.h:
	* sys/sunaudio/gstsunmixer.c:
	* sys/sunaudio/gstsunmixer.h:

2004-08-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/audioscale/gstaudioscale.c:
	* gst/audioscale/gstaudioscale.h:
	made audioscale resample from any sample rate to any sample rate

2004-08-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/libpng/gstpngdec.c:
	  error out on unsupported types

2004-08-17  Iain <iaingnome@gmail.com>

	* ext/flac/gstflacenc.c (gst_flacenc_update_quality): Only set the
	mid_side and loose_mid_side properties if its a stereo stream.

2004-08-17  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(theora_get_formats), (theora_dec_src_convert),
	(theora_dec_sink_convert), (theora_dec_src_query),
	(theora_dec_src_event), (theora_dec_event), (theora_dec_chain):
	Add a debug line.

2004-08-17  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate),
	(gst_ogg_pad_push):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_request_new_pad), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_buffer_from_page), (gst_ogg_mux_push_page),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop):
	Mark delta units in the muxer.
	Try to decode the packet after an out-of-sync error from
	libogg.

2004-08-17  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_init), (gst_multifdsink_add),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_set_property), (gst_multifdsink_get_property):
	* gst/tcp/gstmultifdsink.h:
	Added option to send a keyframe to clients as the first buffer.
	Make timeout property writable.

2004-08-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Wim Taymans

	* gst/tcp/gstfdset.c:
	* gst/tcp/gstmultifdsink.c:
	  fix index comparison, should include 0

2004-08-16  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (ensure_size), (gst_fdset_new),
	(gst_fdset_add_fd), (gst_fdset_remove_fd),
	(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
	(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
	(gst_fdset_wait):
	  copy when reallocing for poll so the select arguments don't get
	  changed during the call

2004-08-16  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_border_mode_get_type),
	(gst_theora_enc_class_init), (theora_enc_sink_link),
	(theora_buffer_from_packet), (theora_enc_chain):
	Fix bug where buffers were not marked as keyframes
	correctly.

2004-08-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_vbrmode_get_type),
	(gst_lame_preset_get_type), (gst_lame_class_init):
	describe the enum values for vbr mode and presets more verbosely

2004-08-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_mode_get_type),
	(gst_lame_quality_get_type), (gst_lame_padding_get_type),
	(gst_lame_preset_get_type), (gst_lame_class_init), (gst_lame_init),
	(gst_lame_set_property), (gst_lame_get_property), (gst_lame_setup):
	* ext/lame/gstlame.h:
	add preset property to lame so it can use lame presets

2004-08-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_get_property):
	whoops forgot break, thanks teuf

2004-08-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_vbrmode_get_type),
	(gst_lame_class_init), (gst_lame_src_getcaps),
	(gst_lame_sink_link), (gst_lame_init), (gst_lame_set_property),
	(gst_lame_get_property), (gst_lame_setup):
	* ext/lame/gstlame.h:
	fix lame's broken vbr stuff, allow it to resample if need be, and also
	make xing header optional

2004-08-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_src_getcaps), (gst_lame_init):
	added getcaps function so samplerate doesnt get fixated to silly values

2004-08-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_src_link):
	revert previous fix

2004-08-12  Johan Dahlin  <johan@gnome.org>

	* sys/v4l/gstv4lelement.c (gst_v4l_iface_supported): Remove bogus
	checks. Doesn't matter what state we are in. Interfaces are a
	compile time thing, not runtime. It also broke the python bindings.

2004-08-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_src_link):
	made source pad link function check if sinkpad is ok..fixes the problem
	where core fixates the output rate of lame stupidly

2004-08-12  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_fixate):
	* sys/v4l/v4l_calls.c:
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_set_capture):
	  fix fixate function to handle nonsimple caps.
	  remove bogus check in _link
	  cleanups

2004-08-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init):
	set default compression ratio parameter to 0.0 so bitrate parameter
	works :)

2004-08-11  David Schleef  <ds@schleef.org>

	* gst/tcp/gstfdset.c: Fix compile problem on OS/X.

2004-08-11  David Schleef  <ds@schleef.org>

	* gst/mpeg1sys/gstmpeg1systemencode.c: Oops, this was correct
	before.

2004-08-11  David Schleef  <ds@schleef.org>

	* gst-libs/gst/video/videosink.h: Change copyright block to LGPL.

2004-08-11  David Schleef  <ds@schleef.org>

	* ext/pango/gsttextoverlay.c: Add copyright block and fix plugin
	  license field
	* gst-libs/gst/idct/Makefile.am: Remove mmx/sse code
	* gst-libs/gst/video/gstvideosink.c: Change copyright block to
	  LGPL.
	* gst/auparse/gstauparse.c: Fix plugin license field.
	* gst/monoscope/gstmonoscope.c: Fix plugin license field.
	* gst/mpeg1sys/gstmpeg1systemencode.c: Fix plugin license field.
	* gst/rtp/gstrtp.c: Fix plugin license field.

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

	* gst/tcp/Makefile.am:
	* gst/tcp/gstfdset.c: (gst_fdset_mode_get_type), (nearest_pow),
	(ensure_size), (gst_fdset_new), (gst_fdset_free),
	(gst_fdset_set_mode), (gst_fdset_get_mode), (gst_fdset_add_fd),
	(gst_fdset_remove_fd), (gst_fdset_fd_ctl_write),
	(gst_fdset_fd_ctl_read), (gst_fdset_fd_has_closed),
	(gst_fdset_fd_has_error), (gst_fdset_fd_can_read),
	(gst_fdset_fd_can_write), (gst_fdset_wait):
	* gst/tcp/gstfdset.h:
	* gst/tcp/gstmultifdsink.c: (gst_unit_type_get_type),
	(gst_multifdsink_class_init), (gst_multifdsink_init),
	(gst_multifdsink_add), (gst_multifdsink_remove),
	(gst_multifdsink_clear), (gst_multifdsink_get_stats),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property), (gst_multifdsink_init_send),
	(gst_multifdsink_close):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_init), (gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_handle_wait), (gst_tcpserversink_init_send),
	(gst_tcpserversink_close):
	* gst/tcp/gsttcpserversink.h:
	Abstracted away the select call, implemented poll (yes we ran into
	the 1024 limit in production).

2004-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcpplugin.c:
	  improve debuggging, remove assert

2004-08-10  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_unit_type_get_type),
	(gst_client_status_get_type), (gst_multifdsink_class_init),
	(gst_multifdsink_init), (gst_multifdsink_remove_client_link),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp-marshal.list:
	Starting to prepare for specifying buffer time in other units
	than buffers. Expose remove reason in signal.

2004-08-10  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_clear),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients),
	(gst_multifdsink_chain), (gst_multifdsink_close):
	* gst/tcp/gstmultifdsink.h:
	Added more debugging info. Changed the way clients are
	removed from the lists. Fixed a bug where a bad file descriptor
	could cause many clients to be removed.

2004-08-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/videotestsrc/gstvideotestsrc.c: (generate_capslist):
	  allow all pixel-aspect-ratios, not just 1:1

2004-08-09  David Schleef  <ds@schleef.org>

	* sys/glsink/ARB_multitexture.h:  Remove old files.
	* sys/glsink/EXT_paletted_texture.h:
	* sys/glsink/NV_register_combiners.h:
	* sys/glsink/gstgl_nvimage.c:
	* sys/glsink/gstgl_pdrimage.c:
	* sys/glsink/gstgl_rgbimage.c:
	* sys/glsink/gstglsink.c:
	* sys/glsink/gstglsink.h:
	* sys/glsink/gstglxwindow.c:
	* sys/glsink/regcomb_yuvrgb.c:

2004-08-09  David Schleef  <ds@schleef.org>

	Patch from Gernot Ziegler <gz@lysator.liu.se> rewriting the
	GL sink plugin.  (Bug #147302)

	* configure.ac: Test for OpenGL
	* sys/Makefile.am: Use test for OpenGL
	* sys/glsink/Makefile.am:
	* sys/glsink/glimagesink.c: rewrite
	* sys/glsink/glimagesink.h: rewrite

2004-08-09  David Schleef  <ds@schleef.org>

	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init):  Only allow
	sane framerates.
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): same
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): same
	* testsuite/gst-lint: Test for G_GUINT64_FORMAT usage near gettext.

2004-08-09  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
	Do a bit more logging, make the client_read code more robust.

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_init_source),
	(gst_jpegdec_fill_input_buffer), (gst_jpegdec_skip_input_data),
	(gst_jpegdec_resync_to_restart), (gst_jpegdec_term_source),
	(gst_jpegdec_init), (gst_jpegdec_chain):
	* gst/multipart/multipartdemux.c: (gst_multipart_demux_init),
	(gst_multipart_demux_chain), (gst_multipart_demux_change_state):
	  cleanups, debugging fixes and memleak plugging

2004-08-09  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(theora_get_formats), (theora_dec_src_convert),
	(theora_dec_sink_convert), (theora_dec_src_query),
	(theora_dec_src_event), (theora_dec_event), (theora_dec_chain),
	(theora_dec_change_state):
	Don't crash on missing header packets.

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/sq.po:
	  Added Albanian translation (Laurent Dhima)
	* po/cs.po:
	  updated

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/lame/gstlame.c:
	  fix/add debugging

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c:
	* sys/xvimage/xvimagesink.c:
	  assign all TOO_LAZY's to a real category.  Thanks to Warthy Warthog.

2004-08-06  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
	Make sure we don't try to read more from a client that what
	ioctl says us or we deadlock.

2004-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_src_link),
	(gst_videotestsrc_change_state), (gst_videotestsrc_src_query),
	(gst_videotestsrc_handle_src_event), (gst_videotestsrc_get):
	  decouple running_time and n_frames so it can handle changing
	  framerate while running

2004-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/nl.po:
	* po/sv.po:
	  updated translations

2004-08-04  Benjamin Otte  <otte@gnome.org>

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_get_capslist), (generate_capslist),
	(plugin_init):
	  generate the list of supported caps at startup and reuse it instead
	  of always generating it

2004-07-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_pad_link):
	  whoops, last checkin broke normal build

2004-08-03  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_get_volume),
	(gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute),
	(gst_alsa_mixer_set_record), (gst_alsa_mixer_set_option),
	(gst_alsa_mixer_get_option):
	* ext/dvdnav/dvdnavsrc.c: (dvdnav_get_event_name),
	(dvdnavsrc_print_event):
	* ext/ogg/gstoggdemux.c: (_find_chain_process), (gst_ogg_print):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_pad_link),
	(gst_ogg_mux_pad_unlink):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_pad_link),
	(gst_multipart_mux_pad_unlink):
	* gst/videofilter/gstvideobalance.c:
	(gst_videobalance_colorbalance_set_value):
	* gst/videomixer/videomixer.c: (gst_videomixer_pad_link),
	(gst_videomixer_pad_unlink):
	* po/uk.po:
	* sys/oss/gstossmixer.c:
	* sys/v4l/gstv4lcolorbalance.c:
	* sys/v4l/gstv4ltuner.c:
	* sys/v4l/v4lsrc_calls.c:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2tuner.c:
	  compile fixes for --disable-gst-debug, G_DISABLE_ASSERT and friends

2004-08-03  Benjamin Otte  <otte@gnome.org>

	* examples/dynparams/filter.c: (ui_control_create):
	* examples/gstplay/player.c: (print_tag):
	* ext/alsa/gstalsa.c: (gst_alsa_request_new_pad):
	* ext/gdk_pixbuf/gstgdkanimation.c:
	(gst_gdk_animation_iter_may_advance):
	* ext/jack/gstjack.c: (gst_jack_request_new_pad):
	* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list),
	(tag_list_to_id3_tag_foreach), (gst_id3_tag_handle_event):
	* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_get_tag_value):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_tag_value):
	* ext/xine/xineaudiodec.c: (gst_xine_audio_dec_chain):
	* gst-libs/gst/media-info/media-info-test.c: (print_tag):
	* gst/sine/demo-dparams.c: (main):
	* gst/tags/gstvorbistag.c: (gst_tag_to_vorbis_comments):
	* testsuite/alsa/formats.c: (create_pipeline):
	* testsuite/alsa/sinesrc.c: (sinesrc_force_caps), (sinesrc_get):
	  fixes for G_DISABLE_ASSERT and friends
	* gst/typefind/gsttypefindfunctions.c: (aac_type_find),
	(mp3_type_frame_length_from_header), (mp3_type_find),
	(plugin_init):
	  require mp3 typefinding to have at least MIN_HEADERS valid headers
	  add typefinding for AAC adts files

2004-08-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c:
	(gst_ximagesink_calculate_pixel_aspect_ratio):
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_calculate_pixel_aspect_ratio):
	Make sure we calculate pixel-aspect-ratio using floating point maths

2004-08-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/uk.po:
	  updated translation

2004-08-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get):
	  add debugging for display PAR calculation

2004-08-02  David Schleef  <ds@schleef.org>

	* configure.ac: Fix mikmod CFLAGS.

2004-07-27  Benjamin Otte  <otte@gnome.org>

	* gst/audioscale/gstaudioscale.c:
	- fix templates to only support S16, it's the only format that works
	- make caps nego code use try_set_caps_nonfixed and fixation instead
	of try_set_caps twice, which is not nice for autopluggers
	- change rank to secondary, so autopluggers can pick it up after
	audioconvert

2004-08-02  Iain <iain@prettypeople.org>

	* gst/interleave/interleave.c (interleave_init),
	(interleave_request_new_pad),
	(interleave_pad_removed),
	(interleave_buffered_loop): Use the real pad count, not the artificial
	one.

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano back to development

=== release 0.8.3 ===

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.8.3, "Water"

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_calculate_pixel_aspect_ratio),
	(gst_xvimagesink_xcontext_clear), (gst_xvimagesink_sink_link),
	(gst_xvimagesink_change_state), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h:
	  apply similar PAR fixes as to ximagesink

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch from: Benjamin Otte

	* ext/lame/gstlame.c: (gst_lame_src_link), (gst_lame_init):
	  add link function to lame.  Fixes #148986.

2004-08-02  Johan Dahlin  <johan@gnome.org>

	* gst/multipart/multipartmux.c (gst_multipart_mux_next_buffer):
	fix debugging log

2004-07-30  David Schleef  <ds@schleef.org>

	* gst/videomixer/Makefile.am: Fix things that should have been
	fixed in the last checkin.

2004-07-30  David Schleef  <ds@schleef.org>

	* gst/multipart/Makefile.am: Fix things that should have been
	fixed in the last checkin.

2004-07-30  David Schleef  <ds@schleef.org>

	* testsuite/multifilesink/Makefile.am: Fix unused variable.

2004-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump nano for prerelease
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/nl.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	  updates

2004-07-30  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_remove),
	(gst_multifdsink_clear), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
	* gst/tcp/gstmultifdsink.h:
	Recover from a select with a bad file descriptor by removing
	the client.

2004-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  fix requirement of core
	* gst-libs/gst/play/play.c: (gst_play_error_plugin),
	(gst_play_pipeline_setup):
	  don't use colorspace element.  do use hermescolorspace element.
	  make macro to get a colorspace element.
	  mark strings for translation.
	* po/POTFILES.in:
	  add play.c
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/nl.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	  update translations

2004-07-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init):
	fix default for newmedia flag

2004-07-30  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(gst_theora_dec_init), (theora_get_formats),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain), (theora_dec_set_property),
	(theora_dec_get_property):
	* ext/theora/theoraenc.c: (gst_border_mode_get_type),
	(gst_theora_enc_class_init), (gst_theora_enc_init),
	(theora_enc_sink_link), (theora_enc_chain),
	(theora_enc_set_property), (theora_enc_get_property):
	Added cropping option to theora decoder.
	Added border option to theora encoder.

2004-07-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init),
	(gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property),
	(gst_pngenc_set_property):
	* ext/libpng/gstpngenc.h:
	Added newmedia support to pngenc so now gst-launch-0.8 videotestsrc ! ffmpegcolorspace ! pngenc snapshot=false newmedia=true ! multifilesink location=blah%d.png works as expected

2004-07-30  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_enc_chain),
	(theora_enc_set_property), (theora_enc_get_property):
	Fix encoding of non-multiple-of-16 video.

2004-07-29  David Schleef  <ds@schleef.org>

	* configure.ac: make test for audiofile more strict

2004-07-25  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  give different names to typefind functions

2004-07-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_calculate_pixel_aspect_ratio),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_getcaps),
	(gst_ximagesink_sink_link), (gst_ximagesink_change_state),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_set_property),
	(gst_ximagesink_get_property), (gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	  allocate PAR's dynamically.
	  use autodetected PAR if no object-set PAR is given.
	  add workaround for directfb's X not setting physical size.
	  fix to xvimagesink will follow tomorrow.

2004-07-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_chain): send tag events downstream
	* ext/shout2/gstshout2.c: (gst_shout2send_protocol_get_type),
	(gst_shout2send_get_type), (gst_shout2send_set_clock),
	(gst_shout2send_class_init), (gst_shout2send_init),
	(set_shout_metadata), (gst_shout2send_set_metadata),
	(gst_shout2send_chain), (gst_shout2send_set_property),
	(gst_shout2send_get_property), (gst_shout2send_connect),
	(gst_shout2send_change_state):
	* ext/shout2/gstshout2.h:
	- fix for sending mp3 audio to icecast2 server, if pad link function not
	called before PAUSED state
	- added option to use GStreamer clock sync (as opposed to libshout's own sync)
	- added tagging support for mp3 audio broadcasted
	* gst/monoscope/gstmonoscope.c: (gst_monoscope_class_init):
	debug info

2004-07-28  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_push):
	Return query failure when we don't know the length of
	an ogg stream insteda of returning TRUE with a bogus value.

2004-07-28  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_get_formats),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain):
	Don't screw up the 1 Chroma for 1 luma sample situation when we
	have an odd offset/width by adding a black border in those cases.

2004-07-28  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_get_formats),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain):
	* ext/theora/theoraenc.c: (theora_enc_sink_link):
	Added first attempt at cropping of the image as required by the
	theora spec. We need more properties in the caps (offset_x,
	offset_y,stride) to implement this correctly.

2004-07-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dvdnav/README:
	  Update the README to use dvddemux
	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_getcaps):
	  Ensure getcaps returns a subset of the template caps
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_base_init),
	(gst_mpeg2subt_init):
	  Ensure getcaps returns a subset of the template caps
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init),
	(gst_dvd_demux_init), (gst_dvd_demux_get_video_stream),
	(gst_dvd_demux_get_subpicture_stream),
	(gst_dvd_demux_send_subbuffer), (gst_dvd_demux_set_cur_subpicture):
	* gst/mpegstream/gstdvddemux.h:
	  Set the explicit caps on the current_video pad before pushing
	  anything
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
	(gst_mpeg_demux_get_audio_stream):
	  Free caps used to gst_pad_set_explicit_caps, which takes a const
	  GstCaps *

2004-07-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: update GStreamer requirement to 0.8.4 because of
	  GstFraction.

2004-07-28  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt),
	(gst_wavparse_handle_seek), (gst_wavparse_srcpad_event):
	Add the pad to the element after setting up the caps. This
	makes it a lot easier to autoplug.

2004-07-27  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/median/gstmedian.c:
	* gst/mpeg2subt/gstmpeg2subt.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegpacketize.c:
	* gst/rtjpeg/gstrtjpeg.c:
	* gst/rtjpeg/gstrtjpegdec.c:
	* gst/rtjpeg/gstrtjpegenc.c:
	* gst/sine/gstsinesrc.c:
	* gst/smooth/gstsmooth.c:
	* gst/smpte/gstsmpte.c:
	* gst/smpte/gstsmpte.h:
	* gst/stereo/gststereo.c:
	* gst/videofilter/gstgamma.c:
	* gst/videofilter/gstvideobalance.c:
	* gst/videofilter/gstvideofilter.c:
	* gst/videofilter/gstvideoflip.c:
	* gst/videoscale/gstvideoscale.c:
	* gst/videoscale/videoscale.c:
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/videotestsrc.c:
	* gst/wavenc/gstwavenc.c:
	* gst/wavparse/gstwavparse.c:
	  fix local includes and 64 bits constants

2004-07-27  Steve Lhomme  <steve.lhomme@free.fr>

	* win32/gst.sln:
	* gst-libs/gst/*/*.vcproj:
	* gst/*/*.vcproj:
	  more working plugins

2004-07-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* testsuite/alsa/Makefile.am:
	* testsuite/alsa/srcstate.c:
	add test for alsasrc changing state

2004-07-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/silence/gstsilence.c: (gst_silence_init), (gst_silence_link),
	(gst_silence_get):
	* gst/silence/gstsilence.h:
	fix silence generation for 16bit raw audio

2004-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_metadata),
	(gst_matroska_demux_video_caps), (gst_matroska_demux_plugin_init):
	* gst/mpegaudio/common.c:
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init),
	(gst_videoscale_getcaps), (gst_videoscale_link),
	(gst_videoscale_src_fixate), (gst_videoscale_init),
	(gst_videoscale_finalize):
	* gst/videoscale/gstvideoscale.h:
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_get_capslist):
	* gst/wavenc/gstwavenc.c:
	* sys/oss/gstossmixer.c: (fill_labels):
	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_handle_xevents),
	(gst_ximagesink_calculate_pixel_aspect_ratio),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_fixate),
	(gst_ximagesink_getcaps), (gst_ximagesink_sink_link),
	(gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id),
	(gst_ximagesink_set_property), (gst_ximagesink_get_property),
	(gst_ximagesink_init), (gst_ximagesink_class_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_calculate_pixel_aspect_ratio),
	(gst_xvimagesink_xcontext_get), (gst_xvimagesink_sink_link),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h:
	  first batch of pixel aspect ratio commits.

2004-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_class_init), (gst_ffmpegcolorspace_chain):
	* gst/ffmpegcolorspace/imgconvert.c: (avpicture_fill):
	  handle stride, needs work if we want to move stride handling
	  upstream, but works correctly for our purposes.

2004-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/README:
	  add testing examples
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_link),
	(gst_videoscale_chain):
	* gst/videoscale/videoscale.c: (gst_videoscale_setup),
	(gst_videoscale_get_size):
	  add get_size function that handles stride like videotestsrc.
	  fixes conversion for YUV formats for as much as I can test them.

2004-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy),
	(gst_xvimagesink_xvimage_put):
	  further cleanups, logging, error handling and synchronizing

2004-07-27  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type),
	(gst_videomixer_pad_class_init), (gst_videomixer_pad_get_property),
	(gst_videomixer_pad_set_property),
	(gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_init),
	(gst_video_mixer_background_get_type), (gst_videomixer_get_type),
	(gst_videomixer_class_init), (gst_videomixer_init),
	(gst_videomixer_getcaps), (gst_videomixer_request_new_pad),
	(gst_videomixer_blend_ayuv_i420), (pad_zorder_compare),
	(gst_videomixer_sort_pads), (gst_videomixer_fill_checker),
	(gst_videomixer_fill_color), (gst_videomixer_fill_queues),
	(gst_videomixer_blend_buffers), (gst_videomixer_update_queues),
	(gst_videomixer_loop), (plugin_init):
	Be a nicer negotiation citizen and provide a getcaps function on
	the srcpad. This also fixes a crash when resizing.

2004-07-27  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new): Some fixes to image size calculation.

2004-07-27  Wim Taymans  <wim@fluendo.com>

	* ext/libpng/gstpngdec.c: (gst_pngdec_src_getcaps):
	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init),
	(gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property),
	(gst_pngenc_set_property):
	* ext/libpng/gstpngenc.h:
	Added snapshot property to pngenc.
	removed g_print from pngdec

2004-07-27  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/ac3parse/ac3parse.vcproj
	* gst/adder/adder.vcproj
	* gst/alpha/alpha.vcproj
	* gst/alpha/alphacolor.vcproj
	* gst/asfdemux/asf.vcproj
	* gst/audioconvert/audioconvert.vcproj
	* gst/audiorate/audiorate.vcproj
	* gst/audioscale/audioscale.vcproj
	* gst/auparse/auparse.vcproj
	* gst/avi/avi.vcproj
	* gst/cdxaparse/cdxaparse.vcproj
	* gst/chart/chart.vcproj
	* gst/colorspace/colorspace.vcproj
	* gst/cutter/cutter.vcproj
	* gst/debug/debug.vcproj
	* gst/debug/efence.vcproj
	* gst/debug/navigationtest.vcproj
	* gst/deinterlace/deinterlace.vcproj
	* gst/effectv/effectv.vcproj
	* gst/ffmpegcolorspace/ffmpegcolorspace.vcproj
	* gst/filter/filter.vcproj
	* gst/flx/flxdec.vcproj
	* gst/goom/goom.vcproj
	* gst/interleave/interleave.vcproj
	* gst/law/alaw.vcproj
	* gst/law/mulaw.vcproj
	* gst/matroska/matroska.vcproj
	* gst/median/median.vcproj
	* gst/mixmatrix/mixmatrix.vcproj
	* gst/mpeg1sys/mpeg1systemencode.vcproj
	* gst/mpeg1videoparse/mp1videoparse.vcproj
	* gst/mpeg2sub/mpeg2subt.vcproj
	* gst/mpegaudio/mpegaudio.vcproj
	* gst/mpegaudioparse/mpegaudioparse.vcproj
	* gst/mpegstream/mpegstream.vcproj
	* gst/multifilesink/multifilesink.vcproj
	* gst/multipart/multipart.vcproj
	* gst/oneton/oneton.vcproj
	* gst/overlay/overlay.vcproj
	* gst/passthrough/passthrough.vcproj
	* gst/qtdemux/qtdemux.vcproj
	* gst/realmedia/rmdemux.vcproj
	* gst/rtjpeg/rtjpeg.vcproj
	* gst/rtp/rtp.vcproj
	* gst/silence/silence.vcproj
	* gst/sine/sinesrc.vcproj
	* gst/smooth/smooth.vcproj
	* gst/smpte/smpte.vcproj
	* gst/spectrum/spectrum.vcproj
	* gst/speed/speed.vcproj
	* gst/stereo/stereo.vcproj
	* gst/switch/switch.vcproj
	* gst/tags/tagedit.vcproj
	* gst/tcp/tcp.vcproj
	* gst/typefind/typefindfunctions.vcproj
	* gst/udp/udp.vcproj
	* gst/videobox/videobox.vcproj
	* gst/videocrop/videocrop.vcproj
	* gst/videodrop/videodrop.vcproj
	* gst/videofilter/gamma.vcproj
	* gst/videofilter/videobalance.vcproj
	* gst/videofilter/videofilter.vcproj
	* gst/videofilter/videoflip.vcproj
	* gst/videoflip/videoflip.vcproj
	* gst/videomixer/videomixer.vcproj
	* gst/videorate/videorate.vcproj
	* gst/videoscale/videoscale.vcproj
	* gst/videotestsrc/videotestsrc.vcproj
	* gst/virtualdub/virtualdub.vcproj
	* gst/volenv/volenv.vcproj
	* gst/volume/volume.vcproj
	* gst/wavenc/wavenc.vcproj
	* gst/wavparse/wavparse.vcproj
	* gst/y4m/y4menc.vcproj
	* gst-libs/gst/audio/audio.vcproj
	* gst-libs/gst/audio/audiofilter.vcproj
	* gst-libs/gst/colorbalance/colorbalance.vcproj
	* gst-libs/gst/idct/idtc.vcproj
	* gst-libs/gst/media-info/media-info.vcproj
	* gst-libs/gst/mixer/mixer.vcproj
	* gst-libs/gst/navigation/navigation.vcproj
	* gst-libs/gst/play/play.vcproj
	* gst-libs/gst/propertyprobe/propertyprobe.vcproj
	* gst-libs/gst/resample/resample.vcproj
	* gst-libs/gst/riff/riff.vcproj
	* gst-libs/gst/tuner/tuner.vcproj
	* gst-libs/gst/video/video.vcproj
	* gst-libs/gst/xoverlay/xoverlay.vcproj
	  avoid problems with math.h, fix release dependancy
	  rename GStreamer-0.8.lib to libgstreamer.lib

2004-07-27  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate): When
	the atom is not available we have to unlock the mutex. Fixes #148023

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst-libs/gst/media-info/media-info.h:
	  issue for a vararg macro with MSVC

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/effectv/effectv.vcproj
	* gst-libs/gst/idct/idct.vcproj:
	* gst-libs/gst/media-info/media-info.vcproj:
	* gst-libs/gst/navigation/navigation.vcproj:
	* gst-libs/gst/propertyprobe/propertyprobe.vcproj:
	* gst-libs/gst/video/video.vcproj:
	* gst-libs/gst/xoverlay/xoverlay.vcproj:
	  fixes for build problems

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst-libs/gst/audio/audio.def:
	* gst-libs/gst/audio/riff.def:
	  add some definitions needed by plugins

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/asfdemux/gstasfmux.c
	  Fix some 64 bits constants to be glib friendly

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/ac3parse/gstac3parse.c
	* gst/audioscale/gstaudioscale.c
	* gst/auparse/gstauparse.c
	* gst/colorspace/gstcolorspace.c
	* gst/colorspace/yuv2rgb.h
	  local include fixes

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* win32/gst.sln
	  add more plugins to the build

2004-07-26  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new): Some more fixes to image size calculation.

2004-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/level/gstlevel.c: (gst_level_link), (gst_level_chain),
	(gst_level_set_property), (gst_level_get_property),
	(gst_level_base_init), (gst_level_class_init):
	  add debugging categories.  cleanups.

2004-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/videoscale.c: (gst_videoscale_setup),
	(gst_videoscale_planar411), (gst_videoscale_planar400),
	(gst_videoscale_packed422), (gst_videoscale_packed422rev),
	(gst_videoscale_scale_nearest_str1),
	(gst_videoscale_scale_nearest_str2),
	(gst_videoscale_scale_nearest_str4),
	(gst_videoscale_scale_nearest_16bit),
	(gst_videoscale_scale_nearest_24bit):
	  fixed stride issues
	  tested with 320x240 -> 321, 322, 324 x240
	  tested with YV12, I420, YUY2, UYVY
	  fixed packed422rev (don't think it could have worked before)
	  by testing with UYVY

2004-07-26  Benjamin Otte  <otte@gnome.org>

	* ext/lame/gstlame.c: (gst_lame_sink_link), (gst_lame_init),
	(gst_lame_chain), (gst_lame_setup), (gst_lame_change_state),
	(plugin_init):
	  add debugging category, add error checks like checking return values
	  of setup calls, make sure it still works after
	  PLAYING=>NULL=>PLAYING, fix encoding of mono streams

2004-07-26  Wim Taymans  <wim@fluendo.com>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
	(gst_mpeg_demux_get_audio_stream),
	(gst_mpeg_demux_process_private):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_data):
	Check for error codes from the negotiation functions. Make sure
	we really set the pad caps when a new pad is created.

2004-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pix_fmt):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_pad_link):
	  don't make function do two things at the same time without reason.

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/ac3parse/ac3parse.vcproj
	* gst/adder/adder.vcproj
	* gst/alpha/alpha.vcproj
	* gst/alpha/alphacolor.vcproj
	* gst/asfdemux/asf.vcproj
	* gst/audioconvert/audioconvert.vcproj
	* gst/audiorate/audiorate.vcproj
	* gst/audioscale/audioscale.vcproj
	* gst/auparse/auparse.vcproj
	* gst/avi/avi.vcproj
	* gst/cdxaparse/cdxaparse.vcproj
	* gst/chart/chart.vcproj
	* gst/colorspace/colorspace.vcproj
	* gst/cutter/cutter.vcproj
	* gst/debug/debug.vcproj
	* gst/debug/efence.vcproj
	* gst/debug/navigationtest.vcproj
	* gst/deinterlace/deinterlace.vcproj
	* gst/effectv/effectv.vcproj
	* gst/ffmpegcolorspace/ffmpegcolorspace.vcproj
	* gst/filter/filter.vcproj
	* gst/flx/flxdec.vcproj
	* gst/goom/goom.vcproj
	* gst/interleave/interleave.vcproj
	* gst/law/alaw.vcproj
	* gst/law/mulaw.vcproj
	* gst/matroska/matroska.vcproj
	* gst/median/median.vcproj
	* gst/mixmatrix/mixmatrix.vcproj
	* gst/mpeg1sys/mpeg1systemencode.vcproj
	* gst/mpeg1videoparse/mp1videoparse.vcproj
	* gst/mpeg2sub/mpeg2subt.vcproj
	* gst/mpegaudio/mpegaudio.vcproj
	* gst/mpegaudioparse/mpegaudioparse.vcproj
	* gst/mpegstream/mpegstream.vcproj
	* gst/multifilesink/multifilesink.vcproj
	* gst/multipart/multipart.vcproj
	* gst/oneton/oneton.vcproj
	* gst/overlay/overlay.vcproj
	* gst/passthrough/passthrough.vcproj
	* gst/qtdemux/qtdemux.vcproj
	* gst/realmedia/rmdemux.vcproj
	* gst/rtjpeg/rtjpeg.vcproj
	* gst/rtp/rtp.vcproj
	* gst/silence/silence.vcproj
	* gst/sine/sinesrc.vcproj
	* gst/smooth/smooth.vcproj
	* gst/smpte/smpte.vcproj
	* gst/spectrum/spectrum.vcproj
	* gst/speed/speed.vcproj
	* gst/stereo/stereo.vcproj
	* gst/switch/switch.vcproj
	* gst/tags/tagedit.vcproj
	* gst/tcp/tcp.vcproj
	* gst/typefind/typefindfunctions.vcproj
	* gst/udp/udp.vcproj
	* gst/videobox/videobox.vcproj
	* gst/videocrop/videocrop.vcproj
	* gst/videodrop/videodrop.vcproj
	* gst/videofilter/gamma.vcproj
	* gst/videofilter/videobalance.vcproj
	* gst/videofilter/videofilter.vcproj
	* gst/videofilter/videoflip.vcproj
	* gst/videoflip/videoflip.vcproj
	* gst/videomixer/videomixer.vcproj
	* gst/videorate/videorate.vcproj
	* gst/videoscale/videoscale.vcproj
	* gst/videotestsrc/videotestsrc.vcproj
	* gst/virtualdub/virtualdub.vcproj
	* gst/volenv/volenv.vcproj
	* gst/volume/volume.vcproj
	* gst/wavenc/wavenc.vcproj
	* gst/wavparse/wavparse.vcproj
	* gst/y4m/y4menc.vcproj
	  more plugins supported under windows

2004-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_ximage_put), (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_chain), (gst_ximagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc):
	  Add debugging statements.  Use the sizes as returned by the
	  *CreateImage calls.

2004-07-26  Johan Dahlin  <johan@gnome.org>

	* gst/tcp/gsttcpclientsrc.c (gst_tcpclientsrc_get): Make sure that
	the pad is negotiated.

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c (gst_ffmpegcolorspace_chain): Ditto

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst-libs/gst/colorbalance/colorbalance.vcproj:
	* gst-libs/gst/idct/idct.vcproj:
	* gst-libs/gst/media-info/media-info.vcproj:
	* gst-libs/gst/mixer/mixer.vcproj:
	* gst-libs/gst/navigation/navigation.vcproj:
	* gst-libs/gst/play/play.vcproj:
	* gst-libs/gst/propertyprobe/propertyprobe.vcproj:
	* gst-libs/gst/resample/resample.vcproj:
	* gst-libs/gst/tuner/tuner.vcproj:
	* gst-libs/gst/video/video.vcproj:
	* gst-libs/gst/xoverlay/xoverlay.vcproj:
	  more plugins supported under windows

2004-07-25 Iain <iain@prettypeople.org>

	* gst/wavparse/gstwavparse.c (gst_wavparse_fmt): Set the caps on the
	pad now rather than when the pad is created because state changes wipe
	explicit caps (fixes #148043).

2004-07-25  Sebastien Cote  <sc5@hermes.usherb.ca>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstmad.c:
	  fix mad plugin crashing on Sun (fixes #148289)

2004-07-25  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/avi/avi.def:
	* gst/avi/avi.vcproj:
	* gst/matroska/matroska.def:
	* gst/matroska/matroska.vcproj:
	  remove unused .def files

2004-07-25  Steve Lhomme  <steve.lhomme@free.fr>

	* gst-libs/gst/audio/gstaudiofilter.c:
	  Clean the local include

2004-07-25  Steve Lhomme  <steve.lhomme@free.fr>

	* win32/gst.sln:
	* gst-libs/gst/audio/audio.def:
	* gst-libs/gst/audio/audio.vcproj:
	* gst-libs/gst/audio/audiofilter.vcproj:
	* gst-libs/gst/audio/riff.def:
	* gst-libs/gst/audio/riff.vcproj:
	* gst-libs/gst/gst-libs.def:
	* gst-libs/gst/gst-libs.vcproj:
	* gst/avi/avi.vcproj:
	* gst/avi/avi.vcproj:
	  Copy the files where needed after building, cleaner projects

2004-07-25  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/matroska/ebml-write.c:
	  Fix some 64 bits constants to be glib friendly

2004-07-24  Steve Lhomme  <steve.lhomme@free.fr>

	* win32/gst.sln:
	* gst-libs/gst/gst-libs.def:
	* gst-libs/gst/gst-libs.vcproj:
	* gst/matroska/matroska.def:
	* gst/matroska/matroska.vcproj:
	  Add the preliminary canvas to build plugins on Win32

2004-07-23  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	  don't enfore negotiation from source side, it breaks
	  sinesrc ! audioconvert ! osssink

2004-07-22  David Schleef  <ds@schleef.org>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init): Add typefind
	for ELF files, since they can easily be recognized as audio/mpeg.
	(bug #147441)

2004-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/videoscale.c: (gst_videoscale_setup),
	(gst_videoscale_planar411), (gst_videoscale_scale_nearest_32bit),
	(gst_videoscale_scale_nearest_24bit),
	(gst_videoscale_scale_nearest_16bit):
	  fix 16bit and 24bit for stride (24bit might need testing)
	  don't pretend we do more than one algorithm

2004-07-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	* gst/Makefile.am:
	* gst/multifilesink/Makefile.am:
	* gst/multifilesink/gstmultifilesink.c:
	(gst_multifilesink_get_formats),
	(gst_multifilesink_get_query_types), (_do_init),
	(gst_multifilesink_base_init), (gst_multifilesink_class_init),
	(gst_multifilesink_init), (gst_multifilesink_dispose),
	(gst_multifilesink_set_location), (gst_multifilesink_set_property),
	(gst_multifilesink_get_property), (gst_multifilesink_open_file),
	(gst_multifilesink_close_file), (gst_multifilesink_next_file),
	(gst_multifilesink_pad_query), (gst_multifilesink_handle_event),
	(gst_multifilesink_chain), (gst_multifilesink_change_state),
	(gst_multifilesink_uri_get_type),
	(gst_multifilesink_uri_get_protocols),
	(gst_multifilesink_uri_get_uri), (gst_multifilesink_uri_set_uri),
	(gst_multifilesink_uri_handler_init), (plugin_init):
	* gst/multifilesink/gstmultifilesink.h:
	* testsuite/Makefile.am:
	* testsuite/multifilesink/Makefile.am:
	* testsuite/multifilesink/fakesrc_test.c: (gst_newmedia_base_init),
	(gst_newmedia_class_init), (gst_newmedia_init),
	(gst_newmedia_chain), (gst_newmedia_trigger), (test_format),
	(newfile_signal), (test_signal), (main):
	multifilesink plugin for creating new files every time a new media
	discontinuity event occurs

2004-07-22  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/Makefile.am:
	* gst/alpha/gstalphacolor.c: (gst_alpha_color_get_type),
	(gst_alpha_color_base_init), (gst_alpha_color_class_init),
	(gst_alpha_color_init), (gst_alpha_color_set_property),
	(gst_alpha_color_get_property), (gst_alpha_color_sink_link),
	(transform), (gst_alpha_color_chain),
	(gst_alpha_color_change_state), (plugin_init):
	Stupid plugin to to RGBA to AYUV conversion because none of
	the colorspace plugins can handle that yet.

2004-07-22  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (update_scale), (main):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_is_dynamic),
	(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
	(gst_decode_bin_init), (gst_decode_bin_dispose),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(no_more_pads), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (queue_overrun),
	(gen_preroll_element), (remove_prerolls), (unknown_type),
	(no_more_pads), (new_stream), (setup_source),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
	(play_base_eos), (gst_play_base_bin_change_state),
	(gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	* gst/playback/gststreaminfo.h:
	More playback updates, attempt to fix things after the state change
	breakage.

2004-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/videoscale.c: (gst_videoscale_planar411),
	(gst_videoscale_scale_nearest_16bit):
	  comment algorithm

2004-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_class_init), (gst_videotestsrc_src_link),
	(gst_videotestsrc_init), (gst_videotestsrc_get),
	(gst_videotestsrc_set_pattern), (gst_videotestsrc_set_property),
	(gst_videotestsrc_get_property):
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.c:
	* gst/videotestsrc/videotestsrc.h:
	  cleanup and commenting

2004-07-21  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init),
	(gst_ogg_demux_get_formats), (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_demux_src_convert),
	(gst_ogg_demux_handle_event), (gst_ogg_demux_seek_before),
	(_find_chain_get_unknown_part), (_find_streams_check),
	(gst_ogg_demux_push), (gst_ogg_pad_push):
	* ext/theora/theoradec.c: (theora_get_formats),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
	(vorbis_dec_convert), (vorbis_dec_src_query),
	(vorbis_dec_src_event), (vorbis_dec_event):
	More seeking fixes, oggdemux now supports seeking to time and
	uses the downstream element to convert granulepos to time.
	Seeking in theora-only ogg files now works.

2004-07-21  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_init),
	(theora_get_formats), (theora_get_event_masks),
	(theora_get_query_types), (theora_dec_src_convert),
	(theora_dec_sink_convert), (theora_dec_src_query),
	(theora_dec_src_event), (theora_dec_event), (theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
	(vorbis_get_event_masks), (vorbis_get_query_types),
	(gst_vorbis_dec_init), (vorbis_dec_convert),
	(vorbis_dec_src_query), (vorbis_dec_src_event), (vorbis_dec_event):
	Added query/convert/formats functions to vorbis and theora decoders
	so that the outside world can use them too. Fixed seeking on an
	ogg/theora/vorbis file by disabling the seeking seeking on the
	theora srcpad.

2004-07-21  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_renegotiate_size), (gst_ximagesink_sink_link),
	(gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id): Optimize
	images creation for both elements. We don't create the image on caps
	nego or renego, we just destroy the internal one if present if it does
	not match the needs. The chain function takes care of creating a new
	image when needed.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_xwindow_decorate), (gst_xvimagesink_sink_link),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_set_xwindow_id): Additionally xvimage now contains
	the image format information. The buffer pool checks for the context
	image format and discard images with different formats.
	* sys/xvimage/xvimagesink.h: Adding im_format in the xvimage structure.

2004-07-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_chain):
	  no point in doing any chaining if the pad we want to push from
	  isn't usable.

2004-07-20  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data):
	  Fix double end-to-native symbol conversion (#148021).

2004-07-20  David Schleef  <ds@schleef.org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate):
	Don't use an Atom that doesn't exist.

2004-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer):
	* gst/tcp/gstmultifdsink.h:
	More multifdsink stats. Avoid deadlock by releasing locks
	before sending out a signal.

2004-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/hu.po:
	  added Hungarian translation (Laszlo Dvornik)

2004-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer):
	* gst/tcp/gsttcp-marshal.list:
	Fixed the stupid marshal definition.

2004-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_init), (gst_multifdsink_add),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_chain),
	(gst_multifdsink_set_property), (gst_multifdsink_get_property),
	(gst_multifdsink_init_send):
	* gst/tcp/gstmultifdsink.h:
	Added more stats, added timeout for a client, fixed some typos
	and added some comments.

2004-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp-marshal.list:
	Added get_stats method that returns a GValueArray of
	stats values.

2004-07-19  Benjamin Otte  <otte@gnome.org>

	* ext/ladspa/gstladspa.c: (gst_ladspa_base_init):
	  make sure longname, description and author are valid UTF-8

2004-07-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_change_state),
	(gst_ximagesink_set_property):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state),
	(gst_xvimagesink_set_property):
	  make sure SYNCHRONOUS is respected after getting the X context

2004-07-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_src_event),
	(gst_matroska_demux_parse_blockgroup):
	* gst/matroska/matroska-ids.h:
	  add BlockReference tag and ignore it to clear out log.
	  ignore NAVIGATION events to clear out log.

2004-07-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init),
	(gst_matroska_demux_add_stream):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init):
	  add debug categories

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* ext/libpng/Makefile.am:
	* ext/libpng/gstpng.c: (plugin_init):
	* ext/libpng/gstpngdec.c: (user_error_fn), (user_warning_fn),
	(gst_pngdec_get_type), (gst_pngdec_base_init),
	(gst_pngdec_class_init), (gst_pngdec_sinklink), (gst_pngdec_init),
	(gst_pngdec_src_getcaps), (user_read_data), (gst_pngdec_chain):
	* ext/libpng/gstpngdec.h:
	Added png decoder.

2004-07-16  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xerror),
	(gst_ximagesink_check_xshm_calls), (gst_ximagesink_ximage_new),
	(gst_ximagesink_ximage_destroy), (gst_ximagesink_sink_link),
	(gst_ximagesink_chain), (gst_ximagesink_buffer_free),
	(gst_ximagesink_buffer_alloc):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
	(gst_xvimagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.h: Getting the 2 video sinks synchronized
	again. Using internal data pointer of the x(v)image to store image's
	data to be coherent with the buffer alloc mechanism. Investigated the
	image destruction code to be sure that everything gets freed correctly.

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data),
	(gst_riff_read_strf_auds_with_data):
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_add_stream), (gst_avi_demux_stream_header):
	Make sure we don't create 0 sized subbuffers in riff-read.
	Signal the no more pads signal after reading the avi header.

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_is_dynamic),
	(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
	(gst_decode_bin_init), (gst_decode_bin_dispose),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(no_more_pads), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(gst_decode_bin_change_state), (plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (queue_overrun),
	(gen_preroll_element), (remove_prerolls), (unknown_type),
	(no_more_pads), (new_stream), (setup_source),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
	(play_base_eos), (gst_play_base_bin_change_state),
	(gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	Better error recovery. Added configurable preroll queue size. Faster
	detection of no-more-pads.

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/video/video.h:
	Added 32 bits RGBA. Not sure if we should use another mime-type
	for alpha rgb. Currently the presence of the alpha_mask property
	signals an alpha channel.

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	FPS seems to be 0.0 to MAX everywhere else.

2004-07-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  mp42/mp43 (no caps) exist too.
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps):
	  Set pixel_width/height; we've got them in-caps.
	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	* gst/wavparse/gstwavparse.c: (plugin_init):
	  Both are valid primary.
	* sys/oss/gstossmixer.c:
	  Remove i18n hack and enable translations.

2004-07-15  Benjamin Otte  <otte@gnome.org>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy):
	  fix for non-shm xv. Original patch by Tim Ringenbach (fixes #147248)

2004-07-15  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
	(gst_alsa_sw_params_dump), (gst_alsa_hw_params_dump),
	(gst_alsa_close_audio):
	  disable some of the debugging code for now. Writing debugging to a
	  buffer is broken in current alsalib releases.

2004-07-12  Benjamin Otte  <otte@gnome.org>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer):
	  use bufferpools

2004-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(theora_dec_src_query), (theora_dec_event):
	* ext/theora/theoraenc.c: (gst_theora_enc_class_init):
	  add debugging categories.  Remove \n's.

2004-07-13  Johan Dahlin  <johan@gnome.org>

	* gst/playback/gstplaybin.c (gst_play_bin_set_property)
	(gst_play_bin_get_property): Impl.

2004-07-13  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_seek_before):
	When trying to find the stream length, seek back N pages
	instead of just one, where N is the number of streams in
	the current chain.

2004-07-13  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data),
	(gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	* gst-libs/gst/riff/riff-media.h:
	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data),
	(gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_auds):
	* gst-libs/gst/riff/riff-read.h:
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_add_stream):
	Set codec_data on caps for avidemuxer.

2004-07-12  David Schleef  <ds@schleef.org>

	* configure.ac: Fix test for Objective C

2004-07-12  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_get_capslist),
	(gst_gdk_pixbuf_chain):
	  Add svg and pcx to template caps, and ensure that getcaps returns a
	  subset of the template caps.
	  Copy each row manually for output, as gdkpixbuf may pad the
	  rowstride to a 32-bit word boundary.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
	(gst_riff_create_video_template_caps):
	Fix the template caps to include some more media types.

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

	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (print_feature), (gst_decode_bin_init),
	(gst_decode_bin_dispose), (find_compatibles), (close_pad_link),
	(try_to_link_1), (new_pad), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(gst_decode_bin_change_state), (plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (queue_overrun),
	(gen_preroll_element), (remove_prerolls), (no_more_pads),
	(new_stream), (setup_source), (gst_play_base_bin_set_property),
	(gst_play_base_bin_get_property), (play_base_eos),
	(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gen_video_element),
	(gen_audio_element), (remove_sinks), (setup_sinks),
	(gst_play_bin_change_state), (gst_play_bin_get_event_masks),
	(gst_play_bin_send_event), (gst_play_bin_get_formats),
	(gst_play_bin_convert), (gst_play_bin_get_query_types),
	(gst_play_bin_query), (plugin_init):
	* gst/playback/test4.c: (main):
	More fixes on reusing of the element.

2004-07-11  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstmad.c: (normal_seek):
	  allow seeking for other methods than just SET

2004-07-11  Andy Wingo  <wingo@pobox.com>

	* gst/audioconvert/gstaudioconvert.c (gst_audio_convert_link): For
	float, "any" caps -> buffer_frames=[0,MAX].

	* gst/interleave/interleave.c (interleave_getcaps): Seems the core
	doesn't intersect our caps with the template any more. Do it
	ourselves.
	(interleave_buffered_loop): Use g_newa instead of malloc/free.

2004-07-09  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (print_feature), (gst_decode_bin_init),
	(gst_decode_bin_dispose), (find_compatibles), (close_pad_link),
	(try_to_link_1), (new_pad), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(gst_decode_bin_change_state), (plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (queue_overrun),
	(gen_preroll_element), (remove_prerolls), (no_more_pads),
	(new_stream), (setup_source), (gst_play_base_bin_set_property),
	(gst_play_base_bin_get_property), (play_base_eos),
	(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gen_video_element),
	(gen_audio_element), (remove_sinks), (setup_sinks),
	(gst_play_bin_change_state), (gst_play_bin_get_event_masks),
	(gst_play_bin_send_event), (gst_play_bin_get_formats),
	(gst_play_bin_convert), (gst_play_bin_get_query_types),
	(gst_play_bin_query), (plugin_init):
	* gst/playback/test4.c: (main):
	Work on object reuse and seeking.

2004-07-09  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (iterate):
	Don't consume all CPU in the idle loop.

2004-07-09  Wim Taymans  <wim@fluendo.com>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_new_output_pad),
	(gst_mpeg_demux_parse_packet), (gst_mpeg_demux_process_private):
	Add pad to element *after* setting the pad functions so that
	the scheduler can use the correct ones.

2004-07-09  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_from_granulepos),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_chain):
	Sync to keyframe after seek

2004-07-09  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
	(gst_alsa_sink_loop), (gst_alsa_sink_change_state):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_change_state):
	* ext/libvisual/visual.c: (gst_visual_change_state):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_change_state):
	* ext/theora/theoradec.c: (theora_dec_change_state):
	* ext/theora/theoraenc.c: (theora_enc_change_state):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_change_state):
	* gst-libs/gst/navigation/navigation.c:
	* gst/adder/gstadder.c: (gst_adder_change_state):
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_get_buffer):
	* gst/multipart/multipartdemux.c:
	(gst_multipart_demux_change_state):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_change_state):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
	* gst/videoscale/gstvideoscale.c:
	(gst_videoscale_handle_src_event):
	* gst/volume/gstvolume.c: (volume_chain_int16):
	  don't assert in state change, this should be done by the base
	  GstElement class.
	  various debugging fixes.

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup),
	(gst_play_dispose), (gst_play_set_location),
	(gst_play_set_data_src), (gst_play_set_video_sink),
	(gst_play_set_audio_sink), (gst_play_set_visualization),
	(gst_play_connect_visualization), (gst_play_get_sink_element),
	(gst_play_get_all_by_interface):
	* gst-libs/gst/play/play.h:
	  add new method to get elements implementing an interface.
	  add various error logging

2004-07-08  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_dv_pipeline), (make_avi_pipeline),
	(make_mpeg_pipeline), (make_mpegnt_pipeline),
	(make_playerbin_pipeline), (query_durations_elems),
	(query_durations_pads), (query_positions_elems),
	(query_positions_pads), (update_scale), (iterate), (stop_seek),
	(main):
	Added playbin seeking example.

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst-libs/gst/play/play.c: (gst_play_set_location),
	(gst_play_set_data_src), (gst_play_set_video_sink),
	(gst_play_set_audio_sink), (gst_play_set_visualization),
	(gst_play_connect_visualization), (gst_play_get_framerate):
	  use a macro to look up elements from hash table

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup),
	(gst_play_get_length_callback), (gst_play_set_location),
	(gst_play_seek_to_time), (gst_play_set_data_src),
	(gst_play_set_video_sink), (gst_play_set_audio_sink),
	(gst_play_set_visualization), (gst_play_connect_visualization),
	(gst_play_get_sink_element):
	- add debugging info
	- fix looking up sink elements by iterating over complete caps
	- put everything except for source and autoplugger in a complete bin

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/alsa/gstalsa.c: (gst_alsa_drain_audio):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_flush_one_pad),
	(gst_alsa_sink_check_event), (gst_alsa_sink_mmap),
	(gst_alsa_sink_write), (gst_alsa_sink_loop):
	* ext/alsa/gstalsasink.h:
	- add debugging info
	- clean up schizophrenia of data/buffer/event
	- fix double event unref error

2004-07-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/Makefile.am:
	Add headers to noinst

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* tools/gst-launch-ext-m.m:
	* tools/gst-launch-ext.1.in:
	  convert to the third millenium

2004-07-07  David Schleef  <ds@schleef.org>

	* sys/dxr3/Makefile.am: noinst_SOURCES should be nodist_SOURCES

2004-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/playback/Makefile.am:
	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (print_feature), (gst_decode_bin_init),
	(gst_decode_bin_dispose), (find_compatibles), (close_pad_link),
	(try_to_link_1), (new_pad), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (rebuild_pipeline), (queue_overrun),
	(gen_preroll_element), (no_more_pads), (new_stream),
	(setup_source), (gst_play_base_bin_set_property),
	(gst_play_base_bin_get_property), (gst_play_base_bin_change_state),
	(gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gen_video_element),
	(gen_audio_element), (setup_sinks), (gst_play_bin_change_state),
	(gst_play_bin_get_event_masks), (gst_play_bin_send_event),
	(gst_play_bin_get_formats), (gst_play_bin_convert),
	(gst_play_bin_get_query_types), (gst_play_bin_query),
	(plugin_init):
	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
	(gst_stream_info_get_type), (gst_stream_info_class_init),
	(gst_stream_info_init), (gst_stream_info_new),
	(gst_stream_info_dispose), (gst_stream_info_set_property),
	(gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	* gst/playback/test.c: (gen_video_element), (gen_audio_element),
	(main):
	* gst/playback/test2.c: (main):
	* gst/playback/test3.c: (update_scale), (main):
	More playbin fixes. Added README. Do better element filtering.
	Added base class to preroll media. Added test apps.

2004-07-07  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_flush_decoder):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  various debugging improvements.  Reset stream to next picture
	  instead of sequence header, otherwise seeks cannot work.

2004-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/videobox/gstvideobox.c: (gst_video_box_fill_get_type),
	(gst_video_box_class_init), (gst_video_box_set_property),
	(gst_video_box_i420), (gst_video_box_ayuv), (gst_video_box_chain):
	Use pad_alloc where possible.

2004-07-07  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstosselement.c: (gst_osselement_reset),
	(gst_osselement_parse_caps):
	* sys/oss/gstosselement.h:
	* sys/oss/gstosssrc.c: (gst_osssrc_get):
	Fix offset on osssrc.

2004-07-07  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theora.c: (plugin_init):
	* ext/theora/theoradec.c: (theora_dec_from_granulepos),
	(theora_dec_src_query), (theora_dec_chain):
	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_buffer_from_packet),
	(theora_push_packet), (theora_enc_chain):
	Fix theora granulepos calculation.
	Fix overflow in duration/position calculation.
	Bump rank to PRIMARY for theoradec.
	Use granulepos of last packet to calculate position.
	Set keyframe flag on buffers when needed.

2004-07-06  David Schleef  <ds@schleef.org>

	* gst/playback/Makefile.am: 'test' in bin_PROGRAMS?  Are you
	serious?  (Fixed, obviously.)

2004-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/cs.po:
	  added Czech translation (Miloslav Trmac)

2004-07-05  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (gst_decode_bin_init), (gst_decode_bin_dispose),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(close_link), (type_found), (gst_decode_bin_set_property),
	(gst_decode_bin_get_property), (gst_decode_bin_get_event_masks),
	(gst_decode_bin_send_event), (gst_decode_bin_get_formats),
	(gst_decode_bin_convert), (gst_decode_bin_get_query_types),
	(gst_decode_bin_query), (plugin_init):
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (rebuild_pipeline), (get_audio_element),
	(get_video_element), (new_pad), (setup_source),
	(gst_play_bin_set_property), (gst_play_bin_get_property),
	(gst_play_bin_change_state), (gst_play_bin_add_element),
	(gst_play_bin_remove_element), (gst_play_bin_get_event_masks),
	(gst_play_bin_send_event), (gst_play_bin_get_formats),
	(gst_play_bin_convert), (gst_play_bin_get_query_types),
	(gst_play_bin_query), (gst_play_bin_get_clock), (plugin_init):
	* gst/playback/test.c: (main):
	More fixes, cleaned up playbin, make it use decodebin. Added
	threaded property to playbin.

2004-07-05  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/playback/Makefile.am:
	* gst/playback/decodetest.c: (main):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (gst_decode_bin_init), (gst_decode_bin_dispose),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(close_link), (type_found), (gst_decode_bin_set_property),
	(gst_decode_bin_get_property), (gst_decode_bin_change_state),
	(gst_decode_bin_get_event_masks), (gst_decode_bin_send_event),
	(gst_decode_bin_get_formats), (gst_decode_bin_convert),
	(gst_decode_bin_get_query_types), (gst_decode_bin_query),
	(plugin_init):
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (gen_default_output), (rebuild_pipeline),
	(collect_sink_pads), (find_compatibles), (close_pad_link),
	(try_to_link_1), (new_pad), (close_link), (type_found),
	(setup_source), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gst_play_bin_factory_filter),
	(compare_ranks), (gst_play_bin_collect_factories),
	(gst_play_bin_change_state), (gst_play_bin_add_element),
	(gst_play_bin_remove_element), (gst_play_bin_get_event_masks),
	(gst_play_bin_send_event), (gst_play_bin_get_formats),
	(gst_play_bin_convert), (gst_play_bin_get_query_types),
	(gst_play_bin_query), (gst_play_bin_get_clock), (plugin_init):
	* gst/playback/test.c: (main):
	Added some playback helper elements and some test apps, very alpha
	still.

2004-07-04  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_xrun_recovery):
	  only restart audio when we indeed have an xrun to fix repeated
	  xruns. Fix suggested by Giuliano Pochini.

2004-07-03  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsaplugin.c: (gst_alsa_error_wrapper): Disable
	call to gst_debug_log() if debugging is disabled (bug #145118)

2004-07-03  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_xrun_recovery):
	  use our own functions for restarting the alsa device.
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  I should apply patches myself - use MIN for the third argument, not
	  the second, this fixes seeking

2004-07-02  David Schleef  <ds@schleef.org>

	* ext/flac/gstflacdec.c: (gst_flacdec_class_init),
	(gst_flacdec_write):  Actually, GST_PAD_CAPS() has nothing to
	do with the logic.

2004-07-02  David Schleef  <ds@schleef.org>

	* ext/flac/gstflacdec.c: (gst_flacdec_write):  Set duration on
	output buffers.  Fix logic mistake.  (bug #144866)

2004-07-02  David Schleef  <ds@schleef.org>

	* gst-libs/gst/xoverlay/Makefile.am: xoverlay no longer depends
	on X.  (bug #144753)

2004-07-02  David Schleef  <ds@schleef.org>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_setup),
	(gst_wavenc_stop_file): Switch to GST_WRITE_UINT32_LE macros
	(bug #144624)
	* sys/oss/gstosselement.c: (gst_osselement_probe_caps),
	(gst_osselement_rate_probe_check): Add another workaround for
	buggy drivers (bug #145336)

2004-07-02  David Schleef  <ds@schleef.org>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_handle_client_write):
	Most systems don't have MSG_NOSIGNAL.

2004-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/tuner/Makefile.am:
	  (hopefully) fix both install and dist and make error message useful.
	  needs testing across automakes.

2004-07-02  Benjamin Otte  <otte@gnome.org>

	* ext/ogg/gstogg.c: (plugin_init):
	  we require bytestream now
	* ext/ogg/gstoggdemux.c:
	  huge diff to implement chain setup in a fast and generic way. This
	  improves tag reading and startup of huge files (read: Theora videos)
	  quite a bit. It probably contains bugs, too, so please test.
	  Seeking is not improved to the fast method.

2004-06-29  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	* ext/ogg/gstoggmux.c:
	Fix memleak in oggdemux when running unconnected pads.
	doc update in mux, start working on keyframe mode.

2004-06-29  Benjamin Otte  <otte@gnome.org>

	* sys/oss/gstosssink.c:
	* sys/oss/gstosssrc.c:
	  advertise correct template caps - we indeed do non-native endianness
	  and 8bit audio has no endianness
	* sys/ximage/ximagesink.c: (gst_ximagesink_getcaps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_getcaps):
	  avoid (wrong) duplications in getcaps function and return
	  template caps

2004-06-29  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_multifdsink_class_init), (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_clear),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_thread),
	(gst_multifdsink_init_send), (gst_multifdsink_close):
	Fix wrong GList iteration that could crash the server when
	more then 2 clients disconnect at the same time. Read all the
	pending commands in one batch to recover from command storms under
	very heavy load.

2004-06-28  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type),
	(gst_videomixer_pad_class_init), (gst_videomixer_pad_get_property),
	(gst_videomixer_pad_set_property),
	(gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_init),
	(gst_video_mixer_background_get_type), (gst_videomixer_get_type),
	(gst_videomixer_class_init), (gst_videomixer_init),
	(gst_videomixer_request_new_pad), (gst_videomixer_blend_ayuv_i420),
	(pad_zorder_compare), (gst_videomixer_sort_pads),
	(gst_videomixer_fill_checker), (gst_videomixer_fill_color),
	(gst_videomixer_fill_queues), (gst_videomixer_blend_buffers),
	(gst_videomixer_update_queues), (gst_videomixer_loop),
	(plugin_init):
	Avoid divide by zero, choose masterpad as the pad with the highest
	framerate.

2004-06-27  Julien Moutte  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate),
	(gst_ximagesink_xwindow_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate),
	(gst_xvimagesink_xwindow_new): I prefer locking the mutex in the
	function directly. We might want to call it from somewhere else one day.

2004-06-27  Julien Moutte  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate),
	(gst_ximagesink_xwindow_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate),
	(gst_xvimagesink_xwindow_new): Trying to fix the random behaviour of
	window decorations.

2004-06-27  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_class_init), (gst_dvdec_init),
	(gst_dvdec_video_getcaps), (gst_dvdec_video_link),
	(gst_dvdec_push), (gst_dvdec_loop), (gst_dvdec_change_state),
	(gst_dvdec_set_property), (gst_dvdec_get_property):
	* ext/dv/gstdvdec.h:
	Implement drop_factor property to lower the framerate with
	a factor.

2004-06-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/tuner/Makefile.am:
	  unbreak Company's fix that didn't install the -enum.h files

2004-06-27  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_push), (gst_dvdec_loop),
	(gst_dvdec_change_state):
	* ext/dv/gstdvdec.h:
	Fix timestamp, duration and offset of the buffers.

2004-06-27  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_multifdsink_class_init), (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_clear),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_thread),
	(gst_multifdsink_init_send), (gst_multifdsink_close):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpserversink.c:
	(gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_handle_select), (gst_tcpserversink_close):
	More multifdsink fixes, more recovery policy fixes.
	Removed stupid g_print

2004-06-26  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/Makefile.am:
	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_multifdsink_get_type), (gst_multifdsink_base_init),
	(gst_multifdsink_class_init), (gst_multifdsink_init),
	(gst_multifdsink_debug_fdset), (gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_thread),
	(gst_multifdsink_chain), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property), (gst_multifdsink_init_send),
	(gst_multifdsink_close), (gst_multifdsink_change_state):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpplugin.c: (plugin_init):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_get_type),
	(gst_tcpserversink_class_init), (gst_tcpserversink_init),
	(gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_handle_select),
	(gst_tcpserversink_set_property), (gst_tcpserversink_get_property),
	(gst_tcpserversink_init_send), (gst_tcpserversink_close):
	* gst/tcp/gsttcpserversink.h:
	Added multifdsink, made tcpserversink a subclass of fdsink, removed
	one of the locks, added recovery policy to multifdsink.

2004-06-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videorate/gstvideorate.c: (gst_videorate_chain):
	  fix decision for when getting frames with same timestamp
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init),
	(gst_v4lsrc_get), (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	* sys/v4l/gstv4lsrc.h:
	  add latency offset property

2004-06-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videorate/gstvideorate.c: (gst_videorate_chain),
	(plugin_init):
	  fix debugging. add category.

2004-06-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
          fix wrong offsets

2004-06-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsasrc.c: (gst_alsa_src_init),
	(gst_alsa_src_get_time), (gst_alsa_src_loop),
	(gst_alsa_src_change_state):
	  return a time that is in sync with the element's processing

2004-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_init), (gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_client_remove),
	(gst_tcpserversink_handle_client_read),
	(gst_tcpserversink_client_queue_data),
	(gst_tcpserversink_client_queue_caps),
	(gst_tcpserversink_client_queue_buffer),
	(gst_tcpserversink_handle_client_write),
	(gst_tcpserversink_queue_buffer),
	(gst_tcpserversink_handle_clients), (gst_tcpserversink_thread),
	(gst_tcpserversink_chain), (gst_tcpserversink_set_property),
	(gst_tcpserversink_get_property), (gst_tcpserversink_init_send),
	(gst_tcpserversink_close):
	* gst/tcp/gsttcpserversink.h:
	Serversink rewrite. Really do non blocking writes to clients and
	maintain an internal queue to handle slower clients while not
	disturbing fast clients.

2004-06-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get):
	  better debug, don't override OFFSET and OFFSET_END

2004-06-25  Iain <iain@prettypeople.org>

	* gst-libs/gst/media-info/media-info-priv.c (gmi_set_mime): Add
	name=source for the wavparse pipeline.

2004-06-24  Johan Dahlin  <johan@gnome.org>

	* ext/theora/theoraenc.c (theora_enc_chain): Call
	gst_pad_try_set_caps instead of gst_pad_set_explicit_caps so the
	streamheader caps are set correctly.

2004-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (raw_caps_factory),
	(gst_vorbisenc_setup), (gst_vorbisenc_set_property):
	  respect minimum bitrate; same could be done for max bitrate

2004-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (raw_caps_factory),
	(gst_vorbisenc_setup):
	  fix sample rate range

2004-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_class_init),
	(gst_oggvorbisenc_setup):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_class_init),
	(gst_vorbisenc_setup):
	  resolve ambiguities in code and description

2004-06-24  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsa.c: (gst_alsa_start), (gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_init),
	(gst_alsa_src_update_avail), (gst_alsa_src_loop):
	Use alsa trigger_tstamp to get the timestamp of the first
	sample in the buffer for more precise sync. Some cleanups.

2004-06-24  Wim Taymans  <wim@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audiorate_link),
	(gst_audiorate_init), (gst_audiorate_chain),
	(gst_audiorate_set_property), (gst_audiorate_get_property):
	* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
	(gst_videorate_chain):
	Added some logging, fixed an overflow bug in videorate.

2004-06-24  Benjamin Otte  <otte@gnome.org>

	* ext/kio/Makefile.am:
	  fix for builddir != srcdir and distcheck

2004-06-24  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/tuner/Makefile.am:
	* gst/tcp/Makefile.am:
	* sys/dxr3/Makefile.am:
	  don't include -enumtypes.[ch] or -marshal.[ch] files in the disted
	  tarball.
	  Also add all *.list files that were missing.
	* Makefile.am:
	  add a distcheck hook to ensure the above doesn't happen again.

2004-06-23  David I. Lehn  <dlehn@users.sourceforge.net>

	* ext/Makefile.am: s/DTS_DIR=dvdread/DTS_DIR=dts/

2004-06-23  Colin Walters  <walters@redhat.com>

	* m4/Makefile.am: Distribute gst-fionread.m4.

2004-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: back to dev

2004-06-23  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start),
	(gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
	(gst_alsa_sink_loop), (gst_alsa_sink_get_time):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_init),
	(gst_alsa_src_get_time), (gst_alsa_src_update_avail),
	(gst_alsa_src_loop):
	Add clock to alsasrc. Take new capture timestamp when
	restarting after an overrun. Split up some functions between
	alsasrc and alsasink.

=== release 0.8.2 ===

2004-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_dispose),
	(gst_alsa_change_state), (gst_alsa_update_avail),
	(gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  merge back changes from release

2004-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audiorate_class_init),
	(gst_audiorate_init), (gst_audiorate_chain),
	(gst_audiorate_set_property), (gst_audiorate_get_property):
	Implement sample dropping and notify

2004-06-22  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_buffer_from_packet),
	(theora_push_packet), (theora_enc_chain):
	Some cleanups, make sure the timestamps are correct.

2004-06-22  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsa.c: (gst_alsa_get_time), (gst_alsa_clock_update),
	(gst_alsa_change_state), (gst_alsa_update_avail),
	(gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
	Cleanups, take queued samples into account when reporting
	the time.

2004-06-22  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
	(gst_videorate_init):
	Initialize the property as well.

2004-06-22  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
	(gst_videorate_init), (gst_videorate_chain),
	(gst_videorate_set_property), (gst_videorate_get_property):
	Add property to make videorate silent.
	Add property to prefer new frames over old ones.

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/osxvideo/Makefile.am:
        Workaround so that the osxvideo .so file gets linked with the
        Cocoa, OpenGL and QuickTime frameworks

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/osxaudio/Makefile.am:
        Workaround so that the osxaudio .so file gets linked with the
        CoreAudio framework

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Whoops, my fault...fixed build issues

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
        Add objective-c support if running in Darwin/Mac OS X
	* sys/Makefile.am:
        * sys/osxvideo:
        * sys/osxvideo/Makefile.am:
        * sys/osxvideo/osxvideosink.h:
        * sys/osxvideo/osxvideosink.m:
        * sys/osxvideo/cocoawindow.h:
        * sys/osxvideo/cocoawindow.m:
        Add osxvideosink, a cocoa-based osx video sink


2004-06-19  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/dvdnav/gst-dvd:
	Grab the gconf key from the right spot
	* gst/debug/gstnavseek.c: (gst_navseek_init),
	(gst_navseek_segseek), (gst_navseek_handle_src_event),
	(gst_navseek_chain):
	* gst/debug/gstnavseek.h:
	  Add 's', 'e' and 'l' keypresses to navseek to define the start,end
	  and loop parameters of a segment seek.
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_init),
	(gst_videotestsrc_get_event_masks),
	(gst_videotestsrc_handle_src_event), (gst_videotestsrc_get):
	* gst/videotestsrc/gstvideotestsrc.h:
	  Add seeking support to videotestsrc
	  Initialise the timestamp_offset variable.

2004-06-18  Wim Taymans  <wim@fluendo.com>

	* ext/sidplay/gstsiddec.cc:
	Fix negotiation and set correct end offset.

2004-06-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: branch and prerelease

2004-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init),
	(gst_tcpclientsrc_getcaps), (gst_tcpclientsrc_get),
	(gst_tcpclientsrc_init_receive):
	* gst/tcp/gsttcpclientsrc.h:
          read caps when connecting to server for GDP so we set them correctly

2004-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videorate/gstvideorate.c: (gst_videorate_chain):
	  notify drops and duplicates
	* gst/videoscale/videoscale.c: (videoscale_get_structure):
	  no good reason to limit ourselves to 100x100

2004-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init),
	(gst_v4lsrc_open), (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps),
	(gst_v4lsrc_get), (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties),
	(gst_v4l_open), (gst_v4l_get_picture), (gst_v4l_get_audio),
	(gst_v4l_set_audio):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_grab_frame),
	(gst_v4lsrc_try_capture):
	* sys/v4l/v4lsrc_calls.h:
	  change try_palette to more general try_capture
	  add autoprobe option so we can turn off autoprobing
	  various fixes

2004-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  add videorate
	* sys/ximage/ximagesink.c: (gst_ximagesink_finalize),
	(gst_ximagesink_class_init):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_finalize),
	(gst_xvimagesink_class_init):
          run them as finalize, not dispose, since dispose can be invoked
          multiple times

2004-06-17  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_dispose),
	(gst_alsa_get_time), (gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsaclock.c: (gst_alsa_clock_get_type):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_init), (gst_alsa_src_loop),
	(gst_alsa_src_change_state):
	* ext/alsa/gstalsasrc.h:
	Make the xrun code timestamp and offset the buffers correctly.
	moved the clock to the base class, use alsa methods to get time.
	Do correct timestamping on outgoing buffers.

2004-06-17  Wim Taymans  <wim@fluendo.com>

	* gst/audiorate/Makefile.am:
	* gst/audiorate/gstaudiorate.c: (gst_audiorate_get_type),
	(gst_audiorate_base_init), (gst_audiorate_class_init),
	(gst_audiorate_link), (gst_audiorate_init), (gst_audiorate_chain),
	(gst_audiorate_set_property), (gst_audiorate_get_property),
	(gst_audiorate_change_state), (plugin_init):
	Added an audiorate converter that fills in gaps.

2004-06-17  Johan Dahlin  <johan@gnome.org>

	* ext/tcp/*: Revert Zaheer changes, to make things actually work again.

2004-06-16  Wim Taymans  <wim@fluendo.com>

	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_sync_mode_get_type),
	(gst_v4lsrc_class_init), (gst_v4lsrc_init), (gst_v4lsrc_get_fps),
	(gst_v4lsrc_get), (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	* sys/v4l/gstv4lsrc.h:
	Added a copy mode to v4lsrc where it will output a copied version
	of its internal hardware buffer.
	Fix the wrong FLAG_SET usage. The flags are integers, not bits, you
	can't | them.

2004-06-16  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstosssrc.c: (gst_osssrc_get):
	Timestamp fixes.

2004-06-16  Wim Taymans  <wim@fluendo.com>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_sync_mode_get_type),
	(gst_v4lsrc_class_init), (gst_v4lsrc_init), (gst_v4lsrc_get_fps),
	(gst_v4lsrc_get), (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay):
	Added a sync mode enum property to control v4lsrc timestamp method
	Removed the use-fixed-fps property and moved functionality in
	the enum.
	Don't error on an error value from v4l-conf, it might not always
	be a real error.

2004-06-16  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/Makefile.am:
	* gst/videorate/gstvideorate.c: (gst_videorate_get_type),
	(gst_videorate_base_init), (gst_videorate_class_init),
	(gst_videorate_getcaps), (gst_videorate_link),
	(gst_videorate_init), (gst_videorate_chain),
	(gst_videorate_set_property), (gst_videorate_get_property),
	(gst_videorate_change_state), (plugin_init):
	Added a video timestamp corrector.

2004-06-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	fixed a potential leak with previous commit

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head):

2004-06-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head):
	Added missing refcount, fixes bug #144425
	Cheers Tim for finding the bug

2004-06-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4l.c: (plugin_init):
	* sys/v4l/gstv4lcolorbalance.c:
	* sys/v4l/gstv4lcolorbalance.h:
	* sys/v4l/gstv4lelement.c:
	* sys/v4l/gstv4lelement.h:
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
	* sys/v4l/gstv4lmjpegsink.h:
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
	* sys/v4l/gstv4lmjpegsrc.h:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps_list),
	(gst_v4lsrc_get_fps), (gst_v4lsrc_srcconnect),
	(gst_v4lsrc_getcaps), (gst_v4lsrc_get):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/gstv4ltuner.c:
	* sys/v4l/gstv4ltuner.h:
	* sys/v4l/gstv4lxoverlay.c:
	* sys/v4l/gstv4lxoverlay.h:
	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay),
	(gst_v4l_set_window), (gst_v4l_enable_overlay):
	* sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties),
	(gst_v4l_open), (gst_v4l_get_picture), (gst_v4l_get_audio),
	(gst_v4l_set_audio):
	* sys/v4l/v4l_calls.h:
	* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_sync_thread),
	(gst_v4lmjpegsink_queue_frame), (gst_v4lmjpegsink_sync_frame),
	(gst_v4lmjpegsink_set_buffer), (gst_v4lmjpegsink_set_playback),
	(gst_v4lmjpegsink_playback_init),
	(gst_v4lmjpegsink_playback_start), (gst_v4lmjpegsink_get_buffer),
	(gst_v4lmjpegsink_play_frame), (gst_v4lmjpegsink_wait_frame),
	(gst_v4lmjpegsink_playback_stop),
	(gst_v4lmjpegsink_playback_deinit):
	* sys/v4l/v4lmjpegsink_calls.h:
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_queue_frame),
	(gst_v4lmjpegsrc_sync_next_frame), (gst_v4lmjpegsrc_set_buffer),
	(gst_v4lmjpegsrc_set_capture), (gst_v4lmjpegsrc_set_capture_m),
	(gst_v4lmjpegsrc_capture_init), (gst_v4lmjpegsrc_capture_start),
	(gst_v4lmjpegsrc_grab_frame), (gst_v4lmjpegsrc_requeue_frame),
	(gst_v4lmjpegsrc_capture_stop), (gst_v4lmjpegsrc_capture_deinit):
	* sys/v4l/v4lmjpegsrc_calls.h:
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame),
	(gst_v4lsrc_sync_frame), (gst_v4lsrc_set_capture),
	(gst_v4lsrc_capture_init), (gst_v4lsrc_capture_start),
	(gst_v4lsrc_grab_frame), (gst_v4lsrc_requeue_frame),
	(gst_v4lsrc_capture_stop), (gst_v4lsrc_capture_deinit),
	(gst_v4lsrc_try_palette):
	* sys/v4l/v4lsrc_calls.h:
	  bunch of paranoia cleanups

2004-06-14  David Schleef  <ds@schleef.org>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_init),
	(cdparanoia_get), (cdparanoia_open), (cdparanoia_change_state):
	Send discont events and change timestamps appropriately when
	we get a seek event.  (bug #144240)
	* ext/cdparanoia/gstcdparanoia.h:

2004-06-14  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: Use snd_pcm_hw_params_set_rate _near instead of
	  snd_pcm_hw_params_set_rate  since the latter fails for no good
	  reason on some setups.

2004-06-14  David Schleef  <ds@schleef.org>

	* gst/volume/demo.c: (value_changed_callback): exp10() is not
	standard.  Thank you for playing.

2004-06-14  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/imgconvert.c: (img_convert):
	Patch 1.3 broke the ordering of the colorspace info and
	made the plugin basically work by coincidence, reordered
	the info.

2004-06-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/lame/gstlame.c:
	* ext/mad/gstmad.c:
	  sync caps.  Make sure mad can only output a list of rates, not
	  a full range.  In the future, have three caps lists for each of the
	  mpeg versions.  Change mpegversion to a double as well.

2004-06-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/volume/.cvsignore:
	* gst/volume/Makefile.am:
	* gst/volume/demo.c: (value_changed_callback), (idler),
	(setup_gui), (main):
	  added small demo app

2004-06-13  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/esd/esdsink.c: (gst_esdsink_change_state):
	* ext/esd/esdsink.h:
	Close the esd connection on pause, because esd will just wait -
	blocking all other esd clients indefinitely.

2004-06-12  Christophe Fergeau  <teuf@gnome.org>

	* gst/tags/gstvorbistag.c: replaced a g_warning which I added in my
	  previous commit with GST_DEBUG

2004-06-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  add a header check for a dvdread header in dvdnav.  Fixes #133002

2004-06-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init_send):
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init_receive):
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init),
	(gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_init_send):
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive):
	* gst/tcp/gsttcpserversrc.h:
	Modified the tcp plugins so they are portable (IPv4,IPv6, any future
        version of IP)

2004-06-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Added ogg library so that OSX detects libtheora properly

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

	* ext/theora/theoradec.c: (theora_dec_chain),
	(theora_dec_change_state):
	Don't try to decode frames before we received a keyframe.

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

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init),
	(gst_ogg_mux_init), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop),
	(gst_ogg_mux_get_property), (gst_ogg_mux_set_property):
	Added property to set the maximum delay of a page.

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

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init),
	(gst_ogg_mux_init), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop),
	(gst_ogg_mux_get_property), (gst_ogg_mux_set_property):
	Added max-delay property to control the maximum amount
	of data to put in one page.

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

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(gst_theora_enc_init), (theora_enc_sink_link),
	(theora_buffer_from_packet), (theora_enc_set_property),
	(theora_enc_get_property):
	Set duration on encoded buffer, added some more properties

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

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop):
	* ext/theora/theoraenc.c: (theora_enc_chain):
	Fix refcounting bugs

2004-06-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
	(gst_asf_demux_loop), (gst_asf_demux_process_file),
	(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
	(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
	(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
	(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
	(gst_asf_demux_change_state):
	* gst/asfdemux/gstasfdemux.h:
	  You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
	  feels like. I think we should set a new requirement for demuxers
	  from now on to implement sane loop functions, data loops, query
	  and seek functions before first commit into CVS. And this commit
	  fixes all of the above.

2004-06-10  Christophe Fergeau  <teuf@gnome.org>

	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_add): make sure parsed
	  vorbis comments are properly encoded in UTF-8 before adding them
	  to a GstTagList

2004-06-09  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (add_channels):
	  handle min <= max correctly
	* ext/alsa/gstalsa.c: (gst_alsa_fixate_to_mimetype),
	(gst_alsa_fixate_field_nearest_int), (gst_alsa_fixate):
	  add fixation functions so we fixate correctly. No preferring of alaw
	  anymore because it's the first structure.
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsa.c: (gst_alsa_sw_params_dump),
	(gst_alsa_hw_params_dump):
	  add functions to ease debugging in alsalib
	* ext/alsa/gstalsa.c: (gst_alsa_probe_hw_params),
	(gst_alsa_set_hw_params), (gst_alsa_set_sw_params),
	(gst_alsa_start_audio):
	  only specify hw params if we really setup a format (fixes #134007 -
	  or at least works around it)

2004-06-09  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_next_buffer), (gst_ogg_mux_buffer_from_page),
	(gst_ogg_mux_push_page), (gst_ogg_mux_get_headers),
	(gst_ogg_mux_set_header_on_caps), (gst_ogg_mux_send_headers),
	(gst_ogg_mux_loop):
	Use stream caps to setup the initial pages in the ogg stream.
	Correctly set the streamheader caps on the srcpad.

2004-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps_list),
	(gst_v4lsrc_get_fps), (gst_v4lsrc_srcconnect),
	(gst_v4lsrc_getcaps):
	* sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties),
	(gst_v4l_get_picture), (gst_v4l_get_audio), (gst_v4l_set_audio):
	  add querying of fps lists for webcams.  Negotiating to a framerate
	  now works.

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/theora/theoraenc.c: (theora_buffer_from_packet),
	(theora_push_buffer), (theora_push_packet),
	(theora_set_header_on_caps), (theora_enc_chain):
	  mark buffers and put on streamheader, raw theora streaming
	  now works too, whee

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcp.c: (gst_tcp_gdp_read_header),
	(gst_tcp_gdp_read_caps):
          do a looping read for caps and GDP headers too

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_get):
          return EOS instead of NULL in _get

2004-06-08  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gsttcp.c: (gst_tcp_gdp_read_header),
	(gst_tcp_gdp_read_caps), (gst_tcp_gdp_write_header),
	(gst_tcp_gdp_write_caps):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_gdp_read_caps),
	(gst_tcpserversrc_gdp_read_header), (gst_tcpserversrc_get):
	Memory leak fixes

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/Makefile.am:
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisparse.c: (gst_vorbis_parse_base_init),
	(gst_vorbis_parse_class_init), (gst_vorbis_parse_init),
	(vorbis_parse_set_header_on_caps), (vorbis_parse_chain),
	(vorbis_parse_change_state):
	* ext/vorbis/vorbisparse.h:
          adding a vorbisparse element that marks the buffers, streaming
          raw vorbis using GDP now works, whee

2004-06-08  Wim Taymans  <wim@fluendo.com>

	* ext/jpeg/Makefile.am:
	* ext/jpeg/README:
	* ext/jpeg/gstjpeg.c: (plugin_init):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_get_type),
	(gst_smokedec_base_init), (gst_smokedec_class_init),
	(gst_smokedec_init), (gst_smokedec_link), (gst_smokedec_chain):
	* ext/jpeg/gstsmokedec.h:
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_get_type),
	(gst_smokeenc_base_init), (gst_smokeenc_class_init),
	(gst_smokeenc_init), (gst_smokeenc_getcaps), (gst_smokeenc_link),
	(gst_smokeenc_resync), (gst_smokeenc_chain),
	(gst_smokeenc_set_property), (gst_smokeenc_get_property):
	* ext/jpeg/gstsmokeenc.h:
	* ext/jpeg/smokecodec.c: (smokecodec_init_destination),
	(smokecodec_flush_destination), (smokecodec_term_destination),
	(smokecodec_init_source), (smokecodec_fill_input_buffer),
	(smokecodec_skip_input_data), (smokecodec_resync_to_restart),
	(smokecodec_term_source), (smokecodec_encode_new),
	(smokecodec_decode_new), (smokecodec_info_free),
	(smokecodec_set_quality), (smokecodec_get_quality),
	(smokecodec_set_threshold), (smokecodec_get_threshold),
	(smokecodec_set_bitrate), (smokecodec_get_bitrate),
	(find_best_size), (abs_diff), (put), (smokecodec_encode),
	(smokecodec_parse_header), (smokecodec_decode):
	* ext/jpeg/smokecodec.h:
	Added a new simple jpeg based codec

2004-06-08  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_loop):
	Fix memory leak

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_client_remove),
	(gst_tcpserversink_handle_client_read), (gst_tcp_buffer_write),
	(gst_tcpserversink_handle_client_write), (gst_tcpserversink_chain),
	(gst_tcpserversink_init_send), (gst_tcpserversink_close):
	* gst/tcp/gsttcpserversink.h:
          take streamheader into account

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/level/Makefile.am:
	* gst/level/gstlevel.c: (gst_level_class_init):
	  clean up marshal generation

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/Makefile.am:
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_get_type),
	(gst_tcpclientsink_class_init), (gst_tcpclientsink_init),
	(gst_tcpclientsink_set_property), (gst_tcpclientsink_get_property):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init),
	(gst_tcpclientsrc_init), (gst_tcpclientsrc_set_property),
	(gst_tcpclientsrc_get_property):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_init), (gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_handle_client_read),
	(gst_tcpserversink_handle_client_write),
	(gst_tcpserversink_set_property), (gst_tcpserversink_get_property):
	* gst/tcp/gsttcpserversink.h:
	  add signals client-added and client-removed
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init),
	(gst_tcpserversrc_init), (gst_tcpserversrc_set_property),
	(gst_tcpserversrc_get_property):
	uniformized, change default protocol to NONE
	* gst/tcp/gsttcp-marshal.list: added
2004-06-07  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  handle discont events if they happen before caps nego

2004-06-07  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init),
	(gst_multipart_find_pad_by_mime), (gst_multipart_demux_chain),
	(gst_multipart_demux_plugin_init):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_init), (gst_multipart_mux_loop),
	(gst_multipart_mux_change_state):
	Small updates, fix a memleak

2004-06-07  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* configure.ac: OSS portability
	* ext/arts/gst_arts.c: idem
	* sys/oss/gstosselement.c: idem
	* sys/oss/gstossmixer.c: idem
	* sys/oss/gstosssink.c: idem
	* sys/oss/gstosssrc.c: idem
	* sys/oss/oss_probe.c: idem
	  - check for soundcard.h in different places for some BSD

2004-06-07  Jan Schmidt <thaytan@mad.scientist.com>

	* AUTHORS:
	Add me to the authors file
	* configure.ac:
	Increase the libdv requirement to >= version 0.100
	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_src_convert),
	(gst_dvdec_src_query), (gst_dvdec_handle_sink_event),
	(gst_dvdec_push), (gst_dvdec_loop), (gst_dvdec_change_state):
	* ext/dv/gstdvdec.h:
	Add support for the new_media flag when sending DISCONT events
	Make the querying work when video pad is not linked

2004-06-07  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_init):
	  create a NULL-initialized array of pads, so we don't think they
	  exist already. (fixes #143130)

2004-06-07  Benjamin Otte  <otte@gnome.org>

	* gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_init),
	(mixmatrix_resize), (gst_mixmatrix_set_all_caps),
	(gst_mixmatrix_request_new_pad), (gst_mixmatrix_loop):
	  don't use // coments

2004-06-07  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_samples_to_timestamp):
	  cast to GstClockTime to get higher granularity
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  use gst_element_set_time_delay to get the exact time
	* ext/mad/gstmad.c: (gst_mad_chain):
	  use the negotiated rate instead of the current frame's rate which
	  might be wrong because of bit errors. This avoids emitting totally
	  bogus timestamps and screwing sync.
	(fixes #143454)

2004-06-07  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* gst/adder/gstadder.c: (gst_adder_loop):
	  properly error out when no negotiation has happened yet. (fixes
	  #143032)

2004-06-06  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event):
	  forward correctly transformed offset in discont events. Based on
	  patch by Arwed v. Merkatz. (fixes #142851)

2004-06-06  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c: that's
	G_HAVE_GNUC_VARARGS, not G_HAVE_GNU_VARARGS.  Should fix compile
	problems on several systems.

2004-06-06  Benjamin Otte  <otte@gnome.org>

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init):
	  use explicit caps on the srcpad
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  properly error out if caps couldn't be set (fixes #142764)

2004-06-06  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_probe_hw_params),
	(gst_alsa_set_hw_params), (gst_alsa_set_sw_params),
	(gst_alsa_start_audio):
	  - don't call set_periods_integer anymore, it breaks the
	  configuration randomly
	  - call snd_pcm_hw_params_set_access directly instead of using masks
	  - don't fail if the sw_params can't be set, just use the default
	  params and hope it works. Alsalib has weird issues when you touch
	  sw_params and does no proper error reporting about what failed.
	* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
	(gst_alsa_close_audio):
	  make our alsa debugging go via gst debugging and not conditionally
	  defined
	* ext/alsa/gstalsa.h:
	  add ALSA_DEBUG_FLUSH macro
	* ext/alsa/gstalsaplugin.c: (gst_alsa_error_wrapper),
	(plugin_init):
	  wrap alsa errors to be printed via the gst debugging system and not
	  spammed to stderr

2004-06-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	(gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event),
	(gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header), (qtdemux_dump_mvhd),
	(qtdemux_parse_trak):
	* gst/qtdemux/qtdemux.h:
	  Bitch. Also known as seeking, querying & co.
	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain),
	(gst_osssink_change_state):
	* sys/oss/gstosssink.h:
	  Resyncing is for weenies, this hack is no longer needed and was
	  broken anyway (since it - unintendedly - always leaves resync to
	  TRUE).

2004-06-05  Andrew Turner <zxombie@hotpop.com>

	* gst/tcp/gsttcp.c: portability (Solaris 10/FreeBSD)
	* gst/tcp/gsttcpclientsrc.h: idem
	  - define MSG_NOSIGNAL if not done
	  - include unistd.h for off_t
          (fixes #143749)

2004-06-05  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	* ext/kio/Makefile.am:
	  check for qt's moc preprocessor explicitly and use it

2004-06-03  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst/tcp/gsttcp.c: (gst_tcp_socket_write):
	  don't get a signal for EPIPE on socket writes
	  (somebody check if this works on other platforms)

2004-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsaclock.c: (gst_alsa_clock_get_type):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
          check error condition on available samples correctly

2004-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsasrc.c: (gst_alsa_src_get_time):
          avoid a segfault
	* gst/tcp/gsttcp.c: (gst_tcp_socket_write), (gst_tcp_socket_read),
	(gst_tcp_gdp_read_header), (gst_tcp_gdp_read_caps):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_gdp_read_caps),
	(gst_tcpserversrc_gdp_read_header):
         use ssize_t over size_t since the former is signed and thus the
         check for error codes can work

2004-06-02  Wim Taymans  <wim@fluendo.com>

	reviewed by: Johan

	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_loop):
	Oops

2004-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_init), (gst_multipart_mux_loop),
	(gst_multipart_mux_get_property), (gst_multipart_mux_set_property),
	(gst_multipart_mux_change_state):
	Added configurable boundary specifier, added the value as a
	caps field as well.

2004-06-02  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversrc.c:
	  - portability fix, to compile on OSX
            (fixes #143146)

	* sys/osxaudio/gstosxaudioelement.c:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosrc.c:
	  - compilation warnings on OSX
            (fixes #143153)

2004-06-02  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/vorbis/vorbisdec.c : sign warning fixes

	* gst-libs/gst/mixer/mixertrack.c :
	  do no use defines which are glib 2.4 specific

2004-06-01  Christophe Fergeau  <teuf@gnome.org>

	* ext/flac/gstflactag.c: strip ending framing bit from vorbiscomment
	  buffer since libflac doesn't expect it (reports a sync error when
	  it encounters that)


2004-06-01  Owen Fraser-Green  <owen@discobabe.net>

	* gst-libs/gst/mixer/mixertrack.h: Changed struct syntax
	* gst-libs/gst/mixer/mixertrack.c:
	(gst_mixer_track_get_property), (get_mixer_track_init),
	(get_mixer_track_get_property): Added property accessors
	* gst-libs/gst/mixer/mixeroptions.h: Changed struct syntax
	* gst-libs/gst/mixer/mixeroptions.c:
	(gst_mixer_options_get_values): Added
	* gst-libs/gst/mixer/mixer.h: Changed GstMixerClass syntax
	* gst-libs/gst/mixer/mixer.c: Fixed comment


2004-06-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/alsa/gstalsa.c: (gst_alsa_open_audio):
          improve error messages on open


2004-06-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay):
          check if v4l-conf is in path

2004-06-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/media-info/media-info-priv.c: (gmi_set_mime):
          change assert to a more readable error message

2004-05-31  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/tuner/tunerchannel.h:
	  - add a freq_multiplicator field to make the conversion
	    between internal frequency unit and Hz
	* sys/v4l/gstv4lelement.c:
	* sys/v4l2/gstv4l2element.c:
	  - change default video device to /dev/video0
	* sys/v4l/v4l_calls.c:
	* sys/v4l2/v4l2_calls.c:
	  - we only expose frequency to the user in Hz instead of
	    bastard v4lX unit (either 62.5kHz or 62.5Hz)

2004-05-31  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  Initialise b_o_s and e_o_s variables
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  Add some unusual fourcc's from mplayer avi's
	* gst/multipart/multipartmux.c: (gst_multipart_mux_plugin_init):
	  Make the muxer have rank GST_RANK_NONE, so it doesn't mess up
	  autoplugging.

2004-05-28  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/alpha/Makefile.am:
	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type),
	(gst_alpha_get_type), (gst_alpha_base_init),
	(gst_alpha_class_init), (gst_alpha_init), (gst_alpha_set_property),
	(gst_alpha_get_property), (gst_alpha_sink_link), (gst_alpha_add),
	(gst_alpha_chroma_key), (gst_alpha_chain),
	(gst_alpha_change_state), (plugin_init):
	A plugin to add an alpha channel to I420 video. Can optionally do
	chroma keying.
	* gst/multipart/Makefile.am:
	* gst/multipart/multipart.c: (plugin_init):
	* gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init),
	(gst_multipart_demux_class_init), (gst_multipart_demux_init),
	(gst_multipart_demux_finalize), (gst_multipart_demux_handle_event),
	(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_get_type),
	(gst_multipart_mux_base_init), (gst_multipart_mux_class_init),
	(gst_multipart_mux_get_sink_event_masks), (gst_multipart_mux_init),
	(gst_multipart_mux_sinkconnect), (gst_multipart_mux_pad_link),
	(gst_multipart_mux_pad_unlink),
	(gst_multipart_mux_request_new_pad),
	(gst_multipart_mux_handle_src_event),
	(gst_multipart_mux_next_buffer), (gst_multipart_mux_compare_pads),
	(gst_multipart_mux_queue_pads), (gst_multipart_mux_loop),
	(gst_multipart_mux_get_property), (gst_multipart_mux_set_property),
	(gst_multipart_mux_change_state), (gst_multipart_mux_plugin_init):
	A Multipart demuxer/muxer. Not sure if it violates specs. Used to
	send multipart jpeg images to a browser.
	* gst/videobox/Makefile.am:
	* gst/videobox/README:
	* gst/videobox/gstvideobox.c: (gst_video_box_fill_get_type),
	(gst_video_box_get_type), (gst_video_box_base_init),
	(gst_video_box_class_init), (gst_video_box_init),
	(gst_video_box_set_property), (gst_video_box_get_property),
	(gst_video_box_sink_link), (gst_video_box_i420),
	(gst_video_box_ayuv), (gst_video_box_chain),
	(gst_video_box_change_state), (plugin_init):
	Crops or adds borders around an image. can do alpha channel
	borders as well.
	* gst/videomixer/Makefile.am:
	* gst/videomixer/README:
	* gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type),
	(gst_videomixer_pad_base_init), (gst_videomixer_pad_class_init),
	(gst_videomixer_pad_get_sink_event_masks),
	(gst_videomixer_pad_get_property),
	(gst_videomixer_pad_set_property),
	(gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_link),
	(gst_videomixer_pad_unlink), (gst_videomixer_pad_init),
	(gst_video_mixer_background_get_type), (gst_videomixer_get_type),
	(gst_videomixer_base_init), (gst_videomixer_class_init),
	(gst_videomixer_init), (gst_videomixer_request_new_pad),
	(gst_videomixer_handle_src_event),
	(gst_videomixer_blend_ayuv_i420), (gst_videomixer_fill_checker),
	(gst_videomixer_fill_color), (gst_videomixer_fill_queues),
	(gst_videomixer_blend_buffers), (gst_videomixer_update_queues),
	(gst_videomixer_loop), (gst_videomixer_get_property),
	(gst_videomixer_set_property), (gst_videomixer_change_state),
	(plugin_init):
	Generic video mixer plugin, can handle multiple inputs all with
	different framerates and video sizes. Is fully alpha channel
	aware.

2004-05-27  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	  Select first track as master track. Not sure how else to handle
	  that...
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer):
	  Discard discont events. Should fix #142962.

2004-05-26  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/Makefile.am:
	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_interface_init),
	(gst_alsa_mixer_build_list), (gst_alsa_mixer_get_volume),
	(gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute),
	(gst_alsa_mixer_set_record), (gst_alsa_mixer_set_option),
	(gst_alsa_mixer_get_option):
	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixeroptions.c:
	(gst_alsa_mixer_options_get_type),
	(gst_alsa_mixer_options_class_init), (gst_alsa_mixer_options_init),
	(gst_alsa_mixer_options_new):
	* ext/alsa/gstalsamixeroptions.h:
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	* ext/alsa/gstalsamixertrack.h:
	  Add enumerations (as GstMixerOptions). Make correct distinction
	  between input/output tracks. Add capture/playback private flag.
	  Use flag to decide on whether to set capture or playback volumes
	  or switches. Use playback and record switches.
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/mixer/mixer-marshal.list:
	* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init),
	(gst_mixer_set_option), (gst_mixer_get_option),
	(gst_mixer_mute_toggled), (gst_mixer_record_toggled),
	(gst_mixer_volume_changed), (gst_mixer_option_changed):
	* gst-libs/gst/mixer/mixer.h:
	* gst-libs/gst/mixer/mixeroptions.c: (gst_mixer_options_get_type),
	(gst_mixer_options_class_init), (gst_mixer_options_init),
	(gst_mixer_options_dispose):
	* gst-libs/gst/mixer/mixeroptions.h:
	  Add GstMixerOptions.
	* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
	  Rename Audio Mixer to OSS Mixer (similar to Alsa Mixer). Fix
	  broken device detection on computers with multiple OSS sound
	  cards.

2004-05-26  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
	  fixate nicely even when the peer is not negotiating

2004-05-25  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_parse_caps):
	  make sure we don't allow depth > width
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
	  fixate endianness to G_BYTE_ORDER as default
	* gst/audioscale/gstaudioscale.c:
	  we don't handle another endianness as host-endianness

2004-05-25  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/mem.c:  malloc() is in stdlib.h, not malloc.h

2004-05-24  Benjamin Otte  <otte@gnome.org>

	* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_sinkconnect),
	(gst_oggvorbisenc_setup):
	  properly fail when we can't setup the vorbis encoder due to
	  unsupported settings
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_sinkconnect),
	(gst_vorbisenc_setup):
	  same
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	  fix case where warnings occured when one pad was unlinked while the
	  other's link function was called

2004-05-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/Makefile.am:
          use GST_ENABLE_NEW

2004-05-24  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/resample/private.h:
	  don't use optimizations that are #if 0'ed

2004-05-24  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
	Fix potential division by zero error and hopefully get
	the position query right to get correct timestamps on avi
	audio.

2004-05-24  Wim Taymans  <wim@fluendo.com>

	* gst/videoscale/videoscale.c: (gst_videoscale_scale_nearest),
	(gst_videoscale_scale_nearest_str2),
	(gst_videoscale_scale_nearest_str4),
	(gst_videoscale_scale_nearest_32bit),
	(gst_videoscale_scale_nearest_24bit),
	(gst_videoscale_scale_nearest_16bit):
	Fix the scaling algorithm and avoid a buffer overflow.
        removed the while loop in the scaling function as it
	was used for point sampling only.

2004-05-24  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_get_type),
	(gst_id3_tag_class_init), (gst_id3_tag_init),
	(gst_id3_tag_set_property), (gst_id3_tag_get_tag_to_render),
	(gst_id3_tag_handle_event), (gst_id3_tag_do_caps_nego),
	(gst_id3_tag_send_tag_event):
	  lots of fixes to make id3mux work and id3demux work correctly

2004-05-24  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/Makefile.am:
	  add rules to build shout2send (was removed by accident
	  when this module was no more marked experimental/broken)

2004-05-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/shout2/gstshout2.c:
	* ext/shout2/gstshout2.h:
	  adding a "connection problem" signal to shout2send
	  (fixes #142954)

2004-05-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/kio/kioreceiver.cpp:
	* ext/kio/kioreceiver.h:
          fix sign comparison issues

2004-05-21  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/cdxaparse/gstcdxaparse.c:
	* gst/cdxaparse/gstcdxaparse.h:
	  some renaming
	  add some checks/sanity
	  prepare for seek addition

	* sys/sunaudio/gstsunaudio.c:
	  remove exported dupe init function

2004-05-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_get_formats),
	(gst_dvdec_src_convert), (gst_dvdec_sink_convert):
	  Fix format conversion and position querying.
	* gst/debug/progressreport.c: (gst_progressreport_report):
	  Don't output a bogus total value that we didn't query.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	  Always set XV_AUTOPAINT_COLORKEY to true. Fixes xvimagesink showing
	  only a blank window after xine has been used.

2004-05-21  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* m4/as-arts.m4:
	  sync with upstream version to fix test on FC2
	  readd with -ko to preserve Id header

2004-05-20  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* configure.ac:
	  test for FIONREAD ioctl in sys/filio.h for Solaris compat.
	* gst/tcp/gsttcpclientsrc.c: idem
	* gst/tcp/gsttcpserversink.c: idem
	* gst/tcp/gsttcpserversrc.c: idem
	* m4/gst-fionread.m4: idem

	* sys/sunaudio/gstsunaudio.c: change category to Sink/Audio

	* configure.ac: enable speex plugin for speex 1.1.5+
	* ext/speex/gstspeexenc.c: fix cast warning

	* ext/esd/README: fix typo

2004-05-20  David Schleef  <ds@schleef.org>

	* configure.ac: Minor cosmetic change to convince the buildbot to
	reautogen.
	* sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_class_init),
	(gst_sunaudiosink_init), (gst_sunaudiosink_getcaps),
	(gst_sunaudiosink_pad_link), (gst_sunaudiosink_chain),
	(gst_sunaudiosink_setparams), (gst_sunaudiosink_open),
	(gst_sunaudiosink_close), (gst_sunaudiosink_change_state),
	(gst_sunaudiosink_set_property), (gst_sunaudiosink_get_property):
	More hacking.  Plays audio now.

2004-05-20  David Schleef  <ds@schleef.org>

	* configure.ac:
	* sys/Makefile.am:

2004-05-20  David Schleef  <ds@schleef.org>

	* sys/osxaudio/Makefile.am:  New OS X audio plugin by Zaheer Abbas Merali
	* sys/osxaudio/gstosxaudio.c:
	* sys/osxaudio/gstosxaudioelement.c:
	* sys/osxaudio/gstosxaudioelement.h:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosink.h:
	* sys/osxaudio/gstosxaudiosrc.c:
	* sys/osxaudio/gstosxaudiosrc.h:

2004-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_set_header_on_caps),
	(gst_vorbisenc_chain):
          put the codec headers on the caps as streamheader as well as
          pushing them out

2004-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (vorbis_granule_time_copy),
	(gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_push_buffer),
	(gst_vorbisenc_push_packet), (gst_vorbisenc_chain):
        split up push_packet into two functions

2004-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/.cvsignore:
	  ignore enums
	* gst/tcp/Makefile.am:
	* gst/tcp/README:
	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpplugin.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.c:
	* gst/tcp/gsttcpserversrc.h:
          add new tcp elements

2004-05-19  Wim Taymans  <wim@fluendo.com>

	* gst/law/mulaw-conversion.c: (mulaw_encode):
	Fix overflow bug in ulaw encoding.

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstmad.c: (gst_mad_handle_event):
	  don't unref the event twice

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  remove -Wno-sign-compare

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  remove -DG_DISABLE_DEPRECATED. It's not usable without workarounds
	  if you want to work against glib 2.2 and 2.4

2004-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/Makefile.am:
	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpsink.h:
	* gst/tcp/gsttcpsrc.h:
          gsttcp -> gsttcpplugin + CVS surgery in preparation for tcp merge

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/debug/tests.c: (md5_get_value):
	  fix segfault on gst-inspect

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/debug/testplugin.c:
	* gst/debug/tests.c:
	* gst/debug/tests.h:
	  add new extensible and configurable testing element. Current tests
	  include buffer count, stream length, timestamp/duration matching and
	  md5.
	* gst/debug/Makefile.am:
	* gst/debug/gstdebug.c: (plugin_init):
	  add infrastructure for new element

2004-05-19  Johan Dahlin  <johan@gnome.org>

	* ext/dv/gstdvdec.c (gst_dvdec_quality_get_type): Add proper
	ending of the array. Fixes gst-inspect segfault on ppc.

2004-05-19  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/dirac/gstdiracdec.cc : change category to Codec/Decoder/Video

	* m4/a52.m4 : don't fix a test that should fail with current a52dec lib

2004-05-18  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/imgconvert.c: (img_convert): Fixes for
	warnings (bugs, actually) noticed by gcc but not forte.

2004-05-18  David Schleef  <ds@schleef.org>

	* sys/sunaudio/Makefile.am:
	* sys/sunaudio/gstsunaudio.c: New sunaudiosink

2004-05-18  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header):  Patch from dcm@acm.org (David Moore)
	to allow qtdemux to use non-seekable streams. (bug #142272)

2004-05-18  David Schleef  <ds@schleef.org>

	* gst-libs/gst/resample/resample.c: (gst_resample_sinc_ft_s16),
	(gst_resample_sinc_ft_float): Remove use of static temporary
	buffer.  This code was obviously not supposed to last long, but
	it's stuck in our ABI, so it required a little hack to make it
	ABI-compatible.  Fixes #142585.
	* gst-libs/gst/resample/resample.h: same.

2004-05-18  David Schleef  <ds@schleef.org>

	* configure.ac: Add sunaudio
	* examples/Makefile.am: make gstplay depend on gconf
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c: Remove c99-isms
	* gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette),
	(convert_table_lookup), (img_convert): remove c99-isms
	* gst/ffmpegcolorspace/imgconvert_template.h: make a constant
          unsigned, to fix a warning on Solaris
	* gst/mpeg1sys/systems.c: bcopy->memcpy
	* gst/rtjpeg/RTjpeg.c: (RTjpeg_yuvrgb8): bcopy->memcpy
	* sys/Makefile.am: Add sunaudio

2004-05-18  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_get_type), (gst_ogg_mux_init),
	(gst_ogg_mux_sinkconnect), (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_next_buffer), (gst_ogg_mux_push_page),
	(gst_ogg_mux_compare_pads), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_loop):
	Fix an ugly memleak where the muxer didn't flush enough ogg
	pages. This also resulted in badly muxed ogg files.

2004-05-18  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/asfheaders.c :
	* gst/asfdemux/asfheaders.h :
	* gst/asfdemux/gstasfdemux.c :
	  - fix ASF_OBJ_PADDING guid
	  - add 3 new object guids (language list, metadata,
            extended stream properties)
          - add a function to parse extended header objects

2004-05-18  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/oss/gstosselement.c: (gst_osselement_sync_parms):
	  remove leftover debugging g_print

2004-05-17  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_handle_event):
	  Fix for when the first format in a discont event is not a
	  byte-based one. Should fix #137710.

2004-05-18  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* m4/a52.m4 : fix compilation with -Wall -Werror
	* m4/libfame.m4 : idem
	* m4/libmikmod.m4 : idem

2004-05-17  Benjamin Otte  <otte@gnome.org>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment):
	  signal the new tags before giving up the reference

2004-05-17  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/shout2/gstshout2.c:
	  use application/ogg instead of application/x-ogg (patch by Patrick
	  Guimond, fixes #142432)
	* sys/oss/gstosselement.c: (gst_osselement_reset),
	(gst_osselement_sync_parms):
	  don't set fragment size unless specified (fixes #142493)

2004-05-17  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* configure.ac : fix compilation of v4l2src with "-Wall -Werror"
	  fixes #142664

2004-05-17  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  compute offsets correctly for internal buffers so timestamps are set
	  correctly when we can't seek. Also handle cases where there are no
	  offsets. (based on a patch by David Moore, fixes #142507)

2004-05-17  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  use correct variable when determining amount of data to skip so we
	  don't skip into the void and segfault

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_audio_caps):
	  Hi, I'm a memleak

2004-05-16  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/gstasfdemux.c:
	  - fix a mem leak and always propagate tags
	  - add WMV3 to known video codecs (but no decoder yet)
	  - replace "surplus data" at end of audio header for what
	    it is : codec specific data
	  - fix a typo

2004-05-16  Arwed v. Merkatz  <v.merkatz@gmx.net>

	reviewed by: Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/audio/audioclock.c:
	  Fix wrong return type (#142205).

2004-05-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_class_init), (gst_mad_init):
	  Ignore CRCs by default (fixes #142566).

2004-05-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open),
	(gst_alsa_mixer_close), (gst_alsa_mixer_supported),
	(gst_alsa_mixer_build_list), (gst_alsa_mixer_free_list),
	(gst_alsa_mixer_change_state), (gst_alsa_mixer_list_tracks),
	(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
	(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record):
	  Fix for cases where we fail to attach to a mixer.

2004-05-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek):
	  Don't touch events after not owning them anymore.
	* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
	(gst_wavparse_fmt), (gst_wavparse_other),
	(gst_wavparse_handle_seek), (gst_wavparse_loop),
	(gst_wavparse_pad_convert), (gst_wavparse_pad_query),
	(gst_wavparse_srcpad_event):
	* gst/wavparse/gstwavparse.h:
	  Add seeking, fix querying.

2004-05-16  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment):
	  - process comments even if they don't end with \0\0
            g_convert would ignore them if present and works well without them

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_caps), (gst_alsa_get_caps):
	  simplify caps

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment):
	  don't write to memory we might not write to - g_convert does that
	  for us anyway (fixes #142613)
	(gst_asf_demux_audio_caps):
	  comment out gst_util_dump_mem

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  compute correct expected timestamps after seek (broken since
	  last commit)
	* ext/gdk_pixbuf/pixbufscale.c: (pixbufscale_init):
	  rename element and debugging category to gdkpixbufscale

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  add error checking to snd_pcm_delay and remove duplicate call to
	  snd_pcm_delay that caused issues (see inline code comments)
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time):
	  make more readable and fix return value when snd_pcm_delay fails
	(fixes #142586)

2004-05-15  Jan Schmidt  <thaytan@mad.scientisti.com>
	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_method_get_type),
	(gst_pixbufscale_get_type), (gst_pixbufscale_base_init),
	(gst_pixbufscale_class_init), (gst_pixbufscale_getcaps),
	(gst_pixbufscale_link), (gst_pixbufscale_init),
	(gst_pixbufscale_handle_src_event), (pixbufscale_scale),
	(gst_pixbufscale_chain), (gst_pixbufscale_set_property),
	(gst_pixbufscale_get_property), (pixbufscale_init):
	* ext/gdk_pixbuf/pixbufscale.h:
	Add these files I forgot earlier

2004-05-15  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/gdk_pixbuf/Makefile.am:
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init):
	* ext/gdk_pixbuf/gstgdkpixbuf.h:
	Add new pixbufscale element to scale RGB video
	using gdk_pixbuf, because gdk_pixbuf does BILINEAR
	and HYPER interpolation correctly.
	* ext/theora/theoraenc.c: (theora_enc_chain),
	Discard buffer and return if explicit caps could not be set
	(theora_enc_get_property):
	Make _get return kbps for the bitrate consistent with
	the _set function.


2004-05-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/libvisual/visual.c: (gst_visual_chain):
	  add missing visual_audio_analyze

2004-05-14  David Schleef  <ds@schleef.org>

	* ext/esd/esdsink.c: (gst_esdsink_chain): Fix crash when ESD
	is killed while we're playing.
	* gst/qtdemux/qtdemux.c: (qtdemux_parse): call
	gst_element_no_more_pads().

2004-05-14  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/riff/riff-read.c :
	  - fix INFO tag extraction in RIFF/AVI files
            because gst_event_unref (event) also freed taglist
          - avoid a mem leak

2004-05-13  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/mad/gstid3tag.c : move from "Codec/(Dem/M)uxer" to "Codec/(Dem/M)uxer/Audio"
	* gst/wavenc/gstwavenc.c : move from "Codec/Encoder/Audio" to "Codec/Muxer/Audio"

	* gst/auparse/gstauparse.c :
	  - add code (commented for now) to support audio/x-adpcm on src pad
	    (we have no decoder for those layout yet)

	* gst/cdxaparse/gstcdxaparse.c :
	* gst/cdxaparse/gstcdxaparse.h :
	  - partial rewrite using RiffRead (ripped iain's wavparse code)

	* gst/rtp/gstrtpL16enc.c : typo
	* gst/rtp/gstrtpgsmenc.c : typo

2004-05-13  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  check for exact version of libvisual, it's not supposed to be
	  API/ABI stable yet

2004-05-13  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
	  signal no-more-pads

2004-05-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_src_convert)
	Report which format was used for GST_FORMAT_DEFAULT
	* gst/debug/Makefile.am:
	* gst/debug/gstdebug.c: (plugin_init):
	* gst/debug/progressreport.c: (gst_progressreport_base_init),
	(gst_progressreport_class_init), (gst_progressreport_init),
	(gst_progressreport_report), (gst_progressreport_set_property),
	(gst_progressreport_get_property), (gst_progressreport_chain),
	(gst_progressreport_plugin_init):
	Add progressreport element for testing.

2004-05-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get), (gst_v4lsrc_change_state):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_playback_init):
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_init):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init),
	(gst_v4lsrc_grab_frame):
          add more debugging
          send a discont at start

2004-05-12  Colin Walters  <walters@redhat.com>

	* gst/asfdemux/gstasfdemux.c (gst_asf_demux_process_segment): Avoid
	inflooping if we can't find a chunk.  Or in other words, don't blow
	chunks if we don't have a chunk to blow.

2004-05-13  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/audiofile/gstafsrc.c: (gst_afsrc_get):
	Remove old debug output
	* ext/dv/gstdvdec.c: (gst_dvdec_quality_get_type),
	(gst_dvdec_class_init), (gst_dvdec_loop), (gst_dvdec_change_state),
	(gst_dvdec_set_property), (gst_dvdec_get_property):
	Change the quality setting to an enum, so it works from gst-launch
	Don't renegotiate a non-linked pad. Allows audio only decoding.
	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_getcaps),
	(gst_deinterlace_link), (gst_deinterlace_init):
	* gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps),
	(gst_videodrop_link):
	Some caps negotiation fixes

2004-05-12  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/tarkin/gsttarkin.c :
	  - Change RANK from NONE to PRIMARY
	* ext/gdk_pixbuf/gstgdkpixbuf.c :
	  - Change RANK from NONE to MARGINAL
	* ext/divx/gstdivxenc.c :
	  - Change RANK from PRIMARY to NONE (encoder/spider issue)

2004-05-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (vorbis_granule_time_copy),
	(gst_vorbisenc_push_packet):
          copy a function that was added between 1.0 and 1.0.1 until we
          depend on worthwhile features of post-1.0

2004-05-12  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  enable shout2 by default
	* ext/shout2/gstshout2.c: (gst_shout2send_protocol_get_type),
	(gst_shout2send_base_init), (gst_shout2send_init),
	(gst_shout2send_connect), (gst_shout2send_change_state):
	* ext/shout2/gstshout2.h:
	  make this work again. Based on a patch by Zaheer Abbas Merali (fixes
	  #142262)
	* ext/theora/theora.c: (plugin_init):
	  don't set rank on encoders

2004-05-11  Jeremy Simon  <jesimon@libertysurf.fr>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_audio_caps):
	  Use codec_data property instead of flag1 and flag2 for wma

2004-05-11  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/cdxaparse/gstcdxaparse.c :
	  - Add mpegversion to CAPS to make it link
	  - Rank is as GST_RANK_SECONDARY instead of NONE
	* gst/auparse/gstauparse.c :
	  - Document all audio encoding we can encounter from Solaris 9
	    headers and libsndfile information.
	  - Increase max. rate from 48000 to 192000 (to match other elements)
	  - Don't try to play junk data between header and samples

2004-05-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/libvisual/visual.c: (gst_visual_getcaps):
	  use the right caps depending on endianness (I hope)
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_plugin_init):
	  use GST_RANK_NONE for all non-decoding elements or spider gets
	  mighty confused

2004-05-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment):
	  Fix some odd cases and fix BE metadata parsing of unicode16 text.

2004-05-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/switch/gstswitch.c: (gst_switch_release_pad),
	(gst_switch_request_new_pad), (gst_switch_poll_sinkpads),
	(gst_switch_loop), (gst_switch_get_type):
	  whoever that was: DO NOT IMPORT PRIVATE SYMBOLS THAT ARE NOT IN
	  HEADERS. Had to be said.

2004-05-10  David Schleef  <ds@schleef.org>

	* configure.ac: Add prototype Dirac support.
	* ext/Makefile.am:
	* ext/dirac/Makefile.am:
	* ext/dirac/gstdirac.cc:
	* ext/dirac/gstdiracdec.cc:

2004-05-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/auparse/gstauparse.c: (gst_auparse_class_init),
	(gst_auparse_init), (gst_auparse_chain),
	(gst_auparse_change_state):
	  Hack around spider. Remove me some day please.

2004-05-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	  Fix for some uninitialized variables in previous patch, also
	  makes it work. Fixes #142286 while we're at it.

2004-05-11  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/auparse/gstauparse.c:
		fixes a-law, adds mu-law, linear pcm (8,16,24,32), ieee (32, 64)
		only unsupported formats are ADPCM/CCITT G.72x
		reviewed by Ronald
	* gst-libs/gst/audio/audio.h: adds 24bit depth to PCM (x-raw-int)

2004-05-10  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/Makefile.am:
	* ext/vorbis/README:
	* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_get_formats),
	(oggvorbisenc_get_type), (vorbis_caps_factory), (raw_caps_factory),
	(gst_oggvorbisenc_base_init), (gst_oggvorbisenc_class_init),
	(gst_oggvorbisenc_sinkconnect), (gst_oggvorbisenc_convert_src),
	(gst_oggvorbisenc_convert_sink),
	(gst_oggvorbisenc_get_query_types), (gst_oggvorbisenc_src_query),
	(gst_oggvorbisenc_init), (gst_oggvorbisenc_get_tag_value),
	(gst_oggvorbisenc_metadata_set1), (gst_oggvorbisenc_set_metadata),
	(get_constraints_string), (update_start_message),
	(gst_oggvorbisenc_setup), (gst_oggvorbisenc_write_page),
	(gst_oggvorbisenc_chain), (gst_oggvorbisenc_get_property),
	(gst_oggvorbisenc_set_property), (gst_oggvorbisenc_change_state):
	* ext/vorbis/oggvorbisenc.h:
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisenc.c: (vorbis_caps_factory),
	(raw_caps_factory), (gst_vorbisenc_class_init),
	(gst_vorbisenc_init), (gst_vorbisenc_setup),
	(gst_vorbisenc_push_packet), (gst_vorbisenc_chain),
	(gst_vorbisenc_get_property), (gst_vorbisenc_set_property):
	* ext/vorbis/vorbisenc.h:
	Added a raw vorbis encoder to be used with the oggmuxer.
	We still need the old encoder for some gnome applications,
	read the README to find out how that works.
	The raw encoder is called "rawvorbisenc" until 0.9.

2004-05-10  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstogg.c: (plugin_init):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init),
	(gst_ogg_print):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_get_type),
	(gst_ogg_mux_base_init), (gst_ogg_mux_class_init),
	(gst_ogg_mux_get_sink_event_masks), (gst_ogg_mux_init),
	(gst_ogg_mux_sinkconnect), (gst_ogg_mux_pad_link),
	(gst_ogg_mux_pad_unlink), (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_handle_src_event), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_push_page), (gst_ogg_mux_compare_pads),
	(gst_ogg_mux_queue_pads), (gst_ogg_mux_loop),
	(gst_ogg_mux_get_property), (gst_ogg_mux_set_property),
	(gst_ogg_mux_change_state), (gst_ogg_mux_plugin_init):
	Added an ogg muxer.
	Small typo fixes in the demuxer.

2004-05-10  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_push_packet), (theora_enc_chain),
	(theora_enc_change_state), (theora_enc_set_property),
	(theora_enc_get_property):
	Mark the last packet with an EOS flag which is not really needed
	in gstreamer.
	Do some better video framerate initialisation.
	Update the buffer timestamp.

2004-05-10  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_change_state):
	Return the result of the parent state change call

2004-05-10  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/law/alaw.c : alawdec should be registered with type ALAWDEC, not ALAWENC
	* gst/law/alaw-decode.c : put audio/x-alaw on pads, instead of audio/x-mulaw
	* gst/law/alaw-encode.c : (idem)
	* ext/a52dec/gsta52dec.c : mark audio/a52, audio/ac3 as deprecated in a comment
	* gst/ac3parse/gstac3parse.c : audio/ac3 => audio/x-ac3
	* gst/realmedia/rmdemux.c : audio/a52 => audio/x-ac3

2004-05-09  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
	  don't use a fixed buffer size when writing variable length data to
	  it. Fixes memory corruption and makes alsasrc work

2004-05-09  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c:
	(_gst_boolean_allow_overwrite_accumulator),
	(gst_gnomevfssink_class_init), (gst_gnomevfssink_open_file):
	  Run glib's default signal handler (??) in RUN_CLEANUP rather than
	  RUN_LAST, and don't use that to set the accumulator value because
	  then it's always FALSE.

2004-05-09  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head):
	  Fix for unaligned RIFF files (i.e. where all the chunks together
	  in a LIST chunk are not of the same size as the size given in
	  the LIST chunk header). Fixes several odd WAVE files. Also fix
	  ADPCM (block_align property) in audio, so that wavparse based
	  on this works now as it used to stand-alone.

2004-05-09  Edward Hervey  <bilboed@bilboed.com>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/a52dec/gsta52dec.c:
	* ext/divx/gstdivxdec.c:
	* ext/divx/gstdivxenc.c:
	* ext/dts/gstdtsdec.c: (gst_dtsdec_base_init):
	* ext/faac/gstfaac.c: (gst_faac_base_init):
	* ext/faad/gstfaad.c: (gst_faad_base_init):
	* ext/ivorbis/vorbisfile.c:
	* ext/lame/gstlame.c:
	* ext/libfame/gstlibfame.c:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
	* ext/sidplay/gstsiddec.cc:
	* ext/speex/gstspeexdec.c:
	* ext/speex/gstspeexenc.c:
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	  correct klasses. Mostly s,Codec/(Audio|Video),\1/Codec,
	  (fixes #142193)

2004-05-08  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (device_list),
	(gst_alsa_class_probe_devices):
	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open):
	  Fix alsa oddness in mixer after the combination of using mixer
	  in source/sink elements and using hw:x,y instead of just hw:x.

2004-05-09  Benjamin Otte  <otte@gnome.org>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_destroy_sourcepad),
	(gst_wavparse_create_sourcepad):
	  make PAUSED=>READY=>PAUSED=READY work by not destroying NULL
	  sourcepads

2004-05-09  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  allow discont events before caps nego

2004-05-08  Benjamin Otte  <otte@gnome.org>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
	  don't leak events

2004-05-08  Benjamin Otte  <otte@gnome.org>

	* gst/level/gstlevel.c: (gst_level_link), (gst_level_chain),
	(gst_level_change_state), (gst_level_init):
	* gst/level/gstlevel.h:
	  figure out if we're initialized directly instead of keeping a
	  variable that's wrong in 90% of cases
	  don't initialize pads and then leak them and use a new unitialized
	  pad. (fixes #142084)
	  these were bugs so n00bish I didn't find them for an hour :/

2004-05-08 Iain <iain@prettypeople.org>

	* gst/wavparse/gstwavparse.[ch]: Rewrote to use RiffRead instead.
	* gst-libs/gst/riff/riff-read.c (gst_riff_read_peek_head): Unstatic it
	(gst_riff_read_element_data): Ditto, and added a got_bytes argument to
	return the length that was read.
	(gst_riff_read_strf_auds): Allow fmt tags as well.

2004-05-07  David Schleef  <ds@schleef.org>

	* ext/faad/gstfaad.c: (gst_faad_sinkconnect): HACK to correct
	signed char assumption in faad.h.

2004-05-07  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps):
	  Missing break, detected by Daniel Gazard <daniel.gazard@free.fr>.

2004-05-07  Colin Walters  <walters@redhat.com>

	* gst/volume/gstvolume.c (gst_volume_dispose): Unref dpman.
	* ext/flac/gstflacdec.c (gst_flacdec_dispose): Add dispose
	function.
	* gst/audioscale/gstaudioscale.c (gst_audioscale_dispose):
	Add dispose function.

2004-05-08  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/dv/gstdvdec.c: (gst_dvdec_video_link):
	  Fix caps nego and pad templates. RGB mode caps should
	  work now.
	* ext/dvdnav/gst-dvd:
	  Move mpeg2dec inside the thread because otherwise the
	  queue rejects cap changes mid-stream
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_get_type),
	(gst_mpeg2dec_flush_decoder):
	  For mpeg2dec > 0.4.0, call the flush function instead of
	  manually extracting all in-flight frames.
	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_factory),
	(gst_dv1394src_init), (gst_dv1394src_iso_receive):
	  Change mime type video/dv go video/x-dv to match the
	  rest of gst-plugins

2004-05-07  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_type),
	(gst_alsa_sink_class_init):
	* ext/alsa/gstalsasink.h:
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_get_type),
	(gst_alsa_src_class_init):
	* ext/alsa/gstalsasrc.h:
	  Make alsasink/src a subclass of alsamixer so that mixer stuff
	  shows up in gst-rec. Needs some finetuning.

2004-05-05  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/lame/gstlame.c: (gst_lame_chain):
	  simplify
	* ext/mad/gstmad.c: (gst_mad_handle_event):
	  fix event leak
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
	  be able to detect mp3 files < 4096 bytes

2004-05-06  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_push_packet), (theora_enc_chain),
	(theora_enc_set_property), (theora_enc_get_property):
	Also encode the first frame, cleanup some code.

2004-05-06  Wim Taymans  <wim@fluendo.com>

	* ext/mpeg2enc/gstmpeg2enc.cc:
	Forward events first before deciding that negotiation was
	not performed.

2004-05-06  Wim Taymans  <wim@fluendo.com>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_chain):
	First process the events before deciding that negotiation
	was not performed.

2004-05-06  Wim Taymans  <wim@fluendo.com>

	* ext/theora/Makefile.am:
	* ext/theora/theora.c: (plugin_init):
	* ext/theora/theoradec.c: (theora_dec_change_state):
	* ext/theora/theoraenc.c: (gst_theora_enc_base_init),
	(gst_theora_enc_class_init), (gst_theora_enc_init),
	(theora_enc_sink_link), (theora_enc_event), (theora_push_packet),
	(theora_enc_chain), (theora_enc_change_state),
	(theora_enc_set_property), (theora_enc_get_property):
	Added a theora encoder, grouped the encoder and decoder into the
	same plugin.

2004-05-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type),
	(gst_jpegenc_chain):
        fix DURATION on outgoing buffers
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_sink_event):
        debug using time formats
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_sink_link):
        windows with width/height 0 generate X errors, so don't allow them

2004-05-05  Wim Taymans  <wim@fluendo.com>

	* ext/mpeg2dec/gstmpeg2dec.c: (src_templ),
	(gst_mpeg2dec_base_init), (gst_mpeg2dec_init),
	(gst_mpeg2dec_negotiate_format):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  removed the static pad template so that we can add the
	  more accurate framerate value to the caps.


2004-05-04  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  check for kdemacros.h, too (should fix #141821)
	* ext/vorbis/vorbisdec.c: (vorbis_dec_event), (vorbis_dec_chain):
	  don't crash if no header was sent, but nicely error out (fixes part
	  of #141554)

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

	* ext/mpeg2enc/gstmpeg2enc.cc: (gst_mpeg2enc_dispose): call the
	parent dispose function to avoid segfault on destroy.

2004-05-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
	(plugin_init):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_sink_link):
        clean up debugging caps
        also recreate xvimage when format has changed

2004-05-04  Benjamin Otte  <otte@gnome.org>

	* ext/libvisual/Makefile.am:
	* ext/libvisual/visual.c: (gst_visual_class_init),
	(gst_visual_init), (gst_visual_dispose), (gst_visual_getcaps),
	(gst_visual_srclink), (gst_visual_chain),
	(gst_visual_change_state), (plugin_init):
	  use a GstAdapter to correctly adapt buffer sizes - allows using a
	  framerate

2004-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lelement.h:
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps), (gst_v4lsrc_getcaps),
	(gst_v4lsrc_buffer_free):
	* sys/v4l/v4l_calls.c: (gst_v4l_get_capabilities):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame),
	(gst_v4lsrc_sync_frame), (gst_v4lsrc_grab_frame),
	(gst_v4lsrc_requeue_frame):
        move some debugging categories around
        query for fps index and set accordingly if found

2004-05-03  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/lame/gstlame.c:
	correct defaults that lame_init puts out of range

2004-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/divx/gstdivxenc.c: (gst_divxenc_get_type),
	(gst_divxenc_class_init):
        fix range since -1 is the default
	* gst/mpeg1sys/gstmpeg1systemencode.c:
	(gst_mpeg1_system_encode_get_type), (gst_system_encode_multiplex):
	* gst/rtjpeg/gstrtjpegdec.c: (gst_rtjpegdec_get_type),
	(gst_rtjpegdec_chain):
	* gst/rtjpeg/gstrtjpegenc.c: (gst_rtjpegenc_get_type),
	(gst_rtjpegenc_chain):
	* sys/qcam/gstqcamsrc.c: (gst_autoexp_mode_get_type),
	(gst_qcamsrc_get_type), (gst_qcamsrc_change_state):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_get_type):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get_type):
	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/v4l_calls.c: (gst_v4l_open):
	* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_playback_init):
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_init):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init):
	* sys/vcd/vcdsrc.c: (vcdsrc_get_type), (vcdsrc_get):
          remove gst_info calls

2004-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* po/af.po:
	* po/az.po:
	* po/en_GB.po:
	* po/nl.po:
	* po/sr.po:
	* po/sv.po:
          Updated translations

2004-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int):
          refactor/comment code

2004-05-02  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/Makefile.am:
	* gst/asfdemux/asfheaders.c:
	* gst/asfdemux/asfheaders.h:
	* gst/asfdemux/gstasf.c: (plugin_init):
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_type),
	(gst_asf_demux_base_init), (gst_asf_demux_process_comment),
	(gst_asf_demux_setup_pad):
	* gst/asfdemux/gstasfdemux.h:
	* gst/asfdemux/gstasfmux.c:
	* gst/asfdemux/gstasfmux.h:
	  Add tagging support to demuxer, split out registration in its own
	  file instead of in demux (hacky), and prevent having some tables
	  in our memory multiple times (in asfheaders.h).

2004-05-01  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_metadata):
	* gst/matroska/matroska-ids.h:
	  Basic tag reading support.

2004-04-30  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps):
	  Really detect ac-3 audio.
	* gst/typefind/gsttypefindfunctions.c: (matroska_type_find):
	  really detect matroska files (off-by-1).

2004-04-30  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_type_get),
	(qtdemux_dump_stsz), (qtdemux_dump_stco), (qtdemux_dump_co64),
	(qtdemux_dump_unknown), (qtdemux_parse_tree), (qtdemux_parse_udta),
	(qtdemux_tag_add), (get_size), (gst_qtdemux_handle_esds): More qtdemux
	hackage -- parse a lot more atoms, extract a few tags.  One might even
	mistake this for tag support.  Maybe it is.
	* gst/qtdemux/qtdemux.h:

2004-04-30  Colin Walters  <walters@verbum.org>

	* ext/alsa/gstalsasink.c (gst_alsa_sink_mmap): Plug a memleak.

2004-04-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_getcaps):
          remove broken nego fix

2004-04-30  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/libvisual/Makefile.am:
	* ext/libvisual/visual.c:
	  add initial support for libvisual (http://libvisual.sourceforge.net)
	  libvisual is still quite alpha, so expect crashes in there :)

2004-04-29  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), (qtdemux_parse),
	(qtdemux_parse_trak), (get_size), (gst_qtdemux_handle_esds): Hacked
	up qtdemux to make it spit out codec_data.  Do _not_ look at this
	code; you will no longer respect me.

2004-04-29  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/alsa/gstalsa.c : (gst_alsa_class_probe_devices)
	* ext/alsa/gstalsa.h :
	change alsa pcm device discovery to find more than 1 device
	per card. code review by Ronald.

2004-04-29  David Schleef  <ds@schleef.org>

	* sys/oss/gstosselement.c: (gst_osselement_rate_probe_check):
	Add a check for a driver bug on FreeBSD.  (bug #140565)

2004-04-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_get_type):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type),
	(gst_jpegenc_getcaps):
          move format setting to inner loop
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_getcaps):
          use GST_PAD_CAPS if available so that we use already negotiated
          caps
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse_moov), (qtdemux_parse):
          extra debugging
	* sys/qcam/qcam-Linux.c: (qc_lock_wait), (qc_unlock):
	* sys/qcam/qcam-os.c: (qc_lock_wait), (qc_unlock):
          move hardcoded path to DEFINE

2004-04-28  David Schleef  <ds@schleef.org>

	* gst/speed/gstspeed.c: (speed_parse_caps):  Fix caps parsing.
	(bug #140064)

2004-04-28  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices):
	  Don't probe for playback device if we're a source element. Fixes
	  #139658.

2004-04-29  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event),
	(gst_id3_tag_chain):
	  rewrite buffer offset

2004-04-28  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/dts/Makefile.am:
	* ext/dts/gstdtsdec.c: (gst_dtsdec_get_type),
	(gst_dtsdec_base_init), (gst_dtsdec_class_init), (gst_dtsdec_init),
	(gst_dtsdec_channels), (gst_dtsdec_renegotiate),
	(gst_dtsdec_handle_event), (gst_dtsdec_update_streaminfo),
	(gst_dtsdec_loop), (gst_dtsdec_change_state),
	(gst_dtsdec_set_property), (gst_dtsdec_get_property),
	(plugin_init):
	* ext/dts/gstdtsdec.h:
	  New DTS decoder.
	* ext/faad/gstfaad.c: (gst_faad_sinkconnect),
	(gst_faad_srcconnect):
	  Add ESDS atom handling (.m4a).

2004-04-27  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c: (plugin_init):
	  Remove comment that makes no sense.
	* ext/mad/gstid3tag.c: (gst_id3_tag_set_property):
	  Fix for obvious typo that resulted in warnings during gst-register.
	* ext/xvid/gstxviddec.c: (gst_xviddec_src_link),
	(gst_xviddec_sink_link):
	  Fix caps negotiation a bit better.
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  We call this 'codec_data', not 'esds'.

2004-04-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/monoscope/gstmonoscope.c:
	  make sure we only provide 256x128
	* gst/monoscope/monoscope.c: (monoscope_init):
	  assert size of 256x128

2004-04-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_init), (gst_v4lsrc_fixate),
	(gst_v4lsrc_getcaps), (gst_v4lsrc_buffer_free):
          fixate to max width and height of device

2004-04-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* sys/v4l/gstv4l.c:
	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/v4l_calls.c:
	* sys/v4l/v4lsrc_calls.c:
          fix for qc-usb driver which fakes having more than one buffer
          by handing the same buffer twice, which confused GStreamer's/v4lsrc
          buffer_free override
          add debugging

2004-04-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_class_init), (gst_videotestsrc_change_state),
	(gst_videotestsrc_init), (gst_videotestsrc_get),
	(gst_videotestsrc_set_property), (gst_videotestsrc_get_property):
	* gst/videotestsrc/gstvideotestsrc.h:
          add num-buffers property

	2004-04-26  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (plugin_init):
	  set id3mux rank to NONE so it doesn't confuse spider
	  require audio/mpeg,mpegversion=1 in id3mux

2004-04-26  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  detect faad correctly as non-working if it's indeed non-working

2004-04-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type),
	(gst_jpegenc_class_init), (gst_jpegenc_getcaps):
        fix _getcaps so it only negotiates to its supported format

2004-04-25  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int):
	  fix memleak

2004-04-23  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  audio/x-raw-int with height rules! not. Now it's depth.

2004-04-22  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_create_sourcepad),
	(gst_wavparse_parse_fmt), (gst_wavparse_handle_sink_event),
	(gst_wavparse_loop):
	  Missing variable initialization. Add handling of DVI ADPCM. Fix
	  mis-parsing of LIST chunks. This works around a bug where we mis-
	  parse non-aligning LIST chunks (so LIST chunks where the contents
	  don't align with the actual LIST size). The correct fix is to use
	  rifflib, I'm not going to fix wavparse - too much work. All this
	  fixes #104878.

2004-04-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/shout/gstshout.c: (gst_icecastsend_change_state):
	  fix shoutcast not working (fixes #140844)

2004-04-22  Benjamin Otte  <otte@gnome.org>

	* ext/hermes/gsthermescolorspace.c:
	(gst_hermes_colorspace_caps_remove_format_info):
	* gst/colorspace/gstcolorspace.c:
	(gst_colorspace_caps_remove_format_info):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_caps_remove_format_info):
	  s/gst_caps_simplify/gst_caps_do_simplify/

2004-04-22  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  mpegversion is an int
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_base_init):
	  don't try to create pad templates with NULL caps, use any caps
	  instead.

2004-04-20  David Schleef  <ds@schleef.org>

	* ext/sdl/Makefile.am: Link against libgstinterfaces, not
	libgstxoverlay.  jmmv@menta.net (Julio M. Merino Vidal)
	(bug #140384)

2004-04-20  Daniel Gazard  <daniel.gazard@epita.fr>

	reviewed by David Schleef

	* ext/mad/gstid3tag.c: Add stdlib.h
	* gst/rtp/gstrtpgsmenc.c: same
	* gst/tags/gstid3tag.c: same
	* gst/udp/gstudpsrc.c: (gst_udpsrc_get): Fix GST_DISABLE_LOADSAVE
	* gst/tcp/gsttcpsink.c: (gst_tcpsink_sink_link): Adjust
	GST_DISABLE_LOADSAVE use.
	* gst/udp/gstudpsink.c: (gst_udpsink_sink_link): Likewise.
	* gst/tcp/gsttcpsrc.c: (gst_tcpsrc_get): Likewise.
	* ext/gnomevfs/gstgnomevfssrc.c: Include <stdlib.h> (needed by
	atol(3)).
	* sys/oss/gstosselement.h: Include <sys/types.h> (needed for dev_t).
	* gst/tags/gstvorbistag.c: Include <stdlib.h> (needed by
	strtoul(3)).
	* gst/rtp/gstrtpL16enc.c: Include <stdlib.h> (needed by random(3)).
	* ext/mad/Makefile.am: (libgstmad_la_CFLAGS): Add $(MAD_CFLAGS)
	$(ID3_CFLAGS).
	* ext/libfame/Makefile.am: (libgstlibfame_la_CFLAGS): Add
	$(LIBFAME_CFLAGS).

2004-04-20  David Schleef  <ds@schleef.org>

	* gst/realmedia/rmdemux.c:  This was supposed to part of the
	last checkin.  Same idea.

2004-04-20  Daniel Gazard  <daniel.gazard@epita.fr>

	reviewed by David Schleef

	* configure.ac: bump required gstreamer version to 0.8.1.1
	because of following changes [--ds]

	* gst-libs/gst/riff/riff-read.c:  Include gst/gstutils.h.
	(gst_riff_peek_head, gst_riff_peek_list, gst_riff_read_list)
	(gst_riff_read_header):  Use GST_READ_UINT*
	macros to access possibly unaligned memory.

	* gst/typefind/gsttypefindfunctions.c: Include gst/gstutils.h.
	(mp3_type_find):  Use GST_READ_UINT*
	macros to access possibly unaligned memory.
	(mp3_type_find, mpeg1_parse_header, qt_type_find)
	(speex_type_find): Likewise

	* gst/tags/gstvorbistag.c: (ADVANCE): Likewise

	* gst/qtdemux/qtdemux.c: Include stdlib.h (needed by realloc).
	(QTDEMUX_GUINT32_GET, QTDEMUX_GUINT16_GET, QTDEMUX_FP32_GET)
	(QTDEMUX_FP16_GET, QTDEMUX_FOURCC_GET)
	(gst_qtdemux_loop_header, gst_qtdemux_loop_header)
	(qtdemux_node_dump_foreach, qtdemux_tree_get_child_by_type)
	(qtdemux_tree_get_sibling_by_type):  Use GST_READ_UINT*
	macros to access possibly unaligned memory.

	* gst/mpegstream/gstmpegpacketize.c: (parse_generic, parse_chunk):
	Likewise.

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead)
	(gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes): Likewise.

	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	Likewise.

	* gst/mpeg2sub/gstmpeg2subt.c: (GST_BUFFER_DATA)
	(gst_mpeg2subt_chain_subtitle): Likewise.

	* gst/mpeg1videoparse/gstmp1videoparse.c: (mp1videoparse_parse_seq)
	(gst_mp1videoparse_time_code, gst_mp1videoparse_real_chain):
	Likewise.

	* gst/mpeg1sys/buffer.c: (mpeg1mux_buffer_update_audio_info):
	Likewise.

	* gst/cdxaparse/gstcdxaparse.c: (gst_bytestream_peek_bytes):
	Likewise.

	* gst/asfdemux/gstasfdemux.c: (_read_var_length, _read_uint):
	Likewise.

2004-04-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
          update required version of GStreamer because of GST_TIME_FORMAT

2004-04-20  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_init):
	  remove leftover g_print
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	  don't try setting only a subset of the caps. We don't want to kill
	  autoplugging on purpose

2004-04-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (plugin_init):
	* sys/xvimage/xvimagesink.c: (plugin_init):
          add debugging categories

2004-04-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/en_GB.po:
        * po/LINGUAS:
          Adding en_GB translation (Gareth Owen)

2004-04-20  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	(qtdemux_parse), (qtdemux_type_get), (qtdemux_dump_mvhd),
	(qtdemux_dump_tkhd), (qtdemux_dump_stsd), (qtdemux_dump_unknown),
	(qtdemux_parse_trak), (qtdemux_video_caps), (qtdemux_audio_caps):
	A number of new features and hacks to extract the esds atom and
	put it into the caps.  (bug #137724)

2004-04-19  David Schleef  <ds@schleef.org>

	* gconf/Makefile.am: Fix for non-GNU make
	* gst-libs/gst/Makefile.am: Change directory order to handle
	GstPlay linking with gstinterfaces
	* gst-libs/gst/audio/make_filter: make use of tr portable
	* gst-libs/gst/play/Makefile.am: Add intended \
	* gst-libs/gst/xwindowlistener/xwindowlistener.c:
	(gst_xwin_set_clips): Switch to ISO variadic macro. Use a
	function prototype instead of void *.
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c: Switch to ISO variadic
	macro.
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_chain): wrap NULL in GST_ELEMENT_ERROR call
	* gst/videofilter/make_filter: make use of tr portable
	* pkgconfig/Makefile.am: Remove GNU extension in Makefile target

2004-04-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/uk.po:
          Added Ukrainian translation (Maxim V. Dziumanenko)

2004-04-18  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gsm/gstgsmdec.c: (gst_gsmdec_init), (gst_gsmdec_getcaps),
	(gst_gsmdec_link), (gst_gsmdec_chain):
	  Fix capsnego, simplify chain function slightly.
	* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
	  Add GSM.

2004-04-18  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
	(gst_wavparse_destroy_sourcepad), (gst_wavparse_create_sourcepad),
	(gst_wavparse_parse_fmt), (gst_wavparse_change_state):
	  Hack to make wavparse work with spider (always -> sometimes pad).
	  Fixes #135862 && #140411.

2004-04-18  Benjamin Otte  <otte@gnome.org>

	* sys/oss/gstosselement.c: (gst_osselement_sync_parms),
	(gst_osselement_rate_probe_check),
	(gst_osselement_rate_check_rate), (gst_osselement_rate_add_rate):
	  get rid of \n in debug output

2004-04-17  Iain <iain@prettypeople.org>

	* gst/wavparse/gstwavparse.c (gst_wavparse_loop): Allow all events,
	not just EOS.

2004-04-17  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_get_type),
	(gst_id3_tag_class_init), (gst_id3_tag_get_caps),
	(gst_id3_tag_add_src_pad), (gst_id3_tag_init),
	(gst_id3_tag_set_property), (gst_id3_tag_do_caps_nego),
	(gst_id3_tag_src_link), (gst_id3_tag_chain),
	(gst_id3_tag_change_state), (plugin_init):
	  deprecate id3tag element and replace with id3demux/id3mux.
	  great side effect: this ugly file is now even uglier, yay!
	* ext/mad/gstmad.h:
	  remove non-available function
	  update for new get_type

2004-04-17  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  require mpeg2dec >= 0.4.0

2004-04-17  Benjamin Otte  <otte@gnome.org>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_xcontext_get), (gst_xvimagesink_change_state),
	(gst_xvimagesink_set_xwindow_id):
	  call GST_ELEMENT_ERROR whenever get_xcontext fails. Includes
	  assorted cleanup fixes.

2004-04-16  David Schleef  <ds@schleef.org>

	* sys/ximage/ximagesink.h: Compile fix for FreeBSD. (bug #140268)
	* sys/xvimage/xvimagesink.h: same

2004-04-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file):
          Fix GST_ELEMENT_ERROR with (NULL)

2004-04-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  Add div[3456] as fourccs for DivX 3 (fixes #140137).

2004-04-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_caps), (gst_riff_create_audio_caps),
	(gst_riff_create_video_template_caps),
	(gst_riff_create_audio_template_caps):
	* gst-libs/gst/riff/riff-media.h:
	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data), (gst_riff_read_strf_vids):
	* gst-libs/gst/riff/riff-read.h:
	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
	  Add MS RLE support. I added some functions to read out strf chunks
	  into strf chunks and the data behind it. This is usually color
	  palettes (as in RLE, but also in 8-bit RGB). Also use those during
	  caps creation. Lastly, add ADPCM (similar to wavparse - which
	  should eventually be rifflib based).
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init),
	(gst_matroska_demux_init), (gst_matroska_demux_reset):
	* gst/matroska/matroska-demux.h:
	  Remove placeholders for some prehistoric tagging system. Didn't add
	  support for any tag system really anyway.
	* gst/qtdemux/qtdemux.c:
	  Add support for audio/x-m4a (MPEG-4) through spider.
	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt),
	(gst_wavparse_loop):
	  ADPCM support (#135862). Increase max. buffer size because we
	  cannot split buffers for ADPCM (screws references) and I've seen
	  files with 2048 byte chunks. 4096 seems safe for now.

2004-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano to 1

=== release 0.8.1 ===

2004-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.8.1, "Comforting Sounds"

2004-04-14  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Fix typo in divxversion (3 instead of 4 for "DIVX" fourcc).
	  Fixes #140058

2004-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_plugin_init):
          lower rank of dvddemux so that it's not used for mpeg playback.

2004-04-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  save libs correctly when checking mad

2004-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstid3tag.c: (plugin_init):
          lower rank of id3tag as proposed by Benjamin.  Fixes #139926.

2004-04-13  David Schleef  <ds@schleef.org>

	* common/m4/gst-feature.m4: Call -config scripts with
	--plugin-libs if it is supported.
	* gst/avi/gstavimux.c: (gst_avimux_vidsinkconnect): sequences of
	JPEG images are image/jpeg.
	* gst/debug/Makefile.am:
	* gst/debug/negotiation.c: (gst_negotiation_class_init),
	(gst_negotiation_getcaps), (gst_negotiation_pad_link),
	(gst_negotiation_update_caps), (gst_negotiation_get_property),
	(gst_negotiation_plugin_init): Add a property that acts like
	filter caps.
	* testsuite/gst-lint:  Move license checking to be a standard
	test.

2004-04-13  David Schleef  <ds@schleef.org>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset): Fix memleak.
	patch from Sebastien Cote (bug #139958)

2004-04-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gstplay/Makefile.am:
	* examples/gstplay/player.c: (main):
          make the commandline player example use gconf settings

2004-04-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/libcaca/gstcacasink.c: (gst_cacasink_class_init),
	(gst_cacasink_sinkconnect), (gst_cacasink_init),
	(gst_cacasink_chain), (gst_cacasink_open), (gst_cacasink_close):
          init/end library during state transition, not object
          creation/disposal.  get rid of custom dispose handler.


2004-04-12  Christian Schaller <Uraeus@gnome.org>

	* sys/oss/gstosselement.c: s/lstat/stat/ from freeBSD, since it can
	be a symlink

2004-04-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_data):
	  Handle JUNK chunks inside data section. Prevents warnings.

2004-04-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_video_template_caps):
	  Add MS video v1.
	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_data):
	  Add support for "rec-list" chunks.

2004-04-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  Fix another codecname mismatch.

2004-04-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Fix divx caps mismatch and move from video/x-jpeg to image/jpeg
	  so that MJPEG plays back.

2004-04-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init),
	(gst_mp1videoparse_real_chain), (gst_mp1videoparse_change_state):
	* gst/mpeg1videoparse/gstmp1videoparse.h:
	  Fix for some slight mis-cuts in buffer parsing, and for some
	  potential overflows or faults-causers. Adds disconts. Also fixes
	  #139105 while we're at it.

2004-04-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* sys/v4l2/gstv4l2element.h:
	  Workaround for missing struct v4l2_buffer declaration in Suse 9
	  and Mandrake 10 linux/videodev2.h header file (#135919).

2004-04-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file):
	  Bail out if no filename was given.

2004-04-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps),
	(gst_v4l2_fourcc_from_structure):
	  Add Y41B/Y42B YUV formats (see #125732), fix Y41P (was typo'ed to
	  Y41B somewhere).

2004-04-09  Benjamin Otte  <otte@gnome.org>

	* ext/gnomevfs/gstgnomevfssink.c:
	(_gst_boolean_allow_overwrite_accumulator),
	(gst_gnomevfssink_class_init):
	  fix erase signal - if any handler returns false the file will not be
	  overwritten. If no handler is connected, the file will not be
	  overwritten either.
	  renamed signal to "allow-overwrite"
	* ext/mad/gstid3tag.c: (tag_list_to_id3_tag_foreach):
	  free string when adding it to ID3 failed
	* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
	  unref event when done
	* gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int):
	  free caps
	* gst/typefind/gsttypefindfunctions.c:
	(mpeg_video_stream_type_find):
	  fix invalid read

2004-04-08  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_register): Change rank to PRIMARY.

2004-04-08  David Schleef  <ds@schleef.org>

	* gst/colorspace/gstcolorspace.c: Don't advertise a conversion
	we don't support (bug #139532)

2004-04-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstmad.c: (gst_mad_handle_event),
	(gst_mad_check_caps_reset), (gst_mad_chain),
	(gst_mad_change_state):
          only set explicit caps if they haven't been set before for
          this stream.  MPEG-audio sample rate/channels aren't allowed
          to change in-stream.
          Fixes #139382

2004-04-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_base_init),
	(_gst_boolean_did_something_accumulator),
	(gst_gnomevfssink_class_init), (gst_gnomevfssink_dispose),
	(gst_gnomevfssink_init), (gst_gnomevfssink_set_property),
	(gst_gnomevfssink_get_property), (gst_gnomevfssink_open_file),
	(gst_gnomevfssink_close_file), (gst_gnomevfssink_chain),
	(gst_gnomevfssink_change_state):
	  Fix erase signal. Don't erase by default. Remove handoff signal.
	  Remove erase property. Don't segfault. General cleanup.

2004-04-07  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/gconf/test-gconf.c: (main):
	  add missing gst_init

2004-04-07  Benjamin Otte  <otte@gnome.org>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_dispose):
	  free the mutexes, too

2004-04-07  Benjamin Otte  <otte@gnome.org>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_dispose):
	  actually free the URI string
	* ext/mad/gstid3tag.c: (gst_id3_tag_src_event):
	  compute offset correctly when passing discont events
	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event):
	  don't leak discont events
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_video_caps):
	  add some missing breaks so caps aren't copied randomly
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream):
	  if we realloc memory, we better use it

2004-04-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstmad.c: (normal_seek):
	  fix GST_FORMAT_TIME usage

2004-04-05  David Schleef  <ds@schleef.org>

	* ext/kio/kiosrc.cpp:  Undefine KDE_DEPRECATED so we can use
	a deprecated function (hack!)

2004-04-05  Benjamin Otte  <otte@gnome.org>

	* ext/esd/esdmon.c: (gst_esdmon_get):
	  fix nonterminated vararg and memleak

2004-04-05  Benjamin Otte  <otte@gnome.org>

	* ext/ladspa/gstladspa.c: (gst_ladspa_class_init),
	(gst_ladspa_init), (gst_ladspa_force_src_caps),
	(gst_ladspa_set_property), (gst_ladspa_get_property),
	(gst_ladspa_instantiate), (gst_ladspa_activate),
	(gst_ladspa_deactivate), (gst_ladspa_loop), (gst_ladspa_chain):
	  clean up debugging

2004-04-05  Stefan Kost <kost@imn.htwk-leipzig.de>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/ladspa/gstladspa.c: (gst_ladspa_class_init):
	  check for broken LADSPA parameters (fixes #138635)

2004-04-05  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_getcaps):
	  advertise buffer-frames correctly on sinkpads

2004-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstmad.c: (gst_mad_get_type), (gst_mad_layer_get_type),
	(gst_mad_mode_get_type), (gst_mad_emphasis_get_type),
	(gst_mad_get_event_masks), (gst_mad_get_query_types), (index_seek),
	(normal_seek), (gst_mad_src_event), (gst_mad_handle_event),
	(gst_mad_check_caps_reset), (gst_mad_chain):
        add more debugging, only reset caps when we're not in error state

2004-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstmad.c: add debugging category, comment + cleanups

2004-04-05  Julio M. Merino Vidal  <jmmv@menta.net>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  fix == in test(1) operator

2004-04-05  Julio M. Merino Vidal  <jmmv@menta.net>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  fix --export-symblos-regex to a working regex.

2004-04-04  Benjamin Otte  <otte@gnome.org>

	* sys/oss/.cvsignore:
	  add for oss_probe

2004-04-03  Tim-Phillip Müller <t.i.m@zen.co.uk>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event):
	  add missing 'new_media' argument (fixes #138168)
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_seek_event):
	  add vararg terminator (fixes #138169)

2004-04-02  David Schleef  <ds@schleef.org>

	* ext/gdk_pixbuf/Makefile.am:  Make sure gstgdkanimation.h is
	disted (bug #138914)

2004-04-01  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state),
	(gst_alsa_close_audio):
	  handle case better where a soundcard can't pause
	* ext/ogg/gstoggdemux.c:
	  don't crash when we get events but don't have pads yet

2004-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/oss/gstosselement.c: (gst_osselement_probe_caps):
          throw an error if we couldn't probe any caps.

2004-04-01  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dvdnav/gst-dvd:
	Add a really simple sample DVD player

2004-04-01  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_get_type), (gst_a52dec_init),
	(gst_a52dec_push), (gst_a52dec_handle_event),
	(gst_a52dec_update_streaminfo), (gst_a52dec_loop),
	(gst_a52dec_change_state):
	* ext/a52dec/gsta52dec.h:
	  Use a debug category, Output timestamps correctly
	  Emit tag info, Handle events, tell liba52dec about cpu
	  capabilities so it can use MMX etc.
	* ext/dv/gstdvdec.c: (gst_dvdec_loop), (gst_dvdec_change_state):
	  Fix a crasher accessing invalid memory
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init),
	(dvdnavsrc_update_highlight), (dvdnavsrc_loop),
	(dvdnavsrc_get_event_mask), (dvdnav_handle_navigation_event),
	(dvdnavsrc_event), (dvdnavsrc_get_formats), (dvdnavsrc_convert),
	(dvdnavsrc_query):
	  Some support for byte-format seeking.
	  Small fixes for still frames and menu button overlays
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_get_type),
	(gst_mpeg2dec_alloc_buffer):
	  Use a debug category. Adjust the report level of several items to
	  LOG. Call mpeg2_custom_fbuf to mark our buffers as 'custom buffers'
	  so it doesn't lose the GstBuffer pointer
	* gst/debug/Makefile.am:
	* gst/debug/gstdebug.c: (plugin_init):
	* gst/debug/gstnavseek.c: (gst_navseek_get_type),
	(gst_navseek_base_init), (gst_navseek_class_init),
	(gst_navseek_init), (gst_navseek_seek),
	(gst_navseek_handle_src_event), (gst_navseek_set_property),
	(gst_navseek_get_property), (gst_navseek_chain),
	(gst_navseek_plugin_init):
	* gst/debug/gstnavseek.h:
	  Add the navseek debug element for seeking back and forth in a
	  video stream using arrow keys.
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_get_type),
	(gst_mpeg2subt_base_init), (gst_mpeg2subt_class_init),
	(gst_mpeg2subt_init), (gst_mpeg2subt_finalize),
	(gst_mpeg2subt_getcaps_video), (gst_mpeg2subt_link_video),
	(gst_mpeg2subt_handle_video), (gst_mpeg2subt_src_event),
	(gst_mpeg2subt_parse_header), (gst_get_nibble),
	(gst_setup_palette), (gst_get_rle_code), (gst_draw_rle_line),
	(gst_merge_uv_data), (gst_mpeg2subt_merge_title),
	(gst_update_still_frame), (gst_mpeg2subt_handle_subtitle),
	(gst_mpeg2subt_handle_dvd_event), (gst_mpeg2subt_loop):
	* gst/mpeg2sub/gstmpeg2subt.h:
	  Pretty much a complete rewrite. Now a loopbased element. May still
	  require work to properly synchronise subtitle buffers.
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private),
	(gst_dvd_demux_send_subbuffer):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer):
	  Don't attempt to create subbuffers of size 0
	  Reduce a couple of error outputs to warnings.
	* gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect),
	(gst_y4mencode_chain):
	Output the y4m frame header correctly.

2004-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/adder/gstadder.c: (gst_adder_get_type), (gst_adder_loop):
          throw errors instead of allowing SIGFPE

2004-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/gconf/gconf.c: (gst_gconf_get_string),
	(gst_gconf_render_bin_from_key):
          leak plugging and style fixing

2004-03-31  David Schleef  <ds@schleef.org>

	* gst/audioscale/gstaudioscale.c: (gst_audioscale_expand_value),
	(gst_audioscale_getcaps): Fix getcaps to expand and union lists.
	(bug #138225)
	* gst/debug/Makefile.am:
	* gst/debug/breakmydata.c: (gst_break_my_data_plugin_init):
	* gst/debug/gstdebug.c: (plugin_init):  Merge elements into one
	plugin.
	* gst/debug/negotiation.c: (gst_gst_negotiation_get_type),
	(gst_negotiation_base_init), (gst_negotiation_class_init),
	(gst_negotiation_init), (gst_negotiation_getcaps),
	(gst_negotiation_pad_link), (gst_negotiation_chain),
	(gst_negotiation_set_property), (gst_negotiation_get_property),
	(gst_negotiation_plugin_init):  New element to talk about random
	negotiation things happening in a pipeline.

2004-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/adder/gstadder.c: (gst_adder_get_type), (gst_adder_loop):
          fix integer addition with help of Stefan Kost

2004-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/nl.po: updated Dutch translation (Elros Cyriatan)

2004-03-30  David Schleef  <ds@schleef.org>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer),
	(gst_mpeg2dec_negotiate_format):  Handle Y42B-format MPEG
	video, patch from Matthew.Spencer@eu.sony.com (Matthew Spencer)
	(bug #137504)
	* ext/mpeg2dec/gstmpeg2dec.h:

2004-03-30  David Schleef  <ds@schleef.org>

	* ext/gdk_pixbuf/Makefile.am: Remove spurious rules. (bug #136527)

2004-03-30  David Schleef  <ds@schleef.org>

	* tools/gst-launch-ext-m.m:  Applied patch from gnome@flyn.org (W.
	Michael Petullo) to handle .mov

2004-03-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/oss/gstosselement.c: (gst_osselement_probe_caps),
	(gst_osselement_rate_check_rate):
	  probe caps correctly for sound cards that only support one format

2004-03-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/kio/kiosrc.cpp: (process_events):
	  update handling event processing if inside KDE - untested

2004-03-29  David Schleef  <ds@schleef.org>

	* ext/hermes/gsthermescolorspace.c: (plugin_init): decrease rank
	by 2 to not interfere with other colorspaces.
	* ext/pango/gsttextoverlay.c: (plugin_init): change rank to NONE
	* gst/colorspace/gstcolorspace.c: (plugin_init): decrease rank by
	one to not interfere with ffmpeg_colorspace.

2004-03-29  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsa.c: (gst_alsa_fixate): Don't fixate fields that
	aren't in the caps.
	* gst/sine/gstsinesrc.c: change rate caps to [1,MAX]
	* gst/videocrop/gstvideocrop.c: (plugin_init): Change rank to NONE.

2004-03-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/riff/riff-media.c:
	  fail on error, don't try to set stuff on NULL caps

2004-03-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	* ext/Makefile.am:
	* ext/kio/Makefile.am:
	* ext/kio/kioreceiver.cpp:
	* ext/kio/kioreceiver.h:
	* ext/kio/kiosrc.cpp:
	* ext/kio/kiosrc.h:
	  add experimental kiosrc plugin
	* ext/alsa/gstalsaplugin.c: (plugin_init):
	  initialize debugging category only when we're sure registering the
	  plugins worked.

2004-03-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gstplay/player.c: (main):
	* gst-libs/gst/play/play.c: (gst_play_class_init),
	(gst_play_set_location), (gst_play_set_data_src),
	(gst_play_set_video_sink), (gst_play_set_audio_sink),
	(gst_play_set_visualization), (gst_play_connect_visualization):
          check return values of element_set_state and return FALSE where
          failed

2004-03-29  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event):
	  try harder to check if an event is really a discont

2004-03-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS: adding Azerbaijani (Mətin Əmirov)
	* po/az.po:

2004-03-28  Benjamin Otte  <otte@gnome.org>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead),
	(gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes):
	  get rid of non-standard "..." ranges in case statements.

2004-03-27  Martin Soto  <martinsoto@users.sourceforge.net>

	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegdemux.h: Complete overhaul. All DVD
	specific functionality split to the new dvddemux element.
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstdvddemux.h: New demultiplexer for DVD (VOB)
	streams, derived from mpegdemux.
	* gst/mpegstream/gstmpegparse.c: Discontinuity handling cleaned
	up. SCR based timestamp rewriting can be turned off (will probably
	completely disappear soon).
	* ext/dvdnav/dvdnavsrc.c: Changes resulting from a few months
	hacking. General cleanup. All printf statements replaced by
	debugging messages. Almost complete libdvdnav support.
	(dvdnavsrc_class_init): Got rid of unnecessary signals (replaced
	by events. New properties for audio and subpicture languages.
	(dvdnavsrc_update_highlight): Now uses events.
	(dvdnavsrc_user_op): Cleaned up.
	(dvdnavsrc_get): Renamed to dvdnavsrc_loop (element is now loop
	based). Lots of cleanup, and propper support for most libdvdnav
	events.
	(dvdnavsrc_make_dvd_event): New function.
	(dvdnavsrc_make_dvd_nav_packet_event): New function.
	(dvdnavsrc_make_clut_change_event): New function.

2004-03-26  Benjamin Otte  <otte@gnome.org>

	* gst/typefind/gsttypefindfunctions.c: (theora_type_find):
	  fix bug where typefinding would claim it's theora whenever less then
	  7 bytes of data were available

2004-03-25  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_link),
	(gst_alawdec_base_init), (gst_alawdec_class_init),
	(gst_alawdec_init), (gst_alawdec_chain):
	* gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_link),
	(gst_alawenc_base_init), (gst_alawenc_class_init),
	(gst_alawenc_init), (gst_alawenc_chain):
	* gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_link),
	(gst_mulawdec_base_init), (gst_mulawdec_class_init),
	(gst_mulawdec_init), (gst_mulawdec_chain):
	* gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_link),
	(gst_mulawenc_base_init), (gst_mulawenc_class_init),
	(gst_mulawenc_init), (gst_mulawenc_chain):
	  Fix capsnego in all four, remove the unused property functions and
	  simplify the chain functions slightly. I guess we could use macros
	  or something similar for those, since the code is so similar, but
	  I'm currently too lazy...

2004-03-24  David Schleef  <ds@schleef.org>

	* sys/oss/gstosselement.c: (gst_osselement_sync_parms),
	(gst_osselement_close_audio), (gst_osselement_probe_caps),
	(gst_osselement_get_format_structure),
	(gst_osselement_rate_probe_check), (gst_osselement_rate_add_range),
	(gst_osselement_rate_check_rate), (gst_osselement_rate_add_rate),
	(gst_osselement_rate_int_compare): Add code to handle rate probing
	(bug #120883)
	* sys/oss/gstosselement.h: same
	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_getcaps):
	Use rate probing provided by osselement.
	* sys/oss/gstosssrc.c: (gst_osssrc_init), (gst_osssrc_getcaps): same

2004-03-24  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/xvid/gstxvidenc.c: (gst_xvidenc_set_property),
	(gst_xvidenc_get_property):
	  ulong/int mess-up.

2004-03-24  David Schleef  <ds@schleef.org>

	* ext/speex/gstspeexdec.c: (gst_speexdec_base_init),
	(gst_speexdec_init):
	* ext/speex/gstspeexenc.c: (gst_speexenc_base_init),
	(gst_speexenc_init):  Create the pad template correctly (from
	the static pad template, not a NULL pointer.)

2004-03-25  Benjamin Otte  <otte@gnome.org>

	* gst/debug/Makefile.am:
	* gst/debug/breakmydata.c:
	  add element that quasi-randomly changes bytes in the stream.
	  Intended use is robustness checking of demuxers and decoders in
	  media tests.

2004-03-24  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
	(gst_alsa_probe_hw_params):
	* ext/alsa/gstalsa.h:
	  debugging output fixes

2004-03-24  Benjamin Otte  <otte@gnome.org>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_set_property):
	  don't g_return_if_fail if element is PLAYING, fail silently as every
	  other element.
	* gst/effectv/gstquark.c: (gst_quarktv_chain):
	  only fix needed for cast lvalue issues in gst-plugins
	* gst/volenv/gstvolenv.c: (gst_volenv_init):
	  add proxy_getcaps

2004-03-24  Benjamin Otte  <otte@gnome.org>

	* gst/level/gstlevel.c: (gst_level_init):
	  add proxying getcaps function, so level doesn't advertise impossible
	  caps

2004-03-24  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	(gst_qtdemux_loop_header), (qtdemux_parse_moov), (qtdemux_parse),
	(qtdemux_node_dump_foreach), (qtdemux_dump_mvhd),
	(qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd),
	(qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref),
	(qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss),
	(qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco),
	(qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd),
	(qtdemux_parse_tree), (qtdemux_parse_trak):  Fix debugging
	messages.  Divide the chunk size by the compression ratio
	(needed for MACE audio)

2004-03-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	  Fix buffer overflow read error.

2004-03-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.h:
	  Remove unused entry.
	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Add cinepak.
	* gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps),
	(gst_videodrop_link), (gst_videodrop_chain):
	  Fix, sort of. Was horribly broken with new capsnego. Bah...

2004-03-23  Jeremy Simon  <jesimon@libertysurf.fr>

	* gst/typefind/gsttypefindfunctions.c: (ape_type_find),
	(plugin_init):
	Add a monkeysaudio typefind function

2004-03-23  Johan Dahlin  <johan@gnome.org>

	* gst-libs/gst/play/play.c (gst_play_audio_fixate)
	(gst_play_video_fixate): Check so the structure has the field
	before trying to fixate them, this makes it possible to have
	fakesinks for video and audio output without printing errors on
	the output console.

2004-03-22  David Schleef  <ds@schleef.org>

	* sys/oss/Makefile.am:
	* sys/oss/oss_probe.c: (main), (probe_check), (add_range),
	(check_rate), (add_rate):  Rate probing test app.

2004-03-21  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link),
	(_fixate_caps_to_int), (gst_audio_convert_fixate):
	  add a fixation function that pretty much does the right thing (fixes
	  #137556)

2004-03-20  David I. Lehn  <dlehn@users.sourceforge.net>

	* configure.ac: GST_PACKAGE default: s/GStreamer/GStreamer Plugins/

2004-03-20  Tim-Phillip Müller <t.i.m@zen.co.uk>

	reviewed by: Benjamin Otte  <otte@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  terminate gst_event_new_discontinuous correctly (fixes parts of
	  #137711)

2004-03-19  David Schleef  <ds@schleef.org>

	* gst-libs/gst/Makefile.am:  Enable xoverlay unconditionally,
	since it doesn't depend on X, and it's part of our ABI.

2004-03-19  Iain <iain@prettypeople.org>

	* gst/interleave/deinterleave.c (deinterleave_sink_link): Use the
	is_int in the structure, not the local variable.

2004-03-19  David Schleef  <ds@schleef.org>

	* ext/librfb/gstrfbsrc.c: (gst_rfbsrc_change_state),
	(gst_rfbsrc_init), (gst_rfbsrc_getcaps), (gst_rfbsrc_fixate),
	(gst_rfbsrc_link), (gst_rfbsrc_paint_rect), (gst_rfbsrc_get):
	Improvements in caps negotiation.

2004-03-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/af.po:
          adding Afrikaans (Petri Jooste)

2004-03-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_chain):
        throw error instead of g_critical (#137588)

2004-03-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
          dist common and m4 correctly
	* po/sv.po:

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

	* pkgconfig/gstreamer-media-info.pc.in:  Add Version.
	(bug #137348)

2004-03-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/sv.po:
          adding Swedish translation (Christian Rose)

2004-03-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am: use release.mak

2004-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/ChangeLog:
	* common/gst-autogen.sh:
          add some explanation about the version detection
	* configure.ac:
          fix X check

2004-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano to 1

=== release 0.8.0 ===

2004-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: release 0.8.0, "Pharmaceutical Itch"

2004-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
          update libtool version
	* gst-libs/gst/media-info/Makefile.am:
          actually use libtool version

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: fix speex detection to work with 1.0 but not 1.1

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* gst-plugins.spec.in:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-gconf-uninstalled.pc.in:
	* pkgconfig/gstreamer-interfaces-uninstalled.pc.in:
	* pkgconfig/gstreamer-libs-uninstalled.pc.in:
	* pkgconfig/gstreamer-libs.pc.in:
	* pkgconfig/gstreamer-media-info-uninstalled.pc.in:
	* pkgconfig/gstreamer-play-uninstalled.pc.in:
	* pkgconfig/gstreamer-plugins-uninstalled.pc.in:
	* pkgconfig/gstreamer-plugins.pc.in:
          remove @VERSION@ from some of the pc files since core and plugins
          are decoupled.
          created gstreamer-plugins.pc as it's a better name, but keeping
          -libs around for now to get fixes upstream done first.

2004-03-15  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/play/play.c: (gst_play_get_framerate),
	(gst_play_get_sink_element): First draft of gst_play_get_framerate.
	* gst-libs/gst/play/play.h:

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* *.c, *.cc: don't mix tabs and spaces

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup):
          use the new ffmpegcolorspace
	* gst-plugins.spec.in:
          package new colorspace and media-info
	* configure.ac:
	* pkgconfig/Makefile.am:
          fix some more disting issues
	* pkgconfig/gstreamer-media-info-uninstalled.pc.in:
	* pkgconfig/gstreamer-media-info.pc.in:
          generate media-info pc files

2004-03-15  Johan Dahlin  <johan@gnome.org>

	* *.h: Revert indenting

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
          adding ffmpegcolorspace element
	* gst/ffmpegcolorspace/Makefile.am:
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/common.h:
	* gst/ffmpegcolorspace/dsputil.c: (dsputil_static_init):
	* gst/ffmpegcolorspace/dsputil.h:
	* gst/ffmpegcolorspace/gstffmpeg.c: (plugin_init):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_pix_fmt_to_caps),
	(gst_ffmpeg_caps_to_pix_fmt):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_caps_remove_format_info),
	(gst_ffmpegcolorspace_getcaps), (gst_ffmpegcolorspace_pad_link),
	(gst_ffmpegcolorspace_get_type), (gst_ffmpegcolorspace_base_init),
	(gst_ffmpegcolorspace_class_init), (gst_ffmpegcolorspace_init),
	(gst_ffmpegcolorspace_chain), (gst_ffmpegcolorspace_change_state),
	(gst_ffmpegcolorspace_set_property),
	(gst_ffmpegcolorspace_get_property),
	(gst_ffmpegcolorspace_register):
	* gst/ffmpegcolorspace/imgconvert.c:
	(avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name),
	(avcodec_get_pix_fmt), (avpicture_fill), (avpicture_layout),
	(avpicture_get_size), (avcodec_get_pix_fmt_loss),
	(avg_bits_per_pixel), (avcodec_find_best_pix_fmt1),
	(avcodec_find_best_pix_fmt), (img_copy_plane), (img_copy),
	(yuv422_to_yuv420p), (yuv422_to_yuv422p), (yuv422p_to_yuv422),
	(C_JPEG_TO_CCIR), (img_convert_init), (img_apply_table),
	(shrink41), (shrink21), (shrink12), (shrink22), (shrink44),
	(grow21_line), (grow41_line), (grow21), (grow22), (grow41),
	(grow44), (conv411), (gif_clut_index), (build_rgb_palette),
	(bitcopy_n), (mono_to_gray), (monowhite_to_gray),
	(monoblack_to_gray), (gray_to_mono), (gray_to_monowhite),
	(gray_to_monoblack), (avpicture_alloc), (avpicture_free),
	(is_yuv_planar), (img_convert), (get_alpha_info_pal8),
	(img_get_alpha_info), (deinterlace_line),
	(deinterlace_line_inplace), (deinterlace_bottom_field),
	(deinterlace_bottom_field_inplace), (avpicture_deinterlace):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	* gst/ffmpegcolorspace/mem.c: (av_malloc), (av_realloc), (av_free):
	* gst/ffmpegcolorspace/mmx.h:
	* gst/ffmpegcolorspace/utils.c: (avcodec_init):
          adding ffmpegcolorspace element supplied by Ronald after cleaning
          up and pulling in the right bits of upstream source.
          I'm sure a better C/compiler wizard could do some cleaning up (for
          example use GLIB's malloc stuff), but as a first pass this
          works very well

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsa.h:
	  I assume Ronald forgot to commit the change to have cardname
          as a struct member.  Expect some public spanking at the next
          opportunity.

2004-03-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_get_property),
	(gst_alsa_open_audio), (gst_alsa_close_audio):
	* ext/alsa/gstalsa.c:
	  Don't open the device if we're a mixer (= padless).
	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_class_init),
	(gst_alsa_mixer_init), (gst_alsa_mixer_open),
	(gst_alsa_mixer_close), (gst_alsa_mixer_change_state):
	  Open mixer during state change rather than during object
	  initialization. Also, get a device name. Currently in a somewhat
	  hackish fashion, but I didn't really find something better.

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

	* *.c, *.h: run gst-indent

2004-03-14  Benjamin Otte  <otte@gnome.org>

	* gst/modplug/gstmodplug.cc:
	* gst/modplug/gstmodplug.h:
	  set correct timestamps on outgoing buffers

2004-03-14  Benjamin Otte  <otte@gnome.org>

	* gst/modplug/gstmodplug.cc:
	  handle events - don't do crap when a discont arrives that's not
	  necessary
	  This allows correct loading and playback of mods in Rhythmbox

2004-03-14  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	* gst-libs/gst/gconf/Makefile.am:
	* pkgconfig/Makefile.am:
	  move gstreamer-gconf pkgconfig files to pkgconfig/ dir. Make sure
	  they get rebuilt properly
	* configure.ac:
	  when checking for vorbis, try pkgconfig first.
	* gst/modplug/gstmodplug.cc:
	  add fixate function

2004-03-14  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Fix for obvious mistake, where we first shift the offset and then
	  read a samplesize element assuming the old offset. Note that this
	  part still has something weird, i.e. my movies containing those
	  don't actually play well, but at least there's something that looks
	  like sound now.

2004-03-14  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/typefind/gsttypefindfunctions.c: (speex_type_find),
	(plugin_init):
	Add a typefind function for speex format

2004-03-13  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_video_caps),
	(gst_asf_demux_setup_pad):
	  Use 25fps as our "fake" fps value (marked for fixage in 0.9.x)
	  instead of 0. Reason is simple: some elements have a fps range
	  of 1-max instead of 0-max. So now ASF video actually works.

2004-03-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/sr.po:
	  adding serbian as a language

2004-03-13  Benjamin Otte  <otte@gnome.org>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
	  return taglist correctly from _get function, don't gst_pad_push it.
	  (fixes #137042)

2004-03-13  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices):

2004-03-13  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_free_list):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_class_init),
	(gst_alsa_mixer_track_new):
	* ext/alsa/gstalsamixertrack.h:
	  Fix ancient leftovers... MixerTrack is a GObject.

2004-03-13  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices):
	* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
	  Don't block during probing...

2004-03-12  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_get_type), (gst_alsa_class_init),
	(gst_alsa_get_property), (gst_alsa_probe_get_properties),
	(gst_alsa_class_probe_devices), (gst_alsa_class_list_devices),
	(gst_alsa_probe_probe_property), (gst_alsa_probe_needs_probe),
	(gst_alsa_probe_get_values), (gst_alsa_probe_interface_init),
	(gst_alsa_open_audio), (gst_alsa_close_audio):
	* ext/alsa/gstalsa.h:
	  Add propertyprobe interface implementation, add some device-name
	  property, all this so that it looks good in gnome-volume-control.

2004-03-12  David Schleef  <ds@schleef.org>

	* configure.ac: the Hermes library controls hermescolorspace, not
	colorspace.
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init),
	(gst_mpeg2dec_init): minor pet peeve: disable code with #ifdef,
	not /* */
	* ext/sdl/sdlvideosink.c: Change XID to unsigned long.
	* ext/sdl/sdlvideosink.h: ditto.
	* gst/colorspace/gstcolorspace.c: Fix old comments about Hermes

2004-03-12  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_set_xwindow_id),
	(gst_x_overlay_got_xwindow_id):
	* gst-libs/gst/xoverlay/xoverlay.h:
	  replace XID with unsigned long to get rid of the xlibs dependency in
	  XOverlay (fixes #137004)

2004-03-13  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/effectv/gstaging.c: (gst_agingtv_base_init),
	(gst_agingtv_setup):
	* gst/effectv/gstdice.c: (gst_dicetv_get_type),
	(gst_dicetv_base_init), (gst_dicetv_class_init),
	(gst_dicetv_setup), (gst_dicetv_init), (gst_dicetv_draw):
	* gst/effectv/gstedge.c: (gst_edgetv_get_type),
	(gst_edgetv_base_init), (gst_edgetv_class_init), (gst_edgetv_init),
	(gst_edgetv_setup), (gst_edgetv_rgb32):
	* gst/effectv/gsteffectv.c:
	* gst/effectv/gstquark.c: (gst_quarktv_link), (gst_quarktv_init),
	(gst_quarktv_set_property):
	* gst/effectv/gstrev.c: (gst_revtv_get_type),
	(gst_revtv_base_init), (gst_revtv_class_init), (gst_revtv_init),
	(gst_revtv_setup), (gst_revtv_rgb32):
	* gst/effectv/gstshagadelic.c: (gst_shagadelictv_get_type),
	(gst_shagadelictv_base_init), (gst_shagadelictv_class_init),
	(gst_shagadelictv_init), (gst_shagadelictv_setup),
	(gst_shagadelictv_rgb32):
	* gst/effectv/gstvertigo.c: (gst_vertigotv_get_type),
	(gst_vertigotv_base_init), (gst_vertigotv_class_init),
	(gst_vertigotv_setup), (gst_vertigotv_init), (gst_vertigotv_rgb32):
	* gst/effectv/gstwarp.c:
	Port everything that can be ported to videofilter and fix up the caps.
	Can someone with a big-endian machine please check these?

2004-03-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_get_time),
	(gst_osssink_chain), (gst_osssink_change_state):
	  Latest fixes for A/V sync, audio playback and such. This is about
	  all... MPEG playback issues are mostly related to the async build-
	  up of MPEG files, I cannot fix that. Use basicgthread to solve it.

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

	patch from: Stephane Loeuillet

	* configure.ac:
	  use pkg-config for some libraries, falling back to the old .m4 way
          (fixes #131270)
	* m4/libdv.m4:
          removed

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

	* configure.ac:
	* tools/Makefile.am:
	* tools/Makefile.in:
	* tools/gst-launch-ext-m.m:
	* tools/gst-launch-ext.1.in:
	* tools/gst-visualise-m.m:
	* tools/gst-visualise.1:
	* tools/gst-visualise.1.in:
          reorganizing generation of script tools

2004-03-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c:
	  Downgrade priority. We prefer ffdec_mpeg4.
	* ext/faad/gstfaad.c: (gst_faad_srcgetcaps), (gst_faad_srcconnect),
	(gst_faad_chain), (gst_faad_change_state):
	  Fix capsnego. Doesn't work for some sounds because we don't have
	  a 5:1 to stereo element.
	* ext/xvid/gstxvid.c: (plugin_init):
	  Add priority.
	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain),
	(gst_osssink_change_state):
	  Add discont handling.

2004-03-09  Colin Walters  <walters@verbum.org>

	* gst/audioconvert/gstaudioconvert.c: Fix typo in width 8
	conversion.

2004-03-09  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init):
	  the signals take 2 arguments

2004-03-09  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsa.c: (gst_alsa_request_new_pad),
	(gst_alsa_fixate): Add fixate function.  (bug #136686)
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_init):

2004-03-09  Benjamin Otte  <otte@gnome.org>

	* ext/mikmod/gstmikmod.c: (gst_mikmod_init), (gst_mikmod_loop),
	(gst_mikmod_change_state):
	* ext/mikmod/gstmikmod.h:
	  make mikmod's loop function not loop infinitely and call
	  gst_element_yield anymore
	* gst/modplug/gstmodplug.cc:
	  fix pad negotiation (fixes #136590)

2004-03-09  David Schleef  <ds@schleef.org>

	* ext/lcs/Makefile.am:  Fix so that the lcs colorspace plugin
	doesn't conflict with the internal colorspace plugin.
	* gst-libs/gst/audio/make_filter:  Use `` instead of $() to
	satisfy the crappy-ass shell shipped by a certain vendor.
	* gst/videofilter/make_filter: same (bug #135299)

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano to 1

=== release 0.7.6 ===

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.in: releasing 0.7.6, "There"

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* pkgconfig/gstreamer-play-uninstalled.pc.in:
	* pkgconfig/gstreamer-play.pc.in:
          synchronize the two

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_base_init),
	(cdparanoia_open), (cdparanoia_event):
	  fix/add error handling
	* po/POTFILES.in:
	  add cdparanoia source
	* tools/Makefile.am:
	  make scripts executable

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/vorbis/Makefile.am:
	* sys/Makefile.am:
	  remove id3types, vorbisfile and xvideosink from the build (#133783)

2004-03-08  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_info):
	  Fix metadata read crash (#136537).

2004-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/media-info/media-info-priv.c: (gmi_set_mime):
	* gst-libs/gst/media-info/media-info.c: (gst_media_info_read):
          adding mime types, fixing the one-stop function

2004-03-08  Christian Schaller <Uraeus@gnome.org>

	* ext/nas/nassink.c and /ext/nas/nassink.h:
	More NAS love from Arwed von Merkatz
	So lets all sing 'Can you feel the NAS tonight'

2004-03-08  Christian Schaller <Uraeus@gnome.org>

	* tools/gst-launch-ext.in:
	Replace vorbisfile with oggdemux/vorbisdec/audioconvert

2004-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init),
	(gst_mpeg2dec_init):
        remove the user_data pad for now, because it is being used in
        fixating causing MPEG playback to fixate on 1000 Hz for playback.
        If someone knows how to fix this properly, please do.

2004-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/oss/gstosssink.c: (gst_osssink_get_delay),
	(gst_osssink_get_time):
        add a warning, IMO this won't get triggered anymore, remove later

2004-03-07  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):  Added Cinepak
	format (bug #136470)

2004-03-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/Makefile.am:
	* gst-libs/gst/media-info/Makefile.am:
	* gst-libs/gst/media-info/media-info-priv.c: (found_tag_callback),
	(error_callback), (gst_media_info_error_create),
	(gst_media_info_error_element), (gmip_init), (gmip_reset),
	(gmi_clear_decoder), (gmip_find_type_pre), (gmip_find_type):
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/media-info/media-info-test.c: (main):
	* gst-libs/gst/media-info/media-info.c: (gst_media_info_init),
	(gst_media_info_class_init), (gst_media_info_instance_init),
	(gst_media_info_set_source), (gst_media_info_read_with_idler),
	(gst_media_info_read_idler), (gst_media_info_read):
	* gst-libs/gst/media-info/media-info.h:
	fixed, should work now

2004-03-07  Christian Schaller <Uraeus@gnome.org>

	* ext/nas/nassink.c:
	A bunch of NAS fixes from Arwed von Merkatz

2004-03-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
	(qtdemux_parse_trak):
	  Fix crash (j might be greater than n_samples, in which case we're
	  writing outside the allocated space for the array) and memleak.

2004-03-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssink.c: (gst_osssink_chain):
	  And another caller that couldn't handle delay < 0 (unsigned
	  integer overflow). Video now continues playing on an audio
	  buffer underrun, and the clock continues working. Audio still
	  stalls.

2004-03-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssink.c: (gst_osssink_get_delay),
	(gst_osssink_get_time):
	  get_delay() may return values lower than 0. In those cases, we
	  should not actually cast to *unsigned* int64, that will break
	  stuff horribly. In my case, it screwed up A/V sync in movies
	  in totem rather badly.

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	* ext/faac/gstfaac.c: (gst_faac_chain):
	* ext/flac/gstflactag.c: (gst_flac_tag_chain):
	* ext/libpng/gstpngenc.c: (user_write_data):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_loop):
	* gst/ac3parse/gstac3parse.c: (gst_ac3parse_chain):
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_chain_subtitle):
	* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice):
	Fix several misuse of gst_buffer_merge (it doesn't take ownership
	of any buffer), should fix some leaks. I hope I didn't unref buffers
	that shouldn't be...

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/media-info/media-info-priv.c: (have_type_callback),
	(deep_notify_callback), (tag_flag_score), (found_tag_callback),
	(error_callback), (gmi_reset), (gmi_seek_to_track),
	(gmi_get_decoder), (gmi_set_mime), (gmip_find_type_pre),
	(gmip_find_type_post), (gmip_find_stream_post),
	(gmip_find_track_streaminfo_post):
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/media-info/media-info-test.c: (print_tag),
	(info_print), (main):
	* gst-libs/gst/media-info/media-info.c:
	(gst_media_info_error_create), (gst_media_info_error_element),
	(gst_media_info_instance_init), (gst_media_info_get_property),
	(gst_media_info_new), (gst_media_info_set_source),
	(gst_media_info_read_idler), (gst_media_info_read):
	* gst-libs/gst/media-info/media-info.h:
          first pass at making this work again.  This seems to work on
          tagged ogg/vorbis and mp3 files.

2004-03-06  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  fix huge leak: gst_buffer_merge doesn't unref the first argument
	  itself.

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstmad.c: (gst_mad_class_init), (gst_mad_update_info):
          report layer/mode/emphasis

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	* ext/mad/gstmad.c: (gst_mad_chain): fixed caps leak

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_new):
          signal serial

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
	(gst_vorbis_dec_init), (vorbis_dec_event):
        add debug category
        make vorbisdec handle _BYTE and _TIME queries

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	* ext/mad/gstmad.c: (gst_mad_chain): send the average bitrate read
	  from the xing header

2004-03-06  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_getcaps),
	(gst_audio_convert_link), (gst_audio_convert_change_state),
	(gst_audio_convert_buffer_from_default_format):
	  do conversions from/to float correctly, fix some caps nego errors,
	  export correct supported caps in template and getcaps, use correct
	  caps in try_set_caps functions

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	For some reason, I only committed a ChangeLog entry yesterday and
	not the corresponding code...
	* ext/mad/gstmad.c: Fix detection of Xing headers
	* gst/tags/gstid3tag.c: Changes to support TLEN tags

2004-03-06  Benjamin Otte  <otte@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_get_pad_by_pad),
	(gst_ogg_demux_src_query):
	  make sure to handle the case where there's no current chain
	  gracefully.

2004-03-05  David Schleef  <ds@schleef.org>

	* ext/aalib/gstaasink.c: (gst_aasink_fixate), (gst_aasink_init):
	Add fixate function. (bug #131128)
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init),
	(gst_sdlvideosink_fixate):  Add fixate function.
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	Fix attempt to print a non-pointer using GST_PTR_FORMAT.
	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt):
	Fix missing break that was causing ulaw to be interpreted as
	raw int.

2004-03-05  David Schleef  <ds@schleef.org>

	* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice):
	Fix code that ignores return value of gst_buffer_merge().
	(bug #114560)
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_descramble_segment):
	* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice): same
	* testsuite/gst-lint:  Check for above.

2004-03-05  David Schleef  <ds@schleef.org>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_get):  Check for unfixed
	caps and throw an element error.  (bug #136334)

2004-03-05  David Schleef  <ds@schleef.org>

	* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_srcgetcaps),
	(gst_faad_chain): Fix negotiation.
	* ext/librfb/gstrfbsrc.c: (gst_rfbsrc_handle_src_event): Add
	key and button events.
	* gst-libs/gst/floatcast/floatcast.h: Fix a minor bug in this
	dung heap of code.
	* gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc.in: gstgconf
	depends on gconf
	* gst-libs/gst/gconf/gstreamer-gconf.pc.in: same
	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup),
	(gst_play_video_fixate), (gst_play_audio_fixate): Add a fixate
	function to encourage better negotiation, particularly between
	audioconvert and osssink.
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain):
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):  Make some debugging
	more important.
	* gst/typefind/gsttypefindfunctions.c:  Fix mistake in flash
	typefinding.
	* gst/vbidec/vbiscreen.c:  Add glib header
	* pkgconfig/gstreamer-play.pc.in:  Depends on gst-interfaces.

2004-03-06  Christophe Fergeau  <teuf@users.sourceforge.net>

	* ext/mad/gstmad.c: Fix detection of Xing headers
	* gst/tags/gstid3tag.c: Changes to support TLEN tags

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt),
	(gst_wavparse_pad_convert), (gst_wavparse_pad_query):
          debug updates

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list):
	* ext/mad/gstmad.c: (gst_mad_init), (is_xhead),
	(mpg123_parse_xing_header), (gst_mad_chain): parse Xing header in vbr
	files, and report the parsed length as a GST_TAG_DURATION tag.
	* gst/tags/gstid3tag.c: support TLEN (duration) tag

2004-03-05  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_channels):
	  convert channels correctly. convert correctly to unsigned.

2004-03-05  Julien MOUTTE <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state): Check if
	we have a window before clearing it.

2004-03-05  Julien MOUTTE <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_change_state): Check if we
	have a window before clearing it.

2004-03-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gconf/gstreamer.schemas.in:
	* gst-libs/gst/gconf/Makefile.am:
          version installation path the same way as for 0.6
	* pkgconfig/gstreamer-interfaces-uninstalled.pc.in:
	* pkgconfig/gstreamer-libs-uninstalled.pc.in:
	* pkgconfig/gstreamer-play-uninstalled.pc.in:
          remove comment that was fixed

2004-03-05  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_formats),
	(gst_qtdemux_src_convert), (gst_qtdemux_get_src_query_types),
	(gst_qtdemux_get_event_mask), (gst_qtdemux_handle_src_query),
	(gst_qtdemux_handle_src_event), (gst_qtdemux_add_stream):
	Add prototype code for handling seeking and querying.

2004-03-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* examples/gstplay/player.c: (main):
	  Initialize variables to NULL. Prevents a segfault because the
	  (uninitialized) variable is not NULL, resulting in a crash on
	  trying to reach error->message.

2004-03-05  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_buffer_to_default_format):
	make float=>int conversion work correctly even in cornercases.

2004-03-04  David I. Lehn  <dlehn@users.sourceforge.net>

	* debian/README.Debian:
	* debian/build-deps:
	* debian/changelog:
	* debian/control:
	* debian/control.in:
	* debian/copyright:
	* debian/gstreamer-a52dec.files:
	* debian/gstreamer-aa.files:
	* debian/gstreamer-alsa.files:
	* debian/gstreamer-alsa.manpages:
	* debian/gstreamer-arts.files:
	* debian/gstreamer-artsd.files:
	* debian/gstreamer-audiofile.files:
	* debian/gstreamer-avifile.files:
	* debian/gstreamer-cdparanoia.files:
	* debian/gstreamer-colorspace.files:
	* debian/gstreamer-doc.files:
	* debian/gstreamer-dv.files:
	* debian/gstreamer-dvd.files:
	* debian/gstreamer-esd.files:
	* debian/gstreamer-festival.files:
	* debian/gstreamer-flac.files:
	* debian/gstreamer-gconf.conffiles:
	* debian/gstreamer-gconf.files:
	* debian/gstreamer-gconf.postinst:
	* debian/gstreamer-gnomevfs.files:
	* debian/gstreamer-gsm.files:
	* debian/gstreamer-http.files:
	* debian/gstreamer-jack.files:
	* debian/gstreamer-jpeg.files:
	* debian/gstreamer-mad.files:
	* debian/gstreamer-mikmod.files:
	* debian/gstreamer-misc.files:
	* debian/gstreamer-mpeg2dec.files:
	* debian/gstreamer-oss.files:
	* debian/gstreamer-plugin-apps.files:
	* debian/gstreamer-plugin-apps.manpages:
	* debian/gstreamer-plugin-libs-dev.files:
	* debian/gstreamer-plugin-libs.files:
	* debian/gstreamer-plugin-template.postinst:
	* debian/gstreamer-plugin-template.postrm:
	* debian/gstreamer-sdl.files:
	* debian/gstreamer-sid.files:
	* debian/gstreamer-vorbis.files:
	* debian/gstreamer-x.files:
	* debian/mk.control:
	* debian/rules:
	Debian package info not maintained here.

2004-03-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/aalib/gstaasink.c: (gst_aasink_class_init):
	* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init):
	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init):
	* ext/divx/gstdivxenc.c: (gst_divxenc_class_init):
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init):
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_class_init):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init):
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init):
	* ext/speex/gstspeexenc.c: (gst_speexenc_class_init):
	* ext/xvid/gstxvidenc.c: (gst_xvidenc_class_init):
	* gst-libs/gst/colorbalance/colorbalance.c:
	(gst_color_balance_class_init):
	* gst-libs/gst/colorbalance/colorbalancechannel.c:
	(gst_color_balance_channel_class_init):
	* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init):
	* gst-libs/gst/play/play.c: (gst_play_class_init):
	* gst-libs/gst/propertyprobe/propertyprobe.c:
	(gst_property_probe_iface_init):
	* gst-libs/gst/tuner/tuner.c: (gst_tuner_class_init):
	* gst-libs/gst/tuner/tunerchannel.c:
	(gst_tuner_channel_class_init):
	* gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_base_init):
	* gst/cutter/gstcutter.c: (gst_cutter_class_init):
	* gst/effectv/gstvertigo.c: (gst_vertigotv_class_init):
	* sys/cdrom/gstcdplayer.c: (cdplayer_class_init):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_class_init):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init):
          fix signals to use - instead of _
	* ext/libcaca/gstcacasink.h:
	* ext/sdl/sdlvideosink.h:
          fix header rename

2004-03-04  David Schleef  <ds@schleef.org>

	* testsuite/gst-lint:  Add a check for bad signal names.

2004-03-04  <kost@imn.htwk-leipzig.de>

	reviewed by David Schleef

	* gst/videofilter/gstgamma.c: (gst_gamma_rgb32): Fix typo that
	modified the alpha channel and caused a warning. (bug #136192)

2004-04-03  Christian Schaller <Uraeus@gnome.org>

	* gst-plugins.spec.in:
	Change names of plugins to actually be correct. Try to keep things
	alphabetical to avoid getting beat up by Thomas

2004-03-03  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/gconf/gconf.c: (gst_gconf_get_default_video_sink):
	Using ximagesink as a default if no gconf key found. We should
	probably consider using alsasink instead of osssink for the audio
	part.

2004-03-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  fix --with-plugins, don't think it ever worked before
	* gst-plugins.spec.in:
          even more updates

2004-03-01  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/sdl/sdlvideosink.h:
	* sys/ximage/ximagesink.h:
	* sys/xvideo/xvideosink.h:
	* sys/xvimage/xvimagesink.h:
	  Fix for move of gstvideosink.h -> videosink.h.

2004-03-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/xwindowlistener/Makefile.am:
	  this is a plugin library, not a library

2004-03-01  David Schleef  <ds@schleef.org>

	* AUTHORS:  Added some names.  Add yourself if you're still
	missing.

2004-03-01  David Schleef  <ds@schleef.org>

	* MAINTAINERS: Add

2004-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-plugins.spec.in: clean up spec file

2004-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/video/Makefile.am:
	* gst-libs/gst/video/gstvideosink.c:
	* gst-libs/gst/video/gstvideosink.h:
          rename gstvideosink.h to videosink.h to match other headers
	* gst/mixmatrix/Makefile.am:
          fix plugin filename
	* gst/tags/Makefile.am: fix plugin filename

2004-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tags/Makefile.am: fix plugin filename

2004-03-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gstplay/player.c: (got_time_tick), (main):
	  add error handler
          display time_tick more readably
	* gst/mixmatrix/Makefile.am:
          fix plugin file name

2004-02-29  Christophe Fergeau  <teuf@gnome.org>

	* sys/oss/gstosselement.c: (gst_osselement_probe),
	(device_combination_append), (gst_osselement_class_probe_devices):
	* sys/oss/gstosselement.h:
	  Reworked enumeration of oss dsps and mixers so that gst-mixer works
	  on my system using alsa oss emulation, fixes bug #135597

2004-02-29  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videodrop/gstvideodrop.c: (gst_videodrop_init),
	(gst_videodrop_chain), (gst_videodrop_change_state):
	* gst/videodrop/gstvideodrop.h:
	  Work based on timestamp of input data, not based on the expected
	  framerate from the input. The consequence is that this element now
	  not only scales framerates, but also functions as a framerate
	  corrector or framerate stabilizer/constantizer.

2004-02-27  David Schleef  <ds@schleef.org>

	patches from jmmv@menta.net (Julio M. Merino Vidal)

	* gst/interleave/deinterleave.c: (deinterleave_chain): Fix
	GST_ELEMENT_ERROR call (bug #135634)
	* gst/interleave/interleave.c: (interleave_buffered_loop),
	(interleave_bytestream_loop): Don't use alloca() (bug #135640)
	* sys/cdrom/gstcdplayer_ioctl_bsd.h: Fix ioctls on NetBSD (bug #135645)
	* sys/oss/gstosssink.c: (gst_osssink_get_delay),
	(gst_osssink_chain): Fix ioctls on NetBSD. (bug #135644)
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_sync_next_frame),
	(gst_v4lmjpegsrc_set_capture), (gst_v4lmjpegsrc_set_capture_m),
	(gst_v4lmjpegsrc_capture_init), (gst_v4lmjpegsrc_requeue_frame):
	Fix GST_ELEMENT_ERROR call.
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_try_palette): Fix
	GST_ELEMENT_ERROR call.

2004-02-27  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/audio/audio.h:
	  add macro to make sure header isn't included twice
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
	  don't use gst_buffer_free
	* gst/playondemand/filter.func:
	  don't use gst_data_free. Free data only once.

2004-02-26  David Schleef  <ds@schleef.org>

	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/tuner/Makefile.am:
	* gst/level/Makefile.am: -marshal.[ch] and -enum.[ch] files
	should not be disted, -marshal.h files should not be installed,
	and -enum.h files _should_ be installed.  Fix to make this the
	case.

=== release 0.7.5 ===

2004-02-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: release 0.7.5, "Under The Sea"

2004-02-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link),
	(gst_audio_convert_change_state), (gst_audio_convert_get_buffer):
	* gst/videoscale/gstvideoscale.c:
	* sys/oss/gstosselement.c: (gst_osselement_sync_parms):
          assorted debug/warning fixes

2004-02-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps),
	(gst_videoscale_init), (gst_videoscale_chain),
	(gst_videoscale_set_property), (plugin_init):
	* gst/videoscale/gstvideoscale.h:
	* gst/videoscale/videoscale.c: (gst_videoscale_setup),
	(gst_videoscale_scale_rgb), (gst_videoscale_planar411),
	(gst_videoscale_planar400), (gst_videoscale_packed422),
	(gst_videoscale_packed422rev), (gst_videoscale_32bit),
	(gst_videoscale_24bit), (gst_videoscale_16bit),
	(gst_videoscale_bilinear), (gst_videoscale_bicubic),
	(gst_videoscale_scale_plane_slow),
	(gst_videoscale_scale_point_sample),
	(gst_videoscale_scale_nearest),
	(gst_videoscale_scale_nearest_str2),
	(gst_videoscale_scale_nearest_str4),
	(gst_videoscale_scale_nearest_32bit),
	(gst_videoscale_scale_nearest_24bit),
	(gst_videoscale_scale_nearest_16bit):
        add debugging category and use it properly
        fix use of GST_PTR_FORMAT

2004-02-25  Andy Wingo  <wingo@pobox.com>

	* gst/interleave/interleave.c (interleave_buffered_loop): Always
	push only when channel->buffer is NULL. Prevents segfaults doing
	the state change after a nonlocal exit, like a scheme exception.

	* gst/audioconvert/gstaudioconvert.c (gst_audio_convert_getcaps):
	Handle the case where the intersected caps is empty.

2004-02-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/law/mulaw-decode.c: (mulawdec_link):
	* gst/law/mulaw.c: (plugin_init):
          fix mulawdec so it actually works again

2004-02-24  Arwed v. Merkatz  <v.merkatz@gmx.net>

	reviewed by: David Schleef  <ds@schleef.org>

	* gst/videofilter/gstgamma.c: (gst_gamma_class_init),
	(gst_gamma_init), (gst_gamma_set_property),
	(gst_gamma_get_property), (gst_gamma_calculate_tables),
	(gst_gamma_rgb24), (gst_gamma_rgb32):  Adds gamma correction
	for RGB, with separate r g and b correction factors. (#131167)

2004-02-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
          only signal tags for bitrate if they're > 0 (#134894)

2004-02-24  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (plugin_init), (gst_qtdemux_loop_header),
	(qtdemux_parse_moov), (qtdemux_parse), (qtdemux_node_dump_foreach),
	(qtdemux_dump_mvhd), (qtdemux_dump_tkhd), (qtdemux_dump_elst),
	(qtdemux_dump_mdhd), (qtdemux_dump_hdlr), (qtdemux_dump_vmhd),
	(qtdemux_dump_dref), (qtdemux_dump_stsd), (qtdemux_dump_stts),
	(qtdemux_dump_stss), (qtdemux_dump_stsc), (qtdemux_dump_stsz),
	(qtdemux_dump_stco), (qtdemux_dump_co64), (qtdemux_dump_dcom),
	(qtdemux_dump_cmvd), (qtdemux_parse_tree), (qtdemux_parse_trak):
	Cleanups.  Convert g_prints to GST_LOGs.  Add qtdemux debug
	category.  Attempt to fix timestamp calculation.

2004-02-24  Johan Dahlin  <johan@gnome.org>

	* gst-libs/gst/gconf/gconf.c: Add \n to g_print error messages

2004-02-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* gconf/Makefile.am:
	* gconf/gstreamer.schemas:
	* gst-libs/gst/gconf/Makefile.am:
	* gst-libs/gst/gconf/gconf.c:
          version gconf schemas and install locations

2004-02-23  Benjamin Otte  <otte@gnome.org>

	* ext/xine/xineinput.c: (gst_xine_input_dispose):
	(gst_xine_input_subclass_init):
	  call parent dispose.
	  change pad template for CD reader correctly
	* ext/xine/Makefile.am:
	* ext/xine/gstxine.h:
	* ext/xine/xine.c: (plugin_init):
	* ext/xine/xineaudiosink.c:
	  wrap audio sinks, too
	* gst-libs/gst/resample/private.h:
	* gst-libs/gst/resample/resample.c: (gst_resample_init),
	(gst_resample_reinit), (gst_resample_scale),
	(gst_resample_nearest_s16), (gst_resample_bilinear_s16),
	(gst_resample_sinc_slow_s16), (gst_resample_sinc_s16),
	(gst_resample_sinc_ft_s16), (gst_resample_nearest_float),
	(gst_resample_bilinear_float), (gst_resample_sinc_slow_float),
	(gst_resample_sinc_float), (gst_resample_sinc_ft_float):
	* gst-libs/gst/resample/resample.h:
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_method_get_type),
	(gst_audioscale_class_init), (gst_audioscale_link),
	(gst_audioscale_get_buffer), (gst_audioscale_init),
	(gst_audioscale_chain), (gst_audioscale_set_property),
	(gst_audioscale_get_property):
	* gst/audioscale/gstaudioscale.h:
	  s/resample_*/gst_resample_*/i to not clobber namespaces

2004-02-23  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_audio_caps), (gst_riff_create_iavs_caps),
	(gst_riff_create_video_template_caps),
	(gst_riff_create_audio_template_caps),
	(gst_riff_create_iavs_template_caps):
	* gst-libs/gst/riff/riff-media.h:
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
	(gst_asf_demux_audio_caps), (gst_asf_demux_add_audio_stream),
	(gst_asf_demux_video_caps), (gst_asf_demux_add_video_stream):
	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps),
	(gst_matroska_demux_plugin_init): First batch implementing audio and
	video codec tags in demuxers.

2004-02-22  Benjamin Otte  <otte@gnome.org>

	* ext/xine/Makefile.am:
	* ext/xine/gstxine.h:
	* ext/xine/xine.c: (plugin_init):
	* ext/xine/xineinput.c:
	  add input plugin wrapper. Playback from files, http, mms and cdda
	  works.
	* ext/xine/xineaudiodec.c: (gst_xine_audio_dec_chain):
	  remove leftover G_GNUC_UNUSED
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_stream),
	(gst_asf_demux_identify_guid):
	  improve debugging output

2004-02-22  Benjamin Otte  <otte@gnome.org>

	reported by: Padraig O'Briain <padraig.obriain@sun.com>

	* autogen.sh:
	  replace test -e with test -x for mkinstalldirs to be more portable.
	  (fixes #134816)

2004-02-22  Benjamin Otte  <otte@gnome.org>

	reported by: Stefan Kost <kost@imn.htwk-leipzig.de>

	* gst/audioconvert/gstaudioconvert.c: (plugin_init):
	  set rank to PRIMARY
	* gst/volume/gstvolume.c: (plugin_init):
	  set rank to NONE
	fixes #134960

2004-02-22   Julio M. Merino Vidal <jmmv@menta.net>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/flac/gstflacenc.c: (gst_flacenc_chain):
	  escape NULL strings in GST_ELEMENT_ERROR properly (fixes #135116)

2004-02-22  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  export [_]*{gst,Gst,GST}.* symbols from plugins

2004-02-22  Christophe Fergeau <teuf@gnome.org>

	reviewed by: Benjamin Otte  <otte@gnome.org>

	* ext/lame/gstlame.c: (add_one_tag):
	* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_tag_value),
	(gst_vorbisenc_metadata_set1):
	* gst/tags/gstid3tag.c:
	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_add):
	  apply fixes from bugs #135042 (lame can't write tags) and #133817
	  (add GST_ALBUM_VOLUME_{COUNT,NUMBER} tags)

2004-02-22 Ramon Garcia <ramon_garcia_f@yahoo.com>

	* configure.ac: Export only gst_plugin_desc from plugins.
         Note that this change only makes any effect with Linux using libtool
	 1.5.2 or higher. Otherwise it is silently ignored, but it would build
         fine. And don't try to have several versions of libtool in different
         directories.

2004-02-20  Andy Wingo  <wingo@pobox.com>

	* gst/intfloat/, gst/oneton: Removed, replaced by audioconvert and
	interleave respectively.

	* gst/interleave/deinterleave.c: New plugin: deinterleave
	(replaces on oneton).
	* gst/interleave/interleave.c: New plugin: interleave.
	* gst/interleave/plugin.h: Support file.
	* gst/interleave/plugin.c: Support file.

	* configure.ac: Remove intfloat and oneton, add interleave.

	* ext/sndfile/gstsf.c: Handle events better.

	* gst/audioconvert/gstaudioconvert.c: Change to support int2float
	and float2int operation. int2float has scheduling problems as
	noted in in2float_chain.

2004-02-20  Benjamin Otte  <otte@gnome.org>

	* ext/xine/Makefile.am:
	* ext/xine/gstxine.h:
	* ext/xine/xine.c:
	* ext/xine/xineaudiodec.c:
	* ext/xine/xinecaps.c:
	  add first version of xine plugin wrapper. Currently only wraps the
	  QDM2 win32 DLL, and even that only in proof-of-concept quality.
	* configure.ac:
	* ext/Makefile.am:
	  add xine plugin wrapper, disabled by default. Use --enable-xine to
	  build. Note that it'll segfault on gst-register if you don't remove
	  the goom and tvtime post plugins from xine.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	(qtdemux_parse), (qtdemux_parse_trak), (qtdemux_audio_caps):
	  add extradata parsing for QDM2.
	  change around debugging prints.

2004-02-19  Benjamin Otte  <otte@gnome.org>

	* ext/lame/gstlame.c: (gst_lame_chain):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain):
	  use gst_tag_list_insert when you want to insert tags

2004-02-18  David Schleef  <ds@schleef.org>

	* configure.ac:  Move massink to gst-rotten
	* ext/Makefile.am:
	* ext/mas/Makefile.am:
	* ext/mas/massink.c:
	* ext/mas/massink.h:

2004-02-18  David Schleef  <ds@schleef.org>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init): Disable gdk_pixbuf
	typefinding, since it seems to be worse than nothing.
	* gst/typefind/gsttypefindfunctions.c: (qt_type_find):  Add ftyp
	atom to recognize .mp4 and .m4a files as video/quicktime.

2004-02-18  David Schleef  <ds@schleef.org>

	* gst/sine/demo-dparams.c: (quit_live),
	(dynparm_log_value_changed), (dynparm_value_changed), (main):
	Use double dparams, not float.
	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_init): Change sync default to FALSE, since multiple
	sync'd elements don't really work correctly.
	* gst/volume/gstvolume.c: (volume_class_init), (volume_init),
	(volume_update_volume), (volume_get_property):  Change dparam
	to double.

2004-02-18  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c:
	(gst_ximagesink_xwindow_update_geometry),
	(gst_ximagesink_renegotiate_size), (gst_ximagesink_handle_xevents),
	(gst_ximagesink_change_state), (gst_ximagesink_expose),
	(gst_ximagesink_init): Rework the way software video scaling works. So
	now we check on each chain call if the video frames are feeling the
	window. If not we try to renegotiate caps. On failure we memorize that
	and we won't try again for that PLAYING sessions.
	* sys/ximage/ximagesink.h: Adding a boolean to store the caps renego
	failure.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_init): initialize the
	synchronous flag.

2004-02-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup):
          break up _link so we can give a better debug message for errors

2004-02-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init):
          set up debug category

2004-02-18  Julien MOUTTE <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_handle_xevents), (gst_ximagesink_expose): Reorganizing
	the way renegotiation work. The event handling function is not taking
	care of external windows and renegotiate method check for pad flags
	NEGOTIATING. Should fix : #133209

2004-02-17  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_expose): Checking if the
	pad is negotiating before trying renegotiation.

2004-02-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_type_find):
          pass on all possible mime types as typefind hints

2004-02-17  Julien MOUTTE <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new): Fix a
	possible SHM leak if we crash. All other apps using XShm are doing
	that.

2004-02-17  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_expose): Renegotiate size on expose.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_expose): Update window
	size on expose.

2004-02-16  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* testsuite/alsa/sinesrc.c:
	  cosmetic fix to fix compile issue with gcc 2.95.4

2004-02-16  Julien MOUTTE <julien@moutte.net>

	* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
	(gst_alsa_timestamp_to_bytes): Alsa should trigger an error if it
	failed opening the audio device.
	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_ximage_destroy), (gst_ximagesink_ximage_put),
	(gst_ximagesink_xwindow_new), (gst_ximagesink_xwindow_destroy),
	(gst_ximagesink_xwindow_resize), (gst_ximagesink_xwindow_clear),
	(gst_ximagesink_renegotiate_size), (gst_ximagesink_handle_xevents),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_xcontext_clear),
	(gst_ximagesink_change_state), (gst_ximagesink_chain),
	(gst_ximagesink_set_xwindow_id): Clearing window in READY TO PAUSED.
	Removing some useless g_return_if_fail like wingo suggested.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_xvimage_destroy), (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_xwindow_new), (gst_xvimagesink_xwindow_destroy),
	(gst_xvimagesink_xwindow_resize), (gst_xvimagesink_xwindow_clear),
	(gst_xvimagesink_update_colorbalance),
	(gst_xvimagesink_handle_xevents), (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_xcontext_clear),
	(gst_xvimagesink_get_fourcc_from_caps),
	(gst_xvimagesink_change_state), (gst_xvimagesink_chain),
	(gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_colorbalance_list_channels),
	(gst_xvimagesink_colorbalance_set_value),
	(gst_xvimagesink_colorbalance_get_value): Clearing window in READY TO
	PAUSED. Removing some useless g_return_if_fail like wingo suggested.

2004-02-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain):
          throw error when not negotiated instead of asserting

2004-02-15  Julien MOUTTE  <julien@moutte.net>

	* gst/switch/gstswitch.c: (gst_switch_loop): More fixes for
	correct data refcounting.

2004-02-15  Julien MOUTTE  <julien@moutte.net>

	* gst/switch/gstswitch.c: (gst_switch_change_state),
	(gst_switch_class_init): Cleaning the sinkpads correctly on state
	change, mostly the EOS flag.

2004-02-15  Julien MOUTTE  <julien@moutte.net>

	* examples/gstplay/player.c: (got_eos), (main): Adding some
	output for debugging.
	* gst-libs/gst/play/play.c: (gst_play_state_change): Stop our
	timeouts if we go to any state different from PLAYING.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): Fix some
	more EOS bugs in riff lib.

2004-02-14  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/play/play.c: (gst_play_connect_visualization): Disable
	visualization until i find a way to fix switch correctly.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head): Fix a bug when
	EOS arrives.
	* gst/switch/gstswitch.c: (gst_switch_release_pad),
	(gst_switch_request_new_pad), (gst_switch_poll_sinkpads),
	(gst_switch_loop), (gst_switch_dispose), (gst_switch_class_init):
	Reworked switch to get a more correct behaviour with events and refing
	of data stored in sinkpads.
	* gst/switch/gstswitch.h: Adding an eos flag for every sinkpad so that
	we don't pull from a pad in EOS.

2004-02-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  remove v1 tag even if we can't read it (makes sure we don't detect
	  it again)

2004-02-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_pcm_wait),
	(gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	  try xrun recovery when wait failed. Make xrun recovery function
	  return TRUE/FALSE to indicate success. (might fix #134354)

2004-02-13  David Schleef  <ds@schleef.org>

	* gst/sine/demo-dparams.c: (dynparm_log_value_changed),
	(dynparm_value_changed), (main): Convert from float to double.
	* gst/sine/gstsinesrc.c: (gst_sinesrc_init): same.

2004-02-13  David Schleef  <ds@schleef.org>

	* gst/silence/gstsilence.c: (gst_silence_class_init),
	(gst_silence_set_clock), (gst_silence_get),
	(gst_silence_set_property), (gst_silence_get_property):
	* gst/silence/gstsilence.h: Add sync property.
	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_init), (gst_sinesrc_set_clock), (gst_sinesrc_get),
	(gst_sinesrc_set_property), (gst_sinesrc_get_property):
	* gst/sine/gstsinesrc.h: Add sync property.

2004-02-13  David Schleef  <ds@schleef.org>

	* gst/intfloat/gstint2float.c: (conv_f32_s16),
	(gst_int2float_chain_gint16):  Change stdint usage to glib types.

2004-02-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/Makefile.am:
	* gst-libs/ext/Makefile.am:
          move ffmpeg plugin to gst-ffmpeg module

2004-02-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: use GST_ARCH to detect architecture

2004-02-12  Julien MOUTTE  <julien@moutte.net>

	* gst/vbidec/vbiscreen.c: Fixing thomasvs fixes. Missing header.

2004-02-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ladspa/gstladspa.c: (gst_ladspa_base_init):
          classify LADSPA plugins based on number of src/sink pads
	  (#133663, Stefan Kost)
	* gst/sine/gstsinesrc.c: (gst_sinesrc_init):
          fix dparams registration
	  (#133528, Stefan Kost)
	* gst/vbidec/vbiscreen.c: (vbiscreen_set_current_cell):
          fix use of isprint and use g_ascii_isprint instead
	  (#133316, Stefan Kost)

2004-02-11  David Schleef  <ds@schleef.org>

	Convert a few inner loops to use liboil.  This is currently
	optional, and is only enabled if liboil is present (duh!).
	* configure.ac: Check for liboil-0.1
	* gst/intfloat/Makefile.am:
	* gst/intfloat/gstint2float.c: (conv_f32_s16), (scalarmult_f32),
	(gst_int2float_chain_gint16):
	* gst/videofilter/Makefile.am:
	* gst/videofilter/gstvideobalance.c: (gst_videobalance_class_init),
	(tablelookup_u8), (gst_videobalance_planar411):
	* gst/videotestsrc/Makefile.am:
	* gst/videotestsrc/gstvideotestsrc.c: (plugin_init):
	* gst/videotestsrc/videotestsrc.c: (splat_u8), (paint_hline_YUY2),
	(paint_hline_IYU2), (paint_hline_str4), (paint_hline_str3),
	(paint_hline_RGB565), (paint_hline_xRGB1555):

2004-02-11  David Schleef  <ds@schleef.org>

	* ext/lcs/gstcolorspace.c: (colorspace_find_lcs_format),
	(gst_colorspace_caps_get_fourcc), (colorspace_setup_converter),
	(gst_colorspace_getcaps), (gst_colorspace_link),
	(gst_colorspace_base_init), (gst_colorspace_init),
	(gst_colorspace_chain), (gst_colorspace_change_state),
	(plugin_init): Merge Ronald's patch (bug #117897) and update
	for new caps and negotiation.  Seems to work, although it
	shows off bugs in lcs.

2004-02-11  David Schleef  <ds@schleef.org>

	* ext/alsa/Makefile.am: Fix linking against libgstinterfaces.
	(bug #133886)  Noticed by bugs@leroutier.net (Stephane LOEUILLET)

2004-02-11  David Schleef  <ds@schleef.org>

	* ext/librfb/gstrfbsrc.c: (gst_rfbsrc_class_init),
	(gst_rfbsrc_change_state), (gst_rfbsrc_init),
	(gst_rfbsrc_set_property), (gst_rfbsrc_get_property):
	Add server and port properties

2004-02-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* m4/a52.m4:
	* m4/aalib.m4:
	* m4/as-ffmpeg.m4:
	* m4/as-liblame.m4:
	* m4/as-slurp-ffmpeg.m4:
	* m4/check-libheader.m4:
	* m4/esd.m4:
	* m4/freetype2.m4:
	* m4/gconf-2.m4:
	* m4/glib.m4:
	* m4/gst-alsa.m4:
	* m4/gst-artsc.m4:
	* m4/gst-ivorbis.m4:
	* m4/gst-matroska.m4:
	* m4/gst-sdl.m4:
	* m4/gst-shout2.m4:
	* m4/gst-sid.m4:
	* m4/gtk.m4:
	* m4/libdv.m4:
	* m4/libfame.m4:
	* m4/libmikmod.m4:
	* m4/ogg.m4:
	* m4/vorbis.m4:
          fix underquotedness of macros (#133800)
	* m4/as-avifile.m4:
	* m4/xmms.m4:
          removed because no longer used

2004-02-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
          require gettext 0.11.5 so ulonglong.m4 gets checked out and copied
          by autopoint (fixes #132996)

2004-02-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_base_init):
	* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_base_init):
	* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_base_init):
	* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_base_init):
	  fix memleaks

2004-02-11  David Schleef  <ds@schleef.org>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_link),
	(gst_gdk_pixbuf_chain): Fix logic bug causing spurious errors.
	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_base_init),
	(gst_jpegdec_init), (gst_jpegdec_chain): Fix negotiation.
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_base_init),
	(gst_jpegenc_class_init), (gst_jpegenc_init),
	(gst_jpegenc_getcaps), (gst_jpegenc_link), (gst_jpegenc_resync),
	(gst_jpegenc_chain), (gst_jpegenc_set_property),
	(gst_jpegenc_get_property):  Fix negotiation.  Add some properties.
	* ext/jpeg/gstjpegenc.h: Fix negotiation.

2004-02-10  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mikmod/gstmikmod.c: (gst_mikmod_init),
	(gst_mikmod_srcfixate), (gst_mikmod_srclink), (gst_mikmod_loop):
	* ext/mikmod/gstmikmod.h:
	  fix caps negotiation in mikmod
	* ext/ogg/gstoggdemux.c: (gst_ogg_print):
	  output debug information

2004-02-08  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/navigation/Makefile.am:
	* gst-libs/gst/xoverlay/Makefile.am:
	  remove unused GST_OPT_CFLAGS from Makefiles
	  include X_CFLAGS and X_LIBS in xoverlay. (#131948)

2004-02-07  David Schleef  <ds@schleef.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_handle_event): Don't
	push events to pads that haven't been created (#133508)

2004-02-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_src_convert),
	(gst_dvdec_sink_convert), (gst_dvdec_handle_sink_event),
	(gst_dvdec_video_getcaps), (gst_dvdec_video_link),
	(gst_dvdec_loop), (gst_dvdec_change_state):
	Second attempt at committing a working dvdec element.

2004-02-06  David Schleef  <ds@schleef.org>

	Build fixes for OS X: (see #129600)
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_strh),
	(gst_riff_read_strf_vids), (gst_riff_read_strf_auds),
	(gst_riff_read_strf_iavs):
	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih),
	(gst_avi_demux_stream_odml):
	* gst/playondemand/Makefile.am:
	* gst/rtp/rtp-packet.c:

2004-02-05  David Schleef  <ds@schleef.org>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_loop): Revert
	last change, because it Just Doesn't Compile.

2004-02-05  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  skip undecodable id3v2 tag instead of keeping it

2004-02-05  David Schleef  <ds@schleef.org>

	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	Unref leaked buffer.  (Noticed by Ronald)

2004-02-05  David I. Lehn  <dlehn@users.sourceforge.net>

	* pkgconfig/gstreamer-libs-uninstalled.pc.in:
	Sync requires with other checks.  >= vs =.

2004-02-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_video_getcaps),
	(gst_dvdec_video_link), (gst_dvdec_loop):
	* ext/dv/gstdvdec.h:
	  rework the caps negotiation so that dvdec works again instead
	  of just segfaulting.

=== release 0.7.4 ===

2004-02-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS: GStreamer Plugins 0.7.4 "For Great Justice" released
	* configure.ac: changed for release

2004-02-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc.in:
	* pkgconfig/gstreamer-interfaces-uninstalled.pc.in:
	* pkgconfig/gstreamer-libs-uninstalled.pc.in:
	* pkgconfig/gstreamer-play-uninstalled.pc.in:
          reworked patch by David Lehn to fix libdir and includedir for
          uninstalled libraries
          removed play and gconf from gstreamer-libs since they have their
          own pkgconfig files

2004-02-04  David Schleef  <ds@schleef.org>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt): Fix a caps
	memleak.

2004-02-05  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_info):
	  use correct GST_TAG_ENCODER tag

2004-02-05  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state):
	  be sure to stop the clock when going to paused
	* sys/oss/gstosssink.c: (gst_osssink_change_state):
	  reset number of transmitted when going to ready.
	fixes #132935

2004-02-05  Charles Schmidt <cschmidt2@emich.edu>

	reviewed by Benjamin Otte

	* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list):
	  extract track count (fixes #133410)

2004-02-04  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_do_caps_nego):
	  that should be !=, not == (fixes #132519)

2004-02-04  David Schleef  <ds@schleef.org>

	Make sure set_explicit_caps() is called before adding pad.
	* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
	* gst/id3/gstid3types.c: (gst_id3types_loop):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead):
	* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream):

2004-02-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
          bump nano to 2, first prerelease
          put back AM_PROG_LIBTOOL

2004-02-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* testsuite/alsa/Makefile.am:
          these are user test apps, not automatic testsuite tests

2004-02-04  David Schleef  <ds@schleef.org>

	Convert GST_DEBUG_CAPS() to GST_DEBUG():
	* gst/mpeg1videoparse/gstmp1videoparse.c:
	(mp1videoparse_parse_seq):
	* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream):
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps):
	* sys/xvideo/gstxwindow.c: (_gst_xwindow_new):
	* sys/xvideo/xvideosink.c: (gst_xvideosink_sinkconnect),
	(gst_xvideosink_getcaps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	* testsuite/gst-lint: more tests

2004-02-04  David Schleef  <ds@schleef.org>

	Replace use of GST_PAD_FORMATS_FUNCTION() and similar macros
	with the code that they would expand to.
	* ext/flac/gstflacdec.c: (gst_flacdec_get_src_formats),
	(gst_flacdec_get_src_query_types),
	(gst_flacdec_get_src_event_masks):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get_formats),
	(gst_gnomevfssrc_get_query_types),
	(gst_gnomevfssrc_get_event_mask):

2004-02-04  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_dispose):
	  fix memleak by properly disposing sinesrc

2004-02-04  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_expose):
	* gst-libs/gst/xoverlay/xoverlay.h: Adding the _expose method to tell
	an overlay to redraw the image because it has been exposed.
	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy),
	(gst_ximagesink_ximage_put), (gst_ximagesink_expose),
	(gst_ximagesink_xoverlay_init), (gst_ximagesink_init):
	* sys/ximage/ximagesink.h: Implement expose method from XOverlay
	interface
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_destroy),
	(gst_xvimagesink_xvimage_put), (gst_xvimagesink_expose),
	(gst_xvimagesink_xoverlay_init), (gst_xvimagesink_init):
	* sys/xvimage/xvimagesink.h: Implement expose method from XOverlay
	interface

2004-02-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_type_find):
	  more memleak fixage

2004-02-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init):
	* gst/typefind/gsttypefindfunctions.c:
	  fix memleaks shown by gst-typefind

2004-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/glib-gen.mak:
          add hack rule to touch .Plo files
	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/tuner/Makefile.am:
          remove glib_root variable

2004-02-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream):
	  set explicit caps before adding the element, so the autopluggers can
	  plug correctly.
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find),
	(mpeg2_sys_type_find), (mpeg1_sys_type_find),
	(mpeg_video_type_find), (mpeg_video_stream_type_find),
	(dv_type_find):
	  fix memleaks in typefind functions. gst_type_find_suggest takes a const
	  argument.

2004-02-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/colorbalance/colorbalance-marshal.list:
	* gst-libs/gst/colorbalance/colorbalance.c:
	* gst-libs/gst/colorbalance/colorbalance.h:
	* gst-libs/gst/colorbalance/colorbalancemarshal.list:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/mixer/mixer-marshal.list:
	* gst-libs/gst/mixer/mixer.c:
	* gst-libs/gst/mixer/mixer.h:
	* gst-libs/gst/mixer/mixermarshal.list:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/play/play.h:
	* gst-libs/gst/tuner/Makefile.am:
	* gst-libs/gst/tuner/tuner-marshal.list:
	* gst-libs/gst/tuner/tuner.c:
	* gst-libs/gst/tuner/tuner.h:
	* gst-libs/gst/tuner/tunermarshal.list:
          use new glib-gen.mak snippet to clean up Makefile.am
          fix various bugs in Makefile.am's

2004-02-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain):
	  handle chain parsing correctly in the multichain case
	* ext/theora/theoradec.c: (gst_theora_dec_init), (_theora_ilog),
	(theora_dec_from_granulepos), (theora_dec_to_granulepos),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain):
	  handle events and queries correctly

2004-02-03  David I. Lehn  <dlehn@users.sourceforge.net>

	* .cvsignore:
	Ignore generated file _stdint.h.

2004-02-03  David I. Lehn  <dlehn@users.sourceforge.net>

	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/colorbalance/colorbalance.h:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/mixer/mixer.h:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/play/play.h:
	* gst-libs/gst/tuner/Makefile.am:
	* gst-libs/gst/tuner/tuner.h:
	Generate enum type code with glib-mkenums.
	* gst-libs/gst/colorbalance/.cvsignore:
	* gst-libs/gst/mixer/.cvsignore:
	* gst-libs/gst/play/.cvsignore:
	* gst-libs/gst/tuner/.cvsignore:
	Ignore generated files.

2004-02-03  David I. Lehn  <dlehn@users.sourceforge.net>

	* gst-libs/gst/audio/.cvsignore:
	Ignore generated file.
	* gst-libs/gst/audio/Makefile.am:
	Do not install example filter.

2004-02-03  David I. Lehn  <dlehn@users.sourceforge.net>

	* examples/switch/.cvsignore:
	Ignore generated file.

2004-02-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* common/m4/ax_create_stdint_h.m4:
	* configure.ac:
	  add AX_CREATE_STDINT_H to get correct type definitions for a52dec in
	  _stdint.h.
	* Makefile.am:
	  remove generated _stdint.h in DISTCLEANFILES
	* ext/a52dec/gsta52dec.c:
	  include _stdint.h for a52dec. (should fix #133064)

2004-02-02  Jeremy Simon  <jesimon@libertysurf.fr>

	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_add),
	(gst_tag_to_vorbis_comments):
	Add replaygain support to vorbistag

2004-02-02  Jeremy Simon  <jesimon@libertysurf.fr>
	* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
	(gst_ffmpeg_caps_to_extradata):
	  Fix SVQ3 caps flag properties
	  Use glib macro for bytes swap

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

	* ext/audiofile/gstafsink.c: (gst_afsink_plugin_init):
	* ext/audiofile/gstafsrc.c: (gst_afsrc_plugin_init):
	* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
	* ext/sndfile/gstsf.c: (plugin_init):
	* gst/avi/gstavi.c: (plugin_init):
	* sys/dxr3/dxr3init.c: (plugin_init):
	* sys/oss/gstossaudio.c: (plugin_init):
	* sys/v4l/gstv4l.c: (plugin_init):
	* sys/v4l2/gstv4l2.c: (plugin_init):
          remove textdomain calls
	* po/nl.po:
          update Dutch translation

2004-02-02  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup),
	(gst_play_set_audio_sink): Moving volume in the audio thread for
	instantaneous volume change. Maybe i will add another volume in front
	of visualization later, not sure yet though.

2004-02-02  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_handle_xevents): Better X events handling, only take
	the latest events for configure and motion.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents): same.

2004-02-02  Jon Trowbridge  <trow@gnu.org>

	reviewed by: David Schleef  <ds@schleef.org>

	Fix memory leaks:
	* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register):
	* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_register):

2004-02-02  David Schleef  <ds@schleef.org>

	code cleanup.  Change bzero() to memset().  Remove duplicate ; at ends
	of lines.
	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_event):
	* ext/flac/gstflactag.c: (gst_flac_tag_chain):
	* ext/xvid/gstxviddec.c: (gst_xviddec_src_link):
	* gst-libs/gst/play/play.c: (gst_play_get_sink_element):
	* gst/ac3parse/gstac3parse.c: (gst_ac3parse_chain):
	* gst/effectv/gstedge.c: (gst_edgetv_sinkconnect):
	* gst/effectv/gstvertigo.c: (gst_vertigotv_sinkconnect):
	* gst/intfloat/float22int.c: (gst_float2_2_int_getcaps),
	(gst_float2_2_int_link):
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_chain_subtitle):
	* gst/rtjpeg/RTjpeg.c: (RTjpeg_init_mcompress):
	* gst/tcp/gsttcpsink.c: (gst_tcpsink_init_send):
	* gst/tcp/gsttcpsrc.c: (gst_tcpsrc_init_receive):
	* gst/udp/gstudpsink.c: (gst_udpsink_init_send):
	* gst/udp/gstudpsrc.c: (gst_udpsrc_init_receive):
	* sys/v4l/gstv4lelement.c: (gst_v4lelement_init):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_capture):
	* testsuite/gst-lint: Add tests for bzero and ;;

2004-02-02  David Schleef  <ds@schleef.org>

	* gst/debug/efence.c: Add fallback if MAP_ANONYMOUS isn't defined.

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

	* ext/aalib/gstaasink.c: (gst_aasink_open):
	* ext/alsa/gstalsa.c: (gst_alsa_link), (gst_alsa_xrun_recovery):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
	* ext/audiofile/gstafsink.c: (gst_afsink_open_file),
	(gst_afsink_close_file):
	* ext/audiofile/gstafsrc.c: (gst_afsrc_open_file),
	(gst_afsrc_close_file):
	* ext/divx/gstdivxdec.c: (gst_divxdec_setup), (gst_divxdec_chain):
	* ext/divx/gstdivxenc.c: (gst_divxenc_setup), (gst_divxenc_chain):
	* ext/dv/gstdvdec.c: (gst_dvdec_loop):
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_user_op), (dvdnavsrc_get):
	* ext/esd/esdmon.c: (gst_esdmon_get):
	* ext/esd/esdsink.c: (gst_esdsink_chain), (gst_esdsink_open_audio):
	* ext/faac/gstfaac.c: (gst_faac_chain):
	* ext/faad/gstfaad.c: (gst_faad_chain):
	* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
	* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
	* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_loop):
	* ext/flac/gstflacdec.c: (gst_flacdec_error_callback),
	(gst_flacdec_loop):
	* ext/flac/gstflacenc.c: (gst_flacenc_chain):
	* ext/flac/gstflactag.c: (gst_flac_tag_chain):
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_chain):
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file),
	(gst_gnomevfssink_close_file):
	* ext/gnomevfs/gstgnomevfssrc.c: (audiocast_init),
	(gst_gnomevfssrc_open_file):
	* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop):
	* ext/lame/gstlame.c: (gst_lame_sink_link), (gst_lame_chain):
	* ext/lcs/gstcolorspace.c: (gst_colorspace_srcconnect_func):
	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event),
	(gst_id3_tag_do_typefind), (gst_id3_tag_chain):
	* ext/mad/gstmad.c: (gst_mad_chain):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_loop):
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mplex/gstmplex.cc:
	* ext/mplex/gstmplexibitstream.cc:
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain),
	(gst_ogg_demux_push):
	* ext/raw1394/gstdv1394src.c:
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_lock),
	(gst_sdlvideosink_initsdl), (gst_sdlvideosink_create):
	* ext/sndfile/gstsf.c: (gst_sf_open_file), (gst_sf_close_file),
	(gst_sf_loop):
	* ext/speex/gstspeexenc.c: (gst_speexenc_chain):
	* ext/swfdec/gstswfdec.c: (gst_swfdec_loop):
	* ext/tarkin/gsttarkindec.c: (gst_tarkindec_chain):
	* ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_chain):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain):
	* ext/vorbis/vorbisfile.c: (gst_vorbisfile_loop):
	* ext/xvid/gstxviddec.c: (gst_xviddec_setup), (gst_xviddec_chain):
	* ext/xvid/gstxvidenc.c: (gst_xvidenc_setup), (gst_xvidenc_chain):
	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head),
	(gst_riff_read_element_data), (gst_riff_read_seek),
	(gst_riff_peek_list), (gst_riff_read_list), (gst_riff_read_header):
	* gst/adder/gstadder.c: (gst_adder_loop):
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_segment),
	(gst_asf_demux_process_stream), (gst_asf_demux_get_stream):
	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_init),
	(gst_avi_demux_add_stream), (gst_avi_demux_stream_header):
	* gst/avi/gstavimux.c: (gst_avimux_stop_file):
	* gst/flx/gstflxdec.c: (gst_flxdec_loop):
	* gst/goom/gstgoom.c: (gst_goom_chain):
	* gst/id3/gstid3types.c: (gst_id3types_loop):
	* gst/intfloat/float22int.c: (gst_float2_2_int_chain):
	* gst/intfloat/gstfloat2int.c: (gst_float2int_loop):
	* gst/intfloat/gstint2float.c: (gst_int2float_chain_gint16):
	* gst/matroska/ebml-read.c: (gst_ebml_read_element_id),
	(gst_ebml_read_element_length), (gst_ebml_read_element_data),
	(gst_ebml_read_seek), (gst_ebml_read_uint), (gst_ebml_read_sint),
	(gst_ebml_read_float), (gst_ebml_read_header):
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_init_stream),
	(gst_matroska_demux_parse_blockgroup):
	* gst/monoscope/gstmonoscope.c: (gst_monoscope_chain):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop):
	* gst/oneton/gstoneton.c: (gst_oneton_chain):
	* gst/silence/gstsilence.c: (gst_silence_get):
	* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
	* gst/smpte/gstsmpte.c: (gst_smpte_loop):
	* gst/speed/gstspeed.c: (speed_loop):
	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
	* gst/volenv/gstvolenv.c: (gst_volenv_chain):
	* gst/wavenc/gstwavenc.c: (gst_wavenc_chain):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt),
	(gst_wavparse_loop):
	* sys/dxr3/dxr3audiosink.c: (dxr3audiosink_open),
	(dxr3audiosink_set_mode_pcm), (dxr3audiosink_set_mode_ac3),
	(dxr3audiosink_close):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_open), (dxr3spusink_close):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_open),
	(dxr3videosink_close), (dxr3videosink_write_data):
	* sys/oss/gstosselement.c: (gst_osselement_open_audio):
	* sys/oss/gstosssink.c: (gst_osssink_chain):
	* sys/oss/gstosssrc.c: (gst_osssrc_get):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_chain):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_buffer_free):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_buffer_free):
	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay),
	(gst_v4l_set_window), (gst_v4l_enable_overlay):
	* sys/v4l/v4l_calls.c: (gst_v4l_get_capabilities), (gst_v4l_open),
	(gst_v4l_set_chan_norm), (gst_v4l_get_signal),
	(gst_v4l_get_frequency), (gst_v4l_set_frequency),
	(gst_v4l_get_picture), (gst_v4l_set_picture), (gst_v4l_get_audio),
	(gst_v4l_set_audio):
	* sys/v4l/v4l_calls.h:
	* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_sync_thread),
	(gst_v4lmjpegsink_queue_frame), (gst_v4lmjpegsink_set_playback),
	(gst_v4lmjpegsink_playback_init),
	(gst_v4lmjpegsink_playback_start):
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_queue_frame):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame),
	(gst_v4lsrc_sync_frame), (gst_v4lsrc_capture_init),
	(gst_v4lsrc_requeue_frame), (gst_v4lsrc_try_palette):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get):
	* sys/v4l2/v4l2-overlay_calls.c: (gst_v4l2_set_display),
	(gst_v4l2_set_window), (gst_v4l2_enable_overlay):
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	(gst_v4l2_fill_lists), (gst_v4l2_open), (gst_v4l2_get_norm),
	(gst_v4l2_set_norm), (gst_v4l2_get_input), (gst_v4l2_set_input),
	(gst_v4l2_get_output), (gst_v4l2_set_output),
	(gst_v4l2_get_frequency), (gst_v4l2_set_frequency),
	(gst_v4l2_signal_strength), (gst_v4l2_get_attribute),
	(gst_v4l2_set_attribute):
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	(gst_v4l2src_queue_frame), (gst_v4l2src_grab_frame),
	(gst_v4l2src_get_capture), (gst_v4l2src_set_capture),
	(gst_v4l2src_capture_init), (gst_v4l2src_capture_start),
	(gst_v4l2src_capture_stop):
	* sys/vcd/vcdsrc.c: (vcdsrc_open_file):
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
	(gst_ximagesink_chain):
	* sys/xvideo/xvideosink.c: (gst_xvideosink_buffer_new),
	(gst_xvideosink_sinkconnect), (gst_xvideosink_chain),
	(gst_xvideosink_xwindow_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_chain):

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

	* gst/volume/gstvolume.c: (gst_volume_set_volume),
	(gst_volume_get_volume), (volume_class_init), (volume_init),
	(volume_chain_int16), (volume_update_volume):
	* gst/volume/gstvolume.h:
          make code more readable by removing magic numbers
          make mixer interface export 0-100 range
          make it internally map to 0.0-1.0 range so users don't distort
          output by putting the sliders at full volume

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

	* gst-libs/gst/play/play.c: (gst_play_tick_callback),
	(gst_play_state_change), (gst_play_seek_to_time):
        block the tick callback for 0.5 secs after doing a seek

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

	* gst-libs/gst/play/play.c: (gst_play_new):
          check for GError

2004-02-01  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/play/play.c: (gst_play_seek_to_time),
	(gst_play_new): Accepting NULL GError, blocking time tick while seeking.
	* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
	(gst_ximagesink_chain), (gst_ximagesink_init): s/sinkconnect/sink_link
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
	(gst_xvimagesink_chain), (gst_xvimagesink_init): s/sinkconnect/sink_link

2004-02-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
          check for a function added in vorbis 1.1

2004-01-31  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start),
	(gst_alsa_drain_audio), (gst_alsa_stop_audio):
	  really start/stop clock only on PLAYING <=> PAUSED
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  remove \n from debugging lines
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain):
	  make it work when seeking does not
	* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
	  reset on DISCONT

2004-01-31  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start):
	  start clock on PAUSED=>PLAYING, not later
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  extract correct time for different discont formats
	(gst_alsa_sink_get_time):
	  don't segfault when no format is negotiated yet, just return 0
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event),
	(gst_ogg_demux_handle_event), (gst_ogg_demux_push),
	(gst_ogg_pad_push):
	  handle flush and discont events correctly
	* ext/vorbis/vorbisdec.c: (vorbis_dec_event), (vorbis_dec_chain):
	  handle discont events correctly

2004-01-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/play/play.c: (gst_play_error_quark),
	(gst_play_error_create), (gst_play_error_plugin),
	(gst_play_pipeline_setup), (gst_play_init), (gst_play_new):
	* gst-libs/gst/play/play.h:
          add error handling during creation
	* examples/gstplay/player.c: (main):
          use new gst_play_new


2004-01-31  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/theora/theoradec.c: (theora_dec_chain):
	  make comments work
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_src_event), (vorbis_dec_chain):
	  add encoder tag, fix tag reading to be more error tolerant, change
	  BITRATE to NOMINAL_BITRATE, add debugging, don't unref events after
	  gst_pad_event_default.
	* gst/tags/gstvorbistag.c:
	(gst_tag_list_from_vorbiscomment_buffer):
	  undefine function specific define at end of function

2004-01-31  Jeremy Simon  <jesimon@libertysurf.fr>

	* ext/flac/gstflac.c: (plugin_init):
	* ext/flac/gstflacdec.c: (gst_flacdec_class_init):
	* ext/flac/gstflacdec.h:
	* ext/flac/gstflacenc.h:
	  Fix typos

2004-01-30  David I. Lehn  <dlehn@users.sourceforge.net>

	* examples/gstplay/player.c: s/gstplay.h/play.h/

2004-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/play/gstplay.c:
	* gst-libs/gst/play/gstplay.h:
	* gst-libs/gst/play/play.c:
          more surgery, operation complete

2004-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/play/play.old.c:
	* gst-libs/gst/play/play.old.h:
          after CVS surgery by moving, remove
	* gst-libs/gst/play/playpipelines.c:
          remove

	* gst/intfloat/float22int.c: (gst_float2_2_int_chain):
          add negotiation error

2004-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event),
	(gst_ogg_demux_push):
          add some seeking debug info
          send a flush when seeking

2004-01-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  use AC_C_INLINE
	* configure.ac:
	* ext/Makefile.am:
	* ext/theora/Makefile.am:
	* ext/theora/theoradec.c:
	  add theora video decoder. Does just do simple decoding for now and
	  has been tested against Theora cvs only. It only works when theora
	  is compiled with --enable-static.
	* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
	  always reset packetno on DISCONT

2004-01-30  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead):
	  Fix audio.

2004-01-30  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c:
	(mp3_type_frame_length_from_header):
	  Fix header parsing - stolen from ffmpeg (thank you! :) ).

2004-01-30  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/esd/esdsink.c: (gst_esdsink_init):
	  Since we have static pad template caps, we don't need to negotiate;
	  either the core errors out or we know the format.

2004-01-30  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head),
	(gst_riff_read_seek):
	* gst/matroska/ebml-read.c: (gst_ebml_read_element_id),
	(gst_ebml_read_seek):
	  Fix event handling.

2004-01-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
	  removee video/x-theora from vp3 decoder, it doesn't handle raw
	  theora streams
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init):
	  fix bug with finalizing element that never went to PAUSED
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query):
	  length and position queries were swapped
	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init),
	(vorbis_dec_from_granulepos), (vorbis_dec_src_query),
	(vorbis_dec_src_event):
	  implement querying time and bytes

2004-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

        * just about every source file:
          gst_element_error -> GST_ELEMENT_ERROR

2004-01-29  Julien MOUTTE  <julien@moutte.net>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get): Fixing seeking
	emiting FLUSH and even before DISCONT.
	* gst-libs/gst/play/gstplay.c: (gst_play_seek_to_time): Fix seeking to
	get the best instant seeking as possible yay!

2004-01-29  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpeg1videoparse/gstmp1videoparse.c:
	(gst_mp1videoparse_real_chain):
	  Committed wrong version last week... Grr... Didn't notice until now.

2004-01-29  Julien MOUTTE <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_new): Emit the
	have_xwindow_id signal in xwindow_create.

2004-01-29  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/ogg/gstoggdemux.c:
	  lots of changes - mainly support for chained bitstreams, seeking,
	  querying and bugfixes of course
	* ext/vorbis/Makefile.am:
	* ext/vorbis/vorbisdec.c:
	* ext/vorbis/vorbisdec.h:
	  add vorbisdec raw vorbis decoder
	* ext/vorbis/vorbis.c: (plugin_init):
	  register vorbisdec as PRIMARY, vorbisfile as SECONDARY
	* gst/intfloat/Makefile.am:
	* gst/intfloat/float22int.c:
	* gst/intfloat/float22int.h:
	* gst/intfloat/gstintfloatconvert.c: (plugin_init):
	  add float2intnew plugin. It converts multichannel interleaved float to
	  multichannel interleaved int. The name should probably be changed.
	* gst/typefind/gsttypefindfunctions.c: (theora_type_find),
	(plugin_init):
	  add typefinding for raw theora video so oggdemux can detect it.

2004-01-28  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/play/gstplay.c: (gst_play_seek_to_time): seek on video
	sink element first.
	* gst/videoscale/gstvideoscale.c:
	(gst_videoscale_handle_src_event): Fixing src event handler.

2004-01-28  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init),
	(gst_v4lsrc_open), (gst_v4lsrc_close),
	(gst_v4lsrc_palette_to_caps), (gst_v4lsrc_srcconnect),
	(gst_v4lsrc_getcaps), (gst_v4lsrc_set_clock):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_start),
	(gst_v4lsrc_grab_frame), (gst_v4lsrc_capture_stop):
	  Implement resizing... Hack. But that's why v4l is b0rked...

2004-01-28  Julien MOUTTE <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy),
	(gst_ximagesink_ximage_put), (gst_ximagesink_xwindow_new),
	(gst_ximagesink_xwindow_destroy):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy),
	(gst_xvimagesink_xwindow_new), (gst_xvimagesink_xwindow_destroy),
	(gst_xvimagesink_xwindow_resize), (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_xcontext_get): Removing some useless debugs messages,
	correctly cleaning the image created to check xshm calls on succes,
	added a lot of XSync calls in X11 functions, and fixed a segfault when
	no image format was defined before negotiation happened.

2004-01-28  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_query_func):
	  use gst_element_get_time to get correct time

2004-01-28  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xerror),
	(gst_ximagesink_check_xshm_calls), (gst_ximagesink_ximage_destroy),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_class_init):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xerror),
	(gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_destroy), (gst_xvimagesink_xcontext_get): Our
	X plugins are now able to detect that XShm calls will fail even if the
	server claims that it has XShm support (remote displays most of the
	time). We then log the error as a GST_DEBUG and set use_shm to FALSE
	so that we use non XShm functions. This feature is almost useless for
	xvimagesink as Xv is not supported on remote displays anyway, but
	it might happen than even on the local display XShm calls fail.

2004-01-27  David Schleef  <ds@schleef.org>

	* ext/esd/esdsink.c: (gst_esdsink_class_init), (gst_esdsink_init),
	(gst_esdsink_link), (gst_esdsink_get_time), (gst_esdsink_chain),
	(gst_esdsink_change_state):  Fix sync issues in esdsink.  Also
	changed esdsink to only use 44100,16,2, since esd sucks at rate
	conversion and esdsink has had difficulty negotiating.

2004-01-27  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/play/gstplay.c: (gst_play_tick_callback),
	(gst_play_seek_to_time): Fixing the way to get current position.

2004-01-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/oss/gstosssink.c: (gst_osssink_sink_query):
	  use gst_element_get_time to get correct time

2004-01-27  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/play/gstplay.c: (gst_play_set_location): The easiest
	fix ever... Inverting 2 lines of code make spider autoplug correctly
	tagged mp3 !

2004-01-27  David Schleef  <ds@schleef.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	Use gst_pad_try_set_caps_nonfixed().

2004-01-27  David Schleef  <ds@schleef.org>

	* gst/ac3parse/gstac3parse.c: update to checklist 5
	* gst/adder/gstadder.c: rewrite negotiation.  update to checklist 5
	* gst/audioconvert/gstaudioconvert.c: update to checklist 5
	* gst/audioscale/gstaudioscale.c: same
	* gst/auparse/gstauparse.c: same
	* gst/avi/gstavidemux.c: same

2004-01-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_sink_event):
	  stop processing after EOS

2004-01-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/asfdemux/asfheaders.h:
	* gst/asfdemux/gstasfdemux.c:
	* gst/asfdemux/gstasfmux.c: (gst_asfmux_put_guid),
	(gst_asfmux_put_string), (gst_asfmux_put_wav_header),
	(gst_asfmux_put_vid_header), (gst_asfmux_put_bmp_header):
	  lot's of fixes to make data extraction simpler and get the code
	  architecture and compiler independant. Add debugging category
	* gst/goom/gstgoom.c: (gst_goom_change_state):
	  reset channel count on PAUSED=>READY, not READY=>PAUSED

2004-01-26  Colin Walters  <walters@verbum.org>

	* ext/gnomevfs/gstgnomevfssrc.c (gst_gnomevfssrc_get): Remove ugly
	code to pull a bigger buffer in iradio mode.  This as a side effect
	makes typefinding work.

2004-01-26  Jeremy Simon  <jesimon@libertysurf.fr>

	* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_extradata):
	Fix SVQ3 decoding on PPC

2004-01-26  Julien MOUTTE <julien@moutte.net>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain): Dunno how
	that one managed to stay there... Fixed.

2004-01-26  Jeremy Simon  <jesimon@libertysurf.fr>

	* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
	(gst_ffmpeg_caps_to_extradata), (gst_ffmpeg_caps_to_pixfmt):
	* gst/qtdemux/qtdemux.c: (plugin_init), (qtdemux_parse_trak),
	(qtdemux_video_caps):
	* gst/qtdemux/qtdemux.h:
	Add SVQ3 specific flags to qtdemux and ffmpeg

2004-01-26  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/audio/audio.h:
	  remove buffer-frames from audio caps
	* gst/audioconvert/gstaudioconvert.c:
	  fix plugin to really work.

2004-01-25  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/mixer/mixer.c:
	* gst-libs/gst/propertyprobe/propertyprobe.c:
	* gst-libs/gst/tuner/tuner.c: (gst_tuner_find_norm_by_name),
	(gst_tuner_find_channel_by_name):
	* gst-libs/gst/tuner/tuner.h:
	  Add gtk-doc style comments. Also fix a function name.

2004-01-25  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c: (gst_divxdec_init),
	(gst_divxdec_negotiate):
	  Fix for new capsnego - also fixes gst-player with divxdec.

2004-01-25  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup),
	(gst_play_identity_handoff), (gst_play_set_location),
	(gst_play_set_visualization), (gst_play_connect_visualization): Another
	try in visualization implementation. Still have an issue with switch
	blocking when pulling from video_queue and only audio comes out of
	spider.
	* gst/switch/gstswitch.c: (gst_switch_release_pad),
	(gst_switch_poll_sinkpads), (gst_switch_class_init): Implementing pad
	release method. And check if the pad is usable before pulling.

2004-01-25  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videofilter/gstvideobalance.c: (gst_videobalance_dispose),
	(gst_videobalance_init),
	(gst_videobalance_colorbalance_list_channels),
	(gst_videobalance_colorbalance_set_value),
	(gst_videobalance_colorbalance_get_value),
	(gst_videobalance_update_properties),
	(gst_videobalance_update_tables_planar411),
	(gst_videobalance_planar411):
	* gst/videofilter/gstvideobalance.h:
	  Implement lookup-tables. +/- 10x faster.

2004-01-25  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih),
	(gst_avi_demux_stream_odml), (gst_avi_demux_stream_index):
	  The index reading was broken. The rest worked fine, but the whole
	  goal of my rewrite was to make avidemux readable, and this was
	  not at all readable. Please use typed variables.

2004-01-25  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_info):
	  Additional pad usability check.
	* gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init),
	(mp1videoparse_find_next_gop), (gst_mp1videoparse_time_code),
	(gst_mp1videoparse_real_chain):
	  Fix MPEG video stream parsing. The original plugin had several
	  issues, including not timestamping streams where the source was
	  not timestamped (this happens with PTS values in mpeg system
	  streams, but MPEG video is also a valid stream on its own so
	  that needs timestamps too). We use the display time code for that
	  for now. Also, if one incoming buffer contains multiple valid
	  frames, we push them all on correctly now, including proper EOS
	  handling. Lastly, several potential segfaults were fixed, and we
	  properly sync on new sequence/gop headers to include them in next,
	  not previous frames (since they're header for the next frame, not
	  the previous). Also see #119206.
	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain),
	(bpf_from_header):
	  Move caps setting so we only do it after finding several valid
	  MPEG-1 fraes sequentially, not right after the first one (which
	  might be coincidental).
	* gst/typefind/gsttypefindfunctions.c: (mpeg1_sys_type_find),
	(mpeg_video_type_find), (mpeg_video_stream_type_find),
	(plugin_init):
	  Add unsynced MPEG video stream typefinding, and change some
	  probability values so we detect streams rightly. The idea is as
	  follows: I can have an unsynced system stream which contains
	  video. In the current code, I would randomly get a type for either
	  system or video stream type found, because the probabilities are
	  being calculated rather randomly. I now use fixed values, so we
	  always prefer system stream if that was found (and that is how it
	  should be). If no system stream was found, we can still identity		  the stream as video-only.

2004-01-23  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih),
	(gst_avi_demux_stream_odml), (gst_avi_demux_stream_index):
	  don't write to buffer. Extract data without the need of
	  __attribute__ ((packed))

2004-01-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (mpeg1_parse_header),
	(mpeg1_sys_type_find):
	  Fix MPEG-1 stream typefinding.

2004-01-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
	  Fix typefinding for MPEG-1 system streams, similar to MPEG-2.

2004-01-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/esd/esdsink.c: (gst_esdsink_open_audio):
	* ext/esd/gstesd.c: (plugin_init):
          private debugging, better error reporting

2004-01-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init),
	(gst_riff_read_init), (gst_riff_read_change_state):
	* gst-libs/gst/riff/riff-read.h:
	  Remove stuff fromold metadata system.

2004-01-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c:
	  Fix wrong file comment.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_info):
	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_header):
	  Add metadata reading properly.

2004-01-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/Makefile.am:
          Fix nas DIST_SUBDIRS
          Uraeus:
          Fix bug where make distcheck doesn't get run on adding stuff to
          the build.

2004-01-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c: (gst_divxdec_init), (gst_divxdec_setup):
	* ext/divx/gstdivxdec.h:
	  Fix divx3 ("msmpeg4") playback using divxdec.

2004-01-23  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/typefind/gsttypefindfunctions.c:
	(mp3_type_frame_length_from_header): fix bug in length computation
	(mp3_type_find): improve debugging output

2004-01-23  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup),
	(gst_play_set_location), (gst_play_seek_to_time),
	(gst_play_set_audio_sink), (gst_play_set_visualization),
	(gst_play_connect_visualization), (gst_play_get_sink_element): Reworked
	the pipeline from scratch. Visualization is back and switch went out as
	i realized it was not possible to use the way i wanted.
	* sys/ximage/ximagesink.c: (gst_ximagesink_imagepool_clear),
	(gst_ximagesink_change_state), (gst_ximagesink_dispose): Move xcontext
	clearing in state change from READY to NULL. So that one can clean the
	X ressources keeping the element.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_imagepool_clear), (gst_xvimagesink_change_state),
	(gst_xvimagesink_colorbalance_set_value),
	(gst_xvimagesink_colorbalance_get_value),
	(gst_xvimagesink_set_property), (gst_xvimagesink_dispose),
	(gst_xvimagesink_init): Same xcontext cleaning than ximagesink in state
	change from READY to NULL and fixed some stupid bugs in colorbalance
	get/set values. Also added the following feature : when nobody tries to
	set some values to the colorbalance levels before the xcontext is
	grabbed, then when creating channels list from Xv attributes we set the
	internal values to the Xv defaults. This way we handle buggy Xv drivers
	that set default hue values far from the middle of the range (Thanks
	to Jon Trowbridge for pointing that issue).
	* sys/xvimage/xvimagesink.h: Adding a cb_changed boolean to know if
	colorbalance levels have been set before xcontext is grabbed.

2004-01-22  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
	  Fix the ossmixer case where we shouldn't open /dev/dsp* because
	  it might block operations (which is bad for a mixer).

2004-01-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/media-info/media-info-priv.c: (have_type_callback),
	(deep_notify_callback), (gmi_set_decoder), (gmi_clear_decoder),
	(gmip_find_type_pre):
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/media-info/media-info.c:
	(gst_media_info_instance_init), (gst_media_info_read_idler):
        add fakesink to get caps on decoder src pad again
        fix callback prototype to match new have_type signal signature

2004-01-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/adder/gstadder.c: (gst_adder_link):
          fix non-compile and cut-n-paste code

2004-01-21  David Schleef  <ds@schleef.org>

	* ext/swfdec/gstswfdec.c: (gst_swfdec_video_getcaps),
	(gst_swfdec_video_link), (copy_image), (gst_swfdec_loop),
	(gst_swfdec_init), (gst_swfdec_change_state):
	* ext/swfdec/gstswfdec.h:
	Fix negotiation.
	* gst/adder/gstadder.c: (gst_adder_link), (gst_adder_init),
	(gst_adder_request_new_pad): Fix negotiation.
	* gst/goom/gstgoom.c: (gst_goom_init), (gst_goom_src_fixate):
	Add a fixate function.
	* gst/intfloat/gstfloat2int.c:
	* gst/intfloat/gstfloat2int.h:
	* gst/intfloat/gstint2float.c:
	* gst/intfloat/gstint2float.h:
	Completely rewrite the negotiation.  Doesn't quite work yet,
	due to some buffer-frames problem.

2004-01-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/gnomevfs/gstgnomevfssrc.c:
	* sys/v4l2/v4l2_calls.h:
          fix includes for distcheck

2004-01-21  Christian Schaller <uraeus@gnome.org>

	* ext/nas/
	Add libnas (network audio system) plugin, patch from Arwed von Merkatz
	based on earlier patch from Laurent Vivier

2004-01-20  Jeremy Simon  <jesimon@libertysurf.fr>

	* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_extradata):
	Fix wma caps property
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_audio_caps):
	Fix typo (flags1 and flags2)

2004-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/media-info/media-info-priv.c:
	(deep_notify_callback), (gmi_seek_to_track), (gmi_get_decoder),
	(gmip_find_type_pre), (gmip_find_type), (gmip_find_stream_post),
	(gmip_find_stream), (gmip_find_track_metadata),
	(gmip_find_track_streaminfo_post), (gmip_find_track_streaminfo),
	(gmip_find_track_format):
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/media-info/media-info-test.c: (main):
	* gst-libs/gst/media-info/media-info.c: (gst_media_info_init),
	(gst_media_info_read_idler), (gst_media_info_read):
	* gst-libs/gst/media-info/media-info.h:
          register debugging category and use it for debugging

2004-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisfile.c: (gst_vorbisfile_update_streaminfo),
	(gst_vorbisfile_new_link):
          signal streaminfo through tags

2004-01-20  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mplex/gstmplex.cc:
	* ext/mplex/gstmplexibitstream.cc:
	  g++ doesn't like NULL in our i18n/error macros, should be
	  either (NULL) or ("").

2004-01-20  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/dxr3/dxr3audiosink.c:
	* sys/dxr3/dxr3init.c:
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_close):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_close):
	  Fix more error error error errors (missing includes here).

2004-01-20  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  fix thomas' error errors.

2004-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mpeg2enc/gstmpeg2enc.cc:
          fix error errors.

2004-01-20  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c: (gst_divxdec_setup), (gst_divxdec_chain):
	* ext/divx/gstdivxenc.c: (gst_divxenc_setup), (gst_divxenc_chain):
	  Fix for new error system.

2004-01-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/divx/gstdivxenc.c: (gst_divxenc_setup), (gst_divxenc_chain):
          fix for new error reporting

2004-01-20  David Schleef  <ds@schleef.org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_getcaps),
	(gst_ximagesink_set_xwindow_id): Change to using a framerate
	of [1,100] instead of [0,MAX], since 0 isn't handled correctly,
	and neither is 100+, most likely.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_getcaps): same

2004-01-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  Up version requirement to 2.0.3 (not yet released) to avoid symbol
	  clashes with ffmpeg.

2004-01-20  Julien MOUTTE  <julien@moutte.net>

	* gst/switch/gstswitch.c: (gst_switch_request_new_pad),
	(gst_switch_init): Fixed switch element : proxying link and setting
	caps from src to sink on request.

2004-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay):
	* sys/v4l2/v4l2-overlay_calls.c: (gst_v4l2_set_display),
	(gst_v4l2_set_window), (gst_v4l2_enable_overlay):
        fix element_error

2004-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/v4l_calls.h:
	* sys/v4l2/v4l2_calls.h:
          element_error fixes

2004-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/gst-i18n-plugin.h:
          add locale.h
          remove config.h inclusion

2004-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* autogen.sh:
          adding autopoint invocation
	* Makefile.am:
	* configure.ac:
	* gst-libs/gst/gettext.h:
          adding gettext bits
	* ext/audiofile/gstafsink.c: (gst_afsink_plugin_init):
	* ext/audiofile/gstafsrc.c: (gst_afsrc_plugin_init):
	* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file),
	(gst_gnomevfssink_close_file):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_open_file):
	* ext/sndfile/gstsf.c: (gst_sf_loop), (plugin_init):
	* gst-libs/gst/gst-i18n-plugin.h:
	* gst/avi/gstavi.c: (plugin_init):
	* sys/dxr3/dxr3init.c: (plugin_init):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_write_data):
	* sys/oss/gstossaudio.c: (plugin_init):
	* sys/oss/gstosselement.c: (gst_osselement_open_audio):
	* sys/v4l/gstv4l.c: (plugin_init):
	* sys/v4l/v4l_calls.c: (gst_v4l_open):
	* sys/v4l2/gstv4l2.c: (plugin_init):
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	(gst_v4l2_fill_lists), (gst_v4l2_get_norm), (gst_v4l2_set_norm),
	(gst_v4l2_get_input), (gst_v4l2_set_input), (gst_v4l2_get_output),
	(gst_v4l2_set_output), (gst_v4l2_get_frequency),
	(gst_v4l2_set_frequency), (gst_v4l2_signal_strength),
	(gst_v4l2_get_attribute), (gst_v4l2_set_attribute):
	  make sure locale and translation domain are set
          fix translated strings
	* po/.cvsignore:
	* po/LINGUAS:
	* po/Makevars:
	* po/POTFILES.in:
	* po/nl.po:
          put translation files into place
	* sys/xvideo/imagetest.c: (main):
	* ext/dv/demo-play.c: (main):
          fix unnecessary translations

2004-01-19  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/sndfile/gstsf.c:
	* gst/avi/gstavimux.c:
	* ext/audiofile/gstafsink.c:
	* ext/audiofile/gstafsrc.c:
	* ext/gnomevfs/gstgnomevfssink.c:
	* ext/gnomevfs/gstgnomevfssrc.c:
	* sys/oss/gstosselement.c:
	* sys/v4l/v4l_calls.h:
          fix i18n include

2004-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	(gst_v4l2_fill_lists), (gst_v4l2_open), (gst_v4l2_get_norm),
	(gst_v4l2_set_norm), (gst_v4l2_get_input), (gst_v4l2_set_input),
	(gst_v4l2_get_output), (gst_v4l2_set_output),
	(gst_v4l2_get_frequency), (gst_v4l2_set_frequency),
	(gst_v4l2_signal_strength), (gst_v4l2_get_attribute),
	(gst_v4l2_set_attribute):
        update to new error handling

2004-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/sidplay/gstsiddec.cc:
	* gst/modplug/gstmodplug.cc:
          parenthese NULL because C++ seems angry about it

2004-01-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/gst-i18n-plugin.h:
          add skeleton i18n stuff, but needs to be further implemented

2004-01-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gstplay/player.c: (main):
	* ext/aalib/gstaasink.c: (gst_aasink_open):
	* ext/alsa/gstalsa.c: (gst_alsa_link), (gst_alsa_xrun_recovery):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
	* ext/audiofile/gstafsink.c: (gst_afsink_open_file),
	(gst_afsink_close_file):
	* ext/audiofile/gstafsrc.c: (gst_afsrc_open_file),
	(gst_afsrc_close_file):
	* ext/divx/gstdivxdec.c: (gst_divxdec_setup), (gst_divxdec_chain):
	* ext/dv/gstdvdec.c: (gst_dvdec_loop):
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_user_op), (dvdnavsrc_get):
	* ext/esd/esdmon.c: (gst_esdmon_get):
	* ext/esd/esdsink.c: (gst_esdsink_chain):
	* ext/faac/gstfaac.c: (gst_faac_chain):
	* ext/faad/gstfaad.c: (gst_faad_chain):
	* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
	* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
	* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_loop):
	* ext/flac/gstflacdec.c: (gst_flacdec_error_callback),
	(gst_flacdec_loop):
	* ext/flac/gstflacenc.c: (gst_flacenc_chain):
	* ext/flac/gstflactag.c: (gst_flac_tag_chain):
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_chain):
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file),
	(gst_gnomevfssink_close_file):
	* ext/gnomevfs/gstgnomevfssrc.c: (audiocast_init),
	(gst_gnomevfssrc_open_file):
	* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop):
	* ext/lame/gstlame.c: (gst_lame_sink_link), (gst_lame_chain):
	* ext/lcs/gstcolorspace.c: (gst_colorspace_srcconnect_func):
	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event),
	(gst_id3_tag_do_typefind), (gst_id3_tag_chain):
	* ext/mad/gstmad.c: (gst_mad_chain):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_loop):
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	* ext/mplex/gstmplex.cc:
	* ext/mplex/gstmplexibitstream.cc:
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain),
	(gst_ogg_demux_push), (gst_ogg_pad_push):
	* ext/raw1394/gstdv1394src.c:
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_lock),
	(gst_sdlvideosink_initsdl), (gst_sdlvideosink_create):
	* ext/sidplay/gstsiddec.cc:
	* ext/sndfile/gstsf.c: (gst_sf_open_file), (gst_sf_close_file),
	(gst_sf_loop):
	* ext/speex/gstspeexenc.c: (gst_speexenc_chain):
	* ext/tarkin/gsttarkindec.c: (gst_tarkindec_chain):
	* ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_chain):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain):
	* ext/vorbis/vorbisfile.c: (gst_vorbisfile_loop):
	* ext/xvid/gstxviddec.c: (gst_xviddec_setup), (gst_xviddec_chain):
	* ext/xvid/gstxvidenc.c: (gst_xvidenc_setup), (gst_xvidenc_chain):
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head),
	(gst_riff_read_element_data), (gst_riff_read_seek),
	(gst_riff_peek_list), (gst_riff_read_list), (gst_riff_read_header):
	* gst/adder/gstadder.c: (gst_adder_parse_caps), (gst_adder_loop):
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_segment),
	(gst_asf_demux_process_stream), (gst_asf_demux_get_stream):
	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_init),
	(gst_avi_demux_add_stream), (gst_avi_demux_stream_header):
	* gst/avi/gstavimux.c: (gst_avimux_stop_file):
	* gst/flx/gstflxdec.c: (gst_flxdec_loop):
	* gst/goom/gstgoom.c: (gst_goom_chain):
	* gst/id3/gstid3types.c: (gst_id3types_loop):
	* gst/intfloat/gstfloat2int.c: (gst_float2int_loop):
	* gst/intfloat/gstint2float.c: (gst_int2float_chain_gint16):
	* gst/matroska/ebml-read.c: (gst_ebml_read_element_id),
	(gst_ebml_read_element_length), (gst_ebml_read_element_data),
	(gst_ebml_read_seek), (gst_ebml_read_uint), (gst_ebml_read_sint),
	(gst_ebml_read_float), (gst_ebml_read_header):
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_init_stream),
	(gst_matroska_demux_parse_blockgroup):
	* gst/modplug/gstmodplug.cc:
	* gst/monoscope/gstmonoscope.c: (gst_monoscope_chain):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop):
	* gst/oneton/gstoneton.c: (gst_oneton_chain):
	* gst/silence/gstsilence.c: (gst_silence_get):
	* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
	* gst/smpte/gstsmpte.c: (gst_smpte_loop):
	* gst/speed/gstspeed.c: (speed_loop):
	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
	* gst/volenv/gstvolenv.c: (gst_volenv_chain):
	* gst/wavenc/gstwavenc.c: (gst_wavenc_chain):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt),
	(gst_wavparse_loop):
	* sys/dxr3/dxr3audiosink.c: (dxr3audiosink_open),
	(dxr3audiosink_set_mode_pcm), (dxr3audiosink_set_mode_ac3),
	(dxr3audiosink_close):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_open), (dxr3spusink_close):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_open),
	(dxr3videosink_close), (dxr3videosink_write_data):
	* sys/oss/gstosselement.c: (gst_osselement_open_audio):
	* sys/oss/gstosselement.h:
	* sys/oss/gstosssink.c: (gst_osssink_get_type), (gst_osssink_init),
	(gst_osssink_chain):
	* sys/oss/gstosssrc.c: (gst_osssrc_get):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_chain):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_buffer_free):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_buffer_free):
	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_window),
	(gst_v4l_enable_overlay):
	* sys/v4l/v4l_calls.c: (gst_v4l_get_capabilities), (gst_v4l_open),
	(gst_v4l_set_chan_norm), (gst_v4l_get_signal),
	(gst_v4l_get_frequency), (gst_v4l_set_frequency),
	(gst_v4l_get_picture), (gst_v4l_set_picture), (gst_v4l_get_audio),
	(gst_v4l_set_audio):
	* sys/v4l/v4l_calls.h:
	* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_sync_thread),
	(gst_v4lmjpegsink_queue_frame), (gst_v4lmjpegsink_set_playback),
	(gst_v4lmjpegsink_playback_init),
	(gst_v4lmjpegsink_playback_start):
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_queue_frame),
	(gst_v4lmjpegsrc_sync_next_frame), (gst_v4lmjpegsrc_set_capture),
	(gst_v4lmjpegsrc_set_capture_m), (gst_v4lmjpegsrc_capture_init),
	(gst_v4lmjpegsrc_requeue_frame):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame),
	(gst_v4lsrc_sync_frame), (gst_v4lsrc_capture_init),
	(gst_v4lsrc_requeue_frame), (gst_v4lsrc_try_palette):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	(gst_v4l2src_queue_frame), (gst_v4l2src_grab_frame),
	(gst_v4l2src_get_capture), (gst_v4l2src_set_capture),
	(gst_v4l2src_capture_init), (gst_v4l2src_capture_start),
	(gst_v4l2src_capture_stop):
	* sys/vcd/vcdsrc.c: (vcdsrc_open_file):
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
	(gst_ximagesink_chain):
	* sys/xvideo/xvideosink.c: (gst_xvideosink_buffer_new),
	(gst_xvideosink_sinkconnect), (gst_xvideosink_chain),
	(gst_xvideosink_xwindow_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_chain):
        use new error signal, function and categories

2004-01-18  Jeremy Simon <jesimon@libertysurf.fr>

	* configure.ac:
	* ext/Makefile.am:
	* ext/musicbrainz/gsttrm.c:
	* ext/musicbrainz/gsttrm.h:
	* ext/musicbrainz/Makefile.am:
	Add a trm plugin

2004-01-18  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_set_property),
	(gst_ximagesink_get_property), (gst_ximagesink_class_init): Adding
	synchronous property for debugging.
	* sys/ximage/ximagesink.h: Adding the synchronous boolean flag.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_set_property): Moving a pointer declaration to a
	smaller block, fixing indent.

2004-01-16  David Schleef  <ds@schleef.org>

	* gst/videofilter/gstvideobalance.c: Fix regression; changing a
	property affects the video stream.
	* sys/xvimage/xvimagesink.c:
	* sys/xvimage/xvimagesink.h:
	Add synchronous property for debugging.  Should probably be
	disabled in non-CVS builds.  Make sure that the Xv attribute
	exists before we set it (crash!).  Fix a silly float bug that
	caused colorbalance to just not work.

2004-01-17  Christian Schaller <Uraeus@gnome.org>

	* tools/gst-launch-ext.in - update for new plugins

2004-01-16  David Schleef  <ds@schleef.org>

	* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect): Fix use of
	already-freed caps.

2994-01-16  Christian Schaller <Uraeus@gnome.org>

	* Update spec for new colorspace plugin and libcaca plugin
	* Fix compilation of libcaca plugin (clock -> id)

2004-01-16  Julien MOUTTE <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_update_colorbalance),
	(gst_xvimagesink_xcontext_get), (gst_xvimagesink_change_state),
	(gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_colorbalance_set_value),
	(gst_xvimagesink_colorbalance_get_value),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init): Implementing
	correct colorbalance properties. They can now be set when the element
	is still in NULL state. The values will be committed to the Xv Port
	when xcontext is initialized.
	* sys/xvimage/xvimagesink.h: Added hue, saturation, contrast,
	brightness int values in the GstXvImagesink structure.

2004-01-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/Makefile.am:
	  restructure so having local patches works easier.

2004-01-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mpeg2enc/Makefile.am:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  Bugfix with respect to EOS handling.

2004-01-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect):
	  Link with right caps (else, it segfaults).
	* ext/mplex/gstmplexjob.cc:
	  Fix for slight API change in 1.6.1.93 release of mjpegtools.

2004-01-15  David Schleef  <ds@schleef.org>

	* gst-libs/gst/audio/Makefile.am:
	Add gstaudiofiltertemplate.c and building of gstaudiofilterexample.c
	from the template.
	* gst-libs/gst/audio/gstaudiofilter.c:
	* gst-libs/gst/audio/gstaudiofilter.h:
	Add bytes_per_sample and size and n_samples calculation.
	* gst-libs/gst/audio/gstaudiofilterexample.c:
	Remove, now autogenerated.
	* gst-libs/gst/audio/gstaudiofiltertemplate.c:
	Moved from gstaudiofilterexample, object name changed, code added
	so that it actually works.
	* gst-libs/gst/audio/make_filter:
	Script to build an audiofilter subclass from the template.
	* gst/colorspace/Makefile.am:
	* gst/colorspace/yuv2yuv.c:
	Remove file, since it's GPL, and we don't use it.

2004-01-15  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_chain):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): Making both of
	them use the buffer free function to test how the buffer was allocated.

2004-01-15  David Schleef  <ds@schleef.org>

	* ext/esd/esdsink.c: (gst_esdsink_class_init): Remove property
	that handles osssink fallback.
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init),
	(gst_audio_convert_getcaps):
	* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
	Add audio/x-qdm2 for QDM2 audio.
	* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
	* gst/sine/gstsinesrc.h: Add example of how to implement tags.
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps):
	Decrease minimum size to 16x16.
	* gst/wavparse/gstwavparse.c:
	Convert disabled pad template caps to new caps.
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_chain): Throw element error when display cannot
	be opened.  Increase minimum framerate to 1.0.  Check the data
	free function on a buffer to make sure it is the type we expect
	before manipulating it.

2004-01-15  Julien MOUTTE <julien@moutte.net>

	* gst/videofilter/gstvideobalance.c: (gst_videobalance_init),
	(gst_videobalance_colorbalance_set_value): Implement passthru if
	settings are in the middle.
	* tools/gst-launch-ext.in: Stop using xvideosink, use ximagesink.

2004-01-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videofilter/Makefile.am:
	* gst/volume/Makefile.am:
	  Since we use videofilter symbols, link to it.

2004-01-15  Julien MOUTTE <julien@moutte.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_interface_init): Setting
	mixer interface type to HARDWARE.
	* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init): Adding a default
	type to SOFTWARE.
	* gst-libs/gst/mixer/mixer.h: Adding mixer interface type and macro.
	* gst-libs/gst/mixer/mixertrack.h: Adding mixertrack flag SOFTWARE.
	* gst/volume/gstvolume.c: (gst_volume_interface_supported),
	(gst_volume_interface_init), (gst_volume_list_tracks),
	(gst_volume_set_volume), (gst_volume_get_volume),
	(gst_volume_set_mute), (gst_volume_mixer_init),
	(gst_volume_dispose), (gst_volume_get_type), (volume_class_init),
	(volume_init): Implementing mixer interface.
	* gst/volume/gstvolume.h: Adding tracklist for mixer interface.
	* sys/oss/gstosselement.c: (gst_osselement_get_type),
	(gst_osselement_change_state): Removing some trailing commas in
	structures.
	* sys/oss/gstossmixer.c: (gst_ossmixer_interface_init): Setting mixer
	interface type to HARDWARE.
	* sys/v4l/gstv4lcolorbalance.c:
	(gst_v4l_color_balance_interface_init): Setting colorbalance interface
	type to HARDWARE.
	* sys/v4l2/gstv4l2colorbalance.c:
	(gst_v4l2_color_balance_interface_init): Setting colorbalance
	interface type to HARDWARE.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): use exactly the
	same code than ximagesink for event handling.

2004-01-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/snapshot/Makefile.am:
	* ext/snapshot/gstsnapshot.c: (gst_snapshot_sinkconnect),
	(gst_snapshot_chain):
	* ext/snapshot/gstsnapshot.h:
	  This has to be a joke... Snapshot should be connected to a tee,
	  colorspace element before it and EOS after that, where the other
	  src of the tee receives normal data.
	  The current way is *wrong*.

2004-01-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/hermes/gsthermescolorspace.c:
	  Fix another compile error. Same as below.

2004-01-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/colorspace/gstcolorspace.c:
	* gst/colorspace/yuv2yuv.c: (gst_colorspace_yuy2_to_i420),
	(gst_colorspace_i420_to_yv12):
	  Fix compiling... Didn't test if it actually works.

2004-01-15  David Schleef  <ds@schleef.org>

	* configure.ac:
	* gst/colorspace/Makefile.am:
	* gst/colorspace/gstcolorspace.c:
	* gst/colorspace/gstcolorspace.h:
	* gst/colorspace/yuv2rgb.c:
	* gst/colorspace/yuv2rgb.h:
	Duplicate the ext/hermes colorspace plugin, and remove Hermes
	code and GPL code.  Fix for new caps negotiation.  Rewrite
	much of the format handling code, and some of the conversion
	code.  Basically, rewrote almost everything.  This element
	handles I420, YV12 to RGB conversions.
	* ext/hermes/Makefile.am:
	* ext/hermes/gsthermescolorspace.c:
	Rename colorspace to hermescolorspace.  Fix negotiation issues.
	Remove non-Hermes related code.  This element handles lots of
	RGB to RGB conversions, but no YUV.
	* ext/hermes/gstcolorspace.c:
	* ext/hermes/gstcolorspace.h:
	* ext/hermes/rgb2yuv.c:
	* ext/hermes/yuv2rgb.c:
	* ext/hermes/yuv2rgb.h:
	* ext/hermes/yuv2rgb_mmx16.s:
	* ext/hermes/yuv2yuv.c:
	* ext/hermes/yuv2yuv.h:
	Remove old code.

2004-01-14  Colin Walters  <walters@verbum.org>

	* ext/mad/gstid3tag.c (gst_id3_tag_chain): Don't nego caps if
	they've already been.

2004-01-15  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_do_caps_nego):
	  assume tag mode when pad is not connected

2004-01-15  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  Don't update the time of the clock
	(gst_alsa_sink_loop):
	  sync to the clock given to alsasink, not the own clock
	* sys/oss/gstosssink.c: (gst_osssink_chain):
	  sync to the clock
	(gst_osssink_change_state):
	  activate the clock
	* sys/ximage/ximagesink.c: (gst_ximagesink_chain):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain):
	  remove bogus code that made DISCONT events unhandled
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_video_caps):
	  explicitly case to double in _set_simple. (fixes 2nd warning in bug
	  #131502)
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_read_object_header),
	(gst_asf_demux_handle_sink_event), (gst_asf_demux_audio_caps),
	(gst_asf_demux_add_audio_stream), (gst_asf_demux_video_caps):
	  convert g_warning because of wrong asf data to GST_WARNINGs (fixes
	  2nd warning in bug #131502)

2004-01-14  Julien MOUTTE  <julien@moutte.net>

	* gst/videofilter/gstvideobalance.c: (gst_videobalance_init),
	(gst_videobalance_colorbalance_set_value),
	(gst_videobalance_colorbalance_get_value): Fixing videobalance ranges
	for colorbalance interface implementation.
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
	(gst_ximagesink_set_property), (gst_ximagesink_get_property),
	(gst_ximagesink_dispose), (gst_ximagesink_init),
	(gst_ximagesink_class_init): Adding DISPLAY property.
	* sys/ximage/ximagesink.h: Adding display_name to store display.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_dispose), (gst_xvimagesink_init),
	(gst_xvimagesink_class_init): Adding DISPLAY property and colorbalance
	properties (they still need polishing though for gst-launch use : no
	xcontext yet, i ll do that tomorrow).
	* sys/xvimage/xvimagesink.h: Adding display_name to store display.

2004-01-14  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup),
	(gst_play_set_location), (gst_play_set_visualization): Preparing
	switch integration, adding videobalance in the pipeline.

2004-01-14  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/colorbalance/colorbalance.c:
	(gst_color_balance_class_init): Adding a default type.
	* gst-libs/gst/colorbalance/colorbalance.h: Adding a macro to access
	the type.
	* gst/videofilter/gstvideobalance.c: (gst_videobalance_get_type),
	(gst_videobalance_dispose), (gst_videobalance_class_init),
	(gst_videobalance_init), (gst_videobalance_interface_supported),
	(gst_videobalance_interface_init),
	(gst_videobalance_colorbalance_list_channels),
	(gst_videobalance_colorbalance_set_value),
	(gst_videobalance_colorbalance_get_value),
	(gst_videobalance_colorbalance_init): Implementing colorbalance
	interface.
	* gst/videofilter/gstvideobalance.h: Adding colorbalance channels
	list.
	* sys/ximage/ximagesink.c: (gst_ximagesink_set_xwindow_id): Fixing a
	bug which was triggering a BadAccess X error when setting an overlay
	before pad was really negotiated.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_colorbalance_init):
	Using the colorbalance type macro.

2004-01-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/flac/gstflacenc.c: (gst_flacenc_set_metadata),
	(gst_flacenc_chain):
	  handle tags correctly
	* gst/tags/gstid3tag.c: (gst_tag_list_new_from_id3v1):
	  extract ID3v1 tags correctly

2004-01-14  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (matroska_type_find),
	(plugin_init):
	  Improve matroska typefinding for odd-typed headers...

2004-01-14  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
	  Fix for using incremental number on padnames.

2004-01-14  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c:
	* ext/divx/gstdivxenc.c:
	  Set category to divx4linux instead of divx (too generic).
	* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
	(gst_wavparse_parse_fmt), (gst_wavparse_handle_sink_event),
	(gst_wavparse_loop), (gst_wavparse_change_state):
	* gst/wavparse/gstwavparse.h:
	  fix parsing of WAV files with non-standard fmt-tag size and fix
	  skipping of unrecognized chunks... Someone please fix this thing
	  to use rifflib so all this is automated.
	* sys/v4l/Makefile.am:
	* sys/v4l2/Makefile.am:
	  Add X_CFLAGS because we depend on X (for overlay).

2004-01-14  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  Don't issue a timestamp unless we tagged the frame
	  with a PTS.

2004-01-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/play/gstplay.c: (gst_play_tick_callback):
	  Query the audio element to get the time, not the clock. We're
	  interested in the element's time here.

2004-01-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/aalib/gstaasink.c: (gst_aasink_chain):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	* ext/esd/esdsink.c: (gst_esdsink_chain):
	* ext/libcaca/gstcacasink.c: (gst_cacasink_chain):
	* ext/mas/massink.c: (gst_massink_chain):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_chain):
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_index),
	(gst_matroska_demux_parse_metadata):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop),
	(gst_mpeg_parse_release_locks):
	* gst/tcp/gsttcpsink.c: (gst_tcpsink_chain):
	* gst/udp/gstudpsink.c: (gst_udpsink_chain):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain),
	(gst_osssink_change_state):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_chain):
	* sys/ximage/ximagesink.c: (gst_ximagesink_chain):
	* sys/xvideo/xvideosink.c: (gst_xvideosink_chain),
	(gst_xvideosink_release_locks):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain):
	  use element time.
	* ext/alsa/gstalsaclock.c: (gst_alsa_clock_start),
	(gst_alsa_clock_stop):
	* gst-libs/gst/audio/audioclock.c: (gst_audio_clock_set_active),
	(gst_audio_clock_get_internal_time):
	  simplify for use with new clocking code.
	* testsuite/alsa/Makefile.am:
	* testsuite/alsa/sinesrc.c: (sinesrc_init), (sinesrc_force_caps):
	  fix testsuite for new caps system

2004-01-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/flac/gstflacdec.c: (gst_flacdec_update_metadata):
	* ext/flac/gstflacenc.c: (add_one_tag):
	  length is already host endian, no need to convert. Fixes playback of
	  tagged files on PPC. (bug #128384)

2004-01-13  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/colorbalance/colorbalance.h: Adding a type to the
	colorbalance interface stating if it is hardware based or software
	based.
	* gst/videofilter/gstvideobalance.c: (gst_videobalance_planar411):
	Removing a trailing comma.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_colorbalance_init): Integrating a patch from Jon
	Trowbridge <trow@ximian.com> querying Xv adaptor for min/max value as
	the documentation seems to be wrong on the -1000 to 1000 interval.

2004-01-12  David Schleef  <ds@schleef.org>

	* gst/debug/efence.c: (gst_efence_init), (gst_efence_chain),
	(gst_efence_buffer_alloc), (gst_fenced_buffer_new),
	(gst_fenced_buffer_default_free), (gst_fenced_buffer_default_copy):
	Fix negotiation.  Add a bufferalloc function for the sink pad,
	and generally clean up some of the code.

2004-01-12  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/colorbalance/colorbalancechannel.c:
	(gst_color_balance_channel_dispose): Adding safety check in dispose
	method.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_xcontext_clear),
	(gst_xvimagesink_interface_supported),
	(gst_xvimagesink_colorbalance_list_channels),
	(gst_xvimagesink_colorbalance_set_value),
	(gst_xvimagesink_colorbalance_get_value),
	(gst_xvimagesink_colorbalance_init), (gst_xvimagesink_get_type):
	Adding colorbalance interface support to set XV parameters such as
	HUE, BRIGHTNESS, CONTRAST, SATURATION.
	* sys/xvimage/xvimagesink.h: Adding the channels list for colorbalance
	interface.

2004-01-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_get_type),
	(gst_audio_convert_class_init), (gst_audioconvert_getcaps),
	(gst_audio_convert_init), (gst_audio_convert_set_property),
	(gst_audio_convert_get_property), (gst_audio_convert_chain),
	(gst_audio_convert_link),
	(gst_audio_convert_buffer_to_default_format),
	(gst_audio_convert_buffer_from_default_format), (plugin_init):
          - implement _getcaps and use it
          - improve linking
          - remove float caps since no float conversion is actually done
          - remove properties and arguments that were to be used for rate
            conversion

2004-01-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/audio/audio.c: (_gst_audio_structure_set_list),
	(gst_audio_structure_set_int):
	* gst-libs/gst/audio/audio.h:
          add helper functions for _getcaps matching the standard audio
          templates

2004-01-12  David Schleef  <ds@schleef.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	Test that pad is negotiated before getting its caps.

2004-01-12  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/play/gstplay.c: (gst_play_get_sink_element): When
	analyzing the pads of an element the bin is mostly in READY state so
	no caps were negotiated. This helper function needs to work with
	_get_caps directly then. I was not freeing them though, added that to
	fix the mem leak.

2004-01-12  Julien MOUTTE <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_chain):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): Fixing the
	direct put buffers detection. I prefer checking GST_BUFFER_PRIVATE
	than the free_func.

2004-01-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/oss/gstossaudio.c: (plugin_init):
	* sys/oss/gstosselement.c: (gst_osselement_sync_parms):
	* sys/oss/gstosselement.h:
          make an oss debugging category
          make failure more descriptive

2004-01-11  David Schleef  <ds@schleef.org>

	* ext/ffmpeg/gstffmpeg.c:
	* ext/ffmpeg/gstffmpegcodecmap.c:
	* ext/ffmpeg/gstffmpegdec.c:
	* ext/ffmpeg/gstffmpegenc.c:
	* ext/ffmpeg/gstffmpegprotocol.c:
	* ext/gdk_pixbuf/gstgdkanimation.c:
	* ext/jpeg/gstjpeg.c:
	* ext/libpng/gstpng.c:
	* ext/mpeg2dec/perftest.c:
	* ext/speex/gstspeex.c:
	* gst-libs/gst/resample/dtos.c:
	* gst/intfloat/gstintfloatconvert.c:
	* gst/oneton/gstoneton.c:
	* gst/rtjpeg/RTjpeg.c:
	* gst/rtp/gstrtp.c:
	* sys/dxr3/dxr3init.c:
	* sys/glsink/gstgl_nvimage.c:
	* sys/glsink/gstgl_pdrimage.c:
	* sys/glsink/gstglsink.c:
	* testsuite/gst-lint:
	Make sure everybody wraps #include "config.h" in #ifdef HAVE_CONFIG_H

2004-01-11  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsasrc.c: (gst_alsa_src_set_caps):
	* ext/faac/gstfaac.c: (gst_faac_sinkconnect):
	* ext/gdk_pixbuf/gstgdkanimation.c:
	(gst_gdk_animation_iter_create_pixbuf):
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_link),
	(gst_gdk_pixbuf_chain):
	* ext/gdk_pixbuf/gstgdkpixbuf.h:
	* ext/jack/gstjack.c: (gst_jack_change_state):
	* ext/xvid/gstxviddec.c: (gst_xviddec_sink_link):
	* gst-libs/gst/play/gstplay.c: (gst_play_get_sink_element):
	* gst-libs/gst/play/play.c: (gst_play_get_sink_element):
	* gst/videofilter/gstvideofilter.c:
	(gst_videofilter_set_output_size):
	Remove all usage of gst_pad_get_caps(), and replace it with
	gst_pad_get_allowed_caps() or gst_pad_get_negotiated_cap().

2004-01-11  David Schleef  <ds@schleef.org>

	* configure.ac:
	* ext/Makefile.am: Fixes to make ext/libcaca compile.
	* ext/divx/gstdivxdec.c:
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_link),
	(gst_gdk_pixbuf_init), (gst_gdk_pixbuf_chain): Make gdkpixbufdec
	handle images that span multiple buffers.  Now work with both
	filesrc ! gdkpixbufdec and qtdemux ! gdkpixbufdec.
	* ext/gdk_pixbuf/gstgdkpixbuf.h:
	* ext/libcaca/gstcacasink.h: Fixes needed due to recent
	video/video.h changes
	* ext/xvid/gstxvid.c: (gst_xvid_csp_to_caps): same
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get),
	(gst_v4lmjpegsrc_buffer_free): Use buffer free function instead
	of GstData free function.
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get), (gst_v4lsrc_buffer_free):
	same.

2004-01-12  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/v4l2/gstv4l2element.c: (gst_v4l2element_class_init),
	(gst_v4l2element_dispose), (gst_v4l2element_set_property),
	(gst_v4l2element_get_property):
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_set_defaults), (gst_v4l2_open):
	  add norm, channel and frequency properties.
	* sys/v4l2/gstv4l2tuner.c:
	  fixes for tuner interface changes
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	  rework v4l2src to work with saa1734 cards and allow mmaped buffers.

2004-01-12  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/tuner/tuner.c: (gst_tuner_class_init),
	(gst_tuner_find_norm_by_name), (gst_v4l2_find_channel_by_name),
	(gst_tuner_channel_changed), (gst_tuner_norm_changed),
	(gst_tuner_frequency_changed), (gst_tuner_signal_changed):
	* gst-libs/gst/tuner/tuner.h:
	  GObjects aren't const.
	  Add find_by_name functions.
	  Add checks to _changed functions.
	* sys/v4l/gstv4ltuner.c: (gst_v4l_tuner_get_channel),
	(gst_v4l_tuner_get_norm):
	  Fixes for above.

2004-01-12  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/video/video.h:
	  Fix caps template names to be understandable.
	  Prefix everything with GST_VIDEO.
	* ext/aalib/gstaasink.c:
	* ext/divx/gstdivxdec.c:
	* ext/divx/gstdivxenc.c:
	* ext/gdk_pixbuf/gstgdkpixbuf.c:
	* ext/hermes/gstcolorspace.c: (gst_colorspace_base_init):
	* ext/jpeg/gstjpegdec.c: (raw_caps_factory):
	* ext/jpeg/gstjpegenc.c: (raw_caps_factory):
	* ext/libcaca/gstcacasink.c:
	* ext/libpng/gstpngenc.c: (raw_caps_factory):
	* ext/snapshot/gstsnapshot.c:
	* ext/swfdec/gstswfdec.c:
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	* gst/chart/gstchart.c:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/effectv/gsteffectv.c:
	* gst/flx/gstflxdec.c: (gst_flxdec_loop):
	* gst/goom/gstgoom.c:
	* gst/median/gstmedian.c:
	* gst/monoscope/gstmonoscope.c: (gst_monoscope_init),
	(gst_monoscope_srcconnect), (gst_monoscope_chain):
	* gst/overlay/gstoverlay.c:
	* gst/smooth/gstsmooth.c:
	* gst/smpte/gstsmpte.c:
	* gst/synaesthesia/gstsynaesthesia.c:
	* gst/videocrop/gstvideocrop.c:
	* gst/videodrop/gstvideodrop.c:
	* gst/y4m/gsty4mencode.c:
	* sys/qcam/gstqcamsrc.c:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps):
	  Make them work with new video.h file.
	* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
	(gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
	(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc):
	  Make it work with new buffer allocation system.

2004-01-11  Julien MOUTTE  <julien@moutte.net>

	* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain): Fixing the
	pad_alloc_buffer implementation to use ->srcpad
	* ext/hermes/gstcolorspace.c: (gst_colorspace_chain): Fixing the
        pad_alloc_buffer implementation to use ->srcpad
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain):  Fixing the
        pad_alloc_buffer implementation to use ->srcpad
	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_chain), (gst_ximagesink_buffer_free),
	(gst_ximagesink_buffer_alloc): Now only use GST_BUFFER_PRIVATE to keep
	a reference to everything we need.
	* sys/ximage/ximagesink.h: adding a reference to the sink in the image.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
	(gst_xvimagesink_buffer_alloc): Now only use GST_BUFFER_PRIVATE to keep
        a reference to everything we need.
	* sys/xvimage/xvimagesink.h: adding a reference to the sink in the image

2004-01-11  David Schleef  <ds@schleef.org>

	* ext/divx/gstdivxenc.c: remove bogus gst_caps_is_fixed() test
	* gst/debug/efence.c: (gst_efence_chain), (gst_fenced_buffer_new),
	(gst_fenced_buffer_default_copy): Fix for rename of buffer private
	structure members.
	* gst/effectv/gstwarp.c: (gst_warptv_setup): Don't reset the time
	value during a resize/renegotiation.
	* gst/videofilter/gstvideofilter.c: (gst_videofilter_chain): use
	gst_pad_alloc_buffer();
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get),
	(gst_v4lmjpegsrc_buffer_free): Fix for rename of buffer private
	structure members.
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get), (gst_v4lsrc_buffer_free):
	Fix for rename of buffer private structure members.
	* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
	(gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc):
	Fix for rename of buffer private structure members.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
	(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc):
	Fix for rename of buffer private structure members.

2004-01-11  Arwed v. Merkatz <v.merkatz@gmx.net>

	reviewed by: David Schleef <ds@schleef.org>

	* gst/videofilter/Makefile.am:
	* gst/videofilter/gstgamma.c: Gamma correction filter.  Modified
	from the patch by ds to fit in with recent make_filter changes.

2004-01-11  Julien MOUTTE  <julien@moutte.net>

	* configure.ac: Adding examples/switch/Makefile
	* examples/Makefile.am: Adding examples/switch
	* examples/switch/Makefile.am: Adding switcher example.
	* examples/switch/switcher.c: (got_eos), (idle_iterate),
	(switch_timer), (main): Adding an example demonstrating switch usage
	with 2 videotestsrc showing different patterns.
	* gst/switch/gstswitch.c: (gst_switch_request_new_pad),
	(gst_switch_init): Fixing switch with the new caps system.

2004-01-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/video/video.h:
	  Fix 32bit caps. Issue remaining: The macro names are chosen poorly.
	  They should probably be like
	  GST_VIDEO_PAD_TEMPLATE_CAPS_{RGB,BGR,RGBx,BGRx}.

2004-01-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse_trak):
	  fix audio chunk size/timestamp calculation

2004-01-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
	  fix SVQ3 caps

2004-01-11  Steve Baker  <steve@stevebaker.org>

	* gst/effectv/gstaging.c: (gst_agingtv_get_type),
	(gst_agingtv_base_init), (gst_agingtv_class_init),
	(gst_agingtv_init), (gst_agingtv_setup), (gst_agingtv_rgb32),
	(gst_agingtv_set_property), (gst_agingtv_get_property):
        Port agingTV to videofilter

2004-01-09  Julien MOUTTE <julien@moutte.net>

	* ext/hermes/gstcolorspace.c: (gst_colorspace_chain):
	Implementing gst_pad_alloc_buffer to use optimized buffer allocation.

2004-01-09  Julien MOUTTE <julien@moutte.net>

	* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain):
	Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
	* gst-libs/gst/xoverlay/xoverlay.c:
	(gst_x_overlay_got_desired_size): Updating doc for the xid being 0.
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain):
	Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
	Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
	* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
	(gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init): Implementing
	the bufferalloc_function to replace bufferpools, fixing the XOverlay
	interface implementation to handle xid being 0 and fix some bugs
	triggered by Benjamin's testcase.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
	(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init): Implementing
	the bufferalloc_function to replace bufferpools, fixing the XOverlay
	interface implementation to handle xid being 0 and fix some bugs
	triggered by Benjamin's testcase.

2004-01-09  David Schleef  <ds@schleef.org>

	* ext/librfb/gstrfbsrc.c:  Hacking.  Added actual decoding and
	mouse pointer events.  It works.

2004-01-09  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxenc.c: (gst_divxenc_init):
	  Use explicit caps - fix capsnego.
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	  Remove macro-inside-macro which caused compile errors.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_header):
	  Error out if it's not a RIFF file. Else we error out without
	  gst_element_error() which is not good...

2004-01-08  David Schleef  <ds@schleef.org>

	* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect):
	Fix pad_link function to handle formats that ffmpeg returns
	as multiple caps structures.
	* gst/videofilter/gstvideofilter.c: (gst_videofilter_chain):
	Only complain if source buffer is _smaller_ than expected.
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_init),
	(gst_videoscale_handle_src_event): Resize navigation events
	when passing them upstream.
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.c:
	* gst/videotestsrc/videotestsrc.h:
	Rewrite many of the buffer painting functions to handle odd
	sizes (for many formats, size%4!=0 or size%8!=0).  Most have
	been verified to work with my video card.
	* testsuite/gst-lint:  Add check for elements calling
	gst_pad_get_caps() instead of gst_pad_get_allowed_caps().

2004-01-08  David Schleef  <ds@schleef.org>

	* gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps),
	(gst_videodrop_link), (gst_videodrop_init): Fix negotiation.

2004-01-08  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents): A
	configure event is not emiting the desired size signal. That fixes
	aspect ratio issues with gst-player.

2004-01-08  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/median/gstmedian.c: (gst_median_link), (gst_median_init):
	  Fix capsnego.

2004-01-08  Julien MOUTTE  <julien@moutte.net>

	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_create): Using XOverlay
	public method to fire size signal.

2004-01-07  Julien MOUTTE  <julien@moutte.net>

	* examples/gstplay/Makefile.am: Adding the interface library.
	* gst-libs/gst/play/Makefile.am: Adding the interface library.
	* gst-libs/gst/play/gstplay.c: (gst_play_set_video_sink): Connecting to 	the XOverlay size signal instead of GstVideoSink.
	* gst-libs/gst/play/gstplay.h: Including the XOverlay interface to check
	GST_IS_X_OVERLAY before signal connect.
	* gst-libs/gst/video/gstvideosink.c: (gst_videosink_class_init):
	Removing the have_video_size signal.
	* gst-libs/gst/video/gstvideosink.h: Removing the have_video_size signal
	and associated public method.
	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents),
	(gst_ximagesink_sinkconnect): Using XOverlay public method to fire size
	signal.
	* sys/xvideo/xvideosink.c: (gst_xvideosink_sinkconnect),
	(gst_xvideosink_xwindow_new): Using XOverlay public method to fire size
        signal.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sinkconnect):
	Using XOverlay public method to fire size signal.

2004-01-07  David Schleef  <ds@schleef.org>

	* gst/videofilter/Makefile.am:
	* gst/videofilter/gstvideotemplate.c:
	* gst/videofilter/make_filter:
	Create gstvideoexample.c in a srcdir!=builddir friendly way.
	Convert make_filter to /bin/sh script.

2004-01-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/modplug/gstmodplug.cc: fix element description

2004-01-07  Julien MOUTTE  <julien@moutte.net>

	* examples/gstplay/player.c: (got_time_tick), (got_stream_length),
	(got_video_size): Adding some new lines in g_print calls.
	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new),
	(gst_ximagesink_xwindow_destroy), (gst_ximagesink_xwindow_resize),
	(gst_ximagesink_handle_xevents), (gst_ximagesink_fixate),
	(gst_ximagesink_sinkconnect), (gst_ximagesink_change_state),
	(gst_ximagesink_chain), (gst_ximagesink_buffer_new),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_get_desired_size):
	Complete code review, reverting some stuff i disagree with, adding
	some fixes : time synchronization on invalid timestamps, renegotiation
	of private window.
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_destroy),
	(gst_xvimagesink_xwindow_resize), (gst_xvimagesink_handle_xevents),
	(gst_xvimagesink_get_xv_support), (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_fixate), (gst_xvimagesink_sinkconnect),
	(gst_xvimagesink_change_state), (gst_xvimagesink_chain),
	(gst_xvimagesink_buffer_new),
	(gst_xvimagesink_navigation_send_event),
	(gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_get_desired_size),
	(gst_xvimagesink_xoverlay_init): Complete code review, reverting some
	stuff i disagree with, adding some fixes : Renegotiation of private
	window, implementing get_desired_size.

2004-01-07  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/audiofile/gstafsink.c: (gst_afsink_init), (gst_afsink_chain),
	(gst_afsink_handle_event):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_init):
	* gst/avi/gstavimux.c: (gst_avimux_request_new_pad):
	* sys/dxr3/dxr3audiosink.c: (dxr3audiosink_init):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_init):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_init):
	  Fix for instantiate-test (see core). Also remove dead code from
	  jpegenc (which still needs fixing, but that's lower on my TODO
	  list...).
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps):
	  Never return NULL as caps.

2004-01-07  David Schleef  <ds@schleef.org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/librfb/Makefile.am:
	* ext/librfb/gstrfbsrc.c:
	New source plugin based on librfb-0.1.  RFB (remote framebuffer)
	is the protocol used by VNC.

2004-01-07  David Schleef  <ds@schleef.org>

	* gst/videofilter/gstvideotemplate.c:
	* gst/videofilter/gstvideotemplate.h:
	* gst/videofilter/make_filter:
	Merge videotemplate header into source file.
	* gst/effectv/Makefile.am:
	* gst/effectv/gsteffectv.c: (plugin_init):
	* gst/effectv/gstwarp.c:
	Make warpTV a subclass of videofilter.

2004-01-07  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list):
	  Add guard against invalid utf-8 conversions in mad. Just in case.

2004-01-07  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/oss/gstosssink.c: (gst_osssink_sink_fixate):
	  Fix for bug shown by poisoning

2004-01-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get),
	(gst_v4lmjpegsrc_buffer_free):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps),
	(gst_v4lsrc_srcconnect), (gst_v4lsrc_getcaps), (gst_v4lsrc_get),
	(gst_v4lsrc_buffer_free):
	  Fix for removed bufferpools.

2004-01-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_loop):
	Fix caps negotiation.

	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init),
	(dvdnavsrc_update_buttoninfo), (dvdnavsrc_get),
	(dvdnavsrc_get_event_mask), (dvdnav_handle_navigation_event),
	(dvdnavsrc_event):
	* ext/mpeg2dec/gstmpeg2dec.c:
	* gst-libs/gst/navigation/navigation.c:
	(gst_navigation_send_key_event), (gst_navigation_send_mouse_event):
	* gst-libs/gst/navigation/navigation.h:
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_handle_src_event):
	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
	Super-simple first version of mouse and keyboard events. Clicking
	on a DVD menu now works, although it may not take you where you
	expected.

	* gst/sine/gstsinesrc.c: (gst_sinesrc_src_fixate):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_src_fixate):
	These fixate functions were broken - they never actually
	fixated :)

2004-01-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/shout/gstshout.c: (gst_icecastsend_base_init),
	(gst_icecastsend_init):
	  fix for new caps system.
	* gst-libs/gst/mixer/mixertrack.h:
	* sys/oss/gstossmixer.c: (gst_ossmixer_build_list):
	  Add 'master track' flag (for tools like ACME that only want to
	  change the main volume).

2004-01-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/xvid/gstxvid.c: (gst_xvid_structure_to_csp),
	(gst_xvid_csp_to_caps):
	* ext/xvid/gstxviddec.c: (gst_xviddec_src_getcaps):
	* ext/xvid/gstxvidenc.c:
	ifdef out ARGB type when it isn't available
	in xvidcore 1.0.0beta2

2004-01-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop):
	  When we have received a new SCR right in the first buffer after
	  a seek (so in the same cycle that handles the discont), we should
	  handle the buffer instead of unreffing it, else we lose data.

2004-01-06  Iain <iain@prettypeople.org>

	* gst/intfloat/gstint2float.c (gst_int2float_link): Set the
	  buffer-frames caps too.

	* gst/oneton/gstoneton.c (gst_oneton_sink_connect): Only create the new
	  caps that we need, don't destroy them all and rebuild them. And when
	  creating src pads, use the src pad template rather than the sink...

2004-01-05  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead):
	  Add pad to element *after* setting functions such as event handler.
	  Without this, the scheduler (opt) will link pads, set the event
	  handler from the default event function (dispatcher in gstpad.c)
	  and *after* that, we will set our own event function, which will
	  thus never be used (and thus mpegdemux doesn't handle events).

2004-01-04  David Schleef  <ds@schleef.org>

	Fix the fixate functions to handle new prototype:
	* gst/sine/gstsinesrc.c: (gst_sinesrc_src_fixate):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_src_fixate):
	* sys/oss/gstosssink.c: (gst_osssink_sink_fixate):
	* sys/ximage/ximagesink.c: (gst_ximagesink_fixate):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_fixate):

2004-01-04  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/ximage/ximagesink.h:
	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new),
	(gst_ximagesink_xwindow_destroy), (gst_ximagesink_sinkconnect),
	(gst_ximagesink_change_state), (gst_ximagesink_set_xwindow_id),
	(gst_ximagesink_xoverlay_init):
	  assorted fixes to make (re)embedding work
	* sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect),
	(gst_ximagesink_get_desired_size):
	  implement desired size additions to XOverlay

2004-01-04  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_base_init),
	(gst_x_overlay_got_xwindow_id), (gst_x_overlay_get_desired_size),
	(gst_x_overlay_got_desired_size):
	* gst-libs/gst/xoverlay/xoverlay.h:
	  Add optional "desired size" signal and querying.

2004-01-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup):
	  Fix EBML-laced block parsing. Diffs are relative to previous
	  lace, not the first lace. Thanks to Mosu from the Matroska
	  team for detecting this.
	* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
	(gst_wavparse_parse_fmt), (gst_wavparse_getcaps),
	(gst_wavparse_handle_sink_event), (gst_wavparse_loop),
	(gst_wavparse_change_state):
	* gst/wavparse/gstwavparse.h:
	  Quickfix for capsnego.

2004-01-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavenc/gstwavenc.c: (set_property), (gst_wavenc_init):
	  Fix indenting, fix pad creation.

2004-01-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/xvid/gstxviddec.c: (gst_xviddec_init),
	(gst_xviddec_src_getcaps), (gst_xviddec_src_link),
	(gst_xviddec_sink_link):
	  Implement src_getcaps() so proper size caps is negotiated.

2004-01-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/flac/gstflacdec.c: (gst_flacdec_loop):
	  Finish flac decoder on EOS. See #116178.

2004-01-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_src_getcaps),
	(gst_matroska_demux_add_stream):
	* gst/matroska/matroska-ids.h:
	  Add getcaps() function to fix capsnego...

2004-01-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead),
	(gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
	  Fix more integer overflows. Again, see #126967.

2004-01-03  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  Add support for mpeg2dec-0.4.0 (released two weeks ago). See
	  #130416.

2004-01-03  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/xvid/gstxvid.c: (gst_xvid_init), (gst_xvid_error),
	(gst_xvid_structure_to_csp), (gst_xvid_csp_to_caps):
	* ext/xvid/gstxvid.h:
	* ext/xvid/gstxviddec.c: (gst_xviddec_class_init),
	(gst_xviddec_init), (gst_xviddec_setup), (gst_xviddec_chain),
	(gst_xviddec_src_link), (gst_xviddec_sink_link),
	(gst_xviddec_change_state):
	* ext/xvid/gstxviddec.h:
	* ext/xvid/gstxvidenc.c: (gst_xvidenc_profile_get_type),
	(gst_xvidenc_base_init), (gst_xvidenc_class_init),
	(gst_xvidenc_init), (gst_xvidenc_setup), (gst_xvidenc_chain),
	(gst_xvidenc_link), (gst_xvidenc_set_property),
	(gst_xvidenc_get_property), (gst_xvidenc_change_state):
	* ext/xvid/gstxvidenc.h:
	  Update xvid plugin to latest xvid (1.0.0-beta3) API.

2004-01-03  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/rtp/rtp-packet.c:
	  Add sys/types.h include, since OS X doesn't define in_addr_t
	  in netinet/in.h, like it does on Linux (see #129600).

2004-01-03  Thomas Canty <tommydal@optushome.com.au>

	reviewed by: Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_dispose):
	  Correct logic of dispose function (see #129306).

2004-01-03  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_pes):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init),
	(gst_mpeg_parse_init):
	* gst/mpegstream/gstmpegparse.h:
	  Remove clock (which was never provided, i.e. dead code), and
	  also fix integer overflows at high PTS values (see #126967).

2004-01-03  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/flac/gstflacdec.c:
	* ext/libpng/gstpngenc.h:
	* ext/mikmod/gstmikmod.h:
	  OS X fixes (see #126628).

2004-01-02  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsasrc.c: (gst_alsa_src_pad_factory),
	(gst_alsa_src_base_init): Remove bogus "src" request pad.
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_base_init),
	(gst_mpeg_parse_class_init): Move pad template registration
	to class_init, since the derived class (mpegdemux) doesn't
	want them.

2004-01-03  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/Makefile.am:
	* sys/xvideo/Makefile.am:
	* sys/xvimage/Makefile.am:
	  Move interface libs from LDFLAGS to LIBADD, fix relocation errors
	  after installation (see #127664).

2004-01-02  David Schleef  <ds@schleef.org>

	* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_init),
	(gst_ffmpegenc_connect):  Negotiation fixes.
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format):
	Remove inappropriate gst_caps_free().
	* sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect):
	Reenable Ronald's internal resize code, since the core handles
	it correctly now.

2004-01-02  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_init):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_init):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_base_init), (gst_v4lsrc_init):
	  Fix pad template stuff.

2004-01-02  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/ebml-read.c: (gst_ebml_read_sint):
	* gst/matroska/ebml-write.c: (gst_ebml_write_sint):
	  fix signed integer reading/writing.

2004-01-02  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/README:
	  Remove outdated document

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

	* gst/cutter/gstcutter.c: (gst_cutter_init):
	  src pad was being created twice - oops.

2004-01-02  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect):
	  Comment out internal resize. It doesn't handle the resulting
	  XEvent internally, does another try_set_caps() which leads to
	  a really nice loop.
	  Real fix will come when Julien and Dave are awake. ;).

2004-01-02  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mpeg2enc/gstmpeg2enc.cc:
	  fix const/nonconst compile issue.

2004-01-02  David Schleef  <ds@schleef.org>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_fixate),
	(gst_xvimagesink_sinkconnect), (gst_xvimagesink_init):
	Add fixate function and a check for bad formats.

2004-01-01  David Schleef  <ds@schleef.org>

	Negotiation fixes:
	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link),
	(gst_audiofilter_init):
	* gst/debug/efence.c: (gst_efence_init):
	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_link),
	(gst_deinterlace_init):
	* gst/volume/gstvolume.c: (volume_connect):

2004-01-01  David Schleef  <ds@schleef.org>

	Convert elements to use gst_pad_use_explicit_caps() where
	appropriate:
	* ext/a52dec/gsta52dec.c: (gst_a52dec_init), (gst_a52dec_reneg):
	* ext/audiofile/gstafparse.c: (gst_afparse_init),
	(gst_afparse_open_file):
	* ext/audiofile/gstafsrc.c: (gst_afsrc_init),
	(gst_afsrc_open_file):
	* ext/esd/esdmon.c: (gst_esdmon_init), (gst_esdmon_get):
	* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init),
	(gst_ffmpegdec_chain):
	* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
	* ext/flac/gstflacdec.c: (gst_flacdec_init), (gst_flacdec_write):
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_init),
	(gst_gdk_pixbuf_chain):
	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_init), (gst_jpegdec_link),
	(gst_jpegdec_chain):
	* ext/mad/gstmad.c: (gst_mad_init), (gst_mad_chain):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_init),
	(gst_mikmod_negotiate):
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
	(gst_mpeg2dec_negotiate_format):
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	* ext/speex/gstspeexdec.c: (gst_speexdec_init),
	(gst_speexdec_sinkconnect):
	* ext/swfdec/gstswfdec.c: (gst_swfdec_loop), (gst_swfdec_init):
	* ext/vorbis/vorbisfile.c: (gst_vorbisfile_init),
	(gst_vorbisfile_new_link):
	* gst/ac3parse/gstac3parse.c: (gst_ac3parse_init),
	(gst_ac3parse_chain):
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_audio_stream),
	(gst_asf_demux_setup_pad):
	* gst/auparse/gstauparse.c: (gst_auparse_init),
	(gst_auparse_chain):
	* gst/id3/gstid3types.c: (gst_id3types_loop):
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
	* gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init),
	(mp1videoparse_parse_seq):
	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_init),
	(bpf_from_header):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead),
	(gst_mpeg_demux_parse_pes), (gst_mpeg_demux_lpcm_set_caps):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init),
	(gst_mpeg_parse_send_data):
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream):
	* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream):
	* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
	(gst_wavparse_parse_fmt):

2004-01-01  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Fix configure check for mpeg2enc. We need 1.6.1.93 instead of
	  1.6.1.92, since the pkg-config file of 1.6.1.92 is borked and
	  it therefore uses the wrong include paths. Too bad... Note
	  that 1.6.1.93 is not release yet. ;).
	  Also add a check for mplex, which is now using the lib'ified
	  mplex from mjpegtools, too.
	* ext/ffmpeg/gstffmpegcodecmap.c:
	  Add codec_tag for 3ivx/xvid. For xvid, this should fix playback
	  issues. I don't think ffmpeg handles 3ivx correctly, so this
	  probably won't work. But it won't hurt either.
	* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_connect),
	(gst_ffmpegdec_chain):
	* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect),
	(gst_ffmpegenc_chain_audio):
	  Fix memleak in audio encoding. Close codec if open fails, this
	  calls the cleanup routines so we can re-use the context.
	* ext/mpeg2enc/gstmpeg2enc.cc:
	  Fix pad template names/types, fix memory issue with getcaps().
	* ext/mpeg2enc/gstmpeg2encoder.cc:
	* ext/mpeg2enc/gstmpeg2encoder.hh:
	  Fix compile issue with new caps system (const thingy).
	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.hh:
	  We read a first frame right on initing, so that we have a caps
	  when we init the output. This caps is cached in padprivate and
	  read as first frame.
	* ext/mplex/Makefile.am:
	* ext/mplex/gstmplex.cc:
	* ext/mplex/gstmplex.h:
	* ext/mplex/gstmplex.hh:
	* ext/mplex/gstmplexibitstream.cc:
	* ext/mplex/gstmplexibitstream.hh:
	* ext/mplex/gstmplexjob.cc:
	* ext/mplex/gstmplexjob.hh:
	* ext/mplex/gstmplexoutputstream.cc:
	* ext/mplex/gstmplexoutputstream.hh:
	  We wrap mjpegtools mplex. So I rewrote the plugin. The old plugin
	  had issues, didn't do capsnego, supported only a subset of the
	  mplex features and required a mplex fork in our local CVS. Plus
	  that it worked agaist a very old mplex version. Rewriting was
	  faster than updating it.
	* gst-libs/ext/Makefile.am:
	* gst-libs/ext/mplex/INSTRUCT:
	* gst-libs/ext/mplex/Makefile.am:
	* gst-libs/ext/mplex/README:
	* gst-libs/ext/mplex/TODO:
	* gst-libs/ext/mplex/ac3strm_in.cc:
	* gst-libs/ext/mplex/audiostrm.hh:
	* gst-libs/ext/mplex/audiostrm_out.cc:
	* gst-libs/ext/mplex/aunit.hh:
	* gst-libs/ext/mplex/bits.cc:
	* gst-libs/ext/mplex/bits.hh:
	* gst-libs/ext/mplex/buffer.cc:
	* gst-libs/ext/mplex/buffer.hh:
	* gst-libs/ext/mplex/fastintfns.h:
	* gst-libs/ext/mplex/format_codes.h:
	* gst-libs/ext/mplex/inputstrm.cc:
	* gst-libs/ext/mplex/inputstrm.hh:
	* gst-libs/ext/mplex/lpcmstrm_in.cc:
	* gst-libs/ext/mplex/mjpeg_logging.cc:
	* gst-libs/ext/mplex/mjpeg_logging.h:
	* gst-libs/ext/mplex/mjpeg_types.h:
	* gst-libs/ext/mplex/mpastrm_in.cc:
	* gst-libs/ext/mplex/mpegconsts.cc:
	* gst-libs/ext/mplex/mpegconsts.h:
	* gst-libs/ext/mplex/mplexconsts.hh:
	* gst-libs/ext/mplex/multplex.cc:
	* gst-libs/ext/mplex/outputstream.hh:
	* gst-libs/ext/mplex/padstrm.cc:
	* gst-libs/ext/mplex/padstrm.hh:
	* gst-libs/ext/mplex/stillsstream.cc:
	* gst-libs/ext/mplex/stillsstream.hh:
	* gst-libs/ext/mplex/systems.cc:
	* gst-libs/ext/mplex/systems.hh:
	* gst-libs/ext/mplex/vector.cc:
	* gst-libs/ext/mplex/vector.hh:
	* gst-libs/ext/mplex/videostrm.hh:
	* gst-libs/ext/mplex/videostrm_in.cc:
	* gst-libs/ext/mplex/videostrm_out.cc:
	* gst-libs/ext/mplex/yuv4mpeg.cc:
	* gst-libs/ext/mplex/yuv4mpeg.h:
	* gst-libs/ext/mplex/yuv4mpeg_intern.h:
	* gst-libs/ext/mplex/yuv4mpeg_ratio.cc:
	  We don't fork mjpegtools' mplex in our CVS anymore.
	* gst/avi/gstavidemux.c: (gst_avi_demux_src_getcaps),
	(gst_avi_demux_add_stream):
	* gst/avi/gstavidemux.h:
	  Add getcaps() function for proper caps nego. This makes some
	  parts of AVI playback/reading work.
	* sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect):
	  Resize window on new capsnego. This is probably wrong, but
	  I'm still committing it because with current capsnego, the
	  first successfull capsnego is auto-fixated, therefore rounded
	  down to the lowest values in the caps. this results in a 16x16
	  XWindow that is not reized when real capsnego finishes.
	  Dave, I see more cases of this, do you know a proper solution?
	* tools/gst-launch-ext.in:
	  Fix MPEG-4 AAC (Apple iPod/iTunes) file commandline.

2003-12-31  David Schleef  <ds@schleef.org>

	* gst/tcp/gsttcpsrc.c: (gst_tcpsrc_get):
	* gst/udp/gstudpsrc.c: (gst_udpsrc_get):
	  Change gst_pad_proxy_link() to gst_pad_try_set_caps()

2003-12-30  David Schleef  <ds@schleef.org>

	* ext/ffmpeg/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info), (gst_ffmpegcsp_getcaps),
	(gst_ffmpegcsp_pad_link), (gst_ffmpegcsp_init),
	(gst_ffmpegcsp_chain): Negotiation fixes
	* ext/mad/gstmad.c: (gst_mad_chain): Negotiation fixes
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_link), (gst_audio_convert_channels):
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_getcaps),
	(gst_audioscale_link), (gst_audioscale_get_buffer),
	(gst_audioscale_chain): Negotiation fixes
	* gst/audioscale/gstaudioscale.h:
	* gst/videofilter/gstvideofilter.c:
	(gst_videofilter_format_get_structure), (gst_videofilter_getcaps),
	(gst_videofilter_link), (gst_videofilter_init),
	(gst_videofilter_set_output_size), (gst_videofilter_setup),
	(gst_videofilter_find_format_by_structure):
	* gst/videofilter/gstvideofilter.h: Negotiation fixes
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps),
	(gst_videoscale_link):
	* gst/videoscale/videoscale.c: (videoscale_get_structure),
	(videoscale_find_by_structure), (gst_videoscale_setup):
	* gst/videoscale/videoscale.h: Negotiation fixes
	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents),
	(gst_ximagesink_fixate), (gst_ximagesink_init): Add a fixate
	function, restrict resizing to a multiple of 4 (hack until
	everyone supports odd sizes correctly).

2003-12-29  Colin Walters  <walters@verbum.org>

	* ext/esd/esdsink.c (gst_esdsink_link): Fix typo; get depth instead of
	signed.

2003-12-30  Jan Schmidt <thaytan@mad.scientist.com>

	* ext/sndfile/gstsf.c: (gst_sf_loop):
	  Fix warning about discarding const qualifier

2003-12-27  Jeremy Simon   <jesimon@libertysurf.fr>

	* gst/cutter/gstcutter.c:
	* gst/videoscale/gstvideoscale.c:
	* gst/volenv/gstvolenv.c:
	* gst-libs/gst/audio/audio.c:
	* gst-libs/gst/video/video.c:
	  Fix warnings

2003-12-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_open_audio):
	  Don't send ALSA debugging to stderr.
	* ext/alsa/gstalsa.h:
	  Use GST_WARNING instead of g_warning when ALSA functions fail.

2003-12-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	  Free XVAdapterInfo correctly.

2003-12-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_add_src_pad),
	(gst_id3_tag_do_caps_nego), (gst_id3_tag_src_link):
	  Make id3tag use correct caps nego.

2003-12-27  Amaury Jacquot <sxpert@esitcom.org>

	* ext/ivorbis/vorbis.c:
	* ext/ivorbis/vorbisenc.h:
	* ext/ivorbis/vorbisfile.c:
	  Modify so that it uses the new caps things

2003-12-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* testsuite/spider/spider1.c: (main):
	* testsuite/spider/spider2.c: (main):
	* testsuite/spider/spider3.c: (main):
	  Make tests compile again. They probably don't work.

2003-12-24  Colin Walters  <walters@verbum.org>

	* sys/oss/gstosssink.c (gst_osssink_sink_fixate): Return NULL if
	we can't fixate the caps anymore.

2003-12-23  David Schleef  <ds@schleef.org>

	* gst/volume/gstvolume.c: (volume_init): Proxy getcaps.
	* sys/oss/gstosssink.c: (gst_osssink_init),
	(gst_osssink_sink_fixate): Add fixate function.

2003-12-24  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ffmpeg/gstffmpegcodecmap.c:
	* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_getcaps),
	(gst_ffmpegcsp_srcconnect_func), (gst_ffmpegcsp_sinkconnect),
	(gst_ffmpegcsp_srcconnect), (gst_ffmpegcsp_get_type),
	(gst_ffmpegcsp_base_init), (gst_ffmpegcsp_class_init),
	(gst_ffmpegcsp_init), (gst_ffmpegcsp_chain),
	(gst_ffmpegcsp_change_state), (gst_ffmpegcsp_set_property),
	(gst_ffmpegcsp_get_property), (gst_ffmpegcsp_register):
	  fix typo in RGB masks, and move back to "old" colorspace
	  capsnego code until whoever wrote this new crap has actually
	  tested it so that it works.
	  And yes, this works, keep it that way please.

2003-12-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c: (gst_divxdec_base_init),
	(gst_divxdec_init), (gst_divxdec_negotiate):
	* ext/divx/gstdivxdec.h:
	* ext/divx/gstdivxenc.c: (gst_divxenc_base_init),
	(gst_divxenc_init):
	* ext/faac/gstfaac.c: (gst_faac_base_init), (gst_faac_init),
	(gst_faac_sinkconnect), (gst_faac_srcconnect):
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mpeg2enc/gstmpeg2encoder.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	* sys/dxr3/dxr3audiosink.c: (dxr3audiosink_base_init),
	(dxr3audiosink_init), (dxr3audiosink_pcm_sinklink):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_base_init),
	(dxr3spusink_init):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_base_init),
	(dxr3videosink_init):
	  Fix caps breakage after Dave's caps branch merge.

2003-12-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	  Fix for 24bpp display.

2003-12-23  Colin Walters  <walters@verbum.org>

	* ext/gnomevfs/gstgnomevfssink.c: Add ARG_HANDLE property that takes
	a GnomeVFSHandle directly.

2003-12-22  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/volume/Makefile.am:
	* gst/volume/gstvolume.c: (volume_connect), (volume_parse_caps),
	(volume_base_init), (volume_init):
	  Reenable volume element and fix to work with new caps stuff.
	  Rhythmbox needs this.

2003-12-22  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/qtdemux/qtdemux.c: (plugin_init):
	  qtdemux requires bytestream

2003-12-22  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_get_caps), (gst_alsa_link):
	  Fix remaining caps handling errors due to CAPS merge.

2003-12-22  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_init),
	(gst_faad_sinkconnect), (gst_faad_srcgetcaps),
	(gst_faad_srcconnect):
	  Port to new caps system.

2003-12-21  Julien MOUTTE  <julien@moutte.net>

	* examples/gstplay/player.c: (got_time_tick), (got_stream_length),
	(got_video_size), (main): using g_print instead of g_message.
	* gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup): Fixing EOS
	signal which was not emitted because of "switch" element added to the
	bin but not connected. (Removing from the bin temporarily)

2003-12-21  Julien MOUTTE  <julien@moutte.net>

	* configure.ac: X_DISPLAY_MISSING is set to 1 if AC_PATH_XTRA fails to
	find X development files. I don't understand the previous tests and
	they fail on my debian/ppc unstable. This one works.
	* examples/gstplay/player.c: (main): Set the pipeline to READY before
	exiting.
	* gst-libs/gst/play/gstplay.c: (gst_play_get_length_callback),
	(gst_play_set_video_sink), (gst_play_set_audio_sink),
	(gst_play_set_visualization): Add some safety checks in set_ methods
	and state_change. This was throwing some ugly CRITICAL messages when
	pipeline was getting disposed and casts were failing.

2003-12-21  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Improve mpeg2enc detection. This is for distributions that do
	  ship mjpegtools, but without mpeg2enc. Also does object check
	  for might there ever be ABI incompatibility.
	* ext/mpeg2enc/gstmpeg2enc.cc:
	  Add Andrew as second maintainer (he's helping me), and also add
	  an error if no caps was set. This happens if I pull before capsnego
	  and that's something I should solve sometime else.
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup):
	  Fix time parsing.
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_audio_pad_link),
	(gst_matroska_mux_track_header):
	  Add caps to templates.
	* gst/mpegaudioparse/gstmpegaudioparse.c: (mp3_sink_factory):
	  Add mpegversion=1 to prevent confusion with MPEG/AAC.
	* gst/mpegstream/gstmpegdemux.c:
	  Remove layer since it causes warnings about unfixed caps.
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
	  Fix obvious typo (we error out if caps were set, we should of
	  course error out if *no* caps were set).
	* sys/oss/gstosselement.c: (gst_osselement_convert):
	  Fix format conversion, we confused bits/bytes.
	* sys/oss/gstosselement.h:
	  Improve documentation for 'bps'.
	* sys/v4l/TODO:
	  Remove stuff about plugins that need removing - this was done
	  ages ago.
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_init),
	(gst_v4lmjpegsrc_src_convert), (gst_v4lmjpegsrc_src_query):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_init), (gst_v4lsrc_src_convert),
	(gst_v4lsrc_src_query):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_init),
	(gst_v4l2src_src_convert), (gst_v4l2src_src_query):
	  Add get_query_types(), get_formats() and query() functions.

2003-12-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ChangeLog: moved to gstreamer/docs/random/old/ChangeLog.gst-plugins
        * moved CVS to freedesktop.org

