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-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

