2005-09-02  Flavio Oliveira  <flavio.oliveira@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/gsm/Makefile.am:
	* ext/gsm/gstgsm.c: 
	* ext/gsm/gstgsmenc.c: Ported GSM Encoder to GStreamer 0.9.
	* PORTED_09:

2005-08-31  Flavio Oliveira  <flavio.oliveira@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/faac/Makefile.am:
	* ext/faac/gstfaac.c: Ported to GStreamer 0.9.

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

	* configure.ac:
	* ext/Makefile.am:
	* ext/mad/Makefile.am:
	* ext/mad/gstid3tag.c:
	* ext/mad/gstmad.c:
	* ext/mad/gstmad.h:
	* gst/mpegaudio/.cvsignore:
	* gst/mpegaudio/Makefile.am:
	* gst/mpegaudio/README.crh:
	* gst/mpegaudio/common.c:
	* gst/mpegaudio/common.h:
	* gst/mpegaudio/encode.c:
	* gst/mpegaudio/encoder.h:
	* gst/mpegaudio/fixes.txt:
	* gst/mpegaudio/gstmpegaudio.c:
	* gst/mpegaudio/gstmpegaudio.h:
	* gst/mpegaudio/mpegaudio.vcproj:
	* gst/mpegaudio/musicin.c:
	* gst/mpegaudio/musicin.h:
	* gst/mpegaudio/psy.c:
	* gst/mpegaudio/putbits.c:
	* gst/mpegaudio/putbits.h:
	* gst/mpegaudio/readme.txt:
	* gst/mpegaudio/release.txt:
	* gst/mpegaudio/subs.c:
	* gst/mpegaudio/table_absthr.h:
	* gst/mpegaudio/table_alloc.h:
	* gst/mpegaudio/table_cb.h:
	* gst/mpegaudio/table_enwindow.h:
	* gst/mpegaudio/table_th.h:
	* gst/mpegaudio/tables.c:
	* gst/mpegaudio/tonal.c:
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	* sys/Makefile.am:

	  all these plugins are moved to gst-plugins-ugly

