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>

	Reviewd 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.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.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.org>

	* configure.ac:
	Whoops, my fault...fixed build issues

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali.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.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.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@merali.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@merali.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@merali.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@merali.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 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 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@merali.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