2005-08-31  Michael Smith <msmith@fluendo.com>

	* configure.ac:
	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcm_reset),
	(gst_dvdlpcmdec_init), (gst_dvdlpcmdec_link), (update_timestamps),
	(gst_dvdlpcmdec_chain):
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  Port LPCM decoder to 0.9

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

	* configure.ac:
	  Remove plugins that should have disappeared.

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

	* autogen.sh:
	* configure.ac:
	  Make autogen work again.

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

	* configure.ac:
	* ext/Makefile.am:
	* ext/aalib/Makefile.am:
	* ext/aalib/gstaasink.c:
	* ext/aalib/gstaasink.h:
	* ext/cairo/Makefile.am:
	* ext/cairo/gstcairo.c:
	* ext/cairo/gsttextoverlay.c:
	* ext/cairo/gsttextoverlay.h:
	* ext/cairo/gsttimeoverlay.c:
	* ext/cairo/gsttimeoverlay.h:
	* ext/dv/Makefile.am:
	* ext/dv/NOTES:
	* ext/dv/demo-play.c:
	* ext/dv/gstdv.c:
	* ext/dv/gstdvdec.c:
	* ext/dv/gstdvdec.h:
	* ext/dv/gstdvdemux.c:
	* ext/dv/gstdvdemux.h:
	* ext/esd/Makefile.am:
	* ext/esd/README:
	* ext/esd/esdmon.c:
	* ext/esd/esdmon.h:
	* ext/esd/esdsink.c:
	* ext/esd/esdsink.h:
	* ext/esd/gstesd.c:
	* ext/flac/Makefile.am:
	* ext/flac/flac_compat.h:
	* ext/flac/gstflac.c:
	* ext/flac/gstflacdec.c:
	* ext/flac/gstflacdec.h:
	* ext/flac/gstflacenc.c:
	* ext/flac/gstflacenc.h:
	* ext/flac/gstflactag.c:
	* ext/flac/gstflactag.h:
	* ext/gconf/Makefile.am:
	* ext/gconf/gconf.c:
	* ext/gconf/gconf.h:
	* ext/gconf/gstgconfaudiosink.c:
	* ext/gconf/gstgconfaudiosink.h:
	* ext/gconf/gstgconfelements.c:
	* ext/gconf/gstgconfelements.h:
	* ext/gconf/gstgconfvideosink.c:
	* ext/gconf/gstgconfvideosink.h:
	* ext/gdk_pixbuf/Makefile.am:
	* ext/gdk_pixbuf/gst_loader.c:
	* ext/gdk_pixbuf/gstgdkanimation.c:
	* ext/gdk_pixbuf/gstgdkanimation.h:
	* ext/gdk_pixbuf/gstgdkpixbuf.c:
	* ext/gdk_pixbuf/gstgdkpixbuf.h:
	* ext/gdk_pixbuf/pixbufscale.c:
	* ext/gdk_pixbuf/pixbufscale.h:
	* ext/jpeg/Makefile.am:
	* ext/jpeg/README:
	* ext/jpeg/gstjpeg.c:
	* ext/jpeg/gstjpegdec.c:
	* ext/jpeg/gstjpegdec.h:
	* ext/jpeg/gstjpegenc.c:
	* ext/jpeg/gstjpegenc.h:
	* ext/jpeg/gstsmokedec.c:
	* ext/jpeg/gstsmokedec.h:
	* ext/jpeg/gstsmokeenc.c:
	* ext/jpeg/gstsmokeenc.h:
	* ext/jpeg/smokecodec.c:
	* ext/jpeg/smokecodec.h:
	* ext/jpeg/smokeformat.h:
	* ext/ladspa/Makefile.am:
	* ext/ladspa/gstladspa.c:
	* ext/ladspa/gstladspa.h:
	* ext/ladspa/gstsignalprocessor.c:
	* ext/ladspa/gstsignalprocessor.h:
	* ext/ladspa/load.c:
	* ext/ladspa/search.c:
	* ext/ladspa/utils.h:
	* ext/libcaca/Makefile.am:
	* ext/libcaca/gstcacasink.c:
	* ext/libcaca/gstcacasink.h:
	* ext/libmng/Makefile.am:
	* ext/libmng/gstmng.c:
	* ext/libmng/gstmng.h:
	* ext/libmng/gstmngdec.c:
	* ext/libmng/gstmngdec.h:
	* ext/libmng/gstmngenc.c:
	* ext/libmng/gstmngenc.h:
	* ext/libpng/Makefile.am:
	* ext/libpng/gstpng.c:
	* ext/libpng/gstpng.h:
	* ext/libpng/gstpngdec.c:
	* ext/libpng/gstpngdec.h:
	* ext/libpng/gstpngenc.c:
	* ext/libpng/gstpngenc.h:
	* ext/mikmod/Makefile.am:
	* ext/mikmod/README:
	* ext/mikmod/drv_gst.c:
	* ext/mikmod/gstmikmod.c:
	* ext/mikmod/gstmikmod.h:
	* ext/mikmod/mikmod_reader.c:
	* ext/mikmod/mikmod_types.c:
	* ext/mikmod/mikmod_types.h:
	* ext/pango/Makefile.am:
	* ext/pango/gsttextoverlay.c:
	* ext/pango/gsttextoverlay.h:
	* ext/pango/gsttimeoverlay.c:
	* ext/pango/gsttimeoverlay.h:
	* ext/raw1394/Makefile.am:
	* ext/raw1394/gst1394.c:
	* ext/raw1394/gstdv1394src.c:
	* ext/raw1394/gstdv1394src.h:
	* ext/shout2/Makefile.am:
	* ext/shout2/gstshout2.c:
	* ext/shout2/gstshout2.h:
	* ext/speex/Makefile.am:
	* ext/speex/gstspeex.c:
	* ext/speex/gstspeexdec.c:
	* ext/speex/gstspeexdec.h:
	* ext/speex/gstspeexenc.c:
	* ext/speex/gstspeexenc.h:
	* gst/avi/.cvsignore:
	* gst/avi/Makefile.am:
	* gst/avi/README:
	* gst/avi/avi-ids.h:
	* gst/avi/avi.vcproj:
	* gst/avi/gstavi.c:
	* gst/avi/gstavidemux.c:
	* gst/avi/gstavidemux.h:
	* gst/avi/gstavimux.c:
	* gst/avi/gstavimux.h:
	* gst/level/gstlevel.c: (gst_level_transform):
	* sys/Makefile.am:
	* sys/oss/.cvsignore:
	* sys/oss/Makefile.am:
	* sys/oss/gst-i18n-plugin.h:
	* sys/oss/gstossaudio.c:
	* sys/oss/gstossdmabuffer.c:
	* sys/oss/gstossdmabuffer.h:
	* sys/oss/gstosshelper.c:
	* sys/oss/gstosshelper.h:
	* sys/oss/gstossmixer.c:
	* sys/oss/gstossmixer.h:
	* sys/oss/gstossmixerelement.c:
	* sys/oss/gstossmixerelement.h:
	* sys/oss/gstossmixertrack.c:
	* sys/oss/gstossmixertrack.h:
	* sys/oss/gstosssink.c:
	* sys/oss/gstosssink.h:
	* sys/oss/gstosssrc.c:
	* sys/oss/gstosssrc.h:
	* sys/oss/oss_probe.c:
	* sys/osxaudio/Makefile.am:
	* 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:
	* sys/osxvideo/Makefile.am:
	* sys/osxvideo/cocoawindow.h:
	* sys/osxvideo/cocoawindow.m:
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	  all these plugins are moved to gst-plugins-good

2005-08-28  Flavio Oliveira  <flavio.oliveira@indt.org.br>

	* gst/wavenc/gstwavenc.c: Ported to GStreamer 0.9.
	Need to fix performance issues.

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

