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

	* gst-libs/gst/rtsp/gstrtspconnection.c: (add_date_header):
	Cast glong to time_t as time_t might have a different type on
	other platforms, like FreeBSD, and we get a compiler warning
	otherwise. Fixes bug #511825.

2008-02-01  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/playback/gstplaybin2.c: (gst_play_bin_class_init),
	(get_group), (get_n_pads), (gst_play_bin_get_property),
	(pad_added_cb), (no_more_pads_cb), (perform_eos),
	(autoplug_select_cb), (deactivate_group):
	Remove stream-info, we going for something easier.
	Refactor getting the current group.
	Implement getting the number of audio/video/text streams.

	* gst/playback/gststreamselector.c:
	(gst_stream_selector_class_init), (gst_stream_selector_init),
	(gst_stream_selector_get_property),
	(gst_stream_selector_request_new_pad),
	(gst_stream_selector_release_pad):
	* gst/playback/gststreamselector.h:
	Add property for number of pads.

	* tests/examples/seek/seek.c: (set_scale), (update_flag),
	(vis_toggle_cb), (audio_toggle_cb), (video_toggle_cb),
	(text_toggle_cb), (update_streams), (msg_async_done),
	(msg_state_changed), (main):
	Block slider callback when updating the slider position.
	Add gui elements for controlling playbin2.
	Add callback for async_done that updates position/duration.

2008-02-01  Stefan Kost  <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/gst-plugins-base-plugins.hierarchy:
	* docs/plugins/gst-plugins-base-plugins.interfaces:
	* docs/plugins/gst-plugins-base-plugins.prerequisites:
	  First round of plugin docs cleansups.

	* docs/plugins/inspect/plugin-adder.xml:
	* docs/plugins/inspect/plugin-alsa.xml:
	* docs/plugins/inspect/plugin-audioconvert.xml:
	* docs/plugins/inspect/plugin-audiorate.xml:
	* docs/plugins/inspect/plugin-audioresample.xml:
	* docs/plugins/inspect/plugin-audiotestsrc.xml:
	* docs/plugins/inspect/plugin-cdparanoia.xml:
	* docs/plugins/inspect/plugin-decodebin.xml:
	* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
	* docs/plugins/inspect/plugin-gdp.xml:
	* docs/plugins/inspect/plugin-gnomevfs.xml:
	* docs/plugins/inspect/plugin-libvisual.xml:
	* docs/plugins/inspect/plugin-ogg.xml:
	* docs/plugins/inspect/plugin-pango.xml:
	* docs/plugins/inspect/plugin-subparse.xml:
	* docs/plugins/inspect/plugin-tcp.xml:
	* docs/plugins/inspect/plugin-theora.xml:
	* docs/plugins/inspect/plugin-typefindfunctions.xml:
	* docs/plugins/inspect/plugin-video4linux.xml:
	* docs/plugins/inspect/plugin-videorate.xml:
	* docs/plugins/inspect/plugin-videoscale.xml:
	* docs/plugins/inspect/plugin-videotestsrc.xml:
	* docs/plugins/inspect/plugin-volume.xml:
	* docs/plugins/inspect/plugin-vorbis.xml:
	* docs/plugins/inspect/plugin-ximagesink.xml:
	* docs/plugins/inspect/plugin-xvimagesink.xml:
	  Regenerate.

	* ext/ogg/Makefile.am:
	* ext/ogg/gstoggmux.c:
	* ext/ogg/gstoggmux.h:
	  Add header for oggmux. the c-file needs a doc blob still.

2008-02-01  Wim Taymans  <wim.taymans@collabora.co.uk>

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

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	(gst_rtp_buffer_set_extension_data):
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	* tests/check/libs/rtp.c: (GST_START_TEST), (rtp_suite):
	Add gst_rtp_buffer_set_extension_data() 
	Add a unit test for this addition. Fixes #511478.
	API: GstRTPBuffer:gst_rtp_buffer_set_extension_data()

2008-01-30  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Back to CVS

=== release 0.10.17 ===

2008-01-30  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.17, "Peanut Butter and Jelly"

2008-01-30  Jan Schmidt  <jan.schmidt@sun.com>

	* gst-libs/gst/interfaces/mixeroptions.c:
	* gst-libs/gst/interfaces/mixertrack.c:
	Also remove the conditional registration of the signals
	that disappeared with the ABI change in 0.10.14

2008-01-30  Jan Schmidt  <jan.schmidt@sun.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	Revert patch to gstrtspconnection.c for brown paper bag
	release of -base. Re-opens: #511825

2008-01-30  Jan Schmidt  <jan.schmidt@sun.com>

	* gst-libs/gst/interfaces/mixeroptions.h:
	* gst-libs/gst/interfaces/mixertrack.h:
	Change the way these deprecated function pointers are removed
	so that the compiled ABI is unconditionally smaller. This 
	sets in stone an ABI break that actually occurred when the
	things were deprecated in 0.10.14, which seems to be the best
	fix as the only known users are oss-mixer and sunaudio-mixer in 
	gst-plugins-good.
	Fixes: #513018

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

	* win32/common/libgstpbutils.def:
	  Export the two new _get_type() functions which are needed
	  by the python bindings.

2008-01-29  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/rtsp/gstrtspconnection.c: (add_date_header):
	Cast glong to time_t as time_t might have a different type on
	other platforms, like FreeBSD, and we get a compiler warning
	otherwise. Fixes bug #511825.

2008-01-29  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/audio/gstaudiofilter.c:
	(gst_audio_filter_class_init):
	Initialize the GstRingerBuffer class to get it's debug category
	initialized. gst_ring_buffer_parse_caps() uses the ringbuffer debug
	category and otherwise we get some g_critical(). Fixes bug #512334.

2008-01-28  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Back to CVS

=== release 0.10.16 ===

2008-01-28  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.16, "Scheduled Interruption"

2008-01-22  Wim Taymans  <wim.taymans@collabora.co.uk>

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

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	(gst_rtp_buffer_get_extension_data):
	Fix typos and wrong extension check. Fixes #511274.

2008-01-18  Jan Schmidt  <jan.schmidt@sun.com>

	* po/sk.po:
	Oops - add new sk.po mentioned in the LINGUAS I just committed

2008-01-17  Jan Schmidt  <jan.schmidt@sun.com>

	* po/LINGUAS:
	Add ca translation to the disted list.

	* win32/vs6/libgstsdp.dsp:
	Convert line endings to CRLF

2008-01-17  Sebastien Moutte <sebastien@moutte.net>

	* win32/MANIFEST:
	Add win32/vs6/libgstrtsp.dsp to MANIFEST

2008-01-14  Jan Schmidt  <jan.schmidt@sun.com>

	* win32/common/libgstsdp.def:
	* win32/common/libgstvideo.def:
	Add new API declarations

2008-01-14  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/theora/gsttheoradec.h:
	* ext/theora/gsttheoraparse.h:
	* ext/theora/theoradec.c:
	* ext/theora/theoraparse.c:
	Take a 2nd stab at handling libtheora granulepos changes in the decoder
	and parser by inspecting the bitstream version of the incoming data.

2008-01-14  Sebastian Dröge  <slomo@circular-chaos.org>

	* configure.ac:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-audio-uninstalled.pc.in:
	* pkgconfig/gstreamer-audio.pc.in:
	* pkgconfig/gstreamer-cdda-uninstalled.pc.in:
	* pkgconfig/gstreamer-cdda.pc.in:
	* pkgconfig/gstreamer-fft-uninstalled.pc.in:
	* pkgconfig/gstreamer-fft.pc.in:
	* pkgconfig/gstreamer-floatcast-uninstalled.pc.in:
	* pkgconfig/gstreamer-floatcast.pc.in:
	* pkgconfig/gstreamer-interfaces-uninstalled.pc.in:
	* pkgconfig/gstreamer-interfaces.pc.in:
	* pkgconfig/gstreamer-netbuffer-uninstalled.pc.in:
	* pkgconfig/gstreamer-netbuffer.pc.in:
	* pkgconfig/gstreamer-pbutils-uninstalled.pc.in:
	* pkgconfig/gstreamer-pbutils.pc.in:
	* pkgconfig/gstreamer-riff-uninstalled.pc.in:
	* pkgconfig/gstreamer-riff.pc.in:
	* pkgconfig/gstreamer-rtp-uninstalled.pc.in:
	* pkgconfig/gstreamer-rtp.pc.in:
	* pkgconfig/gstreamer-rtsp-uninstalled.pc.in:
	* pkgconfig/gstreamer-rtsp.pc.in:
	* pkgconfig/gstreamer-sdp-uninstalled.pc.in:
	* pkgconfig/gstreamer-sdp.pc.in:
	* pkgconfig/gstreamer-tag-uninstalled.pc.in:
	* pkgconfig/gstreamer-tag.pc.in:
	* pkgconfig/gstreamer-video-uninstalled.pc.in:
	* pkgconfig/gstreamer-video.pc.in:
	Provide one pkg-config file for every gst-plugins-base library.
	This makes linking to those libraries much more intuitive and
	provides standard pkg-config behaviour for them. Fixes bug #499697.

2008-01-13  David Schleef  <ds@schleef.org>

	* gst/videoscale/vs_4tap.c:
	  Fix valgrind error on 4tap scaling method.

2008-01-13  Sebastien Moutte  <sebastien@moutte.net>

	* gst-libs/gst/sdp/gstsdpmessage.c: (is_multicast_address):
	Include Winsock2.h for VS6 and use a different way initialize
	hints structure so it can build with VS6.
	* win32/MANIFEST:
	* win32/vs6/libgstsdp.dsp:
	* win32/common/libgstsdp.def:
	Add new files for libgstsdp.
	* win32/vs6/grammar.dsp:
	Copy pbutils-enumtypes* from win32/common to pbutils sources folder.
	* win32/vs6/gst_plugins_base.dsw:
	* win32/vs6/libgstdecodebin.dsp:
	* win32/vs6/libgstdecodebin2.dsp:
	* win32/vs6/libgstplaybin.dsp:
	* win32/vs6/libgstvolume.dsp:
	Add new dependencies to the link list.

2008-01-13  Julien Moutte  <julien@fluendo.com>

	* win32/common/config.h:
	* win32/common/gstrtsp-enumtypes.c: (gst_rtsp_result_get_type),
	(gst_rtsp_event_get_type), (gst_rtsp_family_get_type),
	(gst_rtsp_state_get_type), (gst_rtsp_version_get_type),
	(gst_rtsp_method_get_type), (gst_rtsp_auth_method_get_type),
	(gst_rtsp_header_field_get_type), (gst_rtsp_status_code_get_type):
	* win32/common/interfaces-enumtypes.c:
	(gst_color_balance_type_get_type), (gst_mixer_type_get_type),
	(gst_mixer_message_type_get_type), (gst_mixer_flags_get_type),
	(gst_mixer_track_flags_get_type),
	(gst_tuner_channel_flags_get_type):
	* win32/common/multichannel-enumtypes.c:
	(gst_audio_channel_position_get_type):
	* win32/common/pbutils-enumtypes.c:
	(gst_install_plugins_return_get_type):
	* win32/common/pbutils-enumtypes.h: Update/Add generated files
	in the win32 build directory.

2008-01-12  Jan Schmidt  <Jan.Schmidt@sun.com>

	* tests/check/Makefile.am:
	Fix CFLAGS to also pull in the gstcheck cflags from AM_CFLAGS.

	* tests/check/elements/audiorate.c: (do_perfect_stream_test):
	* tests/check/elements/playbin.c:
	* tests/check/libs/mixer.c: (test_element_interface_supported),
	(gst_implements_interface_init):
	* tests/check/libs/rtp.c: (GST_START_TEST):
	Fix various assignment type mismatches.

2008-01-12  Jan Schmidt  <Jan.Schmidt@sun.com>

	* configure.ac:
	* gst-libs/gst/rtsp/Makefile.am:
	Add test to see if hstrerror is available or if we need libresolv
	(Solaris) for it, then use it in libgstrtsp.

2008-01-12  Jan Schmidt  <Jan.Schmidt@sun.com>

	* gst-libs/gst/tag/Makefile.am:
	Fix include path order

2008-01-11  Edward Hervey  <edward.hervey@collabora.co.uk>

	* gst-libs/gst/pbutils/install-plugins.c:
	(gst_install_plugins_context_copy),
	(gst_install_plugins_context_get_type):
	* gst-libs/gst/pbutils/install-plugins.h:
	Add GBoxed GType for GstInstallPluginsContext, this eases the wrapping
	for bindings.

2008-01-11  Michael Smith <msmith@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(_theora_granule_frame), (_theora_granule_start_time),
	(theora_dec_sink_convert), (theora_dec_decode_buffer):
	  Adapt for post-alpha meaning of granulepos, when we
	  have a newer version of libtheora.
	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_get_ogg_packet_end_time), (theora_enc_sink_event),
	(theora_enc_is_discontinuous), (theora_enc_chain):
	  Likewise.
	* tests/check/Makefile.am:
	  Link libtheora into theoraenc test so we can check which version of
	  libtheora we're testing against.
	* tests/check/pipelines/theoraenc.c: (check_libtheora),
	(check_buffer_granulepos),
	(check_buffer_granulepos_from_starttime), (GST_START_TEST),
	(theoraenc_suite):
	  Adapt tests to check the values that are now defined for theora; make
	  the tests backwards-adapt the passed values if we're running against an
	  old libtheora.
	  Fixes #497964

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	  (gst_base_audio_sink_class_init):
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	  (gst_base_audio_src_class_init):
	  Ref audio clock class from a thread-safe context to make sure
	  we're not bit by GObjects lack of thread-safety here (#349410),
	   however unlikely that may be in practice.

2008-01-10  Sebastian Dröge  <slomo@circular-chaos.org>

	* autogen.sh:
	  Add -Wno-portability to the automake parameters to stop warnings
	  about GNU make extensions being used. We require GNU make in almost
	  every Makefile anyway.
	  
	* configure.ac:
	  Use AM_PROG_CC_C_O as a compiler that accepts both -c and -o
	  at the same time is required for per target flags.

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

	* gst-libs/gst/tag/gsttagdemux.c: (gst_tag_demux_pull_start_tag):
	  Post an error message if we can't pull as many bytes as we need
	  for the tag. This makes sure the user gets to see a proper error
	  message if a file with a partial ID3 tag is fed to decodebin, and
	  not a 'no ID3 tag demuxer' error, which would be confusing
	  (see #508138).

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

	* gst-libs/gst/pbutils/descriptions.c: (formats):
	  Add description strings for ID3, APE, and ICY tags.

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

	* gst/playback/gstdecodebin.c: (try_to_link_1):
	  Make sure we error out correctly if we can't activate one of
	  the elements we've added.  Fixes #508138.
	  
2008-01-07  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Bastien Nocera <hadess at hadess net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_get_volume),
	  (check_if_volumes_are_the_same), (gst_alsa_mixer_set_volume):
	  Use snd_mixer_selem_set_{playback|capture}_volume_all() if
	  the volume is the same for all channels. This works around
	  some problem in alsa that leaves us with inconsistent state
	  for some reason (#486840).

2008-01-07  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Jerone Young <jerone at gmail com>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_find_master_mixer):
	  If there's no mixer track by the name of 'Master' or 'Front',
	  check if there's one called 'PCM' before trying the generic
	  fallback logic (fixes #506928, where we pick 'Mic' as master
	  track for the AD1984 card in a Thinkpad T61/X61 laptop).

2008-01-07  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/playback/gstplay-enum.c:
	(register_gst_autoplug_select_result),
	(gst_autoplug_select_result_get_type), (register_gst_play_flags),
	(gst_play_flags_get_type):
	* gst/playback/gstplay-enum.h:
	Add enums for configuration flags.

	* gst/playback/gstplaybin2.c: (gst_play_bin_class_init),
	(init_group), (gst_play_bin_init), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (no_more_pads_cb),
	(autoplug_select_cb), (gst_play_bin_change_state):
	Merge mode with flags.
	Add more property getters/setters, defaults and docs.
	Add properties to get number of audio/video/text streams.
	Create sink object in _init so that we can always rely on it being
	there.

	* gst/playback/gstplaysink.c: (gst_play_sink_init),
	(gen_video_chain), (gen_audio_chain), (gen_vis_chain),
	(activate_vis), (gst_play_sink_reconfigure),
	(gst_play_sink_set_flags), (gst_play_sink_get_flags),
	(gst_play_sink_change_state):
	* gst/playback/gstplaysink.h:
	Use flags to configure the sink pipelines.
	Add tee before audio pipeline so that we can use it for visualisations.
	Start working on integrating visualisations.
	Remove mode, we can do everything with the flags now.
	Add method to configue the sink pipeline.

2008-01-06  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/pipelines/theoraenc.c: (check_buffer_is_header),
	  (check_buffer_timestamp), (check_buffer_duration):
	  Turn these functions into macros so we can see right away
	  where the failure occured.

2008-01-05  Julien Moutte  <julien@fluendo.com>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new): Add
	debugging information to understand how X calculates the stride
	for XvImages.

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

	* gst/volume/Makefile.am:
	* gst/volume/gstvolume.c: (volume_choose_func),
	(gst_volume_base_init), (gst_volume_class_init), (gst_volume_init),
	(volume_setup):
	* gst/volume/gstvolume.h:
	Use GstAudioFilter as base class for the volume element instead of
	plain GstBaseTransform.

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

	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audio_filter_get_type):
	Don't set element details for the abstract GstAudioFilter class.

2008-01-02  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/audio/gstaudiofilter.c:
	(gst_audio_filter_class_init), (gst_audio_filter_get_unit_size):
	Implement get_unit_size() vmethod of GstBaseTransform.

2008-01-01  Edward Hervey  <edward.hervey@collabora.co.uk>

	* gst-libs/gst/pbutils/Makefile.am:
	* gst-libs/gst/pbutils/pbutils.h:
	Use glib-enum generator to have a proper enum GType for
	GST_TYPE_INSTALL_PLUGINS_RETURN so we can easily wrap it in bindings.

2007-12-31  David Schleef  <ds@schleef.org>

	* tests/check/Makefile.am:
	* tests/check/pipelines/theoraenc.c:
	  Reenable theoraenc test, which fails on the buildbot but
	  not locally.

2007-12-31  David Schleef  <ds@schleef.org>

	* docs/libs/.cvsignore:
	* docs/plugins/.cvsignore:
	  Add *-undeclared.txt to fix buildbot.

2007-12-31  David Schleef  <ds@schleef.org>

	* tests/check/Makefile.am:
	  Second attempt at disabling theoraenc test long enough to
	  get buildbot to compile -base.

2007-12-31  David Schleef  <ds@schleef.org>

	* tests/check/pipelines/theoraenc.c:
	  Disable theoraenc test long enough to get the buildbot to
	  compile a recent -base.

2007-12-31  Wim Taymans  <wim.taymans@collabora.co.uk>

	* tests/examples/seek/seek.c: (stop_cb):
	Make sure we reset the slider value to 0.0 without racing against a
	possible g_idle that sets it to something else.

2007-12-31  Thijs Vermeir  <thijsvermeir@gmail.com>

	* sys/ximage/ximagesink.c:
	fix typo

2007-12-30  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst-libs/gst/rtsp/gstrtspdefs.c: (rtsp_init_status):
	* gst-libs/gst/rtsp/gstrtspdefs.h:
	Add Location header so that we can start implementing redirects.
	See #506025.

2007-12-29  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/subparse/gstssaparse.c:
	combine if's

2007-12-29  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/subparse/gstssaparse.c:
	remove duplicate log message

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

	* ext/libvisual/visual.c: (gst_visual_chain):
	Fix 'xyz may be used uninitialized' compiler warnings caused
	by broken g_assert_not_reached() macro in GLib-2.15.x and don't
	abort() in any case but properly report the error.

2007-12-28  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/playback/gstplaybin2.c: (gst_play_bin_class_init),
	(gst_play_bin_finalize), (gst_play_bin_set_uri),
	(gst_play_bin_set_suburi), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (pad_removed_cb), (drained_cb),
	(autoplug_select_cb), (activate_group), (deactivate_group),
	(setup_next_source), (save_current_group),
	(gst_play_bin_change_state):
	Code cleanups.
	Remove next-uri, we can use the uri property just fine.
	Fix some crasher.
	Unref uridecodebin when switching.
	Fix going to READY.

	* gst/playback/gstplaysink.c: (gst_play_sink_class_init),
	(gst_play_sink_init), (gst_play_sink_dispose),
	(gst_play_sink_finalize), (gst_play_sink_vis_unblocked),
	(gst_play_sink_vis_blocked), (gst_play_sink_set_video_sink),
	(gst_play_sink_set_audio_sink), (gst_play_sink_set_vis_plugin),
	(gst_play_sink_set_property), (gst_play_sink_get_property),
	(gen_video_chain), (gen_text_element), (gen_audio_chain),
	(gen_vis_element), (gst_play_sink_get_mode),
	(gst_play_sink_set_mode), (gst_play_sink_set_flags),
	(gst_play_sink_get_flags), (gst_play_sink_request_pad),
	(gst_play_sink_release_pad), (gst_play_sink_send_event_to_sink),
	(gst_play_sink_change_state):
	* gst/playback/gstplaysink.h:
	Add some locking to make things threadsafe.

	* gst/playback/test7.c: (about_to_finish_cb):
	Fix test.

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

	* gst/videoscale/gstvideoscale.c: (gst_video_scale_set_property),
	  (gst_video_scale_get_property), (gst_video_scale_transform_caps),
	  (gst_video_scale_transform):
	  Don't claim to be able to handle/transform caps that can't really
	  be handled by the currently selected scaling method (here: RGB or
	  packed YUV with 4-tap method). Also add locking to method property.

	* tests/check/pipelines/simple-launch-lines.c: (setup_pipeline),
	  (test_basetransform_based):
	  Some test pipelines for the above (not entirely valgrind clean yet
	  apparently).

2007-12-21  David Schleef  <ds@schleef.org>

	* gst-libs/gst/video/video.c:
	* gst-libs/gst/video/video.h:
	  Add additional RGBA and RGB-24 video formats.

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

	* tests/check/elements/playbin.c: (test_sink_usage_video_only_stream),
	  (test_suburi_error_unknowntype), (test_suburi_error_invalidfile),
	  (test_suburi_error_wrongproto), (test_missing_primary_decoder):
	* tests/check/libs/cddabasesrc.c: (GST_START_TEST), (GST_START_TEST),
	  (cddabasesrc_suite):
	  Don't use GST_PLUGIN_DEFINE_STATIC, it's not portable and will be
	  deprecated in the future (see #498924).

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

	* gst/playback/gststreamselector.c: (gst_selector_pad_event):
	  Don't leak event.

2007-12-20  Thijs Vermeir <thijsvermeir@gmail.com>

	* gst-libs/gst/riff/riff-read.c:
	Use GST_ROUND_UP_2 macro

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

	* gst/playback/.cvsignore:
	  Ignore more.

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

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init):
	* gst/playback/gstplaybasebin.c: (set_subtitles_visible),
	  (set_active_source):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	  (setup_sinks), (playbin_set_subtitles_visible):
	  Make switching off of subtitles work. To avoid all kind of
	  problems with unlinking of the subtitle input, we just keep
	  the subtitle inputs linked as they are and tell textoverlay
	  not to render them. Fixes #373011.
	  Other subtitle switching issues (esp. when there are both
	  external and in-stream subtitles) remain. They'll be solved
	  in playbin2.

2007-12-18  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/playback/gststreamselector.c: (gst_selector_pad_init):
	Init the pad segment too.

2007-12-18  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst-libs/gst/audio/gstaudiosink.c: (audioringbuffer_thread_func),
	(gst_audioringbuffer_open_device),
	(gst_audioringbuffer_close_device), (gst_audioringbuffer_acquire),
	(gst_audioringbuffer_release), (gst_audioringbuffer_start),
	(gst_audioringbuffer_pause), (gst_audioringbuffer_stop),
	(gst_audio_sink_create_ringbuffer):
	Improve debug output.

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_start),
	(gst_ring_buffer_pause), (gst_ring_buffer_delay):
	Prevent some functions from doing things and failing when the
	ringbuffer is not yet acquired.

2007-12-18  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/interfaces/interfaces.h:
	  Also remove interfaces.h from CVS as it is not needed anymore.

2007-12-18  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/interfaces/Makefile.am:
	  interfaces.h is not used anymore so remove it from the build
	  process.

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

	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/gstvideotestsrc.h:
	  Add a "blink" pattern.  Turn on the pain.  Apologies.  It's useful
	  for testing vertical refresh synchronization.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/video/video.c:
	* gst-libs/gst/video/video.h:
	  Add new GstVideFormat enum and write a bunch of helper functions
	  based around it.

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

	* Makefile.am:
	  Use new common/win32.mak.

2007-12-17  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_create), (gst_base_audio_src_change_state):
	Add debug info.
	When going from PLAYING to PAUSED, pause the ringbuffer before calling
	the parent state change function, just like the audiosink, because the
	parent waits for the element to finish its processing before completing
	the state change. This makes going to PAUSED a lot snappier.
	When going from READY to PAUSED, don't allow the ringbuffer to start
	yet.

2007-12-17  Edward Hervey  <edward.hervey@collabora.co.uk>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	Yet another fix for broken software that produce files with an empty
	blockalign field. Instead of completely failing, make a second attempt
	at guessing the width/depth by looking at strf->size.

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

	* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_do_seek),
	  (gst_cdda_base_src_handle_track_seek), (gst_cdda_base_src_create):
	* gst-libs/gst/pbutils/install-plugins.c:
	  (gst_install_plugins_spawn_child), (gst_install_plugins_supported):
	* gst-libs/gst/pbutils/missing-plugins.c:
	  (gst_missing_plugin_message_get_installer_detail),
	  (gst_missing_encoder_installer_detail_new):
	* gst-libs/gst/rtsp/gstrtspconnection.c: (gst_rtsp_connection_send):
	* gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_unset):
	  Turn a few g_assert_not_reached() into g_return_val_if_reached() to
	  avoid compiler warnings (#503930).

2007-12-17  Edward Hervey  <edward.hervey@collabora.co.uk>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	Be apologetic of software that use the 'jpeg' instead of 'JPEG' FOURCC
	for jpeg video streams.
	Add the 'avc1'/'AVC1' fourcc mapping for h264, same software-comment as
	for the above modification.

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

	* gst-libs/gst/interfaces/xoverlay.c: (gst_x_overlay_expose),
	  (gst_x_overlay_handle_events):
	  More guards (we don't want klass to end up being NULL).

2007-12-14  Sebastian Dröge  <slomo@circular-chaos.org>

	* configure.ac:
	* gst/volume/gstvolume.c: (gst_volume_init):
	  Use new gst_base_transform_set_gap_aware() function as volume
	  correctly handles GST_BUFFER_FLAG_GAP. Require core 0.10.15.1 
	  for this.

2007-12-14  Wim Taymans  <wim.taymans@collabora.co.uk>

	* tests/examples/seek/seek.c: (msg_segment_done), (main):
	Don't go to READY on EOS as this avoids testing of seeking and
	restarting after EOS, use the stop button when you want to READY.
	Don't try to do a flushing seek in segment-done, it does not make
	sense to use this for gapless playback and is not needed.

2007-12-14  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/playback/gstqueue2.c: (gst_queue_init), (gst_queue_finalize),
	(reset_rate_timer), (update_in_rates), (update_out_rates),
	(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
	(gst_queue_chain), (gst_queue_loop):
	Use separate timers for input and output rates.
	Pause measuring the output rate when we block for more data.
	See #503262.

2007-12-14  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/playback/gstqueue2.c: (gst_queue_chain):
	Pause the timer to measure the input rate when we block because the
	queue is filled. See #503262.

2007-12-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Peter Kjellerstedt  <pkj at axis com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	(gst_rtsp_connection_free):
	Close control sockets. Fixes #503440.

2007-12-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/playback/gstdecodebin2.c: (analyze_new_pad), (connect_pad):
	Expose the right pad in the right place with the right element.

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

	* gst-libs/gst/pbutils/descriptions.c: (formats):
	  Add description for 'private' dts caps (who come up with that name?).

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

	* Makefile.am:
	  Add check-exports target and run it with 'make check'.

	* configure.ac:
	  Be stricter about what we export in our libraries: change regexp so that
	  we only export _gst_foo(), but not __gst_foo().

	* gst-libs/gst/cdda/base64.h: (rfc822_binary):
	* gst-libs/gst/cdda/sha1.h: (sha_init), (sha_update), (sha_final):
	  Change internal functions to __gst_foo so they dont' get exported.

	* win32/common/libgstaudio.def:
	  Add missing symbols.

2007-12-11  David Schleef  <ds@schleef.org>

	* ChangeLog: remove conflict markers

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

	* ext/gnomevfs/Makefile.am:
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_unicodify):
	  Use gst_tag_freeform_string_to_utf8() here, which also takes
	  into account any character sets specified by the user via
	  environment variables.

2007-12-10  Wim Taymans  <wim.taymans@gmail.com>

	* gst/audioconvert/Makefile.am:
	Also link to libm.

2007-12-10  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	No need for floating point operations here. avoids having to link
	against the math library too.

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

	* gst-libs/gst/pbutils/descriptions.c: (formats),
	  (format_info_get_desc):
	* tests/check/libs/pbutils.c: (GST_START_TEST), (caps_strings),
	  (GST_START_TEST):
	  Add one or two missing formats.  Generate ADPCM description
	  dynamically depending on layout/format.

2007-12-09  Sebastian Dröge  <slomo@circular-chaos.org>

	* configure.ac:
	  Don't define GST_DISABLE_DEPRECATED for releases. Fixes #498181.

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

	Patch by: Robin Stocker <robin dot stocker at gmx dot ch>

	* gst/subparse/gstsubparse.c: (gst_sub_parse_data_format_autodetect):
	  Some .srt files start with chunk number 0 and not chunk number 1,
	  recognise and accept those as well (fixes #502497).

	* tests/check/elements/subparse.c: (srt_input), (srt_input0),
	  (test_src):
	  Add unit test for the above.

2007-12-06  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstplay-enum.c:
	(register_gst_autoplug_select_result),
	(gst_autoplug_select_result_get_type):
	* gst/playback/gstplay-enum.h:
	Add missing files.

2007-12-05  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/Makefile.am:
	Group decodebin2 and uridecodebin into the same plugin so that they
	can share the GEnumType.

	* gst/playback/gstdecodebin2.c: (_gst_array_accumulator),
	(_gst_select_accumulator), (gst_decode_bin_class_init),
	(gst_decode_bin_init), (gst_decode_bin_autoplug_sort),
	(gst_decode_bin_autoplug_select), (gst_decode_bin_autoplug_add),
	(analyze_new_pad), (connect_pad), (gst_decode_bin_plugin_init):
	Add signal to sort factories instead of the more awkward autoplug-select
	signal.
	Modify autoplug_select so that we can try, skip or expose the
	autopluggin of an element on a pad.

	* gst/playback/gstfactorylists.c: (compare_ranks),
	(decoders_filter), (sinks_filter), (gst_factory_list_is_type),
	(element_filter), (gst_factory_list_get_elements),
	(gst_factory_list_debug), (gst_factory_list_filter):
	* gst/playback/gstfactorylists.h:
	Simplify the API, allow getting elements based on mask.

	* gst/playback/gstplay-marshal.list:
	Add some more marshallers.

	* gst/playback/gstplaybin2.c: (init_group), (gst_play_bin_init),
	(gst_play_bin_finalize), (pad_removed_cb), (autoplug_factories_cb),
	(autoplug_select_cb), (activate_group):
	Add support for managing non-raw sinks by providing a custom element and
	sink list to decodebin2.
	Try to plug non-raw sinks when decodebin2 using autoplug-select of
	decodebin2.

	* gst/playback/gstplaysink.c: (gen_video_chain), (gen_audio_chain),
	(gst_play_sink_set_mode), (gst_play_sink_request_pad):
	* gst/playback/gstplaysink.h:
	Add support for raw and non-raw sinks. 
	Add support to force sinks selected by playbin2.
	Don't plug raw converters for non-raw sinks.

	* gst/playback/gsturidecodebin.c: (_gst_array_accumulator),
	(_gst_select_accumulator), (gst_uri_decode_bin_class_init),
	(proxy_autoplug_select_signal), (gst_uri_decode_bin_plugin_init),
	(plugin_init):
	Use right accumulators.
	Proxy new signal.

2007-12-03  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push):
	Use runnning time as the base time instead of the timestamp.
	Spotted by Saur on IRC.

2007-12-03  Edward Hervey  <bilboed@bilboed.com>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	Add 'WVC1' codec mapping for Windows Media VC-1 video codec.

2007-12-03  Wim Taymans  <wim.taymans@gmail.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_bisect_forward_serialno),
	(gst_ogg_demux_read_chain):
	If we find a new serial number but it does not contain a BOS page, make
	sure we initialize the chain to NULL because else we will try to scan it
	and crash. Fixes #500763

2007-11-30  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/Makefile.am:
	* gst/playback/gstfactorylists.c: (compare_ranks), (print_feature),
	(get_feature_array), (decoders_filter), (sinks_filter),
	(gst_factory_list_get_decoders), (gst_factory_list_get_sinks),
	(gst_factory_list_filter):
	* gst/playback/gstfactorylists.h:
	Refactor some common code to filter factories and check caps compat.

	* gst/playback/gstdecodebin.c:
	* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init),
	(gst_decode_bin_init), (gst_decode_bin_dispose),
	(gst_decode_bin_autoplug_continue),
	(gst_decode_bin_autoplug_factories),
	(gst_decode_bin_autoplug_select), (analyze_new_pad),
	(find_compatibles):
	* gst/playback/gstplaybin.c:
	* gst/playback/gstplaybin2.c: (gst_play_bin_class_init),
	(gst_play_bin_init), (gst_play_bin_finalize),
	(autoplug_factories_cb), (activate_group):
	* gst/playback/gstqueue2.c:
	* gst/playback/gsturidecodebin.c: (proxy_unknown_type_signal),
	(proxy_autoplug_continue_signal),
	(proxy_autoplug_factories_signal), (proxy_autoplug_select_signal),
	(proxy_drained_signal):
	Add some more debug info and use factor filtering code.

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

	* gst/audiotestsrc/gstaudiotestsrc.c:
	* gst/volume/gstvolume.c:
	* gst/volume/gstvolume.h:
	  Add GAP-flag support.

2007-11-24  Julien MOUTTE  <julien@moutte.net>

	* tests/examples/seek/seek.c: (main): Increase the range of the
	rate selector as I would like to test QOS behavior at higher
	forward and reverse playback speed like say 64x.

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

	* gst/audioresample/gstaudioresample.c: (gst_audioresample_init),
	(audioresample_query), (audioresample_query_type),
	(gst_audioresample_set_property):
	Implement latency query.

2007-11-21  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_drain):
	Our EOS time contains the base_time, _wait_eos() expects a running_time
	so we have to subtract the base_time again before calling the function.
	This fixes an EOS regression where the base_time was added twice and EOS
	took longer and longer in certain situations.
	Fixes #498767.

2007-11-21  Wim Taymans  <wim.taymans@gmail.com>

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/audio/gstbaseaudiosink.c: (slave_method_get_type),
	(gst_base_audio_sink_set_provide_clock),
	(gst_base_audio_sink_get_provide_clock),
	(gst_base_audio_sink_set_slave_method),
	(gst_base_audio_sink_get_slave_method),
	(gst_base_audio_sink_set_property),
	(gst_base_audio_sink_get_property), (gst_base_audio_sink_drain),
	(gst_base_audio_sink_none_slaving),
	(gst_base_audio_sink_handle_slaving):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	Expose methods for some object properties so that subclasses can more
	easily configure them.
	Added slave method none, that completely disables slaving to the
	internal clock.
	API: gst_base_audio_sink_set_provide_clock()
	API: gst_base_audio_sink_get_provide_clock()
	API: gst_base_audio_sink_set_slave_method()
	API: gst_base_audio_sink_get_slave_method()

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_set_provide_clock),
	(gst_base_audio_src_get_provide_clock),
	(gst_base_audio_src_set_property),
	(gst_base_audio_src_get_property), (gst_base_audio_src_create):
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	Expose methods for some object properties so that subclasses can more
	easily configure them.
	API: gst_base_audio_src_set_provide_clock()
	API: gst_base_audio_src_get_provide_clock()

2007-11-20  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Joe Peterson <lavajoe at gentoo dot org>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	Fix compilation on FreeBSD (Gentoo). Fixes #498228.

2007-11-19  Sebastian Dröge  <slomo@circular-chaos.org>

	* tests/check/libs/fft.c: (GST_START_TEST):
	Fix scaling to really have dB instead of something else.

2007-11-19  Julien MOUTTE  <julien@moutte.net>

	* tests/examples/seek/seek.c: (main): There's a nice macro to check
	GTK version, use it.

2007-11-19  Julien MOUTTE  <julien@moutte.net>

	* tests/examples/seek/seek.c: (main): Try to support stable version
	of GTK.

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

	* gst/playback/README:
	* gst/playback/test7.c:
	  Fix the build + little README update.

2007-11-16  Wim Taymans  <wim.taymans@gmail.com>

	* tests/examples/seek/seek.c: (make_playerbin2_pipeline), (main):
	Add playbin2 seek pipeline.

2007-11-16  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/Makefile.am:
	* gst/playback/gstplayback.c: (plugin_init):
	* gst/playback/test7.c: (update_scale), (warning_cb), (error_cb),
	(eos_cb), (about_to_finish_cb), (main):
	Add playbin2.
	Added gapless playback example.

	* gst/playback/gstplaybasebin.c:
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_plugin_init):
	* gst/playback/gstqueue2.c:
	* gst/playback/test.c:
	* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init),
	(pad_removed_cb):
	* gst/playback/gststreaminfo.h:
	Change email.

	* gst/playback/gstplaybin2.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (init_group), (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_uri),
	(gst_play_bin_set_suburi), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gst_play_bin_handle_message),
	(pad_added_cb), (pad_removed_cb), (no_more_pads_cb), (perform_eos),
	(drained_cb), (unlink_group), (activate_group),
	(setup_next_source), (gst_play_bin_change_state),
	(gst_play_bin2_plugin_init):
	Added raw first version of playbin2. Does chained oggs and gapless
	playback fine. No support for raw sinks yet. No visualisations or
	subtitles yet.

	* gst/playback/gstplaysink.c: (gst_play_sink_get_type),
	(gst_play_sink_class_init), (gst_play_sink_init),
	(gst_play_sink_dispose), (gst_play_sink_vis_unblocked),
	(gst_play_sink_vis_blocked), (gst_play_sink_set_video_sink),
	(gst_play_sink_set_audio_sink), (gst_play_sink_set_vis_plugin),
	(gst_play_sink_set_property), (gst_play_sink_get_property),
	(post_missing_element_message), (free_chain), (add_chain),
	(activate_chain), (gen_video_chain), (gen_text_element),
	(gen_audio_chain), (gen_vis_element), (gst_play_sink_get_mode),
	(gst_play_sink_set_mode), (gst_play_sink_request_pad),
	(gst_play_sink_release_pad), (gst_play_sink_send_event_to_sink),
	(gst_play_sink_send_event), (gst_play_sink_change_state):
	* gst/playback/gstplaysink.h:
	Added Element that abstracts the sinks and their pipelines for playbin2.

2007-11-16  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gststreamselector.c: (gst_selector_pad_get_type),
	(gst_selector_pad_class_init), (gst_selector_pad_init),
	(gst_selector_pad_finalize), (gst_selector_pad_reset),
	(gst_selector_pad_get_linked_pads), (gst_selector_pad_event),
	(gst_selector_pad_getcaps), (gst_selector_pad_bufferalloc),
	(gst_selector_pad_chain), (gst_stream_selector_get_type),
	(gst_stream_selector_base_init), (gst_stream_selector_class_init),
	(gst_stream_selector_init), (gst_stream_selector_set_property),
	(gst_stream_selector_get_linked_pad),
	(gst_stream_selector_getcaps),
	(gst_stream_selector_is_active_sinkpad),
	(gst_stream_selector_activate_sinkpad),
	(gst_stream_selector_get_linked_pads),
	(gst_stream_selector_request_new_pad),
	(gst_stream_selector_release_pad):
	* gst/playback/gststreamselector.h:
	Improve streamselector, make it select and unselect the current pad more
	intelligently. 
	Subclass GstPad for the sinkpads of the selector.
	Handle segments more correctly.
	Fix caps negotiation.
	Implement release_pad.

2007-11-16  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init),
	(gst_decode_group_check_if_drained), (source_pad_event_probe),
	(remove_fakesink):
	Add drained signal fired when decodebin finishes decoding the data.
	Remove deprecated STATE_DIRTY message.

	* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init),
	(unknown_type_cb), (new_decoded_pad_cb), (pad_removed_cb),
	(analyse_source), (proxy_drained_signal), (make_decoder),
	(source_new_pad), (value_list_append_structure_list),
	(handle_redirect_message), (handle_message):
	Proxy the new drained signal.
	Handle pad removed from decodebin.
	Handle redirect messages by sorting multiple redirections based on the
	connection speed.

2007-11-16  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>

	* gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_unset):
	Fix leaking headers. Fixes #496761.

2007-11-16  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
	(gst_ximagesink_change_state):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get):
	Don't leak the PAR on errors. Fixes #496731.

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

	* gst-libs/gst/tag/gstid3tag.c: (user_tag_matches),
	  (gst_tag_from_id3_user_tag):
	  Add mapping for audio cd discid tags, so we can extract
	  them from tags as well (see #347848). Also compare identifiers
	  in ID3v2 TXXX frames in a case-insensitive way to increase
	  compatibility when reading tags (discid vs. DiscID vs. DiscId).

2007-11-16  Jan Schmidt  <jan.schmidt@sun.com>

	* gst-plugins-base.doap:
	Oops, fix the release name.

2007-11-16  Jan Schmidt  <jan.schmidt@sun.com>

	* gst-plugins-base.doap:
	Add 0.10.15 release

2007-11-16  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Back to CVS

=== release 0.10.15 ===

2007-11-15  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.15, "No need to argue"

2007-11-15  Jan Schmidt  <jan.schmidt@sun.com>

	* win32/vs6/libgstfft.dsp:
	Convert line endings to DOS.

2007-11-15  Sebastien Moutte <sebastien@moutte.net>

	* win32/vs6/gst_plugins_base.dsw:
	* win32/vs6/libgstfft.dsp:
	* win32/MANIFEST:
	Add a project file for fft plugin and remove socket
	based plugin which don't build from the workspace.
	* win32/vs6/libgstaudio.dsp:
	* win32/vs6/libgstrtp.dsp:
	* win32/vs6/libgsttag.dsp:
	Convert line endings back to DOS.
	Fixes #496724

2007-11-14  Jan Schmidt  <jan.schmidt@sun.com>

	* win32/vs6/libgstinterfaces.dsp:
	* win32/vs6/libgstrtsp.dsp:
	Convert line endings back to DOS

2007-11-14  Jan Schmidt  <jan.schmidt@sun.com>

	* gst-libs/gst/fft/kiss_fft_f32.h:
	* gst-libs/gst/fft/kiss_fft_f64.h:
	* gst-libs/gst/fft/kiss_fft_s16.h:
	* gst-libs/gst/fft/kiss_fft_s32.h:
	Don't include malloc.h which doesn't exist on Mac OSX.
	Instead, pull in glib.h and use g_malloc/g_free for 
	consistency. Fixes: #496548

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

	* gst/playback/gstdecodebin2.c:
	  Dont leak ghostpad. Fixes #475451.

2007-11-09  Wim Taymans  <wim.taymans@gmail.com>

	* docs/design/design-decodebin.txt:
	* gst/playback/gstdecodebin2.c: (analyze_new_pad):
	Update some more docs and comments.

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

	Patch by: Sebastien Moutte  <sebastien moutte net>

	* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_ntp_to_unix),
	  (gst_rtcp_unix_to_ntp):
	* gst-libs/gst/rtp/gstrtppayloads.c: (gst_rtp_payload_info_for_name):
	  Fix some C99-isms and and a missing function that some versions of
	  MSVC don't like too much (#494346).

	* win32/vs6/gst_plugins_base.dsw:
	* win32/vs6/libgstaudio.dsp:
	* win32/vs6/libgstrtp.dsp:
	* win32/vs6/libgsttag.dsp:
	  Update vs6 projects files (#494346).

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

	Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* win32/common/libgstaudio.def:
	* win32/common/libgstcdda.def:
	* win32/common/libgstinterfaces.def:
	* win32/common/libgstnetbuffer.def:
	* win32/common/libgstpbutils.def:
	* win32/common/libgstrtp.def:
	* win32/common/libgstrtsp.def:
	* win32/common/libgsttag.def:
	* win32/common/libgstvideo.def:
	  More missing symbols to export (fixes #493986).

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/fft/gstfftf32.c:
	* gst-libs/gst/fft/gstfftf32.h:
	* gst-libs/gst/fft/gstfftf64.c:
	* gst-libs/gst/fft/gstfftf64.h:
	* gst-libs/gst/fft/gstffts16.c:
	* gst-libs/gst/fft/gstffts16.h:
	* gst-libs/gst/fft/gstffts32.c:
	* gst-libs/gst/fft/gstffts32.h:
	* tests/check/libs/fft.c: (GST_START_TEST):
	Remove the magnitude and phase calculation functions as these have
	very special use cases and can't even be used for the spectrum
	element. Also adjust the docs to mention some properties of the used
	FFT implemention, i.e. how the values are scaled. Fixes #492098.

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

	* gst/playback/gstplaybasebin.c: (queue_threshold_reached),
	  (finish_source):
	  Avoid crash when there are external subtitles (fixes #491722).

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

	* ext/alsa/gstalsasink.c: (gst_alsasink_open):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_open):
	  'Could not open resource for writing' is not an acceptable
	  error message when we can't open the audio device (see #492334),
	  even less so when we're trying to open it to record something.

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

	Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* win32/common/libgstrtp.def:
	  Add some more missing symbols (#492813).

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

	Patch by: Thijs Vermeir <thijsvermeir@gmail.com>

	* tests/check/elements/audioconvert.c: (verify_convert):
	  Add check to make sure that the out caps have a channel layout
	  set on them where they should have one.

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

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

	* gst-libs/gst/fft/kiss_fft_s16.h: (KISS_FFT_S16_MALLOC):
	* gst-libs/gst/fft/kiss_fft_s32.h: (KISS_FFT_S32_MALLOC):
	  Include our own _stdint.h instead of sys/types.h, makes MingW happy
	  (#492306).

	* gst-libs/gst/rtsp/gstrtspconnection.c: (gst_rtsp_connection_create):
	  Use _pipe directly, GLib doesn't have a pipe() macro any longer
	  (it disappeared in GLib 2.14.0) (#492306).

	* gst-libs/gst/sdp/Makefile.am:
	* gst-libs/gst/sdp/gstsdpmessage.c:
	  Fix includes and LIBS for win32/Mingw (#492306).

	* tests/examples/dynamic/addstream.c (pause_play_stream):
	  Use more portable g_usleep() instead of sleep() (#492306).

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

	Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format),
	  (gst_ring_buffer_parse_caps):
	  Return NULL instead of an enum that happens to be 0, fixes warning
	  on MSVC (#492114).

	* gst-libs/gst/audio/gstringbuffer.h:
	  No trailing commas in enum list (for gcc-2.9x).

	* gst/videotestsrc/videotestsrc.c: (random_char):
	  Make information loss explicit instead of implicitly truncating to
	  eight bits via the return value.  Fixes runtime error on MSVC when
	  using the debug CRT (#492114).

	* win32/common/config.h.in:
	  Fix a bunch of '#undef FOO bar', which MSVC doesn't like (#492114).

	* win32/common/libgstinterfaces.def:
	* win32/common/libgstrtp.def:
	  Export a few more symbols (#492114).

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

	* gst-libs/gst/audio/audio.c:
	* gst-libs/gst/audio/audio.h:
	  Readd the deprecation guards, but preserve compilability.

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

	* gst/audioconvert/gstaudioconvert.c: (find_suitable_channel_layout),
	  (gst_audio_convert_fixate_channels), (gst_audio_convert_fixate_caps):
	  Preserve channel layout when fixating the number of channels in the
	  output caps, or make sure there's a suitable channel position layout
	  set on the caps if required. Fixes #430677.

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

	* tests/check/elements/decodebin.c: (test_text_plain_streams):
	  Make sure the pipeline really operates in push mode as it should
	  in this case.

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

	* gst-libs/gst/audio/audio.h:
	  Don't guard deprecated enum with #ifndef DISABLE_DEPRECATED, or
	  compilation with DISABLE_DEPRECATED and without REMOVE_DEPRECATED
	  (ie. normal cvs builds) will fail.

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

	* docs/libs/Makefile.am:
	* gst-libs/gst/audio/audio.c:
	* gst-libs/gst/audio/audio.h:
	* gst-libs/gst/interfaces/mixer.c:
	  tell gtk-doc about the deprecation guard. Apply more doc fixes.

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

	* tests/check/libs/audio.c: (init_value_to_channel_layout),
	  (test_channel_layout_value_intersect), (audio_suite):
	  Add simple unit test to make sure GstValue intersection
	  of channel layouts works the way I think it does.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/audio/gstaudiofilter.h:
	* gst-libs/gst/interfaces/mixer.h:
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	* gst-libs/gst/sdp/gstsdpmessage.c:
	  Fix the docs according to what gtk-doc complained about.

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

	* tests/icles/stress-playbin.c:
	  Fix the build.

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

	* gst/playback/gstdecodebin.c: (close_pad_link), (type_found):
	* gst/playback/gstdecodebin2.c: (analyze_new_pad):
	  Post nice/more useful error message if we don't have a decoder for
	  the primary type.

2007-10-30  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstdecodebin2.c: (gst_decode_group_expose):
	Be a bit more useful, unblock the pads after we fired the no-more-pads
	signal so that we can use the signal to inspect and connect all pads
	without having to keep extra state outside of decodebin.

2007-10-30  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gsturidecodebin.c:
	(gst_uri_decode_bin_autoplug_continue),
	(gst_uri_decode_bin_class_init), (no_more_pads_full):
	Implement default signal handler so that we return TRUE when nothing is
	connected.

2007-10-28  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_wavext_add_channel_layout),
	(gst_riff_wave_add_default_channel_layout),
	(gst_riff_wavext_get_default_channel_mask),
	(gst_riff_create_audio_caps):
	Use the ALSA channel layout as default for wav files without channel
	layout information. This fixes playback of chan-id.wav on 5.1 systems
	for example. Also refactor the channel layout setting a bit and add
	more default channel orders. Fixes #489010.

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

	* tests/check/libs/tag.c: (test_musicbrainz_tag_registration):
	  GST_TAG_MUSICBRAINZ_SORTNAME is deprecated and we compile with
	  -DGST_DISABLE_DEPRECATED, so use new GST_TAG_ARTIST_SORTNAME
	  instead.

2007-10-25  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init),
	(gst_decode_bin_dispose), (gst_decode_bin_set_caps),
	(gst_decode_bin_set_subs_encoding),
	(gst_decode_bin_get_subs_encoding), (gst_decode_bin_set_property),
	(gst_decode_bin_get_property), (analyze_new_pad):
	Move subtitle encoding property to decodebin2 so that it can set the
	property value on all elements that it autoplugs and that require it.
	Make caps refcounting more consistent in get/set.

	* gst/playback/gsturidecodebin.c: (_gst_boolean_accumulator),
	(gst_uri_decode_bin_class_init), (gst_uri_decode_bin_init),
	(gst_uri_decode_bin_finalize), (gst_uri_decode_bin_set_property),
	(gst_uri_decode_bin_get_property), (proxy_unknown_type_signal),
	(proxy_autoplug_continue_signal),
	(proxy_autoplug_factories_signal), (proxy_autoplug_select_signal),
	(make_decoder):
	Proxy properties and relevant signals from the internal decodebin.
	Make properties MT safe.

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

	* gst-libs/gst/tag/tag.h: (GST_TAG_MUSICBRAINZ_SORTNAME):
	* gst-libs/gst/tag/tags.c:
	  Deprecate GST_TAG_MUSICBRAINZ_SORTNAME, replaced by the newly-added
	  GST_TAG_ARTIST_SORTNAME (in an API and ABI compatible way).

	* gst-libs/gst/tag/gstid3tag.c: (tag_matches):
	  Map ID3v2 TSOP, TSOA and TSOT frames to new SORTNAME tags (#414539).

	* gst-libs/gst/tag/gstvorbistag.c: (tag_matches),
	  (gst_tag_to_vorbis_comments):
	  Map new SORTNAME tags (these tags aren't even semi-official, so I'm
	  just mapping everything I found in the wild) (#414539).

2007-10-24  Wim Taymans  <wim.taymans@gmail.com>

	Inspired by patch of: René Stadler <mail at renestadler dot de>

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init),
	(gst_decode_bin_autoplug_continue),
	(gst_decode_bin_autoplug_factories),
	(gst_decode_bin_autoplug_select), (analyze_new_pad), (connect_pad),
	(find_compatibles):
	* gst/playback/gstplay-marshal.list:
	Remove the autoplug-sort signal and replace it with a binding friendly
	autoplug-select signal.
	Add an autoplug-factories signal that can be used to generate a list of
	factories to try to autoplug.
	Add the GstPad to the autoplugging signal args as it might be needed to
	make a good factory selection.
	Fix up the marshallers for this. Fixes #407282.

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

	* gst-libs/gst/tag/gsttagdemux.c:
	  Don't abort with an assertion if we receive a seek event with
	  a start type of NONE (see launchpad bug #155878).

2007-10-22  Wim Taymans  <wim.taymans@gmail.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_event_thread),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_xcontext_clear),
	(gst_ximagesink_change_state), (gst_ximagesink_reset):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_event_thread),
	(gst_xvimagesink_xcontext_get), (gst_xvimagesink_xcontext_clear),
	(gst_xvimagesink_change_state), (gst_xvimagesink_reset):
	Make sure that before we clean up the X resources, we shutdown and join
	the event thread.
	Also make sure the event thread does not shut down immediatly after
	startup because the running variable is not yet correctly set.
	Fixes #378770. 

2007-10-16  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstdecodebin.c: (new_pad), (type_found):
	Make the window for a race in typefind and shutting down smaller until
	we figure out the right locking here. Avoids #485753 usually.

	* gst/playback/gstdecodebin2.c: (type_found), (pad_added_group_cb):
	Remove unneeded lock causing a race in typefind and shutting down.
	Fixes #485753.

	* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
	Also remove sinks when going to NULL because we might not complete the
	state change to PAUSED, causing the PAUSED->READY state change not to
	happen.

2007-10-16  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_drain), (gst_base_audio_sink_change_state):
	Also explicitly release the ringbuffer when going to NULL because it
	is required in the setcaps function, before the state change to PAUSED
	completes.

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

	* tests/icles/.cvsignore:
	* tests/icles/Makefile.am:
	* tests/icles/stress-playbin.c:
	  Does what it says on the tin.

2007-10-15  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstqueue2.c: (gst_queue_init), (gst_queue_push_one):
	Fix queue negotiation. See #486758.

2007-10-12  Jan Schmidt  <Jan.Schmidt@sun.com>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate),
	(gst_xvimagesink_xwindow_new),
	(gst_xvimagesink_update_colorbalance),
	(gst_xvimagesink_handle_xevents), (gst_xvimagesink_xcontext_get):

	Fix handling of some of the X atoms. If the last parameter is True,
	XInternAtom won't create the atom if it doesn't exist, and therefore
	might return None. This causes X errors on Xv implementations that
	don't provide the colour balance attributes.

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

	* gst-libs/gst/tag/gstvorbistag.c:
	* tests/check/libs/tag.c:
	  Extract vorbis comment LICENSE tags correctly.

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

	Patch by: Jason Kivlighn  <jkivlighn gmail com>

	* gst-libs/gst/tag/gstid3tag.c:
	* tests/check/libs/tag.c:
	  Map ID3v2 WCOP frame to GST_TAG_COPYRIGHT_URI (#447000).

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

	* gst-libs/gst/tag/gsttagdemux.c:
	  Don't error out when a buggy downstream element doesn't
	  handle the newsegment event we send properly (especially
	  not without posting a meaningful error message on the
	  bus). See bug #471370 and launchpad bug #136264.

2007-10-10  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_drain):
	Use new basesink method to make our EOS drain interruptable.

2007-10-10  Jan Schmidt  <Jan.Schmidt@sun.com>

	* gst-libs/gst/rtp/gstrtppayloads.c:
	Fix silly search-replace oversight.

2007-10-09  Wim Taymans  <wim.taymans@gmail.com>

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

	* gst-libs/gst/rtp/gstbasertppayload.c: (copy_fixed),
	(gst_basertppayload_set_outcaps):
	Fix caps memleak. Fixes #484989.


2007-10-08  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_setcaps), (gst_base_rtp_depayload_chain):
	Fix debug output.

2007-10-08  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_create):
	Also handle the case where there is no clock set on the audio source,
	like in the unit tests.

2007-10-08  Jan Schmidt  <Jan.Schmidt@sun.com>

	* gst-libs/gst/rtp/gstrtppayloads.c:
	Use unsigned G_MAXUINT8 instead of -1 to initialise a guint8
	to avoid compiler warnings

2007-10-08  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstdecodebin.c: (type_found),
	(gst_decode_bin_change_state):
	* gst/playback/gstdecodebin2.c: (type_found),
	(gst_decode_bin_change_state):
	Don't disconnect the have_type signal because we never reconnect it
	later on. Instead keep a variable to see if we already detected a type.

2007-10-08  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstdecodebin.c: (add_fakesink), (type_found):
	* gst/playback/gstdecodebin2.c: (gst_decode_bin_init),
	(type_found):
	Unlink the signal handler when we found the type, we're not going to do
	anything sensible with more type_found signals anyway.

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

	* gst-libs/gst/tag/gsttagdemux.c:
	  Don't leak caps.

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

	* gst-libs/gst/tag/Makefile.am:
	* gst-libs/gst/tag/gsttagdemux.c:
	* gst-libs/gst/tag/gsttagdemux.h:
	  API: add GstTagDemux base class for simple tag demuxers.

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	  Add GstTagDemux to docs.

2007-10-05  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	(gst_rtp_buffer_get_payload_subbuffer):
	Fix bug introduced with last commit which inverted the logic and
	caused all buffers to be dropped. Fixes #483620.
	Thanks to Laurent Glayal <spglegle at yahoo dot fr> for noticing.

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

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	  Replace g_return_if_val (as it could be disabled), with regular return
	  and warning.

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

	* tests/check/pipelines/simple-launch-lines.c:
	  Print message name and not just number.

2007-10-02  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_async_play):
	When slaved to the clock, don't try to align a sample with the previous
	one when going to PLAYING again.

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

	* tests/examples/snapshot/snapshot.c:
	  Fix the build.

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

	* gst-libs/gst/sdp/gstsdpmessage.h:
	Add RFC 3556 bandwidth modifiers.

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

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/rtp/gstrtppayloads.c:
	Update documentation.

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

	* gst-libs/gst/rtp/Makefile.am:
	* gst-libs/gst/rtp/gstrtppayloads.c: (gst_rtp_payload_info_for_pt),
	(gst_rtp_payload_info_for_name):
	* gst-libs/gst/rtp/gstrtppayloads.h:
	Added new file and header to deal with payload info.

	* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data),
	(gst_rtp_buffer_default_clock_rate):
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	Payload specific stuff is move to new headers.
	Implement _default_clock rate using the new payload function.

	* gst-libs/gst/sdp/gstsdpmessage.c: (is_multicast_address),
	(gst_sdp_parse_line):
	* gst-libs/gst/sdp/gstsdpmessage.h:
	Add some more comments.

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

	* gst/typefind/gsttypefindfunctions.c: (utf8_type_find),
	(sdp_check_header), (sdp_type_find), (plugin_init):
	Add typefind function for application/sdp.
	Remove some old dirac typefind code that was ifdeffed out.

2007-09-29  Sebastien Moutte <sebastien@moutte.net>

	* win32/common/libgstaudio.def:
	Add new exported functions.
	* win32/vs6/grammar.dsp:
	Add autogeneration and copy of some autegenerated files from win32/common
	for rtsp library.
	* win32/vs6/libgstaudioconvert.dsp:
	Add gstaudioquantize.c to the build.
	* win32/vs6/libgstinterfaces.dsp:
	Add videoorientation.c to the build.
	* win32/vs6/libgstriff.dsp:
	Add libgsttag to the link libraries list.
	* win32/vs6/libgstvolume.dsp:
	Add liboil to the link.
	* win32/vs6/gst_plugins_base.dsw:
	* win32/vs6/libgstrtsp.dsp:
	* win32/common/libgstrtsp.def:
	Add files to build libgstrtsp library.
	
2007-09-26  Wim Taymans  <wim.taymans@gmail.com>

	* tests/examples/snapshot/snapshot.c: (main):
	Print error when pipeline failed to construct.

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

	* configure.ac:
	* gst-libs/gst/tag/gstid3tag.c:
	* gst-libs/gst/tag/gstvorbistag.c:
	  Add mappings for the new GST_TAG_COMPOSER for vorbis comments
	  and ID3v2 tags.

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

	* gst-libs/gst/floatcast/floatcast.h:
	  Don't include config.h in an installed public header, this
	  might break compilation of applications that don't have such
	  a header and doesn't necessarily do what it's supposed to do
	  anyway (ie. check for the lrint/lrintf defines) (#442065).
	  Add docs for the various macros and document how this header
	  has to be used (link against libm, etc.); add a few FIXMEs;
	  include math.h for non-c99 code path.  Based on patch by
	  Jan Schmidt.
	  
2007-09-25  Sebastian Dröge  <slomo@circular-chaos.org>

	* configure.ac:
	Use AG_GST_ARG_WITH_PLUGINS and AG_GST_ARG_ENABLE_EXTERNAL instead
	of duplicating these macros in configure.ac.

2007-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/hu.po:
	* po/sv.po:
	* po/uk.po:
	  Updated translations to 0.10.14

2007-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	translated by: Jakub Bogusz <qboosh@pld-linux.org>

	* po/pl.po:
	  Added Polish translation.

2007-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	translated by: Ilkka Tuohela <hile@iki.fi>

	* po/fi.po:
	  Added Finnish translation.

2007-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	translated by: Jorge González González <aloriel@gmail.com>

	* po/es.po:
	  Added Spanish translation.

2007-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	translated by: Mogens Jaeger <mogens@jaeger.tf>

	* po/da.po:
	  Added Danish translation.

2007-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	translated by: Funda Wang <fundawang@linux.net.cn>

	* po/zh_CN.po:
	  Added Chinese (simplified) translation.

2007-09-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	translated by: Alexander Shopov <ash@contact.bg>

	* po/bg.po:
	  Added Bulgarian translation.

2007-09-21  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstqueue2.c: (gst_queue_push_one):
	Fix compilation wrt printf arguments.

2007-09-20  Wim Taymans  <wim.taymans@gmail.com>

	* configure.ac:
	* tests/examples/Makefile.am:
	* tests/examples/snapshot/.cvsignore:
	* tests/examples/snapshot/Makefile.am:
	* tests/examples/snapshot/snapshot.c: (main):
	Add simple snapshot example program using appsink.

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

	* tests/check/generic/states.c:
	  Improved state change unit test.

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

	* docs/plugins/.cvsignore:
	* tests/check/.cvsignore:
	  Ignore registries in any format.

2007-09-19  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_set_gst_timestamp):
	Only copy timestamp on outgoing packets if the depayloader did not set
	one.
	Also copy duration on outgoing packets.

2007-09-19  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertppayload.c: (copy_fixed),
	(gst_basertppayload_set_outcaps):
	Fix compilation because of missing %d in printf.
	When fixating caps, fixate what we can and throw away all remaining
	unfixed caps, subclasses should do something smart if they need to.

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

	* ext/gnomevfs/gstgnomevfssrc.c:
	  Improve debug logs a bit and be more verbose if things go wrong.

2007-09-17  Jan Schmidt  <Jan.Schmidt@sun.com>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
	(gst_text_overlay_set_property):
	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_ntp_to_unix),
	(gst_rtcp_unix_to_ntp):
	* gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_get_type):
	* gst/playback/gstqueue2.c:
	* tests/examples/seek/seek.c: (set_scale):
	Fix a bunch of compile warnings shown with Forte.

	* gst/audiorate/gstaudiorate.c:
	Always pull in config.h before including any system headers.

2007-09-17  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstqueue2.c: (update_buffering),
	(gst_queue_locked_flush), (gst_queue_locked_enqueue),
	(gst_queue_handle_sink_event), (gst_queue_chain),
	(gst_queue_push_one), (gst_queue_sink_activate_push),
	(gst_queue_src_activate_push), (gst_queue_src_activate_pull):
	Also fix #476514 for queue2.

2007-09-16  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_init), (gst_base_rtp_depayload_setcaps),
	(gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_handle_sink_event),
	(gst_base_rtp_depayload_push_full),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_change_state):
	Remove code to deal with RTP to GST time conversion, we now just copy
	the GST timestamp we receive to the outgoing buffers.
	Handle segment and flushes correctly.

	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push):
	When we have no valid input timestamp, use the previous rtp timestamp on
	the outgoing RTP packet instead of the RTP base time.

2007-09-15  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsa.c:
	* ext/alsa/gstalsadeviceprobe.c:
	* ext/alsa/gstalsamixer.c:
	* ext/alsa/gstalsasink.c:
	* ext/alsa/gstalsasrc.c:
	  Change alsa alloca's to malloc to fix warnings on gcc-4.2.

2007-09-15  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_set_outcaps), (gst_basertppayload_push):
	Add some debug info when negotiating caps.

2007-09-14  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data):
	A buffer with an empty payload is also a valid buffer.

2007-09-14  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_event),
	(gst_basertppayload_set_outcaps), (gst_basertppayload_push),
	(gst_basertppayload_change_state):
	Make sure we start our RTP timestamp from the random base RTP
	timestamp even if the buffer timestamp starts from some random value.

2007-09-14  Wim Taymans  <wim.taymans@gmail.com>

	* configure.ac:
	* tests/examples/Makefile.am:
	* tests/examples/dynamic/.cvsignore:
	* tests/examples/dynamic/Makefile.am:
	* tests/examples/dynamic/addstream.c: (create_stream),
	(pause_play_stream), (message_received), (eos_message_received),
	(perform_step), (main):
	Add simple exmple app to demonstrate starting and pausing live and
	non-live bins in a PLAYING pipeline.

2007-09-14  Julien MOUTTE  <julien@moutte.net>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init): Add some
	typefind for QCP files (RFC #3625)

2007-09-13  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_init):
	Disable pull mode scheduling, we're not ready for it yet and it subtly
	breaks a lot of things.

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

	* tests/check/elements/libvisual.c:
	  Test all libvisual plugins, not just the first one; this reproduces
	  bug #450336 quite easily.  Looks like a problem with the 'jess'
	  visualisation.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/libvisual.c:
	  Add basic libvisual test case in an attempt to reproduce bug #450336.
	  Doesn't reproduce that bug, but some other crasher instead (invalid
	  free), at least with make elements/libvisual.forever and the bumscope
	  plugin on x86-64/gutsy. Leaving test disabled for now.

2007-09-11  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	(gst_rtsp_connection_read_internal), (gst_rtsp_connection_read),
	(read_body), (gst_rtsp_connection_receive):
	Make sure we can not cancel in the middle of receiving a message.
	Fixes #475731.

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

	Patch by: Josep Torra Valles <josep@fluendo.com>

	* gst/playback/gstplaybasebin.c:
	  Increase upper limit for audio queue a bit; fixes preroll problem
	  with playbin and decodebin2 when playing a quicktime trailer with
	  multichannel audio via http (#464666).

2007-09-10  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_class_init), (gst_base_audio_src_init),
	(gst_base_audio_src_provide_clock),
	(gst_base_audio_src_set_property),
	(gst_base_audio_src_get_property), (gst_base_audio_src_create):
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	Allow othe clocks than the internal clock to be used for the pipeline.
	Add property to disable clock provide.
	API: GstBaseAudioSrc::provide-clock

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

	* gst/playback/gstdecodebin2.c:
	  Don't leak request pads. Fixes #475395.

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

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

	* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
	(gst_ximage_buffer_class_init):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimage_buffer_class_init):
	Correctly chain up finalize with the parent class to prevent
	memory leaks. Fixes #474880.

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

	* gst/volume/gstvolume.c: (volume_choose_func):
	* tests/check/elements/volume.c: (GST_START_TEST):
	Revert the latest change: floating point samples are allowed to
	have any value, not only values in the range [-1,1]. Thanks to Andy
	Wingo for noticing.
	Also fix processing of int32 samples with volumes > 4 by making the
	unity value smaller which prevents overflows.

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

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	* tests/check/libs/rtp.c:
	  Fix gst_rtp_buffer_set_csrc() and enable csrc-related unit test checks.

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

	Based on patch by: Haakon Sporsheim  <haakon.sporsheim at tandberg com>

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	  Fix up GstRTPHeader helper struct so that compilers will not under
	  any circumstances add padding in between our fields, as currently
          happens with MSVC on win32, because that would lead to us sending
	  out RTP payloads with broken RTP headers (#471194).
	  Fix assertion guards for gst_rtp_buffer_get_csrc() and _set_csrc().
	  
	* tests/check/Makefile.am:
	* tests/check/libs/.cvsignore:
	* tests/check/libs/rtp.c:
	  Add some simple unit tests for GstRTPBuffer. Some are disabled
	  because the code tested still needs fixing (set_csrc() does not work).

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

	* win32/MANIFEST:
	* win32/common/gstrtsp-enumtypes.c:
	* win32/common/gstrtsp-enumtypes.h:
	* win32/common/interfaces-enumtypes.c:
	* win32/common/interfaces-enumtypes.h:
	* win32/common/multichannel-enumtypes.c:
	  Add rtsp enumtypes (#474384) and update others.

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

	* configure.ac:
	  Fix configure check for HAVE_LIBXML_HTML.

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

	* tests/check/libs/.cvsignore:
	  Ignore more, in case the build bots work again one day.

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

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

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/fft/Makefile.am:
	* gst-libs/gst/fft/_kiss_fft_guts_f32.h:
	* gst-libs/gst/fft/_kiss_fft_guts_f64.h:
	* gst-libs/gst/fft/_kiss_fft_guts_s16.h:
	* gst-libs/gst/fft/_kiss_fft_guts_s32.h:
	* gst-libs/gst/fft/gstfft.c: (gst_fft_next_fast_length):
	* gst-libs/gst/fft/gstfft.h:
	* gst-libs/gst/fft/gstfftf32.c: (gst_fft_f32_new),
	(gst_fft_f32_fft), (gst_fft_f32_inverse_fft), (gst_fft_f32_free),
	(gst_fft_f32_window), (gst_fft_f32_magnitude), (gst_fft_f32_phase):
	* gst-libs/gst/fft/gstfftf32.h:
	* gst-libs/gst/fft/gstfftf64.c: (gst_fft_f64_new),
	(gst_fft_f64_fft), (gst_fft_f64_inverse_fft), (gst_fft_f64_free),
	(gst_fft_f64_window), (gst_fft_f64_magnitude), (gst_fft_f64_phase):
	* gst-libs/gst/fft/gstfftf64.h:
	* gst-libs/gst/fft/gstffts16.c: (gst_fft_s16_new),
	(gst_fft_s16_fft), (gst_fft_s16_inverse_fft), (gst_fft_s16_free),
	(gst_fft_s16_window), (gst_fft_s16_magnitude), (gst_fft_s16_phase):
	* gst-libs/gst/fft/gstffts16.h:
	* gst-libs/gst/fft/gstffts32.c: (gst_fft_s32_new),
	(gst_fft_s32_fft), (gst_fft_s32_inverse_fft), (gst_fft_s32_free),
	(gst_fft_s32_window), (gst_fft_s32_magnitude), (gst_fft_s32_phase):
	* gst-libs/gst/fft/gstffts32.h:
	* gst-libs/gst/fft/kiss_fft_f32.c: (kf_bfly2), (kf_bfly4),
	(kf_bfly3), (kf_bfly5), (kf_bfly_generic), (kf_work), (kf_factor),
	(kiss_fft_f32_alloc), (kiss_fft_f32_stride), (kiss_fft_f32),
	(kiss_fft_f32_cleanup), (kiss_fft_f32_next_fast_size):
	* gst-libs/gst/fft/kiss_fft_f32.h:
	* gst-libs/gst/fft/kiss_fft_f64.c: (kf_bfly2), (kf_bfly4),
	(kf_bfly3), (kf_bfly5), (kf_bfly_generic), (kf_work), (kf_factor),
	(kiss_fft_f64_alloc), (kiss_fft_f64_stride), (kiss_fft_f64),
	(kiss_fft_f64_cleanup), (kiss_fft_f64_next_fast_size):
	* gst-libs/gst/fft/kiss_fft_f64.h:
	* gst-libs/gst/fft/kiss_fft_s16.c: (kf_bfly2), (kf_bfly4),
	(kf_bfly3), (kf_bfly5), (kf_bfly_generic), (kf_work), (kf_factor),
	(kiss_fft_s16_alloc), (kiss_fft_s16_stride), (kiss_fft_s16),
	(kiss_fft_s16_cleanup), (kiss_fft_s16_next_fast_size):
	* gst-libs/gst/fft/kiss_fft_s16.h:
	* gst-libs/gst/fft/kiss_fft_s32.c: (kf_bfly2), (kf_bfly4),
	(kf_bfly3), (kf_bfly5), (kf_bfly_generic), (kf_work), (kf_factor),
	(kiss_fft_s32_alloc), (kiss_fft_s32_stride), (kiss_fft_s32),
	(kiss_fft_s32_cleanup), (kiss_fft_s32_next_fast_size):
	* gst-libs/gst/fft/kiss_fft_s32.h:
	* gst-libs/gst/fft/kiss_fftr_f32.c: (kiss_fftr_f32_alloc),
	(kiss_fftr_f32), (kiss_fftri_f32):
	* gst-libs/gst/fft/kiss_fftr_f32.h:
	* gst-libs/gst/fft/kiss_fftr_f64.c: (kiss_fftr_f64_alloc),
	(kiss_fftr_f64), (kiss_fftri_f64):
	* gst-libs/gst/fft/kiss_fftr_f64.h:
	* gst-libs/gst/fft/kiss_fftr_s16.c: (kiss_fftr_s16_alloc),
	(kiss_fftr_s16), (kiss_fftri_s16):
	* gst-libs/gst/fft/kiss_fftr_s16.h:
	* gst-libs/gst/fft/kiss_fftr_s32.c: (kiss_fftr_s32_alloc),
	(kiss_fftr_s32), (kiss_fftri_s32):
	* gst-libs/gst/fft/kiss_fftr_s32.h:
	* gst-libs/gst/fft/kiss_version:
	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
	* pkgconfig/gstreamer-plugins-base.pc.in:
	Add libgstfft, a FFT library based on Kiss FFT which is
	BSD licensed. Supported sample formats are int16, int32,
	float and double. For those formats a real FFT and IFFT
	can be done, different windowing functions can be applied
	and functions for extracting the magnitude and phase exist.
	Fixes #468619.

	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	Integrate libgstfft into the docs.

	* tests/check/Makefile.am:
	* tests/check/libs/fft.c: (GST_START_TEST), (fft_suite), (main):
	Add unit tests for libgstfft, currently only testing the FFT.
	Unit tests for IFFT will follow soon.

2007-09-05  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Peter Kjellerstedt  <pkj at axis com>

	* gst-libs/gst/sdp/gstsdpmessage.c: (gst_sdp_time_init),
	(gst_sdp_message_init), (gst_sdp_message_uninit),
	(is_multicast_address), (gst_sdp_message_as_text),
	(gst_sdp_message_get_origin), (gst_sdp_message_set_connection),
	(gst_sdp_message_get_connection), (gst_sdp_message_add_bandwidth),
	(gst_sdp_message_add_time), (gst_sdp_message_add_zone),
	(gst_sdp_message_get_key), (gst_sdp_message_get_attribute_val_n),
	(gst_sdp_message_get_attribute_val), (gst_sdp_message_add_media),
	(gst_sdp_media_init), (gst_sdp_media_uninit),
	(gst_sdp_media_as_text), (gst_sdp_media_set_port_info),
	(gst_sdp_media_connections_len), (gst_sdp_media_add_connection),
	(gst_sdp_media_bandwidths_len), (gst_sdp_media_get_bandwidth),
	(gst_sdp_media_add_bandwidth), (gst_sdp_media_attributes_len),
	(gst_sdp_parse_line), (print_media), (gst_sdp_message_dump):
	* gst-libs/gst/sdp/gstsdpmessage.h:
	Separate INIT_ARRAY() and related macros into two versions, one for
	structures and one for pointers (e.g., INIT_ARRAY() and
	INIT_PTR_ARRAY()). This fixes a segmentation error on freeing the
	lists of emails and phone numbers.
	Add missing const as appropriate.
	Change all gint to guint since they all actually represent unsigned
	values.
	Do not use time as a variable name as it shadows the global time().
	Add gst_sdp_message_as_text() and gst_sdp_media_as_text().
	Actually implement gst_sdp_message_add_time().
	Make gst_sdp_message_add_time() take repeat times as an argument.
	Store repeat times in GstSDPTime as a GArray rather than as gchar**.
	Corrected the definition of gst_sdp_media_get_bandwidth() (was
	misspelled as badwidth).
	gst-indented and a little clean up. Fixes #471067.

2007-09-05  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst/volume/gstvolume.c: (volume_choose_func),
	(volume_process_double), (volume_process_double_clamp),
	(volume_process_float_clamp):
	Correctly clamp float/double samples in the [-1.0,1.0] range to
	prevent weird effects.
	* tests/check/elements/volume.c: (GST_START_TEST), (volume_suite):
	Add unit tests for all samples types that had none before.

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

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	  Need to include stdlib.h for abs() here too.

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

	* gst/playback/gststreaminfo.c:
	  Fix build.

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

	* gst/playback/gststreaminfo.c:
	  Clean up some half-disabled code and comment.

2007-09-04  Wim Taymans  <wim.taymans@gmail.com>

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

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_payload_audio_handle_event):
	Return FALSE from the event handler to let the parent class handle the
	event. Fixes #446766.

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_chain), (gst_base_rtp_depayload_push_full):
	Mark outgoing buffers as DISCONT if the incomming buffer was DISCONT.

	* gst-libs/gst/rtp/gstbasertppayload.c:
	Bump the MTU to 1400.

2007-09-03  Johan Dahlin  <jdahlin@async.com.br>

	* gst/typefind/gsttypefindfunctions.c (plugin_init): 
	Add an audio/x-nsf typefind function for the nsfdec element.

2007-09-03  Renato Filho  <renato.filho@indt.org.br>
	* gst/playback/gstplaybasebin.c:
	Included "myth://" on stream_uris list for enable buffering to mythtv files

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_packet_get_rb),
	(gst_rtcp_packet_sdes_copy_entry), (gst_rtcp_ntp_to_unix),
	(gst_rtcp_unix_to_ntp):
	* gst-libs/gst/rtp/gstrtcpbuffer.h:
	Fix parsing of RB blocks.
	Fix docs.
	Added helper functions to convert to/from UNIX and NTP time.
	API: gst_rtcp_ntp_to_unix()
	API: gst_rtcp_unix_to_ntp()

	* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data),
	(gst_rtp_buffer_get_header_len),
	(gst_rtp_buffer_get_extension_data),
	(gst_rtp_buffer_get_payload_subbuffer),
	(gst_rtp_buffer_get_payload_len), (gst_rtp_buffer_get_payload),
	(gst_rtp_buffer_ext_timestamp):
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	Fix some more docs.
	Implement handling of packets with extensions.
	Fix padding check in _validate().
	Added function to get extension data.
	API: gst_rtp_buffer_get_header_len()
	API: gst_rtp_buffer_get_extension_data()

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_class_init),
	(gst_base_rtp_depayload_set_gst_timestamp):
	Add some more docs for the queue-delay property and fix a typo in a
	comment.

	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push):
	Fix typo.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_skew_slaving), (gst_base_audio_sink_render),
	(gst_base_audio_sink_change_state):
	When skew slaving, try to hover around the middle of a segment so that
	we at most drift by half a segment.
	If we are aligning in the oposite direction of the clock skew, we don't
	have to resync.

2007-08-31  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_setcaps),
	(gst_base_rtp_depayload_set_gst_timestamp):
	Be less silly with the segment start, just apply the clock-base to the
	timestamp.

2007-08-31  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_class_init),
	(gst_base_rtp_depayload_finalize),
	(gst_base_rtp_depayload_setcaps), (gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_handle_sink_event),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_change_state):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	Deprecate the queue handling thread thing and remove the code.
	Use new method to calculate the extended timestamp.

2007-08-31  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	(gst_rtcp_packet_sdes_copy_entry):
	Use g_strndup which does exactly what we want.

	* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_compare_seqnum),
	(gst_rtp_buffer_ext_timestamp):
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	Add helper function to compare seqnums.
	Add helper function to calculate extended timestamps.
	API: gst_rtp_buffer_compare_seqnum()
	API: gst_rtp_buffer_ext_timestamp()

2007-08-30  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	(gst_rtcp_packet_sdes_get_entry),
	(gst_rtcp_packet_sdes_copy_entry):
	* gst-libs/gst/rtp/gstrtcpbuffer.h:
	Fix and document SDES item data function.
	Add new function that makes a proper copy of SDES item data.
	API: gst_rtcp_packet_sdes_copy_entry()

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

	* configure.ac:
	* gst/Makefile.am:
	  The tcp and subparse plugins are under gst, but not totaly free of
	  dependencies. Handle selection inconfigure.ac, so that they show up
	  on the final list of what is build and what is not. Maybe they should
	  better be moved to ext.

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

	Patch by: Daniel Díaz  <yosoy@danieldiaz.org>

	* configure.ac:
	* gst/Makefile.am:
	  Check if libxml provides HTML parser which subparse needs.
	  Fixes #451970.

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

	* ext/alsa/gstalsa.c:
	  Fix typo and compilation on big endian systems.

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

	* gst/subparse/gstssaparse.c:
	  Convert SSA newline codes into actual newline characters (#470766).

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/pbutils/install-plugins.c:
	* gst-libs/gst/pbutils/install-plugins.h:
	* tests/check/libs/pbutils.c:
	  API: also add gst_install_plugins_supported() while we're at it
	  (see #470456).

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/pbutils/missing-plugins.c:
	* gst-libs/gst/pbutils/missing-plugins.h:
	* tests/check/libs/pbutils.c:
	  API: add gst_missing_*_installer_detail_new() convenience API so
	  that applications that know exactly what they're missing can request
	  installer detail strings for those items directly instead of having
	  to first create a dummy missing-plugin message and then get the
	  installer detail string from that.  Fixes #470456.

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

	* gst/playback/gstdecodebin.c: (close_pad_link):
	We need to set up delayed-linking whenever the caps are non-fixed,
	not just when there are multiple types - use gst_pad_is_fixed()
	to test.

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

	* gst-libs/gst/pbutils/missing-plugins.c:
	  (gst_missing_plugin_message_get_installer_detail):
	  Add missing separator in PID fallback case.

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

	* ext/alsa/Makefile.am:
	There is no GST_PLUGINS_BASE_LIBS defined.
	
	* ext/alsa/gstalsa.c:
	* ext/alsa/gstalsasink.c: (gst_alsasink_delay):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_delay):
	Add support for ALSA 24-bit formats.
	snd_pcm_delay can return an error code, especially
	during XRUNS. In that case, the best we can do is assume
	delay = 0.

	* gst/audioconvert/Makefile.am:
	Add flags from -base before any more-remote dependencies.

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

	Based on a patch by: Davyd Madeley <davyd at madeley dot id dot au>

	* gst/volume/gstvolume.c: (volume_choose_func),
	(volume_update_real_volume), (gst_volume_set_volume),
	(gst_volume_init), (volume_process_int32),
	(volume_process_int32_clamp), (volume_process_int24),
	(volume_process_int24_clamp), (volume_process_int16),
	(volume_process_int16_clamp), (volume_process_int8),
	(volume_process_int8_clamp), (volume_update_volume), (plugin_init):
	* gst/volume/gstvolume.h:
	Add support for int32, int24 and int8 to the volume element.
	Fixes #445529.

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

	* tests/examples/Makefile.am:
	  Fix even more.

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

	* configure.ac:
	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* ext/gnomevfs/gstgnomevfssrc.c:
	* ext/gnomevfs/gstgnomevfssrc.h:
	* gst-libs/gst/Makefile.am:
	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
	* pkgconfig/gstreamer-plugins-base.pc.in:
	* sys/v4l/v4lsrc_calls.c:
	* tests/examples/Makefile.am:
	* win32/common/config.h:
	  Revert unwanted commit. many thanks to moap. I want a fix for 
	  https://thomas.apestaart.org/moap/trac/ticket/239

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

	* gst/volume/gstvolume.c:
	  Move passthrough below gst_object_sync_values(). Fixes #442654.

2007-08-22  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/audio/audio.c:
	Clarify the docs a little.

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

	* gst/volume/gstvolume.c:
	  Enable liboil for float and add more details about problems with
	  int16.

2007-08-21  Wim Taymans  <wim.taymans@gmail.com>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps):
	Fix RGB24 masks as spotted by _ke (Daniel G. Siegel) on IRC.

2007-08-21  Wim Taymans  <wim.taymans@gmail.com>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_push_forward):
	When calculating the first timestamp of the buffers, don't go below 0
	and clip the samples because the offset was on the eos page.
	Fixes #466717.

2007-08-21  Wim Taymans  <wim.taymans@gmail.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_read_chain),
	(gst_ogg_demux_collect_chain_info):
	Also submit the eos page when trying to find the first timestamp.
	See #466717.

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

	* gst-libs/gst/audio/audio.h:
	Use gst_util_uint64_scale() instead of doing the math
	with double for GST_FRAMES_TO_CLOCK_TIME() and
	GST_CLOCK_TIME_TO_FRAMES(). For large timestamps this
	prevents rounding errors. Fixes #467667.

2007-08-17  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	(gst_rtsp_connection_connect), (gst_rtsp_connection_write),
	(gst_rtsp_connection_read), (gst_rtsp_connection_poll):
	* gst-libs/gst/rtsp/gstrtspconnection.h:
	Small cleanups.
	On shutdown, don't read the control socket yet.
	Set timeout value correctly in all cases.
	Add function to check if the server accepts reads or writes.
	API: gst_rtsp_connection_poll()

	* gst-libs/gst/rtsp/gstrtspdefs.h:
	Fix compilation with -pedantic.
	Add enum for _poll.

2007-08-16  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Olivier Crete  <tester at tester ca>

	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_init),
	(gst_basertppayload_getcaps):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	Add getcaps vfunc to basertppayload. See #465146.

2007-08-16  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstplaybasebin.c: (queue_threshold_reached):
	Only post buffering messages when we are a stream.

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

	* gst-libs/gst/pbutils/install-plugins.c:
	* gst-libs/gst/pbutils/missing-plugins.c:
	  Small docs fix and addition.

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

	* tests/icles/.cvsignore:
	* tests/icles/Makefile.am:
	* tests/icles/test-textoverlay.c:
	  Add a dumb little test for textoverlay alignments.

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

	Patch by: Dan Williams  <dcbw redhat com>

	* ext/pango/gsttextoverlay.c:
	* ext/pango/gsttextoverlay.h:
	  API: add "line-alignment" property (#459334). Add gtk-doc blurb for
	  "silent" property so there's a Since tag in the API reference.

2007-08-12  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_set_outcaps):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	Improve caps negotiation so that downstream elements can confiure
	certain RTP properties by fixing them on the caps. See #465146.
	Add docs.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	  Mark as deprecated some macros which were presumably meant to be
	  private API and accidentally exposed in the public header file.
	  Also actually _init() lock (only works at the moment because the
	  struct is zeroed out when created and the initial values in the
	  mutex struct are zeroes too). (#459585)

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

	* docs/libs/Makefile.am:
	  Remove cruft and do some cleanups.

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	  Prepare for comming gtkdoc features (rebase against online docs).

2007-08-10  Michael Smith <msmith@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain):
	  Debug output fixes.
	* tests/check/elements/audiorate.c: (do_perfect_stream_test),
	(GST_START_TEST):
	  Change the number of buffers used; 500 is too many and leads to
	  timeouts.

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

	* gst/playback/gstqueue2.c:
	* gst/videorate/gstvideorate.c:
	  Printf format fixes (#465028).

2007-08-09  Michael Smith <msmith@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain):
	  If we have a large (> 1 second) discontinuity, push a series of
	  smaller buffers rather than a single very large buffer. Avoids
	  unreasonably large single buffer allocations when encountering a
	  large gap.
	* tests/check/elements/audiorate.c: (GST_START_TEST),
	(audiorate_suite):
	  Add a test for this.

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

	* gst/playback/gstplaybasebin.c: (group_commit),
	(queue_remove_probe), (queue_threshold_reached):

	Patch by: Josep Torra Valles <josep@fluendo.com>
	Fixes: #465015
	Make sure we remove the check_queues buffer probe from the 
	correct queue to avoid racily going back to "buffering 99%" when
	buffering is actually complete.

	Also, fix the spelling of Josep's surname in the ChangeLog.

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

	* ext/ogg/gstoggmux.c:
	  Do not leak oggmux instance.
	
	* ext/vorbis/vorbisenc.c:
	  Also log values.

2007-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/hu.po:
	* po/it.po:
	* po/nl.po:
	* po/uk.po:
	* po/vi.po:
	  Updated translations.

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

	patch by: Yang Hong <hongyang@redflag-linux.com>

	* ext/pango/gsttextoverlay.c:
	* ext/pango/gsttextoverlay.h:
	  Add 'silent' property to GstTimeOverlay. Fixes #462979

2007-08-08  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Josep Torra Valles <josep@fluendo.com>

	* docs/plugins/gst-plugins-base-plugins.args:
	* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init),
	(gst_uri_decode_bin_init), (gst_uri_decode_bin_set_property),
	(gst_uri_decode_bin_get_property), (gen_source_element):
	Add connection-speed property. Fixes #464690.

2007-08-07  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Damien Lespiau <damien dot lespiau at gmail dot com>

	* configure.ac:
	* gst-libs/gst/rtsp/Makefile.am:
	* gst-libs/gst/rtsp/gstrtspconnection.c:
	(gst_rtsp_connection_connect):
	Fix compilation on windows. Fixes #464320.

2007-08-07  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Josep Torra Valles <josep@fluendo.com>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_init), (queue_threshold_reached),
	(gen_source_element), (setup_substreams),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
	(gst_play_base_bin_get_streaminfo_value_array):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_set_property), (gst_play_bin_get_property),
	(gst_play_bin_handle_redirect_message):
	Move connection-speed property from playbin to playbasebin so that we
	can also configure it in source elements that have the connection-speed
	property. Fixes #464028.
	Add some debug info here and there.

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

	* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audio_test_src_query):
	Properly respond to conversion queries. Fixes #464079.

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

	* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audio_test_src_init),
	(gst_audio_test_src_src_fixate), (gst_audio_test_src_setcaps),
	(gst_audio_test_src_init_sine_table),
	(gst_audio_test_src_change_wave), (gst_audio_test_src_create):
	* gst/audiotestsrc/gstaudiotestsrc.h:
	Add float/double and int32 support to audiotestsrc. Fixes #460422.
	Also set the default volume to the default value specified in the
	GParamSpec.

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

	Patch by: Jens Granseuer <jensgr at gmx dot net>

	* gst/audioconvert/gstaudioquantize.c:
	Fix C89 incompatibilities and spelling of explanations. Fixes #463215.

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

	* gst-libs/gst/rtsp/gstrtsptransport.c: (gst_rtsp_transport_parse):
	Add rdt manager for rdt transport.
	Fix parsing of RDT transport.

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

	* configure.ac:
	Back to CVS

=== release 0.10.14 ===

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

	* configure.ac:
	  releasing 0.10.14, "Light Years Ahead"

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

	* tests/check/libs/audio.c: (GST_START_TEST):
	Fix the test to reflect the behaviour of gst_audio_clip_buffer.

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

	* gst-libs/gst/audio/audio.c:
	When clipping a buffer with no timestamp, assume it is
	within the segment without warnings.

	Fixes: #460978

2007-07-27  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtsp/gstrtspextension.c: (gst_rtsp_extension_send):
	Fire the signal on the object, not the interface.

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

	* gst-libs/gst/rtsp/.cvsignore:
	Ber. Don't include the full path, idiot.

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

	* gst-libs/gst/rtsp/.cvsignore:
	Ignore generated files.

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

	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/interfaces/interfaces-marshal.list:
	* gst-libs/gst/interfaces/rtspextension.c:
	* gst-libs/gst/interfaces/rtspextension.h:
	* gst-libs/gst/rtsp/Makefile.am:
	* gst-libs/gst/rtsp/gstrtsp.h:
	* gst-libs/gst/rtsp/gstrtspextension.c:
	(gst_rtsp_extension_get_type), (gst_rtsp_extension_iface_init),
	(gst_rtsp_extension_detect_server),
	(gst_rtsp_extension_before_send), (gst_rtsp_extension_after_send),
	(gst_rtsp_extension_parse_sdp), (gst_rtsp_extension_setup_media),
	(gst_rtsp_extension_configure_stream),
	(gst_rtsp_extension_get_transports),
	(gst_rtsp_extension_stream_select), (gst_rtsp_extension_send):
	* gst-libs/gst/rtsp/gstrtspextension.h:
	* gst-libs/gst/rtsp/rtsp-marshal.list:
	Move the rtspextension.h interface into gstrtspextension.h
	as part of libgstrtsp instead of libgstinterfaces, because it's
	only for use within plugins, not applications. 
	Add stuff to do the enum & marshal generation needed in libgstrtsp now.
	Use the GST_TYPE_RTSP_RESULT enum type for the return value of the 
	signal that the GstRTSPExtension interface emits, since G_TYPE_ENUM
	is abstract.

2007-07-26  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/interfaces/interfaces-marshal.list:
	* gst-libs/gst/interfaces/rtspextension.c:
	(gst_rtsp_extension_iface_init),
	(gst_rtsp_extension_stream_select), (gst_rtsp_extension_send):
	* gst-libs/gst/interfaces/rtspextension.h:
	Fix marshaller for the send signal.
	Add URL to stream selection interface method.

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

	* gst-libs/gst/riff/Makefile.am:
	Pull in our dependencies from -base before those from outside.

2007-07-26  Wim Taymans  <wim.taymans@gmail.com>

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/rtsp/gstrtspbase64.c: (gst_rtsp_base64_decode_ip):
	* gst-libs/gst/rtsp/gstrtspbase64.h:
	API: gst_rtsp_base64_decode_ip()
	Added function to decode Base64 in-place.

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

	* tests/check/libs/.cvsignore:
	Ignore the mixer test binary.

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

	* ext/vorbis/vorbisdec.c: (vorbis_dec_push_forward):
	Gratuitous comment change to trigger a rebuild on the buildbots.

2007-07-25  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/sdp/gstsdpmessage.c: (gst_sdp_media_get_media),
	(gst_sdp_media_get_port), (gst_sdp_media_get_num_ports),
	(gst_sdp_media_get_proto), (gst_sdp_media_formats_len),
	(gst_sdp_media_get_format), (gst_sdp_media_get_information),
	(gst_sdp_media_connections_len), (gst_sdp_media_get_connection),
	(gst_sdp_media_bandwidths_len), (gst_sdp_media_get_badwidth),
	(gst_sdp_media_get_key), (gst_sdp_media_attributes_len),
	(gst_sdp_media_get_attribute), (gst_sdp_media_get_attribute_val_n),
	(gst_sdp_media_get_attribute_val):
	* gst-libs/gst/sdp/gstsdpmessage.h:
	Constify args where we can.

2007-07-25  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/interfaces/rtspextension.c:
	(gst_rtsp_extension_get_type), (gst_rtsp_extension_iface_init),
	(gst_rtsp_extension_detect_server),
	(gst_rtsp_extension_before_send), (gst_rtsp_extension_after_send),
	(gst_rtsp_extension_parse_sdp), (gst_rtsp_extension_setup_media),
	(gst_rtsp_extension_configure_stream),
	(gst_rtsp_extension_get_transports),
	(gst_rtsp_extension_stream_select), (gst_rtsp_extension_send):
	* gst-libs/gst/interfaces/rtspextension.h:
	Move interface for RTSP extensions from -good to here.
	Added helper methods to invoke interface methods.

2007-07-25  Wim Taymans  <wim.taymans@gmail.com>

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/rtsp/gstrtspdefs.h:
	* gst-libs/gst/rtsp/gstrtspmessage.c: (key_value_foreach),
	(gst_rtsp_message_get_type), (gst_rtsp_message_parse_request),
	(gst_rtsp_message_init_response),
	(gst_rtsp_message_parse_response), (gst_rtsp_message_new_data),
	(gst_rtsp_message_parse_data), (gst_rtsp_message_add_header),
	(gst_rtsp_message_remove_header), (gst_rtsp_message_get_header),
	(gst_rtsp_message_append_headers), (gst_rtsp_message_set_body),
	(gst_rtsp_message_get_body), (dump_key_value):
	* gst-libs/gst/rtsp/gstrtspmessage.h:
	* gst-libs/gst/rtsp/gstrtsprange.c: (parse_npt_time),
	(parse_npt_range), (parse_clock_range), (parse_smpte_range),
	(gst_rtsp_range_parse):
	* gst-libs/gst/rtsp/gstrtsprange.h:
	* gst-libs/gst/rtsp/gstrtsptransport.c:
	* gst-libs/gst/rtsp/gstrtspurl.c:
	Fix some more RTSP docs.
	Add some missing methods for dealing with messages.

2007-07-24  Wim Taymans  <wim.taymans@gmail.com>

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/rtsp/gstrtspbase64.c: (gst_rtsp_base64_encode):
	* gst-libs/gst/rtsp/gstrtspbase64.h:
	* gst-libs/gst/rtsp/gstrtspconnection.c:
	(gst_rtsp_connection_connect), (add_auth_header),
	(gst_rtsp_connection_write), (gst_rtsp_connection_send),
	(read_body), (gst_rtsp_connection_receive),
	(gst_rtsp_connection_next_timeout),
	(gst_rtsp_connection_reset_timeout),
	(gst_rtsp_connection_set_auth):
	* gst-libs/gst/rtsp/gstrtspconnection.h:
	* gst-libs/gst/rtsp/gstrtspdefs.c: (rtsp_init_status):
	* gst-libs/gst/rtsp/gstrtspdefs.h:
	* gst-libs/gst/rtsp/gstrtspmessage.h:
	* gst-libs/gst/rtsp/gstrtsprange.c: (parse_npt_time),
	(parse_npt_range), (parse_clock_range), (parse_smpte_range),
	(gst_rtsp_range_parse):
	* gst-libs/gst/rtsp/gstrtspurl.h:
	Added beginnings of RTSP documentation.

2007-07-24  Wim Taymans  <wim.taymans@gmail.com>

	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/sdp/gstsdp.h:
	* gst-libs/gst/sdp/gstsdpmessage.c: (gst_sdp_message_set_origin),
	(gst_sdp_message_set_connection), (gst_sdp_message_add_bandwidth),
	(gst_sdp_message_add_time), (gst_sdp_message_add_zone),
	(gst_sdp_message_set_key), (gst_sdp_message_get_attribute_val_n),
	(gst_sdp_message_get_attribute_val),
	(gst_sdp_message_add_attribute), (gst_sdp_media_new),
	(gst_sdp_media_init), (gst_sdp_media_uninit), (gst_sdp_media_free),
	(gst_sdp_media_get_media), (gst_sdp_media_set_media),
	(gst_sdp_media_get_port), (gst_sdp_media_get_num_ports),
	(gst_sdp_media_set_port_info), (gst_sdp_media_get_proto),
	(gst_sdp_media_set_proto), (gst_sdp_media_formats_len),
	(gst_sdp_media_get_format), (gst_sdp_media_add_format),
	(gst_sdp_media_get_information), (gst_sdp_media_set_information),
	(gst_sdp_media_connections_len), (gst_sdp_media_get_connection),
	(gst_sdp_media_add_connection), (gst_sdp_media_bandwidths_len),
	(gst_sdp_media_get_badwidth), (gst_sdp_media_add_bandwidth),
	(gst_sdp_media_set_key), (gst_sdp_media_get_key),
	(gst_sdp_media_attributes_len), (gst_sdp_media_add_attribute),
	(gst_sdp_media_get_attribute_val_n),
	(gst_sdp_media_get_attribute_val), (gst_sdp_message_parse_buffer),
	(print_media), (gst_sdp_message_dump):
	* gst-libs/gst/sdp/gstsdpmessage.h:
	Document the SDP library.
	Add some of the missing SDPMedia methods.

2007-07-24  Wim Taymans  <wim.taymans@gmail.com>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/rtsp/Makefile.am:
	* gst-libs/gst/rtsp/gstrtspbase64.c: (gst_rtsp_base64_encode):
	* gst-libs/gst/rtsp/gstrtspbase64.h:
	* gst-libs/gst/rtsp/gstrtspconnection.c: (inet_aton),
	(gst_rtsp_connection_create), (gst_rtsp_connection_connect),
	(add_auth_header), (add_date_header), (gst_rtsp_connection_write),
	(gst_rtsp_connection_send), (read_line), (read_string), (read_key),
	(parse_response_status), (parse_request_line), (parse_line),
	(gst_rtsp_connection_read), (read_body),
	(gst_rtsp_connection_receive), (gst_rtsp_connection_close),
	(gst_rtsp_connection_free), (gst_rtsp_connection_next_timeout),
	(gst_rtsp_connection_reset_timeout), (gst_rtsp_connection_flush),
	(gst_rtsp_connection_set_auth):
	* gst-libs/gst/rtsp/gstrtspconnection.h:
	* gst-libs/gst/rtsp/gstrtspdefs.c: (rtsp_init_status),
	(gst_rtsp_strresult), (gst_rtsp_method_as_text),
	(gst_rtsp_version_as_text), (gst_rtsp_header_as_text),
	(gst_rtsp_status_as_text), (gst_rtsp_find_header_field),
	(gst_rtsp_find_method):
	* gst-libs/gst/rtsp/gstrtspdefs.h:
	* gst-libs/gst/rtsp/gstrtspmessage.c: (key_value_foreach),
	(gst_rtsp_message_new), (gst_rtsp_message_init),
	(gst_rtsp_message_new_request), (gst_rtsp_message_init_request),
	(gst_rtsp_message_new_response), (gst_rtsp_message_init_response),
	(gst_rtsp_message_init_data), (gst_rtsp_message_unset),
	(gst_rtsp_message_free), (gst_rtsp_message_add_header),
	(gst_rtsp_message_remove_header), (gst_rtsp_message_get_header),
	(gst_rtsp_message_append_headers), (gst_rtsp_message_set_body),
	(gst_rtsp_message_take_body), (gst_rtsp_message_get_body),
	(gst_rtsp_message_steal_body), (dump_mem), (dump_key_value),
	(gst_rtsp_message_dump):
	* gst-libs/gst/rtsp/gstrtspmessage.h:
	* gst-libs/gst/rtsp/gstrtsprange.c: (parse_npt_time),
	(parse_npt_range), (parse_clock_range), (parse_smpte_range),
	(gst_rtsp_range_parse), (gst_rtsp_range_free):
	* gst-libs/gst/rtsp/gstrtsprange.h:
	* gst-libs/gst/rtsp/gstrtsptransport.c: (gst_rtsp_transport_new),
	(gst_rtsp_transport_init), (gst_rtsp_transport_get_mime),
	(gst_rtsp_transport_get_manager), (parse_mode), (parse_range),
	(range_as_text), (rtsp_transport_mode_as_text),
	(rtsp_transport_profile_as_text), (rtsp_transport_ltrans_as_text),
	(gst_rtsp_transport_parse), (gst_rtsp_transport_as_text),
	(gst_rtsp_transport_free):
	* gst-libs/gst/rtsp/gstrtsptransport.h:
	* gst-libs/gst/rtsp/gstrtspurl.c: (gst_rtsp_url_parse),
	(gst_rtsp_url_free), (gst_rtsp_url_set_port),
	(gst_rtsp_url_get_port), (gst_rtsp_url_get_request_uri):
	* gst-libs/gst/rtsp/gstrtspurl.h:
	* gst-libs/gst/sdp/Makefile.am:
	* gst-libs/gst/sdp/gstsdp.h:
	* gst-libs/gst/sdp/gstsdpmessage.c: (gst_sdp_origin_init),
	(gst_sdp_connection_init), (gst_sdp_bandwidth_init),
	(gst_sdp_time_init), (gst_sdp_zone_init), (gst_sdp_key_init),
	(gst_sdp_attribute_init), (gst_sdp_message_new),
	(gst_sdp_message_init), (gst_sdp_message_uninit),
	(gst_sdp_message_free), (gst_sdp_media_new), (gst_sdp_media_init),
	(gst_sdp_media_uninit), (gst_sdp_media_free),
	(gst_sdp_message_set_origin), (gst_sdp_message_get_origin),
	(gst_sdp_message_set_connection), (gst_sdp_message_get_connection),
	(gst_sdp_message_add_bandwidth), (gst_sdp_message_add_time),
	(gst_sdp_message_add_zone), (gst_sdp_message_set_key),
	(gst_sdp_message_get_key), (gst_sdp_message_get_attribute_val_n),
	(gst_sdp_message_get_attribute_val),
	(gst_sdp_message_add_attribute), (gst_sdp_message_add_media),
	(gst_sdp_media_add_attribute), (gst_sdp_media_add_bandwidth),
	(gst_sdp_media_add_format), (gst_sdp_media_get_attribute),
	(gst_sdp_media_get_attribute_val_n),
	(gst_sdp_media_get_attribute_val), (gst_sdp_media_get_format),
	(read_string), (read_string_del), (gst_sdp_parse_line),
	(gst_sdp_message_parse_buffer), (print_media),
	(gst_sdp_message_dump):
	* gst-libs/gst/sdp/gstsdpmessage.h:
	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
	Move SDP and RTSP from helper objects in -good to a reusable library.
	Use a proper gst_ namespace.

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

	* ext/vorbis/vorbisdec.c: (vorbis_dec_push_forward),
	(vorbis_dec_flush_decode):
	Use the new buffer clipping function from gstaudio here.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/audio/audio.c: (gst_audio_buffer_clip):
	* gst-libs/gst/audio/audio.h:
	* tests/check/libs/audio.c: (GST_START_TEST), (audio_suite):
	API: Add buffer clipping function for raw audio buffers. Fixes #456656.
	Also add deprecation guards for gst_audio_structure_set_int() to the
	header.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	  Cleanup the docs.

2007-07-23  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Dan Williams <dcbw at redhat dot com>

	* gst/playback/gstplaybasebin.c:
	(gst_play_base_bin_get_streaminfo_value_array):
	Don't return NULL when querying the stream info value array but instead
	return an empty array. Fixes #459204.

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

	* gst/playback/gsturidecodebin.c:
	  Init debug category before using it.

2007-07-21  Jan Schmidt  <thaytan@noraisin.net>

	* gst-libs/gst/interfaces/mixer.h:
	Add padding vars in place of the signal pointers
	when building with DISABLE_DEPRECATED so that the
	interface structure doesn't change size.

2007-07-20  Jan Schmidt  <thaytan@noraisin.net>

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* ext/alsa/gstalsamixer.c:
	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixerelement.c:
	* ext/alsa/gstalsamixertrack.c:
	* gst-libs/gst/interfaces/mixer.c:
	* gst-libs/gst/interfaces/mixer.h:
	* gst-libs/gst/interfaces/mixeroptions.c:
	* gst-libs/gst/interfaces/mixeroptions.h:
	* gst-libs/gst/interfaces/mixertrack.c:
	* gst-libs/gst/interfaces/mixertrack.h:
	* tests/check/Makefile.am:
	* tests/check/libs/mixer.c:

	Patch By: Marc-Andre Lureau <marcandre.lureau@gmail.com>
	Fixes: #152864 

	Add support for notifying mixer changes on the message bus, and
	implement it in alsamixer.

	API: gst_mixer_get_mixer_flags
	API: gst_mixer_message_parse_mute_toggled
	API: gst_mixer_message_parse_record_toggled
	API: gst_mixer_message_parse_volume_changed
	API: gst_mixer_message_parse_option_changed
	API: GstMixerMessageType
	API: GstMixerFlags

2007-07-20  Michael Smith <msmith@fluendo.com>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_get_xv_support), (gst_xvimagesink_setcaps):
	  xcontext->im_format is only for testing XShm support (as the header
	  file comments document). Use xvimage->im_format for everything else.
	  Avoids spurious warnings on buffer allocation before setcaps.

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

	* tests/examples/volume/Makefile.am:
	* tests/icles/Makefile.am:
	  We should use $(LIBM).

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

	* tests/icles/Makefile.am:
	  This needs -lm.

2007-07-16  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_set_property),
	(gst_basertppayload_get_property):
	Don't break ABI, restore previous ranges. Keep the default random
	selection of timestamp and seqnum offset but as soon as the app sets a
	specific value, use that one.

2007-07-14  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Bastien Nocera <hadess at hadess dot net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h:
	Add option to turn off double-buffering for debugging purposes.
	Fixes #437169.

2007-07-14  Wim Taymans  <wim.taymans@gmail.com>

	Patch by: Jorn Baayen <jorn at openedhand dot com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents),
	(gst_ximagesink_set_property), (gst_ximagesink_get_property),
	(gst_ximagesink_init), (gst_ximagesink_class_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h:
	add 'handle-expose' property. Useful for video widgets which may want to
	be in control of Expose behaviour. Fixes #380625

2007-07-14  Wim Taymans  <wim.taymans@gmail.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_event), (gst_basertppayload_push),
	(gst_basertppayload_set_property),
	(gst_basertppayload_get_property),
	(gst_basertppayload_change_state):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	Fix ranges of rtp payloader properties so that the full range can be
	used in addition to -1 (random).
	Fix wrong seqnum reporting in caps.
	Fixes #420326.

2007-07-13  Wim Taymans  <wim.taymans@gmail.com>

	* gst/videorate/gstvideorate.c: (gst_video_rate_init),
	(gst_video_rate_query):
	Use boilerplate.
	Add latency query, might not be perfect yet but already works a lot
	better. Fixes #442557.

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

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_setcaps):
	* sys/xvimage/xvimagesink.h:
	After a caps change, redraw our borders to avoid garbage left there
	when the image format changes to a smaller size, like 16:9 -> 4:3
	Also, hold the flow_lock a bit longer in the set_caps while we're
	fiddling with the xcontext.

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

	* Makefile.am:
	* configure.ac:
	* tests/Makefile.am:
	Remove bogus check for libcheck, since we check for
	gstreamer-check and it pulls in the required info from there, and we
	weren't actually _using_ the information for libcheck ourselves
	anyway.

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

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pixfmt):
	Fix the r_mask test for RGBA32 on little-endian.
	Fix a stupid typo that would have obviously broken 
	compilation on big-endian, if anyone was testing.

2007-07-12  Wim Taymans  <wim.taymans@gmail.com>

	* gst/videotestsrc/videotestsrc.c: (paint_hline_AYUV),
	(paint_hline_str4):
	* gst/videotestsrc/videotestsrc.h:
	Add alpha to the color struct.
	Use a default alpha value of 255 instead of 128.

2007-07-12  Wim Taymans  <wim.taymans@gmail.com>

	* gst/playback/gstplaybasebin.c: (no_more_pads_full),
	(setup_source):
	Clear the dynamic pads counter when starting a new uri. This makes
	reusing playbin work again.
	Fixes #454264.

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

	* configure.ac:
	  Use pkg-config to locate check.

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

	* configure.ac:
	* tests/check/elements/volume.c: (GST_START_TEST):
	  Fix 'make check' build against core CVS.

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

	* gst-libs/gst/interfaces/propertyprobe.c:
	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	* gst-libs/gst/tag/gstvorbistag.c:
	  Make gtk-doc happy.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_callback):
	  Quick hack to make audiosinks stop at EOS when operating in
	  pull-mode; needs to be fixed properly some day.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	  Fix location of includes in the docs.

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

	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c: (img_convert),
	(img_get_alpha_info):
	Add 2 new pixel formats - ABGR32 and ARGB32, which are reflections
	of the existing BGRA32 and RGBA32 formats with the alpha at the other
	end of the word. Partially fixes #451908

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

	* docs/libs/Makefile.am:
	* docs/plugins/Makefile.am:
	  Simplify --extra-dir as gtkdoc scans recursively.

2007-07-03  Wim Taymans  <wim.taymans@gmail.com>

	* gst/adder/gstadder.c: (gst_adder_sink_getcaps),
	(gst_adder_request_new_pad):
	Make getcaps more robust by not using the proxycaps function. This makes
	sure that we don't end up recursively calling getcaps upstream.
	See #316248.

2007-06-29  Wim Taymans  <wim.taymans@gmail.com>

	* gst/audioconvert/audioconvert.c:
	Include math.h to fix compilation.

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

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt):
	Add a mapping for YUV format "IYU1", which is a 4:1:1 packed pixel
	format, as produced by some dc1394 cameras like the iSight.
	See http://www.fourcc.org/yuv.php#IYU1

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

	* gst/audioconvert/Makefile.am:
	* gst/audioconvert/audioconvert.c: (audio_convert_get_func_index),
	(check_default), (audio_convert_prepare_context),
	(audio_convert_clean_context), (audio_convert_convert):
	* gst/audioconvert/audioconvert.h:
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_dithering_get_type),
	(gst_audio_convert_ns_get_type), (gst_audio_convert_class_init),
	(gst_audio_convert_init), (gst_audio_convert_set_caps),
	(gst_audio_convert_set_property), (gst_audio_convert_get_property):
	* gst/audioconvert/gstaudioconvert.h:
	* gst/audioconvert/gstaudioquantize.c:
	(gst_audio_quantize_setup_noise_shaping),
	(gst_audio_quantize_free_noise_shaping),
	(gst_audio_quantize_setup_dither),
	(gst_audio_quantize_free_dither),
	(gst_audio_quantize_setup_quantize_func),
	(gst_audio_quantize_setup), (gst_audio_quantize_free):
	* gst/audioconvert/gstaudioquantize.h:
	Implement dithering and noise shaping in audioconvert. By default now
	TPDF dithering (and no noise shaping) will be used when converting
	from a higher bit depth to 20 bit depth or smaller, otherwise
	everything will be as it is now.
	For the last audioconvert in a pipeline it would make sense to
	use some kind of noise shaping, enabling it by default for all
	conversions would give undesired results though. Fixes #360246.
	* tests/check/elements/audioconvert.c: (setup_audioconvert),
	(GST_START_TEST):
	Adjust unit test for the new audioconvert.

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

	* gst/playback/gstqueue2.c: (apply_segment), (update_buffering):
	Use other metrics as well when estimating the buffer level.

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

	* gst/playback/gstplaybasebin.c: (make_decoder), (setup_source):
	Small debug improvement.

	* gst/playback/gstqueue2.c: (apply_segment), (update_buffering),
	(plugin_init):
	Tweak the rate estimation period.
	When calculating the buffer filledness in rate estimation mode, don't
	mix it with other metrics.

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

	* gst/playback/gstdecodebin2.c: (gst_decode_group_new),
	(gst_decode_group_expose), (gst_decode_group_free), (add_fakesink):
	When creating the groups, allow for a 5 second, unlimited buffers
	preroll phase after which we expose the group.
	When the group is exposed, use a small number of buffers up to a 2
	second limit. Also disconnect the overrun signal from multiqueue when we
	exposed the group because it is not needed anymore.

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

	* gst-libs/gst/tag/tags.c: (gst_tag_freeform_string_to_utf8):
	  Don't pass trailing zeroes in fixed-size string arrays in ID3v1 tags
	  to utf8-validate; fixes recognition of ID3v1 tags in UTF-8 encoding
	  (#451707); also, output some debugging info when dealing with
	  freeform strings.

	* tests/check/libs/tag.c: (GST_START_TEST), (tag_suite):
	  Add unit test for the above.

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

	* gst-libs/gst/pbutils/descriptions.c: (caps_are_rtp_caps):
	  Add description for Windows Media RTP caps.

	* gst-libs/gst/pbutils/missing-plugins.c: (copy_and_clean_caps):
	  Remove RTP fields that don't define the format from caps.

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

	* ext/vorbis/vorbisdec.c: (vorbis_dec_decode_buffer):
	  Skip empty buffers, but not empty header buffers. That way the original
	  vorbisdec unit test still passes (#451145); also, take into account
	  that those empty packets might carry a granulepos.

	* tests/check/Makefile.am:
	* tests/check/elements/vorbisdec.c:
	(_create_codebook_header_buffer), (_create_audio_buffer),
	(GST_START_TEST), (vorbisdec_suite):
	  Add unit test that sends an empty packet.

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

	* ext/vorbis/vorbisdec.c: (vorbis_dec_decode_buffer):
	Don't error out on 0-sized packets, just emit a warning because this is
	not a fatal error. Fixes #451145.

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

	* docs/plugins/gst-plugins-base-plugins.args:
	* docs/plugins/gst-plugins-base-plugins.signals:
	* docs/plugins/inspect/plugin-adder.xml:
	* docs/plugins/inspect/plugin-alsa.xml:
	* docs/plugins/inspect/plugin-audioconvert.xml:
	* docs/plugins/inspect/plugin-audiorate.xml:
	* docs/plugins/inspect/plugin-audioresample.xml:
	* docs/plugins/inspect/plugin-audiotestsrc.xml:
	* docs/plugins/inspect/plugin-cdparanoia.xml:
	* docs/plugins/inspect/plugin-decodebin.xml:
	* docs/plugins/inspect/plugin-decodebin2.xml:
	* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
	* docs/plugins/inspect/plugin-gdp.xml:
	* docs/plugins/inspect/plugin-gnomevfs.xml:
	* docs/plugins/inspect/plugin-libvisual.xml:
	* docs/plugins/inspect/plugin-ogg.xml:
	* docs/plugins/inspect/plugin-pango.xml:
	* docs/plugins/inspect/plugin-playbin.xml:
	* docs/plugins/inspect/plugin-subparse.xml:
	* docs/plugins/inspect/plugin-tcp.xml:
	* docs/plugins/inspect/plugin-theora.xml:
	* docs/plugins/inspect/plugin-typefindfunctions.xml:
	* docs/plugins/inspect/plugin-video4linux.xml:
	* docs/plugins/inspect/plugin-videorate.xml:
	* docs/plugins/inspect/plugin-videoscale.xml:
	* docs/plugins/inspect/plugin-videotestsrc.xml:
	* docs/plugins/inspect/plugin-volume.xml:
	* docs/plugins/inspect/plugin-vorbis.xml:
	* docs/plugins/inspect/plugin-ximagesink.xml:
	* docs/plugins/inspect/plugin-xvimagesink.xml:
	  Update docs with caps info.

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

	* po/POTFILES.in:
	  Add more files with translatable strings (#450875).

2007-06-23  Edward Hervey  <edward@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_find_chains):
	The chain should be freed if we error out here, else it will leak.
	* gst/playback/gstdecodebin.c: (disconnect_unlinked_signals),
	(cleanup_decodebin):
	Don't forget to *properly* remove the signals, else it will leak.

2007-06-22  Jan Schmidt  <thaytan@noraisin.net>

	* MAINTAINERS:
	Updating all the maintainers files

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

	* tests/examples/seek/seek.c: (update_scale), (play_cb), (stop_cb),
	(main):
	  Destroy and recreate parse-launch based pipeline after stop to be able
	  to play again. Reorder some code and add more comments.

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

	* gst/playback/gstdecodebin2.c: (analyze_new_pad):
	When handling a delayed-caps notification case, mark
	the group as dynamic so that the nbdynamic count is
	incremented and decremented correctly. Fixes: #449156
	Patch by: Wim Taymans <wim@fluendo.com>

2007-06-19  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c
	(gst_base_audio_sink_init): Enable pull-mode operation.

2007-06-19  Michael Smith <msmith@fluendo.com>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  Change minimum rate back to 1000 to allow low-sample-rate wav files
	  to play back.

2007-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/vi.po:
	  Update translations.

2007-06-15  David Schleef  <ds@schleef.org>

	* gst/playback/gstqueue2.c:
	  Fix compile error from ignored return value.

2007-06-15  Michael Smith <msmith@fluendo.com>

	* gst/videoscale/vs_4tap.c: (vs_image_scale_4tap_Y):
	  Update tmpbuf for all neccesary rows, not just one, as is required
	  when downscaling.
	  Fixes #402076.

2007-06-15  Michael Smith <msmith@fluendo.com>

	* tests/check/pipelines/oggmux.c: (validate_ogg_page), (is_video),
	(eos_buffer_probe):
	  Add a test that ensures we set DELTA_UNIT on all non-header,
	  non-video buffers, if we have a video stream.
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_process_best_pad):
	  Move setting delta_pad to earlier, where we inspect all pads, so
	  that leading audio pages don't get DELTA_UNIT unset if they come
	  before the first DELTA_UNIT from video pages. Fixes the newly-added
	  test. Fixes #385527.

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

	* tests/check/pipelines/streamheader.c: (streamheader_suite):
	  Disable test_multifdsink_gdp_vorbisenc() on ppc64 since it
	  fails on the p5-ppc64 build bot and the failure looks like it is due
	  to the same issue as #348114, ie. a compiler bug.

2007-06-13  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstqueue2.c: (gst_queue_create_read):
	Fix build on MacOSX.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_read_chain):
	Fix compilation on mingw. Fixes #446972.

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

	Patches by: Thiago Sousa Santos <thiagossantos at gmail dot com>

	* gst/playback/gstqueue2.c: (update_buffering),
	(gst_queue_locked_enqueue):
	Fix a division by zero when the max percent is <= 0. Fixes #446572.
	also update the buffering status when receiving events. Fixes #446551.

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

	Based on patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>

	* gst/playback/gstqueue2.c: (gst_queue_peer_query),
	(gst_queue_handle_src_query):
	Wait for preroll before attempting to forward a duration query upstream.
	Fixes #445505.

2007-06-07  Sebastien Moutte  <sebastien@moutte.net>

	* gst-libs/gst/rtp/gstbasertpdepayload.c: 
	(gst_base_rtp_depayload_set_gst_timestamp):
	Use G_GINT64_CONSTANT macro for int64 constant.
	* win32/common/libgstinterfaces.def:
	* win32/common/libgsttag.def:
	Add new exported functions.

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

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers):
	  The BOS page of the first Dirac video stream needs to come before
	  the BOS page of any Vorbis streams or other audio streams, just like
	  it is with Theora.

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

	* gst/playback/gstqueue2.c: (gst_queue_get_range):
	Fix compilation.

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

	Patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>

	* gst/playback/gstqueue2.c: (gst_queue_init),
	(gst_queue_handle_sink_event), (gst_queue_chain),
	(gst_queue_get_range), (gst_queue_src_checkgetrange_function),
	(gst_queue_sink_activate_push), (gst_queue_src_activate_push),
	(gst_queue_src_activate_pull):
	Add pull based scheduling and fix some deadlocks. Fixes #444523.
	Does not yet completely work because duration queries upstream won't
	block yet.

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

	* configure.ac:
	* gst/playback/gstqueue2.c: (gst_queue_create_read):
	Some more fseeko checks.

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

	* configure.ac:
	check for large file support.

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

	Based on a patch by Sven Arvidsson <sa at whiz dot se>:

	* gst/subparse/gstsubparse.c: (parse_subrip),
	(subviewer_unescape_newlines), (parse_subviewer),
	(gst_sub_parse_data_format_autodetect),
	(gst_sub_parse_format_autodetect), (gst_subparse_type_find):
	* gst/subparse/gstsubparse.h:
	Add support for SubViewer version 1 and 2 subtitles. Fixes #394061.
	* tests/check/elements/subparse.c: (GST_START_TEST),
	(subparse_suite):
	Add a unit test for both SubViewer formats.

2007-06-01  Michael Smith <msmith@fluendo.com>

	* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audio_test_src_do_seek):
	  Don't overflow intermediate values when seeking to large time values
	  in audiotestsrc.

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

	* gst/playback/gstqueue2.c: (gst_queue_have_data),
	(gst_queue_create_read), (gst_queue_read_item_from_file),
	(gst_queue_open_temp_location_file), (gst_queue_locked_enqueue):
	Include stdio to define fseeko.

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

	Patch by: Edward Hervey  <edward@fluendo.com>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_init), (gst_v4lsrc_fixate),
	(gst_v4lsrc_query):
	Make v4lsrc output segments in GST_FORMAT_TIME. Fixes #442553.

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

	* gst-libs/gst/riff/Makefile.am:
	* gst-libs/gst/riff/riff-read.c: (gst_riff_parse_info):
	  Use gst_tag_utf8_from_freeform_string() from libgsttag instead of
	  our own implementation.

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_setcaps),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_change_state):
	Handle timestamp wraparound.

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

	* gst/playback/gsturidecodebin.c: (no_more_pads_full),
	(new_decoded_pad), (remove_pads), (make_decoder), (setup_source),
	(gst_uri_decode_bin_change_state):
	Make sure we name srcpads uniquely even when using different internal
	decodebins.
	Signal no-more-pads when no more dynamic elements exist.
	Remove pads on cleanup.

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

	Based on patch by: Thiago Sousa Santos <thiagossantos at gmail dot com>

	* gst/playback/gstqueue2.c: (gst_queue_class_init),
	(gst_queue_init), (gst_queue_finalize),
	(gst_queue_write_buffer_to_file), (gst_queue_have_data),
	(gst_queue_create_read), (gst_queue_read_item_from_file),
	(gst_queue_open_temp_location_file),
	(gst_queue_close_temp_location_file), (gst_queue_locked_flush),
	(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
	(gst_queue_is_empty), (gst_queue_is_filled),
	(gst_queue_change_state), (gst_queue_set_temp_location),
	(gst_queue_set_property):
	Add support for filebased buffering. Fixes #441264.

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

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_factory_filter),
	(analyze_new_pad), (connect_pad), (expose_pad), (caps_notify_cb),
	(caps_notify_group_cb), (gst_decode_group_new),
	(gst_decode_group_free):
	Add support for delayed caps fixation when autoplugging.
	Optimize cases where a multiqueue is not needed/wanted, like right after
	anything that is not a demuxer.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_parse_skeleton_fisbone),
	(gst_ogg_pad_submit_packet), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_collect_chain_info):
	consideratly speedup ogg chain detection by not trying to find a base
	timestamp for skeleton streams. 

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

	* gst/tcp/gstmultifdsink.c: (gst_client_status_get_type),
	(gst_multi_fd_sink_class_init), (gst_multi_fd_sink_add_full),
	(gst_multi_fd_sink_remove_flush),
	(gst_multi_fd_sink_remove_client_link),
	(gst_multi_fd_sink_handle_client_write),
	(gst_multi_fd_sink_handle_clients):
	* gst/tcp/gstmultifdsink.h:
	Add support for remove_flush.

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

	* docs/design/draft-keyframe-force.txt:
	* ext/theora/theoraenc.c: (theora_enc_sink_event),
	(theora_enc_chain):
	Add draft design for forcing keyframes in encoders and implement in
	theoraenc.

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

	* configure.ac:
	  Back to CVS

=== release 0.10.13 ===

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

	* configure.ac:
	  releasing 0.10.13, "What's Going on?"

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	In riff, the depth is stored in the size field but it just means that
	the least significant bits are cleared. We can therefore just play
	the sample as if it had a depth == width. Fixes: #440997

	Patch by: Wim Taymans <wim@fluendo.com> 
	Patch by: Sebastian Dröge  <slomo@circular-chaos.org>

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

	* gst-libs/gst/floatcast/floatcast.h:
	Define inline when needed on win32 builds. Fixes: #441295
	Patch by: Sebastien Moutte  <sebastien@moutte.net>

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

	* gst/playback/gstplaybasebin.c: (queue_overrun),
	(no_more_pads_full):
	Stop buffering when the group is commited because the queues filled up.
	Fixes #442024.

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

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_ensure_track_list),
	(gst_alsa_mixer_free), (gst_alsa_mixer_update),
	(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
	(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record),
	(gst_alsa_mixer_set_option), (gst_alsa_mixer_get_option):
	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixerelement.c:
	(gst_alsa_mixer_element_interface_supported),
	(gst_alsa_mixer_element_finalize), (gst_alsa_mixer_element_init),
	(gst_alsa_mixer_element_set_property),
	(gst_alsa_mixer_element_get_property),
	(gst_alsa_mixer_element_change_state):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_update):
	* gst-libs/gst/interfaces/mixer.c: (gst_mixer_volume_changed),
	(gst_mixer_option_changed):
	* gst-libs/gst/interfaces/mixer.h:
	Revert commits towards #152864 made so far. We'll pick it up again
	after the 0.10.13 release.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	After an interrupt (PAUSED/flush) assume that the next sample should not
	be aligned to the previous sample. Fixes #417992.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  Don't add channels and rate fields to the template caps for
	  audio/x-dts, as wavparse might not always be able to set them,
	  which would then lead to 'caps are not a real subset of the
	  template caps' warnings.

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

	* gst/playback/gstplaybasebin.c: (new_decoded_pad_full):
	Handle unknown or invalid pads without crashing, as might occur if
	a media file like an mp3 is specified as a subtitle file.
	Fixes: #410039

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

	* gst/playback/gstplaybin.c: (add_sink), (dummy_blocked_cb),
	(setup_sinks):
	Block the subtitle bin output queue before ghosting it and linking,
	then unblock after. This avoids spurious not-linked errors caused 
	by the queue starting up (because it gets linked when it is ghosted). 
	Fixes: #350299

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

	* tests/check/elements/playbin.c: (test_suburi_error_unknowntype):
	Use /dev/zero instead of /dev/urandom to produce an invalid subtitle
	file. Avoids flukes where the input gets typefound to some valid but
	useless type.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/gnomevfssink.c: (setup_gnomevfssink),
	(cleanup_gnomevfssink), (GST_START_TEST), (gnomevfssink_suite):
	  Add unit test for gnomevfssink seeking and position reporting for
	  file:// URIs.

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

	Patch by: Mark Nauwelaerts <manauw at skynet be>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_init),
	(gst_gnome_vfs_sink_open_file), (gst_gnome_vfs_sink_handle_event),
	(gst_gnome_vfs_sink_query), (gst_gnome_vfs_sink_render):
	* ext/gnomevfs/gstgnomevfssink.h:
	  Fix position reporting, especially after a seek (from upstream),
	  see #412648.

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

	* ext/cdparanoia/gstcdparanoiasrc.c:
	  Repair umlaut.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	Specify the full valid range for MP3 samplerates. Fixes a regression
	caused by extra header checks since the last release.

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

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
	Fix a locking-order bug I introduced with my changes the other day.
	Patch by Mike Smith.

2007-05-21  Michael Smith <msmith@fluendo.com>

	* ext/theora/theoradec.c: (theora_handle_data_packet):
	  Don't look inside 0-length packets (which indicate duplicated
	  frames)

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

	* ext/cdparanoia/gstcdparanoiasrc.c:
	(gst_cd_paranoia_src_read_sector):
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_create):
	Small cleanups.

	* ext/theora/theoradec.c: (theora_dec_sink_event):
	Fix typo.

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_set_gst_timestamp):
	Add some FIXME

	* gst/playback/gstdecodebin.c: (queue_underrun_cb):
	And some debug info when a FIXME path is hit.

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

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_audio_payload_class_init),
	(gst_base_rtp_audio_payload_init),
	(gst_base_rtp_audio_payload_finalize),
	(gst_base_rtp_audio_payload_handle_frame_based_buffer),
	(gst_base_rtp_audio_payload_handle_sample_based_buffer),
	(gst_base_rtp_payload_audio_handle_event):
	Some cleanups, remove minptime property as it is now in the parent
	class.
	Override parent class event function.

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_event), (gst_basertppayload_set_property),
	(gst_basertppayload_get_property):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	Add min-ptime property.
	Add handle-event vmethod. Fixes #415001.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c
	  (gst_base_audio_sink_change_state):
	  Fix typo in comment.

	* gst/playback/gstdecodebin.c (gst_decode_bin_class_init,
	  free_dynamics, pad_probe, close_pad_link, try_to_link_1,
	  get_our_ghost_pad, remove_element_chain, queue_underrun_cb,
	  close_link):
	* gst/playback/gstplaybin.c (gst_play_bin_set_property,
	  gen_audio_element, remove_sinks, gst_play_bin_send_event_to_sink):
	  Remove trailing whitespaces in comments.

	* gst/volume/Makefile.am:
	  Fix tabs.

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

	patch by: Marc-Andre Lureau <marcandre.lureau@gmail.com>

	* gst-libs/gst/interfaces/mixer.h (mixer_type, option_changed,
	  set_option, get_option, _gst_reserved):
	  Revert reordering functions (keep ABI).

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

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put),
	(gst_ximagesink_xwindow_new), (gst_ximagesink_handle_xevents),
	(gst_ximagesink_show_frame):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_xwindow_new), (gst_xvimagesink_handle_xevents),
	(gst_xvimagesink_show_frame):
	When we create our own window, indicate that we handle the 
	WM_DELETE client message from the window manager, so that it won't 
	kill our window (and our app) along with it. Handle ClientMessage,
	post an error on the bus, and close the window. Further buffers
	arriving will result in a FlowError because the window has been
	destroyed.

	Fixes: #393975

	Clean up the X event handling loop and make them the same for
	both xvimagesink and ximagesink while I'm at it.

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

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_factory_filter):
	Make decodebin2 autoplug depayloaders too.

	* gst/playback/gsturidecodebin.c: (source_new_pad):
	Set the newly created decoder in a usable state when autoplugging a
	dynamic source such as RTSP.

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

	* gst/playback/gststreaminfo.c: (cb_probe):
	  Ignore video-codec tag for audio streams and ignore audio-codec tags
	  for video streams. Should make codec name collection a bit more
	  robust against sloppy demuxers that send tag events containing both
	  tags down each pad.

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

	* gst/playback/gstqueue2.c: (update_rates):
	Tweak the buffering thresholds a little.
	Update the buffer size with the previously calculate rate instead of
	only when we calculate a new rate so that we get smoother buffering
	updates.

	* gst/playback/Makefile.am:
	* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_base_init),
	(gst_uri_decode_bin_class_init), (gst_uri_decode_bin_init),
	(gst_uri_decode_bin_finalize), (gst_uri_decode_bin_set_property),
	(gst_uri_decode_bin_get_property), (unknown_type),
	(add_element_stream), (no_more_pads_full), (no_more_pads),
	(source_no_more_pads), (new_decoded_pad), (array_has_value),
	(gen_source_element), (has_all_raw_caps), (analyse_source),
	(remove_decoders), (make_decoder), (remove_source),
	(source_new_pad), (setup_source), (decoder_query_init),
	(decoder_query_duration_fold), (decoder_query_duration_done),
	(decoder_query_position_fold), (decoder_query_position_done),
	(decoder_query_latency_fold), (decoder_query_latency_done),
	(decoder_query_seeking_fold), (decoder_query_seeking_done),
	(decoder_query_generic_fold), (gst_uri_decode_bin_query),
	(gst_uri_decode_bin_change_state), (plugin_init):
	New element that intergrates a source, optional buffering element and
	decodebin.

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

	* configure.ac:
	  Bump libtheora requirement to 1.0alpha5 for the pixformat check
	  (also has a .pc file, so we don't need the fallback check any
	  longer). Fixes #438840.

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

	* gst/playback/gstqueue2.c: (gst_queue_get_type),
	(gst_queue_class_init), (gst_queue_finalize), (update_time_level),
	(apply_segment), (apply_buffer), (update_buffering),
	(reset_rate_timer), (update_rates), (gst_queue_locked_flush),
	(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
	(gst_queue_handle_sink_event), (gst_queue_is_filled),
	(gst_queue_chain), (gst_queue_push_one), (gst_queue_loop),
	(plugin_init):
	fix build.

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

	* gst/playback/Makefile.am:
	* gst/playback/gstqueue2.c: (gst_queue_get_type),
	(gst_queue_class_init), (gst_queue_init), (gst_queue_finalize),
	(gst_queue_getcaps), (gst_queue_bufferalloc),
	(gst_queue_acceptcaps), (update_time_level), (apply_segment),
	(apply_buffer), (update_buffering), (reset_rate_timer),
	(update_rates), (gst_queue_locked_flush),
	(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
	(gst_queue_handle_sink_event), (gst_queue_is_empty),
	(gst_queue_is_filled), (gst_queue_chain), (gst_queue_push_one),
	(gst_queue_loop), (gst_queue_handle_src_event),
	(gst_queue_handle_src_query), (gst_queue_sink_activate_push),
	(gst_queue_src_activate_push), (gst_queue_change_state),
	(gst_queue_set_property), (gst_queue_get_property), (plugin_init):
	On our way to playbin2 this is the new network queue that does buffering
	all by itself using high and low watermarks. It can also measure up and
	downstream bandwidth to optimally size the queue.

2007-05-17  Michael Smith <msmith@fluendo.com>

	* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audio_test_src_do_seek):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_video_test_src_do_seek):
	  Use the segment->last_stop value to calculate the next timestamp to
	  generate after a seek; not the segment->start value.

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

	* docs/Makefile.am: Install docs even when --disable-gtk-doc
	  is disabled.  This matches the behavior of gtk+.  Fixes #349099.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_handle_page):
	Some more chained streaming ogg timestamp fixes.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_handle_page):
	Add some FIXMEs.
	Fix chain start/stop segment handling based on patch by
	<ahalda at cs dot mcgill dot ca> see #320984.

2007-05-15  Michael Smith <msmith@fluendo.com>

	* configure.ac:
	  We don't require a C++ compiler. So don't require one.

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

	* ext/alsa/gstalsamixer.c (source, n_poll_fds, poll_fds,
	  gst_alsa_mixer_check, gst_alsa_mixer_dispatch,
	  gst_alsa_mixer_finalize, gst_alsa_mixer_handle_source_callback,
	  gst_alsa_mixer_handle_callback, gst_alsa_mixer_elem_handle_callback,
	  gst_alsa_mixer_ensure_track_list, gst_alsa_mixer_update_option,
	  gst_alsa_mixer_update_track):
	  Apply some of the cleanup Tim suggested in #152864 afterwards.

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

	patch by: Marc-Andre Lureau <marcandre.lureau@gmail.com>

	* ext/alsa/gstalsamixer.c (main_context, GstAlsaMixerWatch,
	  _GstAlsaMixerWatch, source, n_poll_fds, poll_fds,
	  gst_alsa_mixer_watch_funcs, gst_alsa_mixer_prepare,
	  gst_alsa_mixer_check, gst_alsa_mixer_dispatch,
	  gst_alsa_mixer_finalize, gst_alsa_mixer_find_master_mixer,
	  gst_alsa_mixer_handle_source_callback,
	  gst_alsa_mixer_handle_callback, gst_alsa_mixer_elem_handle_callback,
	  gst_alsa_mixer_ensure_track_list, gst_alsa_mixer_free,
	  gst_alsa_mixer_get_volume, gst_alsa_mixer_set_volume,
	  gst_alsa_mixer_set_mute, gst_alsa_mixer_set_record,
	  gst_alsa_mixer_get_option, gst_alsa_mixer_update_option,
	  gst_alsa_mixer_update_track, _gst_alsa_mixer_set_interface):
	* ext/alsa/gstalsamixer.h (handle_source, interface, dir):
	* ext/alsa/gstalsamixerelement.c (gst_alsa_mixer_element_details,
	  gst_alsa_mixer_element_interface_supported,
	  gst_alsa_mixer_element_finalize, gst_alsa_mixer_element_init,
	  gst_alsa_mixer_element_set_property,
	  gst_alsa_mixer_element_get_property,
	  gst_alsa_mixer_element_change_state):
	* ext/alsa/gstalsamixertrack.c (gst_alsa_mixer_track_update):
	* gst-libs/gst/interfaces/mixer.c (gst_mixer_volume_changed,
	  gst_mixer_option_changed):
	* gst-libs/gst/interfaces/mixer.h (set_option, get_option,
	  volume_changed, option_changed, _gst_reserved):
	  Implement notification for alsamixer. Fixes #152864

2007-05-14  David Schleef  <ds@schleef.org>

	* gst/videotestsrc/videotestsrc.c:
	* gst/videotestsrc/videotestsrc.h:
	  Add support for video/x-raw-bayer.

2007-05-12  David Schleef  <ds@schleef.org>

	* sys/xvimage/xvimagesink.c:
	  Add some sanity checking for the XVImage size returned by X.
	  Related to #377400.

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_setcaps),
	(gst_base_rtp_depayload_set_gst_timestamp):
	Parse and use additional caps fields as described in updated
	application/x-rtp caps spec.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_collect_chain_info):
	If there is a stream in a chain without any data packets, ignore the
	stream in the total length calculations. Might be related to #436820.

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

	* gst/typefind/gsttypefindfunctions.c: (mpeg_sys_is_valid_pack),
	(mpeg_sys_is_valid_pes), (mpeg_sys_is_valid_sys),
	(mpeg_sys_type_find), (mpeg_ts_type_find), (mpeg4_video_type_find),
	(mpeg_video_type_find), (mpeg_video_stream_type_find),
	(plugin_init):

	Consolidate and re-work our mpeg system stream detection to probe
	more packets and produce a higher confidence result. Fixes a
	regression caused by lowering the typefind probability last year
	- related to bug #397810. Remove the redundant MPEG-1 specific 
	typefind function, as the new one detects both MPEG-1 & MPEG-2
	happily.

	Also cleanup the MPEG elementary and MPEG-TS detection functions a
	little. 

	Tested against my media test directory, with some improvements and
	no regressions.

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

	* gst/playback/gstplaybasebin.c: (fill_buffer), (check_queue),
	(queue_out_of_data):
	Connect to the new queue "pushing" signal instead of the broken
	"running" one.

2007-05-09  Sebastien Moutte  <sebastien@moutte.net>

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_audio_payload_handle_frame_based_buffer):
	Move variable declaration before the first instruction.
	* gst/videotestsrc/videotestsrc.c:
	Define M_PI if it's not defined yet.
	* win32/common/libgstrtp.def:
	Add new exported functions.

2007-05-09  Michael Smith <msmith@fluendo.com>

	* ext/theora/theoradec.c: (theora_handle_type_packet):
	  gst_pad_push_event() does not return a GstFlowReturn!

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

	* tests/examples/seek/scrubby.c: (stop_cb), (main):
	* tests/examples/seek/seek.c: (do_seek):
	Some small cosmetic changes.

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

	* gst/adder/gstadder.c (gst_adder_src_event, gst_adder_collected,
	  gst_adder_change_state):
	* gst/adder/gstadder.h (bps, offset, collect_event, segment,
	  segment_pending, segment_position, segment_rate):
	  Handle playback-rate on adder.

2007-05-07  Michael Smith <msmith@fluendo.com>

	* ext/theora/gsttheoradec.h:
	* ext/theora/theoradec.c: (gst_theora_dec_reset),
	(theora_dec_sink_event), (theora_handle_comment_packet),
	(theora_handle_type_packet), (theora_dec_change_state):
	  Don't push events (newsegment, tags) before initialising the
	  decoder.
	  This is neccesary for seeking to work correctly in gnonlin.

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

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	* gst/adder/gstadder.c:
	* gst/audiotestsrc/gstaudiotestsrc.c
	  (gst_audio_test_src_create_white_noise):
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/volume/gstvolume.c (VOLUME_UNITY_INT16,
	  VOLUME_UNITY_INT16_BIT_SHIFT, VOLUME_MAX_DOUBLE,
	  volume_sink_template, volume_src_template, gst_volume_init,
	  volume_process_double, volume_process_int16,
	  volume_process_int16_clamp):
	  Doc fixes and formatting.

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

	* tests/check/Makefile.am:
	* tests/check/elements/volume.c: (GST_START_TEST), (volume_suite):
	  Minimal check for volume's GstController usability; also another
	  test for #422295.

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

	* gst-libs/gst/cdda/gstcddabasesrc.c:
	(gst_cdda_base_src_add_track):
	  Fix it so that it (a) makes sense and (b) doesn't break
	  everything cdda-related including the unit test.

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

	* gst-libs/gst/cdda/gstcddabasesrc.c:
	(gst_cdda_base_src_add_track):
	  Fix build when disabling asserts.

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

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new):
	  When XShm is not available, we might get row strides that are not
	  rounded up to multiples of four; this is bad, because virtually
	  every RGB-processing element in GStreamer assumes rowstrides are
	  rounded up to multiples of four, so let's allocate at least enough
	  memory to avoid crashes in this case. The image will still be
	  displayed distorted though if this happens, so that still needs
	  fixing (maybe by allocating a bigger image with an 'even' width
	  and then clipping it appropriately when rendering - something for
	  Xlib aficionados in any case).

2007-05-03  Michael Smith <msmith@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain):
	  If a buffer doesn't have a timestamp, assume it's contiguous with
	  the previous buffer, and synthesise timestamps appropriately.

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

	* tests/check/elements/videorate.c: (GST_START_TEST):
	Set buffer timestamp to a valid value in order to test the buffer
	really does stay in videorate.

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

	* gst/videorate/gstvideorate.c: (gst_video_rate_chain):
	There is no sensible way to handle incoming buffers which don't have a
	valid timestamp. We therefore discard them and wait for the next one.

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

	* gst/playback/gstdecodebin.c: (type_found), (plugin_init):
	* gst/playback/gstdecodebin2.c: (plugin_init):
	  Better error message for text files.

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

	* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_packet_add_rb):
	Fix offset bug in generation RR packets.

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

	* ext/theora/theoradec.c: (_theora_granule_time),
	(theora_dec_push_forward), (theora_handle_data_packet),
	(theora_dec_decode_buffer): Calculate buffer duration correctly
	to generate a perfect stream (#433888).
	* gst/audioresample/gstaudioresample.c:
	(audioresample_check_discont): Glib provides ABS.

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

	* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_packet_get_rb),
	(gst_rtcp_packet_add_rb), (gst_rtcp_packet_sdes_add_item),
	(gst_rtcp_packet_sdes_add_entry), (gst_rtcp_packet_bye_add_ssrc),
	(gst_rtcp_packet_bye_add_ssrcs), (get_reason_offset),
	(gst_rtcp_packet_bye_set_reason):
	* gst-libs/gst/rtp/gstrtcpbuffer.h:
	Fix RB block parsing and writing.
	Add support for constructing BYE packets.

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

	* gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init),
	(gst_base_audio_src_create):
	* po/POTFILES.in:
	  When posting a warning message because samples were dropped, post
	  something more intelligible than he default error message for clock
	  errors which is just confusing in this context (#432984).

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

	* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_buffer_new),
	(gst_rtcp_buffer_end), (gst_rtcp_buffer_get_packet_count),
	(read_packet_header), (gst_rtcp_packet_move_to_next),
	(gst_rtcp_buffer_add_packet), (gst_rtcp_packet_sr_set_sender_info),
	(gst_rtcp_packet_rr_set_ssrc), (gst_rtcp_packet_add_rb),
	(gst_rtcp_packet_sdes_get_item_count),
	(gst_rtcp_packet_sdes_first_item),
	(gst_rtcp_packet_sdes_next_item), (gst_rtcp_packet_sdes_get_ssrc),
	(gst_rtcp_packet_sdes_first_entry),
	(gst_rtcp_packet_sdes_next_entry),
	(gst_rtcp_packet_sdes_get_entry), (gst_rtcp_packet_sdes_add_item),
	(gst_rtcp_packet_sdes_add_entry):
	* gst-libs/gst/rtp/gstrtcpbuffer.h:
	Implement code to write SR, RR and SDES packets.

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

	Patch by: Christian Kirbach <Christian dot Kirbach at googlemail com>

	* sys/ximage/ximagesink.c:
	  Fix build if XShm is not available (#432362).

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

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init):
	Initalize the AudioConvertCtx with zeroes, otherwise it will contain
	pointers to random memory which are passed to g_free() when
	audio_convert_prepare_context() is called the first time.

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

	Patch by: Dan Williams <dcbw redhat com>

	* gst/videorate/gstvideorate.c: (gst_video_rate_chain):
	  Don't leak incoming buffer if gst_pad_push() returns a
	  non-OK flow. Fixes #432755.
	 
	* tests/check/elements/videorate.c: (GST_START_TEST),
	(videorate_suite):
	  Unit test for the above by Yours Truly.

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

	* gst/adder/gstadder.c: (gst_adder_setcaps), (gst_adder_src_event),
	(gst_adder_sink_event), (gst_adder_collected):
	  Fix non-flushing segmented seeks, Fixes #340060 for me

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

	Patch by: Olivier Crete  <tester at tester ca>

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_audio_payload_class_init),
	(gst_base_rtp_audio_payload_init),
	(gst_base_rtp_audio_payload_dispose):
	  Chain up to parent class in dispose function; get rid of
	  unnecessary 'diposed' flag in private structure (#415001).

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

	* docs/libs/gst-plugins-base-libs.types:
	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_audio_payload_class_init):
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	* gst-libs/gst/rtp/gstbasertppayload.c:
	  Some minor docs fixes and additions; also add missing 'Since' bits.

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

	Patch by: Zeeshan Ali  <zeenix gmail com>

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_audio_payload_handle_frame_based_buffer),
	(gst_base_rtp_audio_payload_handle_sample_based_buffer),
	(gst_base_rtp_audio_payload_push):
	* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
	  The recently-added gst_base_rtp_audio_payload_push() should take an
	  object of type GstBaseRTPAudioPayload as first argument (#431672).

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

	* gst/audioresample/gstaudioresample.c:
	  Make more functions static, just because we can.

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

	* tests/check/elements/audioresample.c:
	  Add unit test for audioresample shutdown crasher (#420106).

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

	* gst/subparse/gstsubparse.c:
	* gst/subparse/samiparse.c:
	  Use GST_DISABLE_XML here

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_xwindow_new), (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_navigation_send_event):
	* sys/xvimage/xvimagesink.h:
	  Include stdlib.h when using atoi.
	  
	* tests/check/elements/playbin.c: (playbin_suite):
	  Use GST_DISABLE_REGISTRY here

2007-04-19  Michael Smith  <msmith@fluendo.com>

	* ext/theora/gsttheoraenc.h:
	* ext/theora/theoraenc.c: (theora_enc_sink_setcaps),
	(theora_enc_sink_event), (theora_enc_change_state):
	  Track initialisation state; don't try to use encoder state if we're
	  not initialised (it'll segfault).

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

	* tests/check/pipelines/.cvsignore:
	Fix build.

2007-04-17  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	Allow random depths between 1 and 32 instead of only multiplies of 8.

2007-04-17  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	Set the maximum number of channels for PCM and float in the correct
	place to have it also used when creating the template caps.

2007-04-17  Sebastian Dröge  <slomo@circular-chaos.org>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	Correctly support 4, 6 and 8 channels with normal PCM and float
	wav files.

	Fix the depth and signedness calculation in extensible wav files and
	also handle 1, 2, 4, 6, 8 channels here when a file without channel
	mask is found.

	Add support for float, alaw and mulaw in extensible wav files.

	This allows correct playback of all but 5 files from
	http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples.html
	
	(gst_riff_create_audio_template_caps):
	Add voxware and float formats to the template caps.	

2007-04-17  Sebastian Dröge  <slomo@circular-chaos.org>

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

	* ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time):
	Fix unused variable warning if HAVE_LOCALTIME_R is undefinied

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	* gst/audioresample/gstaudioresample.c: (audioresample_do_output):
	Use the correct format strings for integer formats.

2007-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/theora/theoraenc.c (theora_buffer_from_packet, theora_enc_chain):
	  Don't use pad_alloc_buffer_and_set_caps to create a small header
	  packet, or, worse, to create a big temporary video buffer using the
	  src pad.

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

	* gst/gdp/gstgdppay.c (gst_gdp_pay_chain):
	* tests/check/pipelines/streamheader.c (tag_event_probe_cb,
	  GST_START_TEST, buffer_probe_cb, GST_START_TEST):
	  Fix a bug where serialized IN_CAPS buffers needed to be set IN_CAPS.

2007-04-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/pipelines/streamheader.c (tag_event_probe_cb,
	  GST_START_TEST, n_in_caps, buffer_probe_cb, GST_START_TEST,
	  streamheader_suite):
	  Add another test set up for failure

2007-04-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/check/Makefile.am:
	* tests/check/pipelines/streamheader.c (n_tags, tag_event_probe_cb,
	  GST_START_TEST, streamheader_suite, main):
	  Add a test for the streamheader bug Wim fixed.

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

	* ext/theora/theoradec.c: (theora_dec_sink_event):
	Fix misleading comment.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  More sanity checks for the header fields.

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

	* gst-libs/gst/tag/tags.c: (gst_tag_freeform_string_to_utf8):
	  Try encodings from all environment variables, not just those in the
	  first environment variable that is set.

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

	* gst/videorate/gstvideorate.c: (gst_video_rate_setcaps),
	(gst_video_rate_chain):
	Add some debug.

	* tests/check/elements/videorate.c: (GST_START_TEST),
	(videorate_suite):
	Added check for videorate changing caps handling. Closes #421834.

2007-04-12  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	  Use scale functions to avoid overflow when calculating duration of 
	  vorbis buffers.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/tag/tag.h:
	* gst-libs/gst/tag/tags.c: (gst_tag_freeform_string_to_utf8):
	  API: add gst_tag_freeform_string_to_utf8() (#405072).

	* gst-libs/gst/tag/gstid3tag.c: (gst_tag_extract_id3v1_string):
	  Use gst_tag_freeform_string_to_utf8() here.

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

	* gst/gdp/gstgdppay.c: (gst_gdp_pay_chain),
	(gst_gdp_pay_sink_event):
	Make sure we set the IN_CAPS flag correctly.

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_render):
	Get the IN_CAPS flag before we call functions that mess with the flags.

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

	* gst/gdp/gstgdppay.c (gst_gdp_pay_reset_streamheader,
	  gst_gdp_pay_chain, gst_gdp_pay_sink_event):
	  Only stamp buffers with offset/offset_end right before they get
	  pushed.  This ensures offset continuity, which was not the case
	  before as shown by
	  gst-launch -v -m audiotestsrc num-buffers=10 ! audioconvert ! vorbisenc ! gdppay ! identity check-imperfect-offset=TRUE ! fakesink silent=TRUE

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

	* gst/playback/gstplaybin.c: (add_sink),
	(gst_play_bin_change_state):
	Activate sync in playbin, we are ready to handle it for live streams.

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

	* tests/check/elements/playbin.c:
	(test_sink_usage_video_only_stream), (playbin_suite):
	  Add small test for stream-info-value-array code paths.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_skew_slaving):
	Don't try to create invalid calibration parameters by making the
	internal time go backwards, instead make external time go forward.

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

	Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>

	* gst/playback/gstplaybasebin.c: (add_stream):
	Fix leak in add_stream(), when g_value_set_object() increases the
	refcount of streaminfo object. Fixes #426250.

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

	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.c:
	* gst/videotestsrc/videotestsrc.h:
	  Add a test pattern called "circular", which has concentric
	  rings with varying radial frequency.  The main purpose of this
	  pattern is to test fidelity loss in a filter or scaler element.
	  Notably, this pattern is scale invariant, and is optimally viewed
	  with a width (and height) of 400.

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

	Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>

	* gst/playback/gstdecodebin2.c: (connect_pad), (expose_pad),
	(deactivate_free_recursive):
	Decodebin2 doesn't unref pads it obtains in some occasions:
	- multiqueue src pads, when either connecting further or exposing
	- sink pads of new autoplugged elements
	- peer pads when recursively freeing elements
	Fixes #425455.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	Add audio/x-raw-float support, now that audioconvert support
	non-native endianness floats.

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

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	  gstreamer-plugins-base.pc doesn't exist, it's
	  gstreamer-plugins-base-0.10.pc.

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

	Patch by: René Stadler <mail at renestadler dot de>
	with some minor changes

	* gst-libs/gst/floatcast/floatcast.h:
	Use more efficient float endianness conversion functions that don't
	involve 2 function calls per value.
	* gst/audioconvert/audioconvert.c: (audio_convert_get_func_index),
	(check_default), (audio_convert_prepare_context):
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_parse_caps), (make_lossless_changes):
	Support non-native endianness floats as input and output.
	Fixes #339838.
	* tests/check/elements/audioconvert.c: (verify_convert),
	(GST_START_TEST):
	Add unit tests for the non-native endianness float conversions.

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_base_init),
	(gst_base_rtp_depayload_class_init), (gst_base_rtp_depayload_init),
	(gst_base_rtp_depayload_setcaps), (gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_change_state),
	(gst_base_rtp_depayload_set_property),
	(gst_base_rtp_depayload_get_property):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	Add Private structure.
	Bring element code to 2007.
	Parse clock-base caps param and use it when generating the
	newsegment.
	Reset variables before going to PAUSED.
	Fix some docs.

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

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_audio_payload_get_adapter):
	Add RTCP docs.
	Fix some more docs.

	* gst-libs/gst/rtp/Makefile.am:
	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	(gst_rtcp_buffer_new_take_data), (gst_rtcp_buffer_new_copy_data),
	(gst_rtcp_buffer_validate_data), (gst_rtcp_buffer_validate),
	(gst_rtcp_buffer_get_packet_count), (read_packet_header),
	(gst_rtcp_buffer_get_first_packet), (gst_rtcp_packet_move_to_next),
	(gst_rtcp_buffer_add_packet), (gst_rtcp_packet_remove),
	(gst_rtcp_packet_get_padding), (gst_rtcp_packet_get_type),
	(gst_rtcp_packet_get_count), (gst_rtcp_packet_get_length),
	(gst_rtcp_packet_sr_get_sender_info),
	(gst_rtcp_packet_sr_set_sender_info),
	(gst_rtcp_packet_rr_get_ssrc), (gst_rtcp_packet_rr_set_ssrc),
	(gst_rtcp_packet_get_rb_count), (gst_rtcp_packet_get_rb),
	(gst_rtcp_packet_add_rb), (gst_rtcp_packet_set_rb),
	(gst_rtcp_packet_sdes_get_chunk_count),
	(gst_rtcp_packet_sdes_first_chunk),
	(gst_rtcp_packet_sdes_next_chunk), (gst_rtcp_packet_sdes_get_ssrc),
	(gst_rtcp_packet_sdes_first_item),
	(gst_rtcp_packet_sdes_next_item), (gst_rtcp_packet_sdes_get_item),
	(gst_rtcp_packet_bye_get_ssrc_count),
	(gst_rtcp_packet_bye_get_nth_ssrc), (gst_rtcp_packet_bye_add_ssrc),
	(gst_rtcp_packet_bye_add_ssrcs), (get_reason_offset),
	(gst_rtcp_packet_bye_get_reason_len),
	(gst_rtcp_packet_bye_get_reason), (gst_rtcp_packet_bye_set_reason):
	* gst-libs/gst/rtp/gstrtcpbuffer.h:
	Add new helper object for parsing and creating RTCP messages.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	PCM samples with width=8 must be always unsigned, no matter what
	depth they have.

2007-03-29  Andy Wingo  <wingo@pobox.com>

	* gst/videorate/gstvideorate.c (gst_video_rate_flush_prev): Make
	perfect offsets also, not just timestamps.

	* tests/check/elements/videorate.c (test_more): Test that given
	any incoming offsets, that videorate produces perfect offsets.

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

	* gst-libs/gst/riff/riff-ids.h:
	Add some more RIFF formats.

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

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	(gst_rtp_buffer_default_clock_rate):
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	Fix fixed payload names and docs.
	Added method to get the default clock rates of fixed payload types.
	API: GstRTPBuffer::gst_rtp_buffer_default_clock_rate()

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

	* tests/check/pipelines/.cvsignore:
	Add new vorbisdec test to cvsignore.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c: (slave_method_get_type),
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_init),
	(gst_base_audio_sink_query), (gst_base_audio_sink_get_time),
	(gst_base_audio_sink_set_property),
	(gst_base_audio_sink_get_property), (gst_base_audio_sink_event),
	(clock_convert_external), (gst_base_audio_sink_resample_slaving),
	(gst_base_audio_sink_skew_slaving),
	(gst_base_audio_sink_handle_slaving), (gst_base_audio_sink_render),
	(gst_base_audio_sink_async_play):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	Store private stuff in GstBaseAudioSinkPrivate.
	Add configurable clock slaving modes property.
	API:: GstBaseAudioSink::slave-method property
	Some more latency reporting tweaks.
	Added skew based clock slaving correction and make it the default until
	the resampling method is more robust.

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

	* gst/audioconvert/audioconvert.c:
	Add docs to the integer pack functions and implement proper
	rounding. Before we had rounding towards negative infinity, i.e.
	always the smaller number was taken. Now we use natural rounding,
	i.e. rounding to the nearest integer and to the one with the largest
	absolute value for X.5. The old rounding introduced some minor
	distortions. Fixes #420079
	* tests/check/elements/audioconvert.c: (GST_START_TEST):
	Fix one unit test that assumed the old rounding and added unit tests
	for checking signed/unsigned int16 <-> signed/unsigned int16 with
	depth 8, one for signed int16 <-> unsigned int16 and one for the new
	rounding from signed int32 to signed/unsigned int16.

2007-03-27  Michael Smith  <msmith@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c: (strip_width_64),
	(gst_audio_convert_transform_caps):
	  Fix typo in debug line introduced recently, as pointed out on irc.

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

	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
	* tests/check/libs/tag.c: (GST_START_TEST):
	  Make sure we parse floating-point numbers in vorbis comments
	  correctly with either '.' or ',' as separator, no matter what
	  the current locale is. Add unit test for this too.

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

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

	* gst-libs/gst/tag/gstvorbistag.c: (gst_tag_to_vorbis_comments):
	  When writing out floating-point numbers to vorbis comment tags, always
	  use the same character as separator no matter what the current locale is
	  (fixes #423051).

	* tests/check/libs/tag.c: (GST_START_TEST):
	  Add unit tests for replaygain tags in vorbis comments (closes #423055).

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

	* ext/vorbis/vorbisdec.c (vorbis_dec_push_forward,
	  vorbis_handle_data_packet):
	  Correctly set DURATION to generate a timestamp-continuous stream.
	  One bug left at the end; see
	  ihttp://bugzilla.gnome.org/show_bug.cgi?id=423086
	* tests/check/Makefile.am:
	* tests/check/pipelines/vorbisenc.c (GST_START_TEST):
	  Add a test to check this.  Without the above patch this test fails.

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

	* gst-libs/gst/rtp/Makefile.am:
	The base audio payloader uses GstAdapter - we need GST_BASE_LIBS.

2007-03-23  Michael Smith  <msmith@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_video_rate_setcaps),
	(gst_video_rate_reset), (gst_video_rate_chain):
	  If videorate changes caps, we can no longer use the old buffer
	  (which may have a different size, incompatible with our caps).
	  So don't do that; just duplicate the new frame more times.

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

	* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
	Remove playbin's override of the set_clock vmethod. It's irrelevant
	after Wim's commit on the 19th.

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

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_get_size),
	(gst_gnome_vfs_src_start), (gst_gnome_vfs_src_stop):
	* ext/gnomevfs/gstgnomevfssrc.h:
	Don't cache file sizes. Fixes #341078.

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

	* gst/playback/gstplaybin.c: (add_sink):
	  Use GST_PTR_FORMAT to log caps. 

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

	Patch by: Young-Ho Cha <ganadist at chollian net>

	* gst/subparse/samiparse.c: (handle_start_font):
	  Special-case some more colour names that pango doesn't handle by
	  default. Fixes #420578.

2007-03-20  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_chain):
	  If we get a zero-sized input buffer, don't pass it to libvorbis, as
	  that marks EOS internally. After that, libvorbis will buffer all
	  input data, and encode none of it, eventually leading to memory
	  exhaustion.

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

	* gst/playback/gstdecodebin.c: (remove_fakesink):
	Don't post STATE_DIRTY anymore.

	* gst/playback/gstplaybin.c: (add_sink), (gst_play_bin_send_event),
	(gst_play_bin_change_state):
	Remove stream_time reset in seek handling, core does that now.
	Disable clocking for live pipelines by forcing a NULL clock to the
	complete pipeline, core is too smart now for our previous hack.
	We can always autoplug in PAUSED now.

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

	* REQUIREMENTS:  Update this file, change the formatting to make
	it more consistent, plus more machine readable.

2007-03-16  Michael Smith  <msmith@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c: (make_lossless_changes),
	(strip_width_64), (append_with_other_format):
	  Previous fix was too simplistic, and broke the tests. Use a better
	  approach; only strip 64 from widths for integer audio.

2007-03-16  Michael Smith  <msmith@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c: (make_lossless_changes),
	(gst_audio_convert_transform_caps):
	  We don't support 64 bit integer audio, so don't try to claim we can.
	  Stops us producing caps don't match our template caps.
	  Update comments.

2007-03-15  Michael Smith  <msmith@fluendo.com>

	* gst/audioresample/gstaudioresample.c:
	(audioresample_check_discont), (audioresample_transform):
	  Don't trigger discontinuities for very small imperfections; a filter
	  flush will sound bad, and many plugins have rounding errors leading
	  to these.

2007-03-14 Philippe Kalaf <philippe.kalaf@collabora.co.uk> 	 

	Patch by: Olivier Crete <olivier.crete@collabora.co.uk>

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
	API: add "min-ptime" property to RTP base audio payloader.
	API: add gst_base_rtp_audio_payload_push().
	API: add gst_base_rtp_audio_payload_get_adapter().
	Fixes #415001
	Indentation/whitespace/documentation fixes.

2007-03-14  Julien MOUTTE  <julien@moutte.net>

	* gst/audioresample/gstaudioresample.c: (gst_audioresample_init),
	(audioresample_transform_size), (audioresample_do_output),
	(audioresample_transform), (audioresample_pushthrough): Handle
	discontinuous streams.
	* gst/audioresample/gstaudioresample.h:
	* tests/check/elements/audioresample.c:
	(test_discont_stream_instance), (GST_START_TEST),
	(audioresample_suite): Add a test for discontinuous streams.
	* win32/common/config.h: Updated.

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

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

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

	* gst/audioresample/debug.h:
	* gst/audioresample/resample.c: (resample_init):
	  Since I really am not interested in a debug line for each sample
	  being processed, move the library's debugging to its own category,
	  libaudioresample

2007-03-13  Michael Smith  <msmith@fluendo.com>

	* ext/theora/theoradec.c: (theora_handle_type_packet):
	  Since the plugin doesn't support anything other than 4:2:0 right
	  now, post an error and fail if we get something else. Won't matter
	  until libtheora supports the other pixel formats, but hopefully
	  that'll be soon...

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:(gst_base_audio_sink_render):
	Use gst_guint64_to_gdouble for conversion.
	* win32/MANIFEST:
	Add new files to the win32 MANIFEST.
	* win32/common/libgstaudio.def:
	* win32/common/libgstpbutils.def:
	Add new exported functions.
	* win32/vs6/gst_plugins_base.dsw:
	* win32/vs6/libgstdecodebin.dsp:
	* win32/vs6/libgstplaybin.dsp:
	Change the link to libgstpbutils.lib.
	* win32/vs6/libgstdecodebin2.dsp:
	Add a new project for decodebin2.
	* win32/vs6/libgstpbutils.dsp:
	Add a new project for pbutils.

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

	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
	  Also accept partial dates with only year and month,
	  like 1999-12-00 (fixes #410396 even more).

	* tests/check/libs/tag.c: (GST_START_TEST):
	  Add unit test for the above.

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

	* tests/check/elements/subparse.c: (GST_START_TEST),
	(subparse_suite):
	  Add unit test for MPL2 subtitle format (#413799).

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

	Patch by: Kamil Pawlowski  <kamilpe gmail com>

	* gst/subparse/Makefile.am:
	* gst/subparse/gstsubparse.c:
	(gst_sub_parse_data_format_autodetect),
	(gst_sub_parse_format_autodetect), (gst_sub_parse_sink_event),
	(gst_subparse_type_find):
	* gst/subparse/gstsubparse.h:
	* gst/subparse/mpl2parse.c: (mpl2_parse_line), (parse_mpl2):
	* gst/subparse/mpl2parse.h:
	  Add support for MPL2 subtitle format (#413799).

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

	* configure.ac:
	  We require core CVS for the new buffer metadata copy functions.

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

	* gst-libs/gst/tag/gstid3tag.c:
	Add read support for GST_TAG_MUSICBRAINZ_SORTNAME (TSOP) tag.
	Fixes #414496.

	Patch by: Alex Lancaster <alexl at users sourceforge net>

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

	* ext/libvisual/visual.c: (gst_visual_sink_setcaps),
	(gst_vis_src_negotiate), (get_buffer), (gst_visual_chain):
	Improve adapter usage and comments.

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

	* ext/pango/gsttextrender.c: (gst_text_render_chain):
	* ext/vorbis/vorbistag.c: (gst_vorbis_tag_parse_packet):
	* gst-libs/gst/netbuffer/gstnetbuffer.c: (gst_netbuffer_copy):
	Use new metadata copy function.

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_transform):
	* gst/videoscale/gstvideoscale.c: (gst_video_scale_transform):
	Basetransform copied the metadata for us.

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

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_text_event),
	(gst_text_overlay_video_event):
	  Some more logging. Only accept newsegment events in TIME format and
	  send a WARNING message if they are not in TIME format.

	* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
	(gst_sub_parse_init), (gst_sub_parse_src_event), (handle_buffer),
	(gst_sub_parse_chain), (gst_sub_parse_sink_event):
	* gst/subparse/gstsubparse.h:
	  No need to allocate GstSegment structure dynamically, just put it
	  into the instance structure; ignore newsegment events in BYTE
	  format and in particular don't let it overwrite our saved TIME
	  segment from the last seek.

2007-03-09  Michael Smith  <msmith@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (ac3_type_find):
	  Replace AC3 typefinder with one that isn't terrible, and actually
	  works usefully.

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

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_transform):
	  fix error category and translatable string
	  

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

	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
	* pkgconfig/gstreamer-plugins-base.pc.in:
	  Fix up utils => pbutils here too.

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

	* gst/subparse/gstsubparse.c: (handle_buffer):
	  Break out of loop in chain function as soon as possible if we get
	  a non-OK flow return.

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

	* tests/check/elements/alsa.c: (GST_START_TEST):
	Unref the mixer if the state change fails too (if the
	alsa devices are inaccessible, for example)

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

	* tests/check/Makefile.am:
	Don't test libvisual elements in the states check, because libvisual
	seems to leak internally.

	Re-enable the alsa and states tests now that there's new suppressions
	in gst.supp.

	* tests/check/elements/alsa.c: (GST_START_TEST):
	Don't leak the alsamixer we instantiated.

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

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_clear),
	(gst_ximagesink_change_state), (gst_ximagesink_reset),
	(gst_ximagesink_finalize):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state),
	(gst_xvimagesink_reset), (gst_xvimagesink_finalize):
	Move some cleanup stuff from the state change handler into a _reset()
	function that can be called from _finalize(). This ensures that things
	get freed even if (for some reason) the NULL->READY state transition
	fails in the parent class.
	Even if a parent state change fails, process our downward state change
	logic instead of bailing out early.
	Free the correct xcontext pointer in ximagesink's xcontext_clear.

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

	* ext/alsa/gstalsasink.c: (gst_alsasink_open):
	Extra log line.

	* ext/pango/gstclockoverlay.c: (gst_clock_overlay_init):
	* ext/pango/gsttimeoverlay.c: (gst_time_overlay_init):
	Use pango_font_description_set_family_static instead of 
	pango_font_description_set_family to save a string copy (it was
	leaking due to the strdup anyway)

	* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_finalize):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_finalize):
	* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_finalize):
	* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_finalize):
	Chain up in finalize.

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

	* gst-libs/gst/interfaces/mixertrack.c:
	(gst_mixer_track_class_init), (gst_mixer_track_get_property),
	(gst_mixer_track_set_property):
	  API: add "untranslated-label" property which should be set by
	  implementations at construct time (#414645).

	* ext/alsa/gstalsamixeroptions.c: (gst_alsa_mixer_options_new):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	  Set "untranslated-label" when constructing mixer track objects.

	* tests/check/elements/alsa.c: (GST_START_TEST), (alsa_suite):
	  Unit test to check the above.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_read_chain):
	Fix confusing debug message.

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

	* gst-plugins-base.doap:
	update doap file with new version

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

	* configure.ac:
	Back to CVS

=== release 0.10.12 ===

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

	* configure.ac:
	  releasing 0.10.12, "Zombie Horde"

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

	* configure.ac:
	Bump version to 0.10.11.4 pre-release

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_async_play):
	Fix regression that made GStreamer skip the first samples of audio.
	Fixes #414684.

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

	* configure.ac:
	Bump version to 0.10.11.3 pre-release

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

	* po/POTFILES.in:
	  Update paths for the rename from utils to pbutils to fix the build.

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

	* gst-libs/gst/pbutils/Makefile.am:
	  Change directory to install headers in from gst/utils to gst/pbutils
	  as well.

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

	* configure.ac:
	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/interfaces/mixer.c:
	* gst-libs/gst/pbutils/Makefile.am:
	* gst-libs/gst/pbutils/descriptions.c:
	(gst_pb_utils_get_source_description),
	(gst_pb_utils_get_sink_description),
	(gst_pb_utils_get_decoder_description),
	(gst_pb_utils_get_encoder_description),
	(gst_pb_utils_get_element_description),
	(gst_pb_utils_add_codec_description_to_tag_list),
	(gst_pb_utils_get_codec_description), (gst_pb_utils_list_all):
	* gst-libs/gst/pbutils/descriptions.h:
	* gst-libs/gst/pbutils/install-plugins.c:
	* gst-libs/gst/pbutils/install-plugins.h:
	* gst-libs/gst/pbutils/missing-plugins.c:
	(gst_missing_uri_source_message_new),
	(gst_missing_uri_sink_message_new),
	(gst_missing_element_message_new),
	(gst_missing_decoder_message_new),
	(gst_missing_encoder_message_new),
	(gst_missing_plugin_message_get_description):
	* gst-libs/gst/pbutils/missing-plugins.h:
	* gst-libs/gst/pbutils/pbutils.c: (gst_pb_utils_init):
	* gst-libs/gst/pbutils/pbutils.h:
	* gst-libs/gst/utils/Makefile.am:
	* gst-libs/gst/utils/base-utils.c:
	* gst-libs/gst/utils/base-utils.h:
	* gst-libs/gst/utils/descriptions.c:
	* gst-libs/gst/utils/descriptions.h:
	* gst-libs/gst/utils/install-plugins.c:
	* gst-libs/gst/utils/install-plugins.h:
	* gst-libs/gst/utils/missing-plugins.c:
	* gst-libs/gst/utils/missing-plugins.h:
	* gst-plugins-base.spec.in:
	* gst/playback/Makefile.am:
	* gst/playback/gstdecodebin.c:
	* gst/playback/gstdecodebin2.c:
	* gst/playback/gstplaybasebin.c: (setup_subtitle),
	(gen_source_element):
	* gst/playback/gstplaybin.c: (plugin_init):
	* tests/check/Makefile.am:
	* tests/check/libs/pbutils.c: (GST_START_TEST),
	(test_pb_utils_install_plugins_do_callout), (libgstpbutils_suite):
	* tests/check/libs/utils.c:
	  rename utils to pbutils

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/inspect/plugin-decodebin2.xml:
	* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
	Add documentation for decodebin2 that indicates that the API
	is still unstable.

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

	* configure.ac:
	Update to 0.10.11.2 (0.10.12 pre-release)

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_async_play):
	base time is irrelevant here.

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

	* gst-libs/gst/audio/gstaudiosink.c: (audioringbuffer_thread_func):
	* gst-libs/gst/audio/gstaudiosrc.c: (audioringbuffer_thread_func):
	Improve debugging.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_query), (gst_base_audio_sink_event),
	(gst_base_audio_sink_render), (gst_base_audio_sink_async_play):
	Improve latency and clock slaving calculations.
	Improve slave clock calibration.

	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_commit_full):
	When we are asked to render N sample to 0 bytes, return N.

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

	* ext/alsa/gstalsasink.c: (gst_alsasink_class_init),
	(gst_alsasink_write), (gst_alsasink_reset):
	* ext/alsa/gstalsasink.h:
	Remove unused dispose function.
	Rename lock to not interfere with alsasrc lock.

	* ext/alsa/gstalsasrc.c: (gst_alsasrc_finalize),
	(gst_alsasrc_class_init), (gst_alsasrc_init), (set_swparams),
	(gst_alsasrc_read), (gst_alsasrc_reset):
	* ext/alsa/gstalsasrc.h:
	Implement finalize function.
	Use lock to protect alsa access.
	Implement _reset.
	Fine tune sw params.

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

	* configure.ac:
	  Convert to new AG_GST style.

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

	Patch by: Ed Catmur <ed at catmur dot co dot uk>

	* gst/playback/gstplaybin.c: (gst_play_bin_vis_unblocked),
	(gst_play_bin_vis_blocked), (gst_play_bin_set_property):
	Fix race condition when rapidly switching visualisations in playbin.
	Fixes #401029.

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

	* tests/check/Makefile.am:
	Include local stuff before system installed things in LDFLAGS and
	CFLAGS.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_sink_activate):
	Improve debugging.

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

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init),
	(gst_v4lsrc_fixate), (gst_v4lsrc_query):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_buffer_new):
	Fix duration and timestamping, taking latency into account.
	Implement latency query.

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

	* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_init),
	(gst_audio_clock_new):
	Fix clock name.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_init), (gst_base_audio_sink_query):
	* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_init),
	(gst_base_audio_src_query), (gst_base_audio_src_get_offset),
	(gst_base_audio_src_create):
	Improve latency query code.
	Use proper clock names.

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

	* tests/check/generic/states.c: (GST_START_TEST):
	  Copy the states.c test from core again
	* tests/check/Makefile.am:
	  ignore cdio and cdparanoiasrc

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

	* gst/audioconvert/audioconvert.c: (float), (double), (float_hq),
	(double_hq), (audio_convert_get_func_index), (check_default),
	(audio_convert_prepare_context), (audio_convert_convert):
	  Also make valgrind happy and avoid copying data in some cases.

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

	* gst/audioconvert/audioconvert.c: (float), (double), (float_hq),
	(double_hq), (audio_convert_get_func_index),
	(audio_convert_prepare_context), (audio_convert_convert):
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_class_init), (gst_audio_convert_get_unit_size),
	(gst_audio_convert_transform_caps):
	* tests/check/elements/audioconvert.c: (GST_START_TEST),
	(audioconvert_suite):
	  Don't run inplace if that overwrites source data as we go. Add more
	  tests. Fixes #339837 even more.

2007-02-27  Julien MOUTTE  <julien@moutte.net>

	* tests/examples/seek/seek.c: (do_seek), (set_update_scale),
	(msg_segment_done): Fix various seeking bugs (Slider was not
	updating when doing a non flushing seek, Reverse playback 
	on segment seek was wrong).

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

	* tests/examples/seek/seek.c: (stop_seek):
	When we stop scrubbing, don't leave the pipeline PLAYING when we
	requested a PAUSED state.

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

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

	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
	  Parse date strings in vorbis comments that have an invalid (zero)
	  month or day (#410396).

	* tests/check/libs/tag.c: (GST_START_TEST):
	  Test case for the above.

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

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

	* configure.ac:
	* ext/alsa/Makefile.am:
	* gst/audiotestsrc/Makefile.am:
	  Fix compilation with LDFLAGS='-Wl,-z,defs' (#410963).

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

	* gst/playback/gstplaybin.c:
	  Improve docs: point out that the application needs to assist playbin
	  with buffering.

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

	* gst-libs/gst/utils/install-plugins.c:
	* gst-libs/gst/utils/missing-plugins.c:
	* tests/check/libs/utils.c: (missing_msg_check_getters):
	  Change GStreamer marker prefix in detail string from 'gstreamer.net'
	  to just 'gstreamer'. Document the caps string component of the
	  decoder/encoder detail a bit better, since not everyone will be
	  familiar with the GStreamer media type/caps system (but they better
	  enjoy nested itemized lists).

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

	* gst-libs/gst/netbuffer/gstnetbuffer.c:
	(notgst_buffer_copy_fields_in_place), (gst_netbuffer_copy):
	  Fix copying of GstNetBuffer (would crash before, or at least lead to
	  invalid memory access, #410772), for now by copying the GstBuffer copy
	  code from the core over here so we can copy the GstBuffer fields on a
	  provided buffer instance (of type GstNetBuffer in this case). Would be
	  better to fix this with some support by the core though (and in the long
	  run change the broken GstBuffer/GstMiniObject copy semantics, #393099).

	* tests/check/Makefile.am:
	  Enable unit test for GstNetBuffer.

2007-02-22  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c
	(gst_base_audio_sink_init): Disable pull-mode activation until we
	figure out how to make audio sinks go to PLAYING.

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

	* gst/audioconvert/audioconvert.c: (float), (double), (float_hq),
	(double_hq), (audio_convert_get_func_index),
	(audio_convert_prepare_context), (audio_convert_convert):
	* gst/audioconvert/audioconvert.h:
	* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_setup_matrix),
	(gst_channel_mix_mix_int), (gst_channel_mix_mix_float):
	* gst/audioconvert/gstchannelmix.h:
	* tests/check/elements/audioconvert.c: (GST_START_TEST):
	  Add float as an intermediate format, as well as float mixing. Enable
	  test that was failing before. Fixes #339837

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

	* tests/examples/seek/seek.c: (do_seek):
	Undo the previous commit: -1 as a stop time implies that the stop
	time is the end of file, clearing any previously configured segment.

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

	* tests/examples/seek/seek.c: (do_seek):
	Don't SEEK_SET with a stop time of -1, use SEEK_NONE instead.

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

	* gst/volume/gstvolume.c: (volume_process_int16),
	(volume_process_int16_clamp), (volume_set_caps):
	  Unbreak volume, value remains gint.

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

	* gst/volume/gstvolume.c: (volume_choose_func),
	(volume_update_real_volume), (gst_volume_set_volume),
	(gst_volume_init), (volume_process_double), (volume_process_float),
	(volume_process_int16), (volume_process_int16_clamp),
	(volume_set_caps), (volume_transform_ip), (volume_update_volume):
	* gst/volume/gstvolume.h:
	  Extend float audio support (double) and some int->uint cleanups.

2007-02-20  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_dispose),
	(multi_queue_underrun_cb), (gst_decode_group_check_if_drained),
	(sort_end_pads), (gst_decode_group_expose),
	(gst_decode_group_hide):
	Don't free groups from the streaming threads. Just put them aside and
	free them in dispose.

2007-02-20  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstdecodebin2.c: (connect_element),
	(pad_added_group_cb), (gst_decode_group_check_if_blocked),
	(sort_end_pads), (gst_decode_group_expose):
	Handle dynamic pads within groups.
	Sort pads before exposing them in order to make playbin happy.
	There still is a race with the multiqueue filling up. This should be
	solved separately.
	Fixes #398721

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

	* gst-libs/gst/utils/base-utils.c:
	* gst-libs/gst/utils/descriptions.c:
	* gst-libs/gst/utils/install-plugins.c:
	* gst-libs/gst/utils/missing-plugins.c:
	  Some more docs (and descriptions for two subtitle formats).

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

	* gst-libs/gst/audio/audio.c:
	  Fix documentation.

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

	Patch by: Yves Lefebvre  <ivanohe abacom com>

	* gst/videorate/gstvideorate.c: (gst_video_rate_setcaps):
	  Don't leak caps. Fixes #408278.

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

	* ext/cdparanoia/gstcdparanoiasrc.h:
	* ext/ogg/gstoggdemux.h:
	* gst-libs/gst/audio/audio.c: (gst_audio_frame_byte_size),
	(gst_audio_frame_length), (gst_audio_duration_from_pad_buffer),
	(gst_audio_is_buffer_framed), (gst_audio_structure_set_int):
	* gst-libs/gst/audio/audio.h:
	* gst-libs/gst/audio/gstaudiofilter.h:
	* gst-libs/gst/interfaces/videoorientation.h:
	* gst/adder/gstadder.h:
	  More docs coverage and some ChangeLog surgery (add missing names)

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

	* sys/ximage/ximagesink.c:
	(gst_ximagesink_calculate_pixel_aspect_ratio):
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_calculate_pixel_aspect_ratio):
	Small constifications.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_query),
	(gst_base_audio_sink_render), (gst_base_audio_sink_callback),
	(gst_base_audio_sink_async_play),
	(gst_base_audio_sink_change_state):
	Answer latency query.
	Use configured latency when syncing.
	Fix clock slaving.

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_class_init), (gst_base_audio_src_dispose),
	(gst_base_audio_src_query), (gst_base_audio_src_change_state):
	Fix possible memleak.
	Implement latency query.
	Small cleanups.

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

	* ext/alsa/gstalsasink.c: (gst_alsasink_reset):
	Ignore errors in reset, these are not fatal. They also grab the element
	lock which is already taking when this function is called. Fixes
	#405451.

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

	* configure.ac:
	  Remove 'tests/examples/xerror/Makefile' from output files again.

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	  Also crossref against gst-plugins-base-libs.

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

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

	* gst-libs/gst/audio/audio.h:
	  Source formatting.

	* gst/audiotestsrc/gstaudiotestsrc.c: (plugin_init):
	  Add own debug category.

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

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

	* gst-libs/gst/tag/gstvorbistag.c:
	  Add vorbis/FLAC-tag mapping for new GST_TAG_REFERENCE_LEVEL
	  (#403597).

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

	* gst/playback/gstplaybasebin.c: (setup_source):
	  When we have external subtitles and wait for the subtitle decodebin
	  to get up and running, we set up a (sync) bus handler for the
	  subtitle decodebin, so we can stop waiting when it posts an error
	  message. However, we should do that before we set the subtitle
	  decodebin's state to playing, otherwise things are racy and we might
	  miss error messages posted before we had a chance to set up the bus.
	  This should finally fix totem hanging on .txt pseudo-subtitle files.
	  
2007-02-10  Sébastien Moutte  <sebastien at moutte dot net>

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:(gst_base_rtp_audio_payload_handle_frame_based_buffer):
	  Use gst_gdouble_to_guint64 for conversions.
	* win32/common/config.h.in:
	  Add a define for GST_INSTALL_PLUGINS_HELPER
	* win32/common/libgstaudio.def:
	* win32/common/libgstcdda.def:
	* win32/common/libgstnetbuffer.def:
	* win32/common/libgstrtp.def:
	* win32/common/libgutils.def:
	  Add new exported functions.
	* win32/vs6/gst_plugins_base.dsw:
	* win32/vs6/libgstdecodebin.dsp:
	* win32/vs6/libgstnetbuffer.dsp:
	* win32/vs6/libgstplaybin.dsp:
	* win32/vs6/libgstrtp.dsp:
	* win32/vs6/libgstvorbis.dsp:
	* win32/vs6/libgstcdda.dsp:
	* win32/vs6/libgstgdp.dsp:
	* win32/vs6/libgstutils.dsp:
	  Update and add new project files.

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

	* gst/subparse/gstsubparse.c: (subrip_remove_unhandled_tag),
	(subrip_remove_unhandled_tags), (parse_subrip):
	  For SubRip (.srt) subtitles, ignore all markup tags we don't
	  handle (like font tags, for example).

	* tests/check/elements/subparse.c:
	  Add test for this.

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

	* gst/playback/gstdecodebin.c: (add_fakesink),
	(gst_decode_bin_change_state):
	* gst/playback/gstdecodebin2.c: (add_fakesink),
	(gst_decode_bin_change_state):
	  Don't error out if there is no fakesink in the NULL to READY state
	  change, since when decodebin is re-used, we're only adding the
	  fakesink element in READY to PAUSED.

	* tests/check/elements/decodebin.c:
	(new_decoded_pad_plug_fakesink_cb), (GST_START_TEST),
	(decodebin_suite):
	  Minimal unit test to make sure we can use the same decodebin
	  instance twice (at least with audiotestsrc input).

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

	* ext/alsa/gstalsa.c: (gst_alsa_find_device_name):
	  Try to get devic-name from device string first, and from handle only
	  as fallback (seems to yield better results and is more robust
	  against buggy probing code on the application side).

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

	Based on patch by: Julien Puydt <julien.puydt at laposte net>

	* ext/alsa/gstalsa.c: (gst_alsa_find_device_name_no_handle),
	(gst_alsa_find_device_name):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasink.c: (gst_alsasink_get_property):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_get_property):
	  Improve device-name detection a bit, especially in the case where
	  the device is not actually open (#405020, #405024). Move common code
	  into gstalsa.c instead of duplicating it.

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

	* gst/audioconvert/gstaudioconvert.c:
	  Fix up docs chunk so that gtk-doc doesn't complain, and fix typo.

2007-02-06  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents),
	(gst_xvimagesink_get_xv_support), (gst_xvimagesink_xcontext_clear),
	(gst_xvimagesink_interface_supported),
	(gst_xvimagesink_probe_get_properties),
	(gst_xvimagesink_probe_probe_property),
	(gst_xvimagesink_probe_needs_probe),
	(gst_xvimagesink_probe_get_values),
	(gst_xvimagesink_property_probe_interface_init),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init),
	(gst_xvimagesink_get_type):
	* sys/xvimage/xvimagesink.h: Implement PropertyProbe Interface
	for XVAdaptors so that one can choose the adaptor to use with 
	gstreamer-properties.

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

	* gst/audioconvert/gstaudioconvert.c:
	  Also mention that a conversion from double to float is suboptimal still.

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

	* gst-libs/gst/audio/gstaudiofilter.c:
	(gst_audio_filter_class_init), (gst_audio_filter_change_state):
	  Clear our formats structure and free the caps contained in it when
	  shutting down.

2007-02-05  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c
	(gst_base_audio_sink_callback): Update basesink->offset so that we
	pull monotonically increasing offsets instead of, um, seeking back
	to 0 each time. Fixes alsasrc ! alsasink!

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

	* gst/videoscale/gstvideoscale.c:
	  A width and height of 1 makes us crash, so increase minimum size to
	  2x2 pixels until someone feels like fixing this (#404512).

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

	* tests/check/pipelines/oggmux.c: (GST_START_TEST), (oggmux_suite):
	  Add small test to make sure request pads are cleaned up properly
	  even if oggmux never changes state out of NULL.

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

	* tests/check/libs/utils.c: (GST_START_TEST):
	  Fix unit test. Turns out things work much better when you
	  NULL-terminate string arrays. Should make p5 build bot happy again.

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

	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/audio/gstaudiofiltertemplate.c:
	(gst_audio_filter_template_base_init),
	(gst_audio_filter_template_class_init),
	(gst_audio_filter_template_init),
	(gst_audio_filter_template_set_property),
	(gst_audio_filter_template_get_property),
	(gst_audio_filter_template_setup),
	(gst_audio_filter_template_filter),
	(gst_audio_filter_template_filter_inplace), (plugin_init):
	  Oops, forgot to commit fixed-up example.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audio_filter_get_type),
	(gst_audio_filter_class_init), (gst_audio_filter_init),
	(gst_audio_filter_set_caps),
	(gst_audio_filter_class_add_pad_templates):
	* gst-libs/gst/audio/gstaudiofilter.h:
	  Port GstAudioFilter to 0.10. This change technically breaks
	  API and ABI (and thus also every library developer's heart),
	  but seems justifiable on the grounds that the base class was
	  completely unusable before (ie. would crash immediately when
	  actually used). Fixes #403963 (and eventually also #403572).
	  Also document all of this a bit.

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

	* gst-libs/gst/utils/install-plugins.c:
	(gst_install_plugins_spawn_child):
	* tests/check/libs/utils.c:
	(test_base_utils_install_plugins_do_callout):
	  Lowering log level to see why things fail on the p5 build bot;
	  fix some typos in unit test messages.

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

	* tests/check/libs/utils.c:
	(test_base_utils_install_plugins_do_callout):
	  Don't hard-code temp directory for test helper; use GLib functions
	  to write out file and do error checking etc.

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

	* gst-libs/gst/utils/Makefile.am:
	* gst-libs/gst/utils/base-utils.h:
	* gst-libs/gst/utils/install-plugins.c:
	(gst_install_plugins_context_set_xid),
	(gst_install_plugins_context_new),
	(gst_install_plugins_context_free),
	(gst_install_plugins_get_helper),
	(gst_install_plugins_spawn_child),
	(gst_install_plugins_return_from_status),
	(gst_install_plugins_installer_exited),
	(gst_install_plugins_async), (gst_install_plugins_sync),
	(gst_install_plugins_return_get_name),
	(gst_install_plugins_installation_in_progress):
	* gst-libs/gst/utils/install-plugins.h:
	  API: add API for applications to initiate installation of missing
	  plugins, ie. gst_install_plugins_async() primarily.
	  Based on libgimme-codec by Ryan Lortie.

	* configure.ac:
	  Add --with-install-plugins-helper configure option so distros can specify
	  the path of the helper script or program to call when plugin installation
	  is requested (distros: please do any argument munging in this helper
	  script instead of patching GStreamer to pass arguments differently
	  to another program directly).

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	  Build and document new API.

	* tests/check/libs/utils.c: (result_cb),
	(test_base_utils_install_plugins_do_callout), (GST_START_TEST),
	(libgstbaseutils_suite):
	  Some simple checks for the new API.

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

	* tests/check/elements/audioconvert.c: (test_float_conversion):
	  Add small test for 32bit float <=> 64bit float conversion (works
	  only one way so far, 32=>64 produces structured noise).

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

	* gst/audioconvert/gstaudioconvert.c:
	(set_structure_widths_32_and_64), (make_lossless_changes):
	  We don't support floats with a width of 40, 48 or 56 bits.

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

	* gst/audioconvert/audioconvert.c: (float), (double),
	(audio_convert_get_func_index):
	* gst/audioconvert/gstaudioconvert.c: (set_structure_widths),
	(make_lossless_changes):
	  Support for 64-bit float audio in audioconvert (#339837)

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

	Patch by: Holger Wansing  <linux wansing-online de>

	* po/LINGUAS:
	* po/de.po:
	  Add German translation (#352069).

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

	reviewed by: Wim Taymans <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_ogg_pad_destroy_notify),
	(gst_ogg_mux_request_new_pad), (gst_ogg_mux_release_pad):
	Use newly added GstCollectPads API to free the allocated resources in
	the GstOggPad structures (#402393).

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

	* gst/playback/gstplaybin.c: (gen_vis_element):
	  Add audioresample+audioconvert in front of the visualisation
	  element, so that elements like libvisual 0.4 that don't support all
	  samplerates can work.

	  Fixes: #402505

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

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property),
	(gst_play_base_bin_get_streaminfo_value_array):
	  Take some locks and make a copy of the streaminfo value array we
	  maintain while holding the lock, so that the application can
	  retrieve the stream-info as a value array in a thread-safe way.

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

	* gst/audioconvert/gstaudioconvert.c:
	Don't fail on 0 sized buffers. Fixes #396835.

2007-01-29  David Schleef  <ds@schleef.org>

	* gst/typefind/gsttypefindfunctions.c:
	  Detect BBCD as video/x-dirac, so we can play raw dirac
	  streams.

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

	* ext/theora/theoraenc.c: (theora_enc_chain):
	  Check return value of theora_encode_header(), or we might try to
	  allocate a random number of bytes. theora_encode_header() can fail
	  if libtheora has been compiled with encoding support disabled.
	  Fixes #398110.

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

	* tests/check/gst/.cvsignore:
	Do as buildbot says.

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

	* ext/libvisual/visual.c: (gst_visual_src_setcaps):
	Fix strides in libvisual. Gst uses X strides.
	Inspired by: <ed at catmur dot co dot uk> and 
	<tim at centricular dot net>
	Fixes #401118.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_submit_buffer),
	(gst_ogg_demux_get_data), (gst_ogg_demux_get_next_page),
	(gst_ogg_demux_get_prev_page), (gst_ogg_demux_do_seek),
	(gst_ogg_demux_perform_seek),
	(gst_ogg_demux_bisect_forward_serialno),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_read_end_chain),
	(gst_ogg_demux_find_chains), (gst_ogg_demux_handle_page),
	(gst_ogg_demux_chain), (gst_ogg_demux_combine_flows),
	(gst_ogg_demux_loop_reverse), (gst_ogg_demux_loop):
	* ext/ogg/gstoggdemux.h:
	Properly propagate streaming errors when we are scanning the file for
	chains so that we don't crash when shut down. Might fix some crashers
	when quickly switching oggs in RB such as #332503 and #378436.

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

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_start):
	  Map a gnome-vfs HOST_NOT_FOUND error into a GStreamer NOT_FOUND
	  error code as well.

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

	* gst/playback/gstplaybasebin.c: (remove_source):
	Don't try to disconnect a signal from a finalized object.

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

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_dispose):
	  Cast lock macro parameters to make sure we're actually accessing the
	  lock member at the right class level. Free list itself in _dispose()
	  as well and NULL it in case dispose gets called multiple times.

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

	* gst/playback/gstdecodebin2.c:
	(gst_decode_bin_dispose),(gst_decode_bin_finalize):
	Free GstDecodeGroups no longer used.
	(gst_decode_group_expose):
	Don't unlock too many times !
	(deactivate_free_recursive):
	Free iterator once we're done with it.
	Fix for recursively deactivating elements (stop at ghostpads).

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

	* gst/playback/gstplaybin.c: (handoff):
	  Fix up caps on the frame buffer before we save it and potentially
	  make it accessible to other threads via g_object_get; also use
	  gst_buffer_replace() instead of gst_mini_object_replace().

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

	* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
	  Make getting the current frame thread-safe.

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

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_finalize),
	(gst_decode_group_new), (gst_decode_group_free):
	Set queues to bigger sizes to cope with HD contents.
	Fix some mutex freeing and add comment about MT safe methods.

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

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_src_event),
	(gst_text_overlay_text_event):
	  Don't unnecessarily ref (and then leak) upstream events if the text
	  pad is not linked. Fixes #399948.

	* tests/check/gst-plugins-base.supp:
	  Add suppression for pango on edgy/x86 for textoverlay test.

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

	* gst-libs/gst/rtp/gstrtpbuffer.h:
	Add some more fixed payloads.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_read_chain):
	  Error out properly if we get an error from libogg while reading the
	  BOS page(s). Fixes crash parsing 'fuzzed' ogg file (#399340).

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

	* gst/playback/gstdecodebin2.c: (gst_decode_bin_finalize):
	  Don't leak mutex.

	* tests/check/elements/playbin.c:
	(test_sink_usage_video_only_stream),
	(test_suburi_error_unknowntype), (test_suburi_error_invalidfile),
	(test_suburi_error_wrongproto), (test_missing_urisource_handler),
	(test_missing_suburisource_handler),
	(test_missing_primary_decoder), (playbin_suite):
	  Run all tests once with decodebin and once with decodebin2.
	  One test does not pass yet with decodebin2.

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

	* ext/ogg/gstoggmux.c: (all_pads_eos), (gst_ogg_mux_collected):
	Fix the cases where oggmux doesn't properly figure out that all
	sinkpads have gone EOS, and therefore doesn't push out the remaining
	buffers and the final EOS event.
	Fixes #363379

2007-01-23  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
	Don't lock on navigation event push, just on keysym to string.
	Fixes #397673 again.

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

	* gst/playback/gstdecodebin2.c: (gst_decode_group_new),
	(get_current_group), (group_demuxer_event_probe),
	(gst_decode_group_expose), (deactivate_free_recursive),
	(gst_decode_group_free):
	Cleanups.
	Don't forget to emit 'no-more-pads' once a group is exposed.
	Cleanup elements from a DecodeGroup once we remove it.
	Protect call to gst_decode_group_expose() with the decodebin lock.

2007-01-22  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
	Looking at Xorg code i can't figure out if that XKeysymToString
	function is thread sensible or not. Lock it just in case as
	recommended by Radek Doulik <rodo at ximian dot com>.

2007-01-22  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
	Lock that X Call as well. Fixes #397673.

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

	* gst/typefind/gsttypefindfunctions.c: (mpeg4_video_type_find):
	  Don't go into an endless loop if the file starts with 00 00 01 2X,
	  like quicktime redirect files might. Fixes #396042.

	* tests/check/Makefile.am:
	* tests/check/gst/.cvsignore:
	* tests/check/gst/typefindfunctions.c: (GST_START_TEST),
	(typefindfunctions_suite):
	  Add unit test for the above.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  On second thought, use "depth" field rather than "bpp" field.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Camtasia caps apparently need a bpp field (#398875).

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

	* gst/playback/gstplaybasebin.c: (setup_subtitle),
	(gen_source_element), (gst_play_base_bin_change_state):
	  Attempt at a better error message in case we don't have the required
	  URI handler installed; post missing-plugin message also when we're
	  missing an URI handler for the subtitle URI; clean up properly also
	  when an error occurs and we never made it to PAUSED state.

	* tests/check/elements/playbin.c: (GST_START_TEST),
	(playbin_suite):
	  Check that we're also getting a missing-plugin messsage for a
	  missing subtitle URI handler (and clean up properly).

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

	* gst/playback/gstplaybasebin.c: (analyse_source), (setup_source):
	  Plug a few reference leaks.

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

	* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
	  Lower probability a bit if the marker isn't right at the start,
	  to decrease the chance of false positives.

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

	* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
	  Small mpeg2 system stream typefinding improvement: make typefinder
	  probe a bit into the stream instead of just looking for a marker
	  at the beginning. Fixes #397810.

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

	* gst/audioconvert/gstchannelmix.c:
	  Remove compatibility cruft for prehistoric GLib versions.

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

	* gst/playback/Makefile.am:
	* gst/playback/gstdecodebin.c: (close_pad_link):
	* gst/playback/gstdecodebin2.c: (analyze_new_pad):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_handle_message_func), (unknown_type):
	  Let decodebin be the element to post missing-plugin messages for
	  missing decoders (rather than playbin); make playbin implement
	  GstBin::handle_message so we can suppress missing-plugin messages
	  for types we're not handling on purpose (don't want to bring up an
	  installer in those cases).

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	* gst-libs/gst/tag/gstvorbistag.c:
	(gst_tag_list_to_vorbiscomment_buffer):
	* gst/typefind/gsttypefindfunctions.c: (vorbis_type_find):
	  Fix potentially unaligned access (#397207).

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

	* tests/examples/seek/seek.c: (set_scale), (update_scale),
	(do_seek), (stop_seek), (pause_cb), (stop_cb), (loop_toggle_cb),
	(rate_spinbutton_changed_cb), (msg_eos), (msg_segment_done),
	(main):
	  Allow to toggle looping while it plays. Fix callback prototype. Clean
	  up code a bit more. Add copyright header.

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

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	  Red and blue mask was swapped (spotted by Dan Williams).

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

	* gst-libs/gst/tag/gstid3tag.c:
	* gst-libs/gst/tag/gstvorbistag.c:
	  Use new beats-per-minute tag from core.

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

	* po/POTFILES.in:
	  Add new files with translatable strings, so they actually make it
	  into the template file one day.

2007-01-12  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c
	(gst_base_audio_sink_fixate): Implement, stolen from baseaudiosrc.
	(gst_base_audio_sink_activate_pull): Remove the handwavey nego
	stuff, as the base class handles this now. Actually tell the ring
	buffer to start.
	(gst_base_audio_sink_callback): Cast the ring buffer correctly.
	How did this work before? Maybe I'm not as awesome a programmer as
	I think.

	* gst-libs/gst/audio/gstbaseaudiosrc.c
	(gst_base_audio_src_fixate): Rework as a basesrc vmethod instead
	of a pad function.

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

	* gst-libs/gst/utils/missing-plugins.c: (copy_and_clean_caps):
	  Remove more fields so that the application can better blacklist
	  formats that have been tried before.

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

	* gst-libs/gst/audio/mixerutils.h:
	  Add G_BEGIN_DECLS and G_END_DECLS guards so these helpers can be
	  used when compiling with c++ compilers as well.

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

	* gst/typefind/gsttypefindfunctions.c:
	  Fix comment.

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

	* gst/playback/gstplaybin.c: (post_missing_element_message),
	(gen_video_element), (gen_text_element), (gen_audio_element),
	(gen_vis_element):
	  Post missing-plugin messages also when we error out because
	  converters, textoverlay or auto*sinks are missing (#161922).

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

	* gst/playback/gstdecodebin.c: (dynamic_add), (close_pad_link),
	(is_demuxer_element), (new_caps):
	* gst/playback/gstplaybasebin.c: (source_new_pad):
	Fix the case where we try to ref a NULL element when we delay a link
	because of unfixed caps.
	Set the state of autoplugged decodebins to PAUSED.
	RTSP now works in playbin, we can remove it from the blacklist.

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

	* gst/playback/Makefile.am:
	* gst/playback/gstplaybasebin.c: (string_arr_has_str),
	(unknown_type), (setup_subtitle), (gen_source_element):
	* gst/playback/gstplaybin.c: (plugin_init):
	  Post missing-plugin messages on the bus for missing sources and
	  missing decoders/demuxers/depayloaders; fix error code used when
	  we're missing an URI handler source; for media types that we are not
	  handling on purpose at the moment, don't print "don't know how to
	  handle xyz" messages to the terminal or post missing-plugin
	  messages on the bus.

	* tests/check/elements/playbin.c: (create_playbin),
	(GST_START_TEST), (gst_codec_src_uri_get_type),
	(gst_codec_src_uri_get_protocols), (gst_codec_src_uri_get_uri),
	(gst_codec_src_uri_set_uri), (gst_codec_src_uri_handler_init),
	(gst_codec_src_init_type), (gst_codec_src_base_init),
	(gst_codec_src_create), (gst_codec_src_class_init),
	(gst_codec_src_init), (plugin_init), (playbin_suite):
	  Add some tests for the missing-plugin stuff.

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

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/utils/Makefile.am:
	* gst-libs/gst/utils/base-utils.c: (gst_base_utils_init):
	* gst-libs/gst/utils/base-utils.h:
	* gst-libs/gst/utils/descriptions.c: (format_info_get_desc),
	(find_format_info), (caps_are_rtp_caps),
	(gst_base_utils_get_source_description),
	(gst_base_utils_get_sink_description),
	(gst_base_utils_get_decoder_description),
	(gst_base_utils_get_encoder_description),
	(gst_base_utils_get_element_description),
	(gst_base_utils_add_codec_description_to_tag_list),
	(gst_base_utils_get_codec_description), (gst_base_utils_list_all):
	* gst-libs/gst/utils/descriptions.h:
	* gst-libs/gst/utils/missing-plugins.c:
	(missing_structure_get_type), (copy_and_clean_caps),
	(gst_missing_uri_source_message_new),
	(gst_missing_uri_sink_message_new),
	(gst_missing_element_message_new),
	(gst_missing_decoder_message_new),
	(gst_missing_encoder_message_new),
	(missing_structure_get_string_detail),
	(missing_structure_get_caps_detail),
	(gst_missing_plugin_message_get_installer_detail),
	(gst_missing_plugin_message_get_description),
	(gst_is_missing_plugin_message):
	* gst-libs/gst/utils/missing-plugins.h:
	  API: add new libgstbaseutils library with functions
	  - to create and parse missing-plugins messages
	  - that provide (translated) descriptions for caps/decoders/sources/etc.
	  Closes #392393.

	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
	* pkgconfig/gstreamer-plugins-base.pc.in:
	  Add new lib.

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	  Generate docs for new lib and API.

	* tests/check/Makefile.am:
	* tests/check/libs/.cvsignore:
	* tests/check/libs/utils.c: (missing_msg_check_getters),
	(GST_START_TEST), (libgstbaseutils_suite):
	  Add some basic unit tests.

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

	* ext/ogg/Makefile.am:
	  Dist gstoggdemux.h to fix 'make distcheck'.

	* sys/v4l/Makefile.am:
	  Fix 'make distcheck' even more.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* ext/ogg/gstoggdemux.c: (gst_ogg_page_copy), (gst_ogg_page_free),
	(gst_ogg_pad_query_types), (gst_ogg_pad_submit_page),
	(gst_ogg_chain_reset), (gst_ogg_chain_new_stream),
	(gst_ogg_demux_perform_seek):
	* ext/ogg/gstoggdemux.h:
	Added docs.
	Add some more comments.
	Small cleanups.

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

	* ext/theora/theoradec.c:
	* ext/vorbis/vorbisdec.c:
	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_commit_full):
	* gst-libs/gst/audio/gstringbuffer.h:
	* gst-libs/gst/rtp/gstrtpbuffer.c:
	* gst-libs/gst/tag/gstvorbistag.c:
	Small documentation updates/fixes

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

	* configure.ac:
	  Require core CVS HEAD for Andy's basesrc/sink API additions.

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

	Patch by: Günter Thelen  <daedalus dot inc at gmx net>

	* gst/typefind/gsttypefindfunctions.c: (flac_type_find),
	(plugin_init):
	  Add typefinder for flac-in-ogg in conformance with the ogg-mapping
	  on flac.sf.net (there appear to be other versions of the first
	  ogg page in the wild) (#391365).

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

	* configure.ac:
	  Check if localtime_r() is available.

	* ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time):
	  If localtime_r() is not available, fall back to localtime(). Should
	  fix build on MingW (#393310).

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

	* gst/subparse/gstsubparse.c: (parse_mdvdsub):
	* gst/subparse/gstsubparse.h:
	  Remove spurious 1000 subtrahend when calculating the timestamp from
	  the frame number and the frame rate . Also, use the frames/second
	  value specified in the first line of the file, if one is specified
	  there. Should fix #357503.

	* tests/check/elements/subparse.c: (do_test),
	(test_tmplayer_do_test), (test_microdvd_do_test), (GST_START_TEST),
	(subparse_suite):
	  Add some basic unit tests for the microdvd subtitle format.

2007-01-07  Julien MOUTTE  <julien@moutte.net>

	Patch by: Young-Ho Cha <ganadist at chollian dot net>

	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimage_buffer_finalize), (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_xvimage_put), (gst_lookup_xv_port_from_adaptor),
	(gst_xvimagesink_get_xv_support), (gst_xvimagesink_setcaps),
	(gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_set_event_handling),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	Fixes: #390076.
	Add an adaptor property to select a specific XV adaptor.
	* sys/xvimage/xvimagesink.h:

2007-01-07  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
	(gst_ximagesink_handle_xerror), (gst_ximagesink_ximage_new),
	(gst_ximagesink_ximage_destroy), (gst_ximagesink_ximage_put),
	(gst_ximagesink_handle_xevents), (gst_ximagesink_setcaps),
	(gst_ximagesink_change_state), (gst_ximagesink_set_xwindow_id),
	(gst_ximagesink_expose), (gst_ximagesink_set_event_handling):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimage_buffer_finalize), (gst_xvimagesink_handle_xerror),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_handle_xevents), (gst_xvimagesink_setcaps),
	(gst_xvimagesink_change_state), (gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_expose), (gst_xvimagesink_set_event_handling):
	Use flow_lock much more to protect every access to xwindow.
	Try to catch erros while creating images in case some drivers are
	just generating an XError when the requested image is too big.
	Should fix : #354698, #384008, #384060.
	* tests/icles/stress-xoverlay.c: (cycle_window), (create_window):
	Implement some stress testing of setting window xid.

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

	* win32/common/libgsaudio.def:
	  Add new exported function.
	* win32/common/libgstogg.dsp:
	  Add gstoggaviparse.c to the build.
	* win32/common/libgstvideoscale.dsp:
	  Add vs_4tap.c to the build.
	* win32/common/libgstvorbis.dsp:
	  Add vorbistag.c to the build.
	
2007-01-06  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c
	(gst_base_audio_sink_class_init)
	(gst_base_audio_sink_init): 
	(gst_base_audio_sink_activate_pull): Add an activate_pull function
	to baseaudiosink, and tell basesink that we can work in pull mode.
	This way the ring buffer thread drives the pipeline directly, if
	pull mode is possible. There is some lingering nastiness regarding
	capsnego, however.
	(gst_base_audio_sink_callback): Implement the callback to pull
	data. This interface is a bit light, though -- it should get a
	GstFlowReturn return value at least.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_stream_out):
	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	* gst/playback/gstdecodebin2.c:
	(gst_decode_group_check_if_blocked):
	  Printf format and missing argument fixes.

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

	* ext/ogg/gstogmparse.c: (gst_ogm_parse_stream_header),
	(gst_ogm_parse_change_state):
	Activate pads before adding them to the element.

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

	* tests/examples/seek/scrubby.c: (main):
	* tests/examples/seek/seek.c: (main):
	  Call g_thread_init() first thing in main() (see #391278).

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

	* tests/check/Makefile.am:
	* tests/check/libs/.cvsignore:
	* tests/check/libs/netbuffer.c: (GST_START_TEST),
	(netbuffer_suite):
	  Add test for GstNetBuffer + gst_buffer_copy(). Disabled
	  for the time being, since it's broken, see #393099.

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

	* tests/check/Makefile.am:
	  Update to use GST_PLUGINS_BASE_CFLAGS as well.

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

	* configure.ac:
	  split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS
	  so that GST_BASE_CFLAGS can go inbetween them, making sure
	  we use uninstalled gst-libs headers
	* docs/libs/Makefile.am:
	* ext/alsa/Makefile.am:
	* ext/cdparanoia/Makefile.am:
	* ext/gnomevfs/Makefile.am:
	* ext/libvisual/Makefile.am:
	* ext/ogg/Makefile.am:
	* ext/theora/Makefile.am:
	* ext/vorbis/Makefile.am:
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/cdda/Makefile.am:
	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/riff/Makefile.am:
	* gst-libs/gst/rtp/Makefile.am:
	* gst-libs/gst/tag/Makefile.am:
	* gst/adder/Makefile.am:
	* gst/audioconvert/Makefile.am:
	* gst/audiorate/Makefile.am:
	* gst/audioresample/Makefile.am:
	* gst/playback/Makefile.am:
	* gst/tcp/Makefile.am:
	* gst/videoscale/Makefile.am:
	* gst/volume/Makefile.am:
	* sys/ximage/Makefile.am:
	* sys/xvimage/Makefile.am:
	* tests/icles/Makefile.am:
	  adapt

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

	* gst-libs/gst/interfaces/xoverlay.c:
	(gst_x_overlay_handle_events):
	* gst-libs/gst/interfaces/xoverlay.h:
	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new),
	(gst_ximagesink_set_xwindow_id),
	(gst_ximagesink_set_event_handling),
	(gst_ximagesink_xoverlay_init), (gst_ximagesink_set_property),
	(gst_ximagesink_get_property), (gst_ximagesink_init),
	(gst_ximagesink_class_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_new),
	(gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_set_event_handling),
	(gst_xvimagesink_xoverlay_init), (gst_xvimagesink_set_property),
	(gst_xvimagesink_get_property), (gst_xvimagesink_init),
	(gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h:
	* tests/icles/stress-xoverlay.c: (toggle_events), (create_window):
	Add a method to the XOverlay interface to allow disabling of 
	event handling in x[v]imagesink elements. This will let X events
	propagate to parent windows which can be usefull in some cases.
	Be carefull that the application is then responsible of pushing
	navigation events and expose events to the video sink.
	Fixes: #387138.

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

	* gst-libs/gst/tag/gstvorbistag.c:
	* tests/check/libs/tag.c: (GST_START_TEST):
	  Add vorbistag <=> GStreamer tag mapping for GST_TAG_LOCATION
	  (fixes #392070).

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

	* configure.ac:
	* docs/Makefile.am:
	* docs/design/Makefile.am:
	  Dist design docs.

2006-12-27  Julien MOUTTE  <julien@moutte.net>

	* docs/libs/gst-plugins-base-libs-sections.txt: Fix a documentation
	typo. Fixes: #390063.

2006-12-27  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_setcaps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps): Plug a
	caps leak.
	* win32/common/config.h: Updated.

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

	* tests/check/elements/gdpdepay.c: (cleanup_gdpdepay),
	(setup_gdpdepay_streamheader):
	* tests/check/elements/gdppay.c: (cleanup_gdppay),
	(setup_gdppay_streamheader):
	  Fix the dp tests, but activating the pads for the streamheader tests
	  too and cleaning up conditionaly

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

	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c: (img_convert),
	(img_get_alpha_info):
	Add 2 new caps arrangements, for 24-bit RGB and BGR in 32-bits, but at the
	other end of the word. Fixes: #387073.

	Add some inconsequential branch hints in a couple of places.

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

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_smpfmt):
	  The "signed" field in raw audio caps is of boolean type, trying to
	  extract the value with _get_int() will fail (fix to keep in sync with
	  the copy in gst-ffmpeg)

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

	* tests/check/elements/audioresample.c: (cleanup_audioresample):
	* tests/check/elements/audiotestsrc.c: (cleanup_audiotestsrc):
	* tests/check/elements/gdpdepay.c: (setup_gdpdepay),
	(cleanup_gdpdepay):
	* tests/check/elements/gdppay.c: (setup_gdppay), (cleanup_gdppay):
	* tests/check/elements/subparse.c: (teardown_subparse):
	* tests/check/elements/textoverlay.c: (cleanup_textoverlay):
	* tests/check/elements/videorate.c: (cleanup_videorate):
	* tests/check/elements/videotestsrc.c: (cleanup_videotestsrc):
	* tests/check/elements/volume.c: (cleanup_volume):
	* tests/check/elements/vorbisdec.c: (setup_vorbisdec),
	(cleanup_vorbisdec):
	* tests/check/elements/vorbistag.c: (setup_vorbistag),
	(cleanup_vorbistag):
	  consistent pad (de)activation

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

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Forgot to register the extensions.

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

	* gst/typefind/gsttypefindfunctions.c: (vivo_type_find),
	(plugin_init):
	  Add typefinder for VIVO files (my christmas present to the 90s).

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

	* gst/playback/gstdecodebin.c: (type_found):
	  Special-case the text/plain media type: we only want to recognise it
	  as a 'raw' decoded media type if it comes from a demuxer or subtitle
	  parser, but not if the entire stream is of text/plain type. If the
	  entire stream is text/plain, we should just error out.

	  This fixes playback of audio files with lyrics in totem. Totem can't
	  distinguish between text files and subtitle files and passes any
	  .txt file with the same basename as the main file to playbin as
	  suburi, and playbin will then throw a 'subtitle found, but no video
	  stream' error, which isn't entirely helpful. See #380342.

	  Also, with this change we'll show a slightly more correct error
	  message in case totem passes a playlist file to us (although a
	  custom error message wording instead of the default text would
	  probably not be a bad idea either).

	  Same problem also needs to be fixed for playbin+decodebin2.

	* tests/check/Makefile.am:
	* tests/check/elements/decodebin.c: (src_handoff_cb),
	(decodebin_new_decoded_pad_cb), (GST_START_TEST),
	(decodebin_suite):
	  Add simple unit test for decodebin for the above.

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

	* gst/playback/gstdecodebin.c: (gst_decode_bin_change_state):
	* gst/playback/gstdecodebin2.c: (gst_decode_bin_change_state):
	  Refuse to change state to READY when we failed to create any of the
	  required elements in our instance init function.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	  Small docs fixes/updates.

	* gst-libs/gst/video/gstvideosink.h:
	  Remove nonfunctional GST_VIDEO_SINK_CLOCK macro which is a leftover
	  from the 0.9 days (GST_BASE_SINK_CLOCK, which it points to, was
	  removed from the base sink API between 0.9.6 and 0.9.7).
	  API: add GST_VIDEO_SINK_CAST and use it for the height/width
	  accessor macros, so we don't do a runtime GObject type check every
	  time we use them.

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

	* Makefile.am:
	* gst-plugins-base.doap:
	* gst-plugins-base.spec.in:
	  add doap file

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

	Patch by: Jens Granseuer <jensgr at gmx net>

	* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create):
	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_audio_payload_handle_frame_based_buffer),
	(gst_base_rtp_audio_payload_handle_sample_based_buffer):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_fixate):
	  Declare variables at the beginning of a block. Fixes #383195.

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

	* configure.ac:
	Bump version nano - back to CVS.


=== release 0.10.11 ===

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

	* configure.ac:
	  releasing 0.10.11, "Dumb things"

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

	* gst/playback/gstdecodebin.c: (find_dynamic), (dynamic_add),
	(close_pad_link), (elem_is_dynamic), (unlinked), (close_link):
	Handle the case where an element has multiple pads with 
	unfixed caps as well as still possibly producing more dynamic 
	pads by storing each case as a distinct entry in the dynamic list.
	Fixes #38223 again.

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

	* gst/playback/gstdecodebin.c: (close_pad_link):
	Fix #382223, add more dynamic caps handling.

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

	* gst-libs/gst/audio/gstringbuffer.h:
	* gst-libs/gst/netbuffer/gstnetbuffer.c: (gst_netbuffer_init),
	(gst_netaddress_set_ip4_interface),
	(gst_netaddress_set_ip6_interface), (gst_netaddress_set_loopback),
	(gst_netaddress_set_ttl), (gst_netaddress_get_ip4_interface),
	(gst_netaddress_get_ip6_interface), (gst_netaddress_get_loopback),
	(gst_netaddress_get_ttl):
	* gst-libs/gst/netbuffer/gstnetbuffer.h:
	* gst/playback/gstdecodebin.c: (close_pad_link):
	* tests/examples/seek/seek.c: (end_scrub), (end_seek), (do_seek),
	(seek_cb), (stop_seek), (rate_spinbutton_changed_cb):
	* win32/common/config.h:

2006-12-01  Michael Smith  <msmith@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain):
	  Delete bad debug code.
	  Fixes #381219

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

	* gst/videoscale/vs_4tap.c:
	* win32/MANIFEST:
	* win32/common/config.h:
	* win32/vs8/libgstvideoscale.vcproj:
	Fix compilation on win32 under VS8
	Patch by: Sergey Scobich <sergey dot scobich at gmail dot com>
	Partially fixes #381175

2006-11-30  Michael Smith  <msmith@fluendo.com>

	* tests/check/pipelines/theoraenc.c: (check_buffer_granulepos),
	(GST_START_TEST):
	  It would be very bad if, after a discont buffer, we thought every
	  single following buffer was also discont. So, add to the test to
	  ensure that this isn't the case.
	  
	* ext/theora/theoraenc.c: (theora_enc_is_discontinuous):
	  ... it was the case. So fix it.

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

	* gst/playback/gstplaybasebin.c: (check_queue_event):
	Improve debug.

	* gst/videoscale/gstvideoscale.c: (gst_video_scale_transform_caps):
	Fix width and height range from 16 - 4096 to 1 - MAXINT, just like the
	padtemplate caps. Refixes #357577.

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

	* gst/playback/gstplaybasebin.c: (check_queue_event),
	(queue_threshold_reached), (queue_out_of_data),
	(gen_preroll_element):
	Add event probe to see when EOS is in a queue and we can disable the
	underrun signals. Fixes #357577.

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

	* gst/playback/Makefile.am:
	* gst/playback/gstdecodebin2.c: (gst_decode_bin_get_type),
	(_gst_boolean_accumulator), (gst_decode_bin_class_init),
	(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
	(gst_decode_bin_init), (gst_decode_bin_dispose),
	(gst_decode_bin_finalize), (gst_decode_bin_set_property),
	(gst_decode_bin_get_property), (gst_decode_bin_set_caps),
	(gst_decode_bin_get_caps), (gst_decode_bin_autoplug_continue),
	(gst_decode_bin_autoplug_sort), (analyze_new_pad), (connect_pad),
	(connect_element), (expose_pad), (type_found),
	(pad_added_group_cb), (pad_removed_group_cb),
	(no_more_pads_group_cb), (pad_added_cb), (pad_removed_cb),
	(no_more_pads_cb), (find_compatibles), (is_demuxer_element),
	(are_raw_caps), (multi_queue_overrun_cb),
	(multi_queue_underrun_cb), (gst_decode_group_new),
	(get_current_group), (group_demuxer_event_probe),
	(gst_decode_group_control_demuxer_pad),
	(gst_decode_group_control_source_pad),
	(gst_decode_group_check_if_blocked),
	(gst_decode_group_check_if_drained), (gst_decode_group_expose),
	(gst_decode_group_hide), (gst_decode_group_free),
	(gst_decode_group_set_complete), (source_pad_blocked_cb),
	(source_pad_event_probe), (gst_decode_pad_new), (add_fakesink),
	(remove_fakesink), (find_sink_pad), (gst_decode_bin_change_state),
	(plugin_init):
	New decodebin2 element.
	Closes #370092
	* gst/playback/gstplay-marshal.list:
	Added marshallers for new signals in decodebin2
	* gst/playback/gstplaybasebin.c: (setup_subtitle), (make_decoder):
	Use decodebin2 if *and only if* the USE_DECODEBIN2 environment variable
	is set.

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

	* gst/playback/gstplaybasebin.c: (setup_source),
	(gst_play_base_bin_change_state):
	Disable rtsp:// uris for the release, it's not good enough yet.
	Remove unused var.

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

	* ext/theora/theoradec.c: (gst_theora_dec_reset),
	(theora_dec_push_forward), (theora_dec_push_reverse),
	(theora_handle_data_packet), (theora_dec_decode_buffer),
	(theora_dec_flush_decode), (theora_dec_chain_reverse),
	(theora_dec_chain_forward), (theora_dec_chain):
	Implement reverse playback.

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
	(vorbis_dec_decode_buffer), (vorbis_dec_flush_decode),
	(vorbis_dec_chain_forward):
	Clear buffers used for reverse playback in _reset.
	No need to set the eos flag, we clip samples using the segment.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_page_copy), (gst_ogg_page_free),
	(gst_ogg_pad_init), (gst_ogg_pad_dispose), (gst_ogg_pad_reset),
	(gst_ogg_pad_stream_out), (gst_ogg_pad_submit_page),
	(gst_ogg_chain_reset), (gst_ogg_demux_perform_seek):
	Some cleanups.
	Handle continued pages in reverse mode.

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

	* ext/vorbis/vorbisdec.c: (vorbis_dec_push_forward),
	(vorbis_handle_data_packet), (vorbis_dec_decode_buffer),
	(vorbis_dec_flush_decode):
	Small cleanups.
	Don't try to add invalid timestamps.
	Clipping will unref the buffer.

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

	* gst/adder/gstadder.h:
	* gst/audiotestsrc/gstaudiotestsrc.h:
	  remove obsolete _factory_init protos

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

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_buffer_alloc):
	  Fix spacing in debug message.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_page),
	(gst_ogg_demux_chain):
	Don't just ignore return values from _pad_push().
	Small debug improvements.

2006-11-23  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_process_best_pad):
	  If our incoming buffer is marked as DISCONT, then increment the page
	  number (so that the discontinuity is marked in the final ogg
	  bitstream) and flush the previous page.

2006-11-22  Michael Smith  <msmith@fluendo.com>

	* ext/theora/gsttheoraenc.h:
	* ext/theora/theoraenc.c: (gst_theora_enc_init),
	(theora_enc_reset), (theora_enc_clear), (theora_enc_sink_setcaps),
	(theora_buffer_from_packet), (theora_enc_is_discontinuous),
	(theora_enc_chain), (theora_enc_change_state):
	  Mark discontinuities of > 3/4 of a frame, reinit encoder.

	* tests/check/pipelines/theoraenc.c: (check_buffer_granulepos),
	(GST_START_TEST), (theoraenc_suite):
	  Enable discontinuity test, fix it.

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

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
	(gst_text_overlay_text_pad_unlink), (gst_text_overlay_text_event),
	(gst_text_overlay_video_event), (gst_text_overlay_pop_text),
	(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
	(gst_text_overlay_change_state):
	* ext/pango/gsttextoverlay.h:
	  Some textoverlay fixes: for one, in the video chain function,
	  actually wait for a text buffer to come in if there is none at the
	  moment and there should be one; also, deal more gracefully with
	  incoming buffers that do not have a timestamp or duration; discard
	  text buffer when not needed any longer. Fixes #341681.

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/textoverlay.c:
	(notgst_check_setup_src_pad2), (notgst_check_teardown_src_pad2),
	(setup_textoverlay), (buffer_is_all_black), (create_black_buffer),
	(create_text_buffer), (cleanup_textoverlay), (GST_START_TEST),
	(test_video_waits_for_text_send_text_newsegment_thread),
	(test_video_waits_for_text_shutdown_element),
	(test_render_continuity_push_video_buffers_thread),
	(textoverlay_suite):
	  Add some unit tests for textoverlay.

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

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset):
	  Avoid integer underflow when the found probability for mp3 is
	  smaller than the 'penalty' we subtract if there's not a clean
	  mp3 header sync at offset 0.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	  Add some new symbols to the docs

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

	* tests/check/Makefile.am:
	* tests/check/elements/ffmpegcolorspace.c:
	(ffmpegcolorspace_suite):
	  Enable ffmpegcolorspace test now that the RGBA32 issue is fixed
	  (for now not for valgrinding though, since it takes too long).

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

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps):
	Fix RGBA32 caps. Fixes #357038.

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

	* gst-libs/gst/interfaces/mixertrack.h:
	  Add FIXME so we can add some padding here in 0.11

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

	* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
	  Fix GstBaseRTPAudioPayload structure so the whole GObject
	  inheritance business actually works (parent class instance structure
	  must always come first in the derived class instance structure).

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

	* gst/videotestsrc/Makefile.am:
	* tests/check/Makefile.am:
	  Make sure our checks and the videotestsrc plugin link against the
	  local uninstalled gst libs and not any installed gst libs that
	  might happen to exist as well.

	* tests/check/elements/adder.c: (message_received),
	(test_event_message_received), (test_play_twice_message_received):
	* tests/check/elements/ffmpegcolorspace.c: (GST_START_TEST):
	  Fix compiler warnings when compiling against core with disabled
	  debugging system.

2006-11-16  Michael Smith  <msmith@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_reset),
	(gst_audio_rate_sink_event), (gst_audio_rate_chain):
	  Fix audiorate, so that it accurately sets offsets and timestamps.
	  Doesn't change the fundamental algorithmic decisions; so should be
	  safe.

	* tests/check/Makefile.am:
	  Enable audiorate test now that it passes.

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

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state):
	  clear xv when going to NULL, remove // commented non-existant proto

	* tests/examples/seek/seek.c: (main):
	  add missing tooltip description for scrub and play_scrub

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

	* configure.ac:
	  Bump liboil requirement to 0.3.8.
	* gst-libs/gst/riff/riff-media.c:
	  Add Dirac fourcc.
	* gst/videoscale/vs_image.h:
	* gst/videoscale/vs_scanline.h:
	  Use liboil's stdint.h.
	* gst/videotestsrc/videotestsrc.c:
	  Remove liboil related ifdef's, since they aren't needed now, and
	  won't work with future versions.

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

	* gst/videoscale/Makefile.am:
	* gst/videoscale/gstvideoscale.c:
	* gst/videoscale/gstvideoscale.h:
	* gst/videoscale/vs_4tap.c:
	* gst/videoscale/vs_4tap.h:
	* gst/videoscale/vs_image.c:
	* gst/videoscale/vs_image.h:
	* gst/videoscale/vs_scanline.c:
	* gst/videoscale/vs_scanline.h:
	  Add a 4-tap image scaler.  Theoretically looks much prettier.
	  The tap calculation could use some improvement.

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

	Patch by: Jan David Mol <j dot j dot d dot mol at tudelft dot nl>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_parse_strf_auds),
	(gst_riff_parse_strf_iavs):
	* gst/subparse/gstsubparse.c: (convert_encoding):
	* gst/tcp/gstmultifdsink.c:
	(gst_multi_fd_sink_handle_client_write):
	* gst/tcp/gsttcp.c: (gst_tcp_socket_write), (gst_tcp_socket_read),
	(gst_tcp_read_buffer), (gst_tcp_gdp_read_caps),
	(gst_tcp_gdp_write_buffer), (gst_tcp_gdp_write_caps):
	* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_render):
	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new):
	Various gsize and gssize printf fixes. Fixes #372507.

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

	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_dec_push_forward), (vorbis_dec_push_reverse),
	(vorbis_handle_data_packet), (vorbis_dec_decode_buffer),
	(vorbis_dec_flush_decode), (vorbis_dec_chain_reverse),
	(vorbis_dec_chain_forward), (vorbis_dec_chain):
	* ext/vorbis/vorbisdec.h:
	First stab at vorbis reverse playback.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_event), (gst_base_audio_sink_render):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	Make the clock sync code more accurate wrt resampling and playback
	at different rates.
	
	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_commit_full), (gst_ring_buffer_commit):
	* gst-libs/gst/audio/gstringbuffer.h:
	Use better algorithm to interpolate sample rates. 

2006-11-13  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_page):
	  Improve a debug line slightly.

	* ext/ogg/gstogmparse.c: (gst_ogm_parse_plugin_init):
	  Call gst_riff_init() in plugin_init, to avoid getting errors from
	  the debug system (unrelated changes to another plugin made this turn
	  up; not sure why).

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

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

	* win32/common/libgsttag.def:
	  Add missing symbol (#366492).

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

	* gst/playback/gststreamselector.c: (gst_stream_selector_dispose):
	  Don't unref a NULL pad.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_page),
	(gst_ogg_demux_get_prev_page), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_handle_page), (gst_ogg_demux_chain),
	(gst_ogg_demux_loop_forward), (gst_ogg_demux_loop_reverse),
	(gst_ogg_demux_loop):
	Implement first stab at reverse playback.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_video_template_caps):
	  add h263/h264 variants to the caps, Fixes #363118

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

	* gst-libs/gst/audio/gstaudiosink.c: (audioringbuffer_thread_func):
	* gst-libs/gst/audio/gstaudiosrc.c: (audioringbuffer_thread_func):
	  Use g_strerror instead of strerror so we get UTF-8.

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

	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggmux.c:
	  Add/remove KW-DIRAC header here, since it is ogg-specific.

2006-11-03  Michael Smith  <msmith@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (mpeg4_video_type_find):
	  Recognise more mpeg4 elementary video streams.

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

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset):
	Lower the probability of mp3 typefinding functions if we don't find a
	valid mp3 header at the start of the file.
	Closes #369482

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

	* ext/theora/gsttheoradec.h:
	* ext/theora/theoradec.c: (gst_theora_dec_init),
	(theora_dec_sink_event), (theora_dec_chain_forward),
	(theora_dec_flush_decode), (theora_dec_chain_reverse),
	(theora_dec_chain):
	Document and partially implement an algorithm for doing reverse playback
	of theora video.

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

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

	* win32/common/config.h:
	* win32/common/interfaces-enumtypes.c:
	* win32/common/libgsttag.def:
	* win32/vs8/gst-plugins-base.sln:
	* win32/vs8/libgstaudioresample.vcproj:
	* win32/vs8/libgstinterfaces.vcproj:
	* win32/vs8/libgstogg.vcproj:
	* win32/vs8/libgstriff.vcproj:
	* win32/vs8/libgsttag.vcproj:
	* win32/vs8/libgsttheora.vcproj:
	* win32/vs8/libgstvideoscale.vcproj:
	* win32/vs8/libgstvorbis.vcproj:
	  Misc. VS8 build fixes: fix syntax in config.h, add missing entries
	  to libgsttag.def; add missing dependencies for some vs8 projects;
	  re-arrange placement of .def files in vs8 projects (#366334).

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

	* ext/ogg/gstogg.c:
	  Remove unused variable.

	* ext/ogg/gstoggdemux.c:
	  Fix Wim's surname in plugin description.

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

	* gst-plugins-base.spec.in:
	spec new .h file. Fixes #368310.

2006-10-31  Michael Smith  <msmith@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_add_full),
	(gst_multi_fd_sink_remove), (gst_multi_fd_sink_clear),
	(gst_multi_fd_sink_get_stats),
	(gst_multi_fd_sink_remove_client_link),
	(gst_multi_fd_sink_queue_buffer),
	(gst_multi_fd_sink_handle_clients):
	* gst/tcp/gstmultifdsink.h:
	  Make using the remove or clear signals threadsafe.
	  Make calling get-stats with an invalid fd not segfault.
	  Fixes 368273.

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

	* gst-libs/gst/rtp/Makefile.am:
	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	(gst_base_rtp_audio_payload_init):
	Fix and activate base audio payloader.

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

	* gst/typefind/gsttypefindfunctions.c: (qtif_type_find),
	(plugin_init):
	  Add typefinder for QuickTime Image Files (see #366156).

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

	* gst/audioresample/gstaudioresample.c: (gst_audioresample_init):
	  Another typo fix (#366212).

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

	* gst/volume/gstvolume.c: (volume_transform_ip):
	Use stream time to synchronize volume property instead of rather random
	timestamps. This is needed when gnonlin does its time shifting.

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

	Patch by: Mark Nauwelaerts <manauw at skynet dot be>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_release_pad):
	Remove the pad from the element in release_pad. Fixes #364812.

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

	* sys/ximage/ximagesink.c: (gst_ximagesink_get_type):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_type):
	  Explicitly create our custom buffer classes at a thread-safe
	  location as well, since g_type_class_ref() doesn't seem to be
	  entirely thread-safe either (#365501; also see #349410).

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

	* gst-libs/gst/riff/riff-read.c: (freeform_string_to_utf8),
	(gst_riff_parse_info):
	  If strings in INFO chunk are not UTF-8, do something similar to
	  what we do for ID3v1 tags: check a number of environment variables
	  (GST_AVI_TAG_ENCODING, GST_RIFF_TAG_ENCODING, GST_TAG_ENCODING) for
	  character sets to try, otherwise try the current locale and/or fall
	  back on ISO-8859-1. Fixes #360552.

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

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_video_test_src_pattern_get_type),
	(gst_video_test_src_set_pattern):
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.c: (gst_video_test_src_checkers1),
	(gst_video_test_src_checkers2), (gst_video_test_src_checkers4),
	(gst_video_test_src_checkers8):
	* gst/videotestsrc/videotestsrc.h:
	  Add a bunch of exciting new checkers patterns.

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

	* gst/subparse/Makefile.am:
	* gst/subparse/gstsubparse.c:
	(gst_sub_parse_data_format_autodetect),
	(gst_sub_parse_format_autodetect), (handle_buffer),
	(gst_sub_parse_chain), (gst_subparse_type_find), (plugin_init):
	* gst/subparse/gstsubparse.h:
	* gst/subparse/tmplayerparse.c: (tmplayer_parse_line),
	(parse_tmplayer):
	* gst/subparse/tmplayerparse.h:
	  Add support for TMPlayer-type subtitles (#362845).

	* tests/check/elements/subparse.c: (test_tmplayer_do_test),
	(GST_START_TEST), (subparse_suite):
	  Add some basic unit tests for the above.

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

	* tests/check/elements/audiorate.c: (test_injector_base_init),
	(test_injector_class_init), (test_injector_chain),
	(test_injector_init), (probe_cb), (do_perfect_stream_test),
	(GST_START_TEST), (audiorate_suite):
	  More tests for audiorate: inject buffers to check behaviour when
	  buffers overlap.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/audiorate.c: (probe_cb), (got_buf),
	(do_perfect_stream_test), (GST_START_TEST), (audiorate_suite):
	  Add some basic unit tests for audiorate. Disabled at the moment
	  since it doesn't pass yet (see bug #363119).

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

	* gst/subparse/gstsubparse.c: (subrip_fix_up_markup),
	(parse_subrip), (handle_buffer):
	  Add missing closing tags for markup and fix broken markup,
	  otherwise pango won't render anything (fixes #357531). Also,
	  make sure the text we send out is always NUL-terminated
	  (better safe than sorry etc.).

	* tests/check/elements/subparse.c: (test_srt_do_test),
	(test_srt):
	  Some more tests for .srt incl. tests for the above stuff.

2006-10-20  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put):
	Patch by: Stefan Kost  <ensonic@users.sf.net>
	Try to redraw borders only when needed. Apparently this consumes
	resources on small devices... :-O (#363607)

2006-10-20  Michael Smith  <msmith@fluendo.com>

	* gst/tcp/gstmultifdsink.c:
	(gst_multi_fd_sink_client_queue_buffer):
	  If caps change, then update the client's idea of the caps so that we
	  don't end up re-sending streamheaders for every single buffer after
	  the caps change.

2006-10-20  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggparse.c: (gst_ogg_parse_dispose),
	(gst_ogg_parse_append_header), (gst_ogg_parse_chain):
	  Set caps on pushed buffers; fix up refcounting of caps objects.

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

	* gst/typefind/gsttypefindfunctions.c: (mmsh_type_find),
	(plugin_init):
	  Typefind mmsh header data packet to application/x-mmsh (#362625).

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/subparse.c: (buffer_from_static_string),
	(setup_subparse), (teardown_subparse), (test_srt_do_test),
	(GST_START_TEST), (subparse_suite):
	  Add very simple unit test for subparse.

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

	* gst/subparse/gstsubparse.c: (strip_trailing_newlines),
	(parse_subrip):
	  Strip trailing newlines from subtitle text output.

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

	* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
	(gst_sub_parse_change_state):
	  Fix memleak; clear subparse->textbuf n state change function.

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

	* gst/subparse/gstsubparse.c:
	(gst_sub_parse_data_format_autodetect):
	  Don't require subrip (.srt) files to start with a chunk number of 1.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_event), (gst_base_audio_sink_render):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	Extract rate from the NEWSEGMENT event.
	Use commit_full to also take rate adjustment into account when writing
	samples to the ringbuffer.
	
	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_commit_full), (gst_ring_buffer_commit),
	(gst_ring_buffer_read):
	* gst-libs/gst/audio/gstringbuffer.h:
	Added _commit_full() to also take rate into account.
	Use simple interpolation algorithm to resample audio.
	API: gst_ring_buffer_commit_full()

	* tests/examples/seek/scrubby.c: (speed_cb), (do_seek):
	* tests/examples/seek/seek.c: (segment_done):
	Don't try to seek with 0.0 rate, just pause instead.
	Remove bogus debug line.

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

	* gst/playback/gstplaybasebin.c: (subbin_startup_sync_msg),
	(setup_source):
	  Catch async errors when starting up the subtitle bin, so we can
	  stop waiting and continue with the main film instead of hanging
	  forever. Fixes #339366.

	* tests/check/elements/playbin.c: (playbin_suite):
	  Enable unit test for the above.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/playbin.c: (GST_START_TEST),
	(gst_red_video_src_uri_get_type),
	(gst_red_video_src_uri_get_protocols),
	(gst_red_video_src_uri_get_uri), (gst_red_video_src_uri_set_uri),
	(gst_red_video_src_uri_handler_init),
	(gst_red_video_src_init_type), (gst_red_video_src_base_init),
	(gst_red_video_src_create), (gst_red_video_src_class_init),
	(gst_red_video_src_init), (plugin_init), (playbin_suite):
	  Some small and basic unit tests for playbin; not very useful yet,
	  but at least a start.

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

	* gst/playback/gstplaybin.c: (setup_sinks):
	  The old pad activation spiel.

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

	* gst/playback/gstplaybasebin.c: (setup_source):
	  Don't hang forever if the subbin already fails to start up in 
	  the state change to PAUSED (#339366).

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

	* gst-libs/gst/interfaces/tuner.c: (gst_tuner_list_channels),
	(gst_tuner_set_channel), (gst_tuner_get_channel),
	(gst_tuner_list_norms), (gst_tuner_set_norm), (gst_tuner_get_norm),
	(gst_tuner_set_frequency), (gst_tuner_get_frequency),
	(gst_tuner_signal_strength), (gst_tuner_find_norm_by_name),
	(gst_tuner_find_channel_by_name):
	  Fix some function guards, add some more function guards.

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

	* gst/playback/gstdecodebin.c: (get_our_ghost_pad),
	(remove_element_chain):
	Don't return a pad from get_our_ghost_pad unless it is actually the
	one we want.
	Change a cast in remove_element_chain slightly.

2006-10-13  Julien MOUTTE  <julien@moutte.net>

	* tests/examples/seek/seek.c: (do_seek), (start_seek),
	(rate_spinbutton_changed_cb), (segment_done), (msg_state_changed):
	Segment seeking needs to use the rate and set stop to -1.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_setcaps):
	Don't crash when ringbuffer is not yet created.
	Patch by: Ville Syrjala <ville dot syrjala at movial dot fi>
	Fixes #361634.

	* gst/playback/gstplaybasebin.c: (new_decoded_pad_full):
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_request_new_pad):
	Activate pads befre adding them to running elements.

2006-10-13  Julien MOUTTE  <julien@moutte.net>

	* tests/examples/seek/seek.c: (do_seek), (start_seek),
	(rate_spinbutton_changed_cb), (msg_state_changed): Stop the scale
	updater when we start grabing the slider. Don't wait for the
	pipeline to be PAUSED.

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

	* gst-libs/gst/interfaces/mixer.c: (gst_mixer_list_tracks),
	(gst_mixer_set_volume), (gst_mixer_get_volume),
	(gst_mixer_set_mute), (gst_mixer_set_option),
	(gst_mixer_get_option), (gst_mixer_mute_toggled),
	(gst_mixer_record_toggled), (gst_mixer_volume_changed),
	(gst_mixer_option_changed):
	  Guard mixer interface functions against bogus arguments.

2006-10-12  Julien MOUTTE  <julien@moutte.net>

	* tests/examples/seek/seek.c: (do_seek), (start_seek), (stop_seek),
	(play_cb), (pause_cb), (stop_cb), (rate_spinbutton_changed_cb),
	(msg_state_changed), (main): Use state-changed messages to trigger
	start/stop of scale update timer. Indeed the scale slider was
	jumping here and there because the update timer was activated 
	before seek completed. This fixes instant applying of rate changes
	by pressing the spinbutton like a crazy man !

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

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

	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_init),
	(gst_basertppayload_finalize):
	  Fix two small memory leaks (#361456).

2006-10-10  Julien MOUTTE  <julien@moutte.net>

	* tests/examples/seek/seek.c: (do_seek),
	(rate_spinbutton_changed_cb): When changing spinbutton we try
	to change the rate on the fly.

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

	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	Add WMS caps.

2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	Patch by: Josep Torra Valles <josep@fluendo.com>

	* ext/gnomevfs/gstgnomevfssink.c:
	* ext/gnomevfs/gstgnomevfssrc.c:
	Fix URI interface implementation return type.
	* ext/pango/gsttextoverlay.c: (gst_text_overlay_set_property):
	Fix what looks like a copy/paste issue when assigning values.
	* gst-libs/gst/audio/gstaudiofiltertemplate.c:
	(gst_audio_filter_template_get_type):
	Cast to prevent Forte warnings.
	* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create):
	Fix URI interface implementation return type.
	gst_pad_query_position requires a signed integer pointer as
	3rd parameter, GstClockTime is unsigned.
	* gst/audioconvert/audioconvert.c:
	Fix integer overflow when treated as signed.
	* gst/audioresample/resample.c: (resample_add_input_data):
	Cast to prevent warnings on Forte.
	* gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette):
	Fix integer overflow when treated as signed.
	* gst/ffmpegcolorspace/imgconvert_template.h:
	Fix integer overflow when treated as signed. RGBA_OUT shifts bits.
	* gst/playback/gstdecodebin.c: (queue_filled_cb),
	(cleanup_decodebin):
	Who initialises a guint to -1!
	Cast function pointers to prevent warnings on Forte.
	* gst/playback/gstplaybasebin.c: (queue_deadlock_check),
	(queue_threshold_reached):
	Cast function pointers correctly to prevent warnings on Forte.
	* gst/playback/gststreaminfo.c: (gst_stream_info_dispose):
	Cast function pointers correctly to prevent warnings on Forte.
	* gst/subparse/gstssaparse.c: (gst_ssa_parse_setcaps):
	Obvious change to unsigned, 0xEF > max signed char.
	* gst/tcp/gstmultifdsink.c: (get_buffers_max), (count_burst_unit):
	GstClockTime is unsigned, initialise correctly.
	* gst/tcp/gsttcp.c: (gst_tcp_socket_write):
	Cast so pointer arithemetic doesn't cause warnings on Forte.
	* gst/videorate/gstvideorate.c:
	Use correct return value.
	* tests/examples/seek/scrubby.c:
	GstClockTime is unsigned, initialise correctly.

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

	Patch by: Ferenc Gerlits  <fgerlits at gmail com>

	* gst/typefind/gsttypefindfunctions.c:
	  Recognise XML files and XML-like files shorter than 256 bytes as
	  well (fixes #359237).

2006-10-09  Edgard Lima <edgard.lima@indt.org.br>

	Patch by: Renato Filho <renato.filho@indt.org.br>
	
	* gst/typefind/gsttypefindfunctions.c:
	Added typefind functions to video/x-nuv media.
	
2006-10-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/interfaces/xoverlay.c:
	(gst_x_overlay_set_xwindow_id), (gst_x_overlay_expose):
	  Some more guards against invalid input.

2006-10-07  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_text_event): 
	Useless goto.
	* tests/examples/seek/seek.c: (do_seek),
	(rate_spinbutton_changed_cb), (main): Add a rate spinbutton in
	seek example to experiment with rates != 1.0 (reverse playback !)

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

	* gst-libs/gst/interfaces/xoverlay.c:
	  Unref message in doc-example (spotted by Robert McQueen)

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

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
	(mpeg1_parse_header), (mpeg1_sys_type_find):
	printf fix.

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

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(close_pad_link):
	* gst/playback/gstplaybasebin.c: (new_decoded_pad_full):
	Activate dynamic pads before adding them to the element.

2006-10-06  Michael Smith  <msmith@fluendo.com>

	* gst-libs/gst/floatcast/floatcast.h:
	  Fix obviously-bogus macros; use the correct types.

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_change_state):
	Also call parent state change function to activate pads.

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
	(mpeg1_parse_header), (mpeg1_sys_type_find):
	Add some more debug info in mpeg typefinding.

2006-10-06  Michael Smith  <msmith@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_chain):
	  Zero byte theora packets are valid and well-defined; don't warn on
	  them.

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

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init),
	(gst_multi_fd_sink_get_stats), (find_limits),
	(gst_multi_fd_sink_queue_buffer):
	  API: add dropped_buffers to the get-stats GValueArray

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

	* ext/alsa/gstalsadeviceprobe.c:
	(gst_alsa_device_property_probe_get_values):
	* ext/alsa/gstalsasink.c: (set_hwparams):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_elem_pad),
	(gst_ogg_chain_new_stream), (gst_ogg_demux_read_chain):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers),
	(gst_ogg_mux_process_best_pad):
	* ext/ogg/gstoggparse.c: (gst_ogg_parse_new_stream),
	(gst_ogg_parse_chain):
	* ext/ogg/gstogmparse.c: (gst_ogm_parse_stream_header):
	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_setup),
	(gst_vorbis_enc_buffer_check_discontinuous):
	* ext/vorbis/vorbisparse.c: (vorbis_parse_src_query):
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	* gst-libs/gst/cdda/gstcddabasesrc.c:
	(gst_cdda_base_src_handle_track_seek):
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_push_full):
	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push):
	* gst/audioresample/resample.c: (resample_input_pushthrough):
	* gst/playback/gstplaybasebin.c: (queue_out_of_data):
	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_handle_clients):
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
	(wavpack_type_find):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_video_test_src_create):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new):
	* tests/check/elements/volume.c: (GST_START_TEST):
	  Printf format fixes.

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

	* gst/tcp/gsttcp.c: (gst_tcp_gdp_read_caps):
	  Fix a simple mistake (see the docs)
	  Fixes #359580

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/gst-plugins-base-plugins.args:
	* docs/plugins/gst-plugins-base-plugins.hierarchy:
	* docs/plugins/inspect/plugin-adder.xml:
	* docs/plugins/inspect/plugin-alsa.xml:
	* docs/plugins/inspect/plugin-audioconvert.xml:
	* docs/plugins/inspect/plugin-audiorate.xml:
	* docs/plugins/inspect/plugin-audioresample.xml:
	* docs/plugins/inspect/plugin-audiotestsrc.xml:
	* docs/plugins/inspect/plugin-cdparanoia.xml:
	* docs/plugins/inspect/plugin-decodebin.xml:
	* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
	* docs/plugins/inspect/plugin-gdp.xml:
	* docs/plugins/inspect/plugin-gnomevfs.xml:
	* docs/plugins/inspect/plugin-libvisual.xml:
	* docs/plugins/inspect/plugin-ogg.xml:
	* docs/plugins/inspect/plugin-pango.xml:
	* docs/plugins/inspect/plugin-playbin.xml:
	* docs/plugins/inspect/plugin-subparse.xml:
	* docs/plugins/inspect/plugin-tcp.xml:
	* docs/plugins/inspect/plugin-theora.xml:
	* docs/plugins/inspect/plugin-typefindfunctions.xml:
	* docs/plugins/inspect/plugin-video4linux.xml:
	* docs/plugins/inspect/plugin-videorate.xml:
	* docs/plugins/inspect/plugin-videoscale.xml:
	* docs/plugins/inspect/plugin-videotestsrc.xml:
	* docs/plugins/inspect/plugin-volume.xml:
	* docs/plugins/inspect/plugin-vorbis.xml:
	* docs/plugins/inspect/plugin-ximagesink.xml:
	* docs/plugins/inspect/plugin-xvimagesink.xml:
	  Add vorbistag element to docs; update version numbers to 0.10.10.1.

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

	Patch by: James "Doc" Livingston <doclivingston at gmail com>

	* ext/vorbis/Makefile.am:
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisparse.c: (gst_vorbis_parse_class_init),
	(vorbis_parse_parse_packet), (vorbis_parse_chain):
	* ext/vorbis/vorbisparse.h:
	* ext/vorbis/vorbistag.c: (gst_vorbis_tag_base_init),
	(gst_vorbis_tag_class_init), (gst_vorbis_tag_init),
	(gst_vorbis_tag_parse_packet):
	* ext/vorbis/vorbistag.h:
	  Add new vorbistag element which derives from vorbisparse
	  and is essentially the same as well, only that it implements
	  the GstTagSetter interface and can modify the stream's
	  vorbiscomment on the fly (#335635).

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/vorbistag.c: (setup_vorbistag),
	(cleanup_vorbistag), (buffer_probe), (start_pipeline),
	(get_buffer), (stop_pipeline), (_create_codebook_header_buffer),
	(_create_audio_buffer), (GST_START_TEST), (vorbistag_suite):
	  Add unit test for new vorbistag element.

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

	* ext/vorbis/vorbisparse.c: (gst_vorbis_parse_init),
	(vorbis_parse_push_headers), (vorbis_parse_chain):
	  Set BOS flag in packet structure to fix 'jump depends
	  on unitialized value' errors in valgrind; various minor
	  clean-ups.

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

	* gst/playback/gstdecodebin.c: (close_pad_link):
	Fix typo in a debug statement.

	* gst/playback/gstplaybasebin.c: (probe_triggered),
	(new_decoded_pad_full), (new_decoded_pad), (subs_new_decoded_pad),
	(gen_source_element), (source_new_pad), (analyse_source),
	(setup_source):
	When handling no_more_pads in new_decoded_pad, make sure to treat
	subtitle pads correctly. Fixes playback with subtitle files.

	Move a recurring message to LOG level.

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	The maximum value for the Xv colorkey on this Radeon is 0xFFFFFFFF,
	which ends up as -1 when cast to an int. Make the logic handle the
	max value as an unsigned mask and only change the colorkey when it's
	a value we recognise.

2006-09-29 Philippe Kalaf <philippe.kalaf@collabora.co.uk> 	 

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	Removed empty * between paragraphs

2006-09-29 Philippe Kalaf <philippe.kalaf@collabora.co.uk> 	 

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	* gst-libs/gst/rtp/README:
	Moved some documentation into .c file

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

	* gst/playback/gstdecodebin.c: (no_more_pads):
	Fix compilation.

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

	* gst/playback/gstdecodebin.c: (new_caps):
	Remove g_print

	* gst/playback/gstplaybin.c:
	Add some docs.

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

	* tests/check/Makefile.am:
	  Re-enable cddabasesrc test to see if it works again
	  now.

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

	* gst/playback/gstplaybasebin.c: (setup_subtitle),
	(gen_source_element):
	Handle invalid URIs a bit more gracefully.

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

	* tests/check/pipelines/oggmux.c:
	  Remove obsolete comment.

2006-09-29  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_release_pad), (gst_ogg_mux_push_buffer),
	(gst_ogg_mux_compare_pads), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_process_best_pad),
	(gst_ogg_mux_collected):
	  Commit patch from James "Doc" Livingston, adds proper EOS handling
	  in oggmux. GStreamer can, for the first time ever, create a valid
	  Ogg file! Yay!

	* tests/check/pipelines/oggmux.c: (check_chain_final_state),
	(oggmux_suite):
	  Reenable tests now that they pass.

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

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_handle_clients):
	Stop reading commands when EOF (we read 0) as well.

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

	* gst/playback/gstdecodebin.c: (dynamic_create), (dynamic_free),
	(close_pad_link), (dynamic_remove), (no_more_pads), (new_caps),
	(find_dynamic), (unlinked), (close_link):
	Implement delayed caps linking needed for element with a lot of
	different caps on the src pads that get fixed at runtime.
	Improve management of dynamic elements.

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(group_destroy), (group_commit), (check_queue), (queue_overrun),
	(gen_preroll_element), (remove_groups), (unknown_type),
	(add_element_stream), (no_more_pads_full), (no_more_pads),
	(sub_no_more_pads), (source_no_more_pads), (preroll_unlinked),
	(new_decoded_pad), (setup_subtitle), (array_has_value),
	(gen_source_element), (source_new_pad), (has_all_raw_caps),
	(analyse_source), (remove_decoders), (make_decoder),
	(remove_source), (setup_source), (finish_source), (prepare_output),
	(gst_play_base_bin_change_state):
	* gst/playback/gstplaybasebin.h:
	Use more _CAST instead of full type checking casts.
	Small cleanups, plug some leaks.
	Handle dynamic sources.
	Add some helper functions to create lists of strings used for
	blacklisting and other stuff.
	Refactor some code dealing with analysing the source.
	Re-enable sources without pads (like cd:// or other selfcontained
	elements).

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	When we have a timestamp, we can still perform clipping.
	When we have no clock, we must play the sample ASAP.

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

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain):
	Set caps on outgoing buffers.

	* gst/videorate/gstvideorate.c: (gst_video_rate_flush_prev),
	(gst_video_rate_event), (gst_video_rate_chain):
	* gst/videorate/gstvideorate.h:
	Fix videorate some more. Fixes #357977

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

	* tests/check/elements/adder.c: (adder_suite):
	  Don't set timeout to 6 seconds when we're running
	  in valgrind ... (and how is 6 seconds longer than
	  the default anyway?)

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

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_reset),
	(gst_audio_rate_sink_event), (gst_audio_rate_convert),
	(gst_audio_rate_convert_segments), (gst_audio_rate_chain):
	Keep sink and src segment to keep track of time and support more
	input formats.
	Fix bogus next_offset and run_time calculation, don't understand how
	this could have worked before. Fixes #357976.
	Remove some unneeded vars.

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

	* gst/playback/gstplaybin.c: (remove_sinks):
	  Only remove visualisation from visbin if there is a visbin (or:
	  don't throw warnings when closing totem without playing a file).

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	Add some more info in a WARNING.

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_create):
	Handle PAUSE in create function, use new -core addition to
	wait for playing. Fixes pausing and resuming capture from an
	audiosrc.

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
	(gst_ring_buffer_read):
	Constify some more.
	Caller supports interrupted reads now.

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

	* tests/check/Makefile.am:
	  Another attempt to make the gen64 buildbot happy.

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

	Patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>

	* ext/libvisual/visual.c: (gst_visual_clear_actors),
	(gst_visual_chain), (gst_visual_change_state):
	  Libvisual plugin was not passing audio data to libvisual 0.4.0 
	  correctly. Fixes #357800

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

	* tests/check/pipelines/simple-launch-lines.c: (run_pipeline):
	  Add timeout to _get_state() so we see which pipeline it is
	  that causes trouble on the gen64 build bot.

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_init), (gst_base_rtp_depayload_push_full),
	(gst_base_rtp_depayload_push_ts), (gst_base_rtp_depayload_process),
	(gst_base_rtp_depayload_set_gst_timestamp):
	the source pad always uses fixed caps.

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

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/audio/gstaudioclock.c:
	* gst-libs/gst/audio/gstaudioclock.h:
	* gst-libs/gst/audio/gstaudiosink.c:
	* gst-libs/gst/audio/gstaudiosink.h:
	* gst-libs/gst/audio/gstaudiosrc.c:
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_init):
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	* gst-libs/gst/audio/gstringbuffer.h:
	Added docs for the audio libs.

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

	* tests/check/Makefile.am:
	  Temporarily disable test that fails on the bots for unknown reasons.

2006-09-26 Philippe Kalaf <philippe.kalaf@collabora.co.uk> 	 

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
	Moved AudioCodecType into priv
	Renamed all gst_basertpaudiopayload to gst_base_rtp_audio_payload prefixes

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

	* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),
	(add_fakesink), (remove_fakesink), (pad_probe), (close_pad_link),
	(is_demuxer_element), (try_to_link_1), (get_our_ghost_pad),
	(new_pad):
	Cleanups and small leak fixes.
	Added Depayloaders to valid list of autopluggable elements.

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

	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_vis_blocked), (gst_play_bin_set_property),
	(gen_video_element), (gen_text_element), (gen_audio_element),
	(gen_vis_element), (remove_sinks), (add_sink), (setup_sinks),
	(gst_play_bin_set_clock_func), (gst_play_bin_change_state):
	Detect NO_PREROLL state change returns and disable clock distribution to
	the sinks so that sync is disabled.
	Avoid some type checking and do simple casts instead.
	Small cleanups, fix some FIXMEs.
	Be more robust when linking user specified elements, catch an report
	errors. Fixes #357404.
	Fix some leaks in the error paths.

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

	* ChangeLog:
	  ChangeLog surgery for missing bug-number

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

	Patch by: Peter Kjellerstedt  <pkj at axis com>

	* gst/playback/test.c:
	  Fix compilation with uClibc and -Werror (#357591).

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

	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
	  Parse dates that are followed by a time as well (#357532).

	* tests/check/libs/tag.c: (test_vorbis_tags):
	  Add unit test for this.

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

	* gst/audioconvert/gstaudioconvert.c: (make_lossless_changes),
	(gst_audio_convert_transform_caps):
	* gst/videotestsrc/videotestsrc.c: (gst_video_test_src_unicolor):
	* gst/videotestsrc/videotestsrc.h:
	  A few array const-ifications.

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

	* tests/check/Makefile.am:
	  See if this makes the build bots happy.

	* tests/check/libs/cddabasesrc.c:
	  UTF8-ise my name.

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

	Patch by: Young-Ho Cha <ganadist at chollian dot net>

	* gst/subparse/samiparse.c: (handle_start_font),
	(fix_invalid_entities):
	  More case-insensitivity for certain tags; recognise entities with
	  decimal codes as special entities as well (#357330).

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

	* gst-libs/gst/Makefile.am:
	  Need to build tag directory before cdda.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/cdda/Makefile.am:
	* gst-libs/gst/cdda/gstcddabasesrc.c:
	(gst_cdda_base_src_base_init):
	* gst-libs/gst/cdda/gstcddabasesrc.h:
	* gst-libs/gst/tag/tag.h:
	* gst-libs/gst/tag/tags.c: (gst_tag_register_tags_internal),
	(gst_tag_register_musicbrainz_tags):
	  Move GST_TAG_CDDA_* tags into libgsttag and make libgstcddabasesrc
	  depend on libgsttag. This is required so we can extract/read tags like
	  DISCID without depending on libgstcddabasesrc (which used to register
	  them).

	* gst-libs/gst/tag/gstvorbistag.c:
	  Add vorbiscomment mapping for CDDB_DISCID and MUSICBRAINZ_DISCID
	  tags (also see #347848).

	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_metadata_set1):
	  Log vorbis comments we are actually writing. Const-ify array.

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

	* gst/playback/gstplaybasebin.c: (gen_preroll_element):
	Improve buffering a bit by avoiding a deadlock because we cannot assume
	the underrun is always called.

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

	Patch by: Young-Ho Cha <ganadist at chollian dot net>

	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	Added MPEG-4 AAC and id and caps. Fixes #357289
	Added WMA9 Lossless id.

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

	* ext/gnomevfs/gstgnomevfssrc.c:
	  Fix misleading docs addition.

	* tests/check/elements/videotestsrc.c: (check_rgb_buf):
	  Get rid of compiler warning the right way.

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_finalize),
	(gst_base_rtp_depayload_setcaps), (gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_push_full),
	(gst_base_rtp_depayload_push_ts), (gst_base_rtp_depayload_push),
	(gst_base_rtp_depayload_process),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_queue_release):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	Small cleanups.
	Fix some leaks.
	Refactored the process method and added methods to push from the process
	vmethod.
	Use _scale functions.
	API: gst_base_rtp_depayload_push_ts
	API: gst_base_rtp_depayload_push

	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push):
	timestamps are uint.

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

	* gst-libs/gst/interfaces/xoverlay.c:
	  Remove unused statement from doc example.

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

	* gst-libs/gst/interfaces/videoorientation.c:
	(gst_video_orientation_iface_init),
	(gst_video_orientation_get_hflip),
	(gst_video_orientation_get_vflip),
	(gst_video_orientation_get_hcenter),
	(gst_video_orientation_get_vcenter),
	(gst_video_orientation_set_hflip),
	(gst_video_orientation_set_vflip),
	(gst_video_orientation_set_hcenter),
	(gst_video_orientation_set_vcenter):
	  Add since tags to new API docs, ChangeLog surgery (forgot API keyword
	  in ChangeLog)

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/ffmpegcolorspace.c: (rgb_format_to_caps),
	(create_rgb_conversions), (rgb_conversion_free),
	(right_shift_colour), (fix_expected_colour), (check_rgb_buf),
	(got_buf_cb), (GST_START_TEST), (ffmpegcolorspace_suite):
	  Add unit test for ffmpegcolorspace (RGB <=> RGB only so far),
	  but disable for now since it doesn't pass (something wrong with
	  RGBA somewhere).

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

	* gst/playback/gstplaybasebin.c: (group_commit),
	(queue_deadlock_check), (queue_overrun), (queue_threshold_reached),
	(queue_out_of_data), (gen_preroll_element),
	(preroll_remove_overrun), (probe_triggered):
	Refactor handling of overrun detection.
	Separate handling of group completion and deadlock detection when doing
	network buffering. This should fix some deadlocks that were not detected
	because the group was completed.
	Add more comments, improve debugging.

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

	* tests/check/elements/gdpdepay.c: (GST_START_TEST):
	* tests/check/libs/audio.c:
	Some more compilation fixes.

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

	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_samples_done), (gst_ring_buffer_commit),
	(gst_ring_buffer_read):
	Early morning compilation fix.

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

	* tests/check/elements/gdpdepay.c: (GST_START_TEST):
	* tests/check/elements/multifdsink.c: (GST_START_TEST):
	* tests/check/elements/videorate.c: (GST_START_TEST):
	* tests/check/libs/cddabasesrc.c: (GST_START_TEST):
	* tests/check/pipelines/oggmux.c: (eos_buffer_probe):
	Fix some warnings.

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

	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_get_xv_support), (gst_xvimagesink_show_frame):
	  Handcrafted merge to help CVS understanding what I changed and what
	  not.

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

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_get_times):
	  change colorkey behaviour back according to #354773 comment 6/7

2006-09-19  Michael Smith  <msmith@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type),
	(gst_multi_fd_sink_class_init), (get_buffers_max), (find_limits),
	(gst_multi_fd_sink_recover_client),
	(gst_multi_fd_sink_queue_buffer), (gst_multi_fd_sink_set_property),
	(gst_multi_fd_sink_get_property):
	* gst/tcp/gstmultifdsink.h:
	  Implement stubbed out properties unit-type, units-soft-max,
	  units-max, to allow specifying maximum sizes in units other than
	  buffers.
	  Fixes #355935

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	Reorder the audio formats a bit for clarity.
	Detect and create caps for MSGSM and MSN (WAV49).
	Fixes #356596.

	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_get_xv_support), (gst_xvimagesink_show_frame):
	Small cleanups, move error handling out of normal flow for clarity.

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

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs.types:
	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/interfaces/videoorientation.c:
	(gst_video_orientation_get_type),
	(gst_video_orientation_iface_init),
	(gst_video_orientation_get_hflip),
	(gst_video_orientation_get_vflip),
	(gst_video_orientation_get_hcenter),
	(gst_video_orientation_get_vcenter),
	(gst_video_orientation_set_hflip),
	(gst_video_orientation_set_vflip),
	(gst_video_orientation_set_hcenter),
	(gst_video_orientation_set_vcenter):
	* gst-libs/gst/interfaces/videoorientation.h:
	  API: Add new interface to control video orientation (fixes #354908)

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

	* gst/videotestsrc/gstvideotestsrc.c:
	  Use G_UNLIKELY in _create and log one more detail.
	  
	(gst_video_test_src_get_times), (gst_video_test_src_create):
	* sys/ximage/ximagesink.c: (gst_ximagesink_get_times):
	  Use gst_util_uint64_scale_int in _get_times().

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

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support)
	  Give better warning message (add object and detail).

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

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_get_times):
	  xvimage assumed that XV_COLORKEY can be set in RGB888 format (fixes
	  #354773), use gst_util_uint64_scale_int in _get_times()

2006-09-18  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_push_buffer):
	  Timestamps are unsigned; comparision against GST_CLOCK_TIME_NONE was
	  always true, leading to dropping all timestamps.

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

	* ext/libvisual/visual.c: (gst_vis_src_negotiate),
	(gst_visual_chain), (gst_visual_change_state):
	  update to work also with libvisual 0.4 API, fix double unref (#355914)
	  
	* tools/gst-launch-ext.1.in:
	* tools/gst-visualise.1.in:
	  remove references to old man-pages

	* tests/examples/seek/seek.c: (main):
	  add real meadi-buttons, add tool-tips for the seek-options, arrange
	  seek options in a table

2006-09-18  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear),
	(gst_ogg_mux_push_buffer):
	  Don't generate out-of-order timestamps from oggmux, instead clamp
	  output timestamps to be >= the previously output ts.
	  Fixes #355595

2006-09-18  Michael Smith  <msmith@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type),
	(gst_multi_fd_sink_class_init):
	  Updates, fixes, and typo corrections for multifdsink. No functional
	  changes.

2006-09-17  Michael Smith  <msmith@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (ogganx_type_find):
	  Don't crash on truncated files - check that we got an 8 byte buffer
	  before trying to memcmp it.

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

	* gst/playback/gstplaybasebin.c: (get_active_source):
	  Make stream-switching appear instant to the application
	  (ie. make sure that a g_object_get on 'current-foo' returns
	  the stream previously set with g_object_set(). Totem needs
	  this to update stream-related meta-info (like audio-codec)
	  correctly when switching streams.

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

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_find_master_mixer),
	(gst_alsa_mixer_ensure_track_list):
	  Try harder to guess which mixer track is the master mixer
	  track (instead of just taking the first one that has a pvolume).
	  Fixes #342228.

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

	reviewed by: <delete if not using a buddy>

	* gst-libs/gst/audio/audio.h:
	* gst/audiotestsrc/gstaudiotestsrc.c: (plugin_init):

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

	* gst/audioconvert/gstaudioconvert.c: (set_structure_widths),
	(gst_audio_convert_transform_caps):
          Get structure-name just once.

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

	* tests/check/elements/audioresample.c: (GST_START_TEST):
	* tests/check/elements/videotestsrc.c: (check_rgb_buf):
	* tests/check/elements/volume.c: (GST_START_TEST):
	* tests/check/elements/vorbisdec.c: (GST_START_TEST):
	* tests/check/pipelines/oggmux.c: (validate_ogg_page), (eos_watch),
	(test_pipeline), (GST_START_TEST):
	* tests/check/pipelines/theoraenc.c: (GST_START_TEST):
	* tests/check/pipelines/vorbisenc.c: (GST_START_TEST):
          Fix big batch of compiler warnings.

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

	* ext/gnomevfs/gstgnomevfssrc.c:
          Add docs about icydemux usage in connection with gnomevfssrc

	* ext/libvisual/visual.c:
	* ext/ogg/gstoggaviparse.c:
	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggmux.c:
	* ext/ogg/gstoggparse.c:
	* gst-libs/gst/audio/gstaudiofiltertemplate.c:
	* gst-libs/gst/audio/gstaudiosink.c:
	* gst-libs/gst/audio/gstaudiosrc.c:
	* gst/audiorate/gstaudiorate.c:
	  More G_OBJECT macro fixing.

	* gst/audiotestsrc/gstaudiotestsrc.h:
          Fix wrong info in header due to copy & paste

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_get_time), (gst_base_audio_sink_callback):
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_get_time), (gst_base_audio_src_fixate),
	(gst_base_audio_src_get_times), (gst_base_audio_src_get_offset),
	(gst_base_audio_src_create), (gst_base_audio_src_change_state):
	Do the delay calculation in the source/sink base classes as this is
	specific for the capture/playback mode.
	Try to fixate a bit better, like round depth up to a multiple of 8
	bigger than width.
	Handle underruns correctly by marking DISCONT on buffers and adjusting
	timestamps to handle the gap.
	Set offset/offset_end correctly on buffers.

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_pause),
	(gst_ring_buffer_samples_done), (gst_ring_buffer_commit),
	(gst_ring_buffer_read):
	Remove resync and underrun recovery from the ringbuffer.
	Fix ringbuffer read code on under/overrun.

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

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_init), (fill_buffer), (check_queue),
	(queue_threshold_reached), (gst_play_base_bin_set_property),
	(gst_play_base_bin_get_property):
	* gst/playback/gstplaybasebin.h:
	Don't use a 0 low watermark when buffering, it is catching starvation
	way too late. Instead, use a 3 second queue with 30 and 95
	percent low/high watermarks. 
	Added queue-min-threshold property to configure low watermark.
	Use new _buffering message API.
	Make queue_threshold variable big enough to store a uint64 time value.
	API: playbin::queue-min-threshold property.

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

	* configure.ac:
	We require 0.10.10.1 now because of _wait_preroll().

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	Use gst_base_sink_wait_preroll().

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

	* ext/alsa/gstalsasink.c: (xrun_recovery), (gst_alsasink_write):
	* ext/alsa/gstalsasrc.c: (xrun_recovery), (gst_alsasrc_read):
	Use DEBUG_OBJECT more.

=== release 0.10.10 ===

2006-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Michael Smith <msmith at fluendo dot com>

	* gst/tcp/gstmultifdsink.c: (is_sync_frame),
	(gst_multi_fd_sink_client_queue_buffer),
	(gst_multi_fd_sink_new_client):
	* tests/check/elements/multifdsink.c: (GST_START_TEST),
	(multifdsink_suite):
	  Fix implementation of sync-method 'next-keyframe'
	  Closes #354594

2006-09-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Wim Taymans <wim at fluendo dot com>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_start):
	This patch removes the RANDOM flag that was incorrectly introduced with
	revision 1.91.  Fixes #354590

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

	* tests/check/Makefile.am:
	  Random variation in Makefile line to see if it makes the
	  gen64-base-full bot any happier.

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

	* tests/check/pipelines/oggmux.c: (oggmux_suite):
	  Disable test that fails at the moment (killed after timeout).

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

	Patch by: James Livingston  <doclivingston at gmail.com>

	* tests/check/Makefile.am:
	* tests/check/pipelines/.cvsignore:
	* tests/check/pipelines/oggmux.c: (get_page_codec),
	(check_chain_final_state), (fail_if_audio), (validate_ogg_page),
	(eos_buffer_probe), (start_pipeline), (stop_pipeline), (eos_watch),
	(test_pipeline), (test_vorbis), (test_theora), (test_vorbis_theora),
	(test_theora_vorbis), (oggmux_suite):
	  Add simple unit test for oggmux from #337026 with checking for the
	  EOS flags disabled for the time being.

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

	patch by: Alessandro Dessina <alessandro nnva org>

	* ext/ogg/gstoggmux.c:
	Add cmml caps to oggmux. Fixes #353912

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

	* tests/check/elements/videotestsrc.c: (check_rgb_buf):
	  Returning a return value often helps. In this case, we
	  don't need the return value anyway, so just get rid of it.
	  Should make build bots much happier.

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

	* gst/videotestsrc/videotestsrc.c: (paintinfo_find_by_structure),
	(paint_get_structure), (gst_video_test_src_get_size),
	(gst_video_test_src_smpte), (gst_video_test_src_snow),
	(gst_video_test_src_unicolor), (paint_setup_AYUV),
	(paint_hline_AYUV), (paint_setup_ARGB8888), (paint_setup_ABGR8888),
	(paint_setup_RGBA8888), (paint_setup_BGRA8888), (paint_hline_str4):
	* gst/videotestsrc/videotestsrc.h:
	  Add support for AYUV and the various RGBA formats. Initialise
	  fields of paintinfo structs allocated on the stack.

	* tests/check/elements/videotestsrc.c: (right_shift_colour),
	(fix_expected_colour), (check_rgb_buf), (got_buf_cb),
	(check_rgb_buf), (videotestsrc_suite):
	  Add unit tests for videotestsrc's RGB output.

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

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_video_test_src_pattern_get_type),
	(gst_video_test_src_set_pattern):
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.c: (gst_video_test_src_unicolor),
	(gst_video_test_src_black), (gst_video_test_src_white),
	(gst_video_test_src_red), (gst_video_test_src_green),
	(gst_video_test_src_blue):
	* gst/videotestsrc/videotestsrc.h:
	  Add more uni-colour patterns ("white", "red", "green", and "blue").

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

	* gst/videotestsrc/videotestsrc.c: (paint_setup_YVYU):
	  Fix stride for YVYU, should be word-aligned (#353658).

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

	* gst/adder/gstadder.c: (gst_adder_src_event):
	  Fix build.

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

	* gst/adder/gstadder.c: (forward_event_func),
	(gst_adder_src_event), (gst_adder_collected),
	(gst_adder_change_state):
	* gst/adder/gstadder.h:
	Remember the start position asked in the incoming seeks, so we can
	output GST_EVENT_NEW_SEGMENT with a correct position value (instead
	of assuming it will always be 0).

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init),
	(gst_ogg_demux_finalize), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_loop):
	Send the GST_EVENT_NEW_SEGMENT from the streaming thread.

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

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_get_unit_size):
	  Return FALSE instead of returning a random false unit
	  size when the format isn't known/supported (even if
	  this shouldn't happen under normal circumstances).

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

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

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_create),
	(gst_gnome_vfs_src_start):
	Try harder to get the size from a uri by using _info_uri() when
	_info_from_handle() does not give us enough info. 
	Also follow symlinks when getting the size.
	Partially Fixes #332864.

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

	Patch by: Viktor Peters  <viktor dot peters at gmail dot com>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_ensure_track_list),
	(gst_alsa_mixer_update), (gst_alsa_mixer_get_volume),
	(gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute),
	(gst_alsa_mixer_set_record):
	* ext/alsa/gstalsamixertrack.c:
	(gst_alsa_mixer_track_update_alsa_capabilities),
	(alsa_track_has_cap), (gst_alsa_mixer_track_new),
	(gst_alsa_mixer_track_update):
	* ext/alsa/gstalsamixertrack.h:
	  Improve and fix mixer track handling, in particular better handling
	  of alsa's pvolume/pswitch/cvolume/cswitch capabilities; create
	  separate track objects for tracks that have both capture and playback
	  volume (and label them differently as well so they're not mistakenly
	  assumed to be duplicates); classify mixer tracks that only affect
	  the audible volume of something (rather than the capture volume)
	  as playback tracks. Redefine/fix meaning of RECORD and MUTE flags
	  for capture tracks to correspond to alsa-pswitch alsa-cswitch
	  (following the meaning documented in the mixer interface header
	  file); add support for alsa's exclusive cswitch groups; update/sync
	  state/flags better if mixer settings are changed by another
	  application. Fixes #336075.

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

	* gst/playback/gstplaybin.c:
	  Improve docs: add section about BUFFERING messages sent by playbin.

2006-08-29  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_push_buffer),
	(gst_vorbis_enc_buffer_check_discontinuous),
	(gst_vorbis_enc_chain):
	  Ignore explicit DISCONT marked on buffers (which is often spurious,
	  particularly when using multiple segments), in favour of solely
	  using the timestamps/durations.

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

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain):
	Don't rely on incoming buffers offset anymore, since it is completely
	broken when using multiple segments.
	Instead convert the incoming buffers timestamp to running time, and
	then convert that value to the offsets.
	Also inform GstSegment of the last outputted stop position, which is
	needed if we received several segments with an unknown stop value.

2006-08-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_chain):
	  fix buffer unreffing on a header push failure

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

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_sink_event),
	(gst_audio_rate_chain):
	Make the metadata of the buffer writable before changing its
	flags.

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

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_reset),
	(gst_audio_rate_setcaps), (gst_audio_rate_init),
	(gst_audio_rate_sink_event), (gst_audio_rate_src_event),
	(gst_audio_rate_chain), (gst_audio_rate_change_state):
	Fix audiorate some more.
	Reset and resync counters on flush and READY.
	Handle the DISCONT flag correctly.
	Use GstSegment to track position.
	Fail when not negotiated.
	Fixes #353234.

2006-08-25  Michael Smith  <msmith@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_render):
	  Fix spelling.
	  Remove accidently included debug line.

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

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_render):
	Small cleanups.
	If a buffer is received with no caps, make the buffer metadata
	writable and set the caps, making sure that we don't screw up the
	refcounts.

2006-08-25  Michael Smith  <msmith@fluendo.com>

	* gst/gdp/gstgdppay.c: (gst_gdp_pay_reset),
	(gst_gdp_pay_reset_streamheader), (gst_gdp_pay_chain):
	  Fix memory leaks and misleading debug messages, add a couple of
	  comments.

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_get_stats),
	(gst_multi_fd_sink_render):
	  Do not use gst_buffer_make_writable() in a basesink render method,
	  as it may incorrectly unref the buffer. Instead, use convoluted
	  dance to avoid copying the buffer except when we need to.

2006-08-25  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c:
	(gst_vorbis_enc_buffer_check_discontinuous):
	  Allow very small discontinuities in the timestamps. These we can't
	  do anything useful with anyway (because vorbis's timestamps have
	  only sample granularity), and are commonly produced by elements with
	  minor bugs. Allow up to 1/2 a sample out.
	  Fixes #351742.

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

	* tests/examples/seek/seek.c: (seek_cb), (start_seek), (stop_seek),
	(play_scrub_toggle_cb), (main):
	Add a checkbox to enable play scrubbing. Makes it possible to disable
	normal scrubbing.

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

	* tests/check/elements/.cvsignore:
	  make buildbot happy

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

	* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_base_init),
	(gst_ogm_video_parse_base_init), (gst_ogm_text_parse_base_init),
	(gst_ogm_parse_class_init), (gst_ogm_parse_dispose),
	(gst_ogm_parse_init), (gst_ogm_audio_parse_init),
	(gst_ogm_video_parse_init), (gst_ogm_text_parse_init),
	(gst_ogm_parse_stream_header), (gst_ogm_parse_comment_packet),
	(gst_ogm_text_parse_strip_trailing_zeroes),
	(gst_ogm_parse_data_packet), (gst_ogm_parse_chain),
	(gst_ogm_parse_sink_event), (gst_ogm_parse_change_state):
	  Refactor ogm parse, do better input checking, misc. clean-ups.
	  Cache incoming events and push them once the source pad has
	  been created. Don't pass unterminated strings to sscanf().
	  Strip trailing zeroes from subtitle text output, since they
	  are not valid UTF-8. Don't push vorbiscomment packets on
	  the subtitle text pad. Output perfect streams if possible.

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

	* tests/check/libs/cddabasesrc.c: (GST_START_TEST):
	Waits for tasks to settle down so that we clean up correctly for 
	valgrind.

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

	* tests/check/libs/tag.c: (GST_START_TEST), (taglists_are_equal):
	  Unit test fixes: \377 is more likely to fit into 8 bits than \777;
	  actually return return value in taglists_are_equal.

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

	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	  Fix crash due to broken bitstream parsing on x86-64: can't make
	  any assumptions about sizeof(struct) due to alignment/packing
	  differences on different architectures. Fixes #351790.

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

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk),
	(gst_riff_parse_chunk), (gst_riff_parse_file_header),
	(gst_riff_parse_strh), (gst_riff_parse_strf_vids),
	(gst_riff_parse_strf_auds), (gst_riff_parse_strf_iavs),
	(gst_riff_parse_info):
	Protect public functions against bad input.
	Do some cleanups.
	Fix documentation.

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

	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  Add voxware audio IDs (even if we can't play it) (#351795).

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

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_template_caps),
	(gst_riff_create_audio_template_caps),
	(gst_riff_create_iavs_template_caps):
	  Const-ify some arrays and use G_N_ELEMENTS instead
	  of wasting oodles of RAM on terminator bits.

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

	* gst-libs/gst/tag/gstvorbistag.c:
	(gst_tag_list_to_vorbiscomment_buffer):
	* tests/check/libs/tag.c: (GST_START_TEST):
	  And the same for _to_vorbiscomment_buffer(): allow
	  id_data_len == 0 for speex.

2006-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/inspect/plugin-gdp.xml:
	* gst/gdp/Makefile.am:
	* tests/check/Makefile.am:
	  Move GDP plugin to -base from -bad.  Closes #347783.

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

	* gst-libs/gst/tag/gstvorbistag.c:
	(gst_tag_list_from_vorbiscomment_buffer):
	  Allow id_data_len == 0 (needed for vorbis comments in Speex files).
	  Also add some checks to make sure we don't memcmp() beyond the end of
	  vorbiscomment buffer if the ID to check for is larger than the buffer.

	* tests/check/libs/tag.c: (GST_START_TEST):
	  Some more tests for gst_tag_list_from_vorbiscomment_buffer().

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

	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_metadata_set1),
	(gst_vorbis_enc_set_metadata):
	  Use vorbis comment utility functions from libgsttag
	  instead of re-inventing the wheel (partially fixes #347091).

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

	* tests/check/elements/audioconvert.c: (GST_START_TEST):
	Fix leaks. Wait for state transitions that might happen ASYNC, as well
	as some that won't.

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

	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* docs/libs/gst-plugins-base-libs.types:
	Don't try to GObject scan the netbuffer as it's not a GObject.
	Fixes #351308.

	* gst-libs/gst/netbuffer/gstnetbuffer.c:
	* gst-libs/gst/netbuffer/gstnetbuffer.h:
	Document GstNetBuffer.

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

	* tests/check/elements/audioconvert.c: (GST_START_TEST),
	(audioconvert_suite):
	  Add testcase for caps-size-explosion

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

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_get_unit_size), (set_structure_widths):
	  Lower debug, use g_assert in _get_unit_size

	* gst/audioresample/gstaudioresample.c:
	(audioresample_get_unit_size):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_get_unit_size):
	* gst/videoscale/gstvideoscale.c: (gst_video_scale_get_unit_size):
	  use g_assert in _get_unit_size

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_set_packet_len),
	(gst_rtp_buffer_pad_to), (gst_rtp_buffer_get_payload_subbuffer),
	(gst_rtp_buffer_get_payload_buffer):
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	Document GstRTPBuffer.
	Added function to efficiently strip payload headers.
	API: gst_rtp_buffer_get_payload_subbuffer()

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

	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add),
	(gst_tag_to_vorbis_comments):
	  Serialise unknown vorbis comments into GST_TAG_EXTENDED_COMMENT
	  tags and deserialise them properly as well (#347091).
	  Add some more gtk-doc blurbs and also some g_return_if_fail().

	* tests/check/libs/tag.c: (GST_START_TEST),
	(back_to_vorbis_comments), (taglists_are_equal), (tag_suite):
	  More tests.

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

	* ext/ogg/Makefile.am:
	* ext/ogg/gstogg.c: (plugin_init):
	* ext/ogg/gstoggaviparse.c: (gst_ogg_avi_parse_get_type),
	(gst_ogg_avi_parse_base_init), (gst_ogg_avi_parse_class_init),
	(gst_ogg_avi_parse_init), (gst_ogg_avi_parse_finalize),
	(gst_ogg_avi_parse_setcaps), (gst_ogg_avi_parse_event),
	(gst_ogg_avi_parse_push_packet), (gst_ogg_avi_parse_chain),
	(gst_ogg_avi_parse_change_state), (gst_ogg_avi_parse_plugin_init):
	Added ogg-in-avi parser element. Fixes #140139.

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_buffer_from_page):
	Fixed a bug in oggdemux debug code.

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	Recognise Ogg in the AVI extensible wave format.

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

	* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create):
	  Make buffer durations add up (duration should be next_ts-ts for
	  perfect streams). Fixes CD ripping to Ogg/Vorbis with vorbisenc
	  from CVS.

	* tests/check/libs/cddabasesrc.c: (gst_cd_foo_src_close),
	(test_buffer_timestamps), (cddabasesrc_suite):
	  Add unit test for the above.

	* tests/check/Makefile.am:
	  Don't know why cddabasesrc test was in VALGRIND_TO_FIX, remove
	  to see what happens.

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

	* ext/alsa/gstalsasink.c: (gst_alsasink_set_property),
	(gst_alsasink_open):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_set_property),
	(gst_alsasrc_open):
	Avoid setting and using a NULL device name.
	Print more info when we fail to open a device.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/tag/tag.h:
	* gst-libs/gst/tag/tags.c: (gst_tag_parse_extended_comment):
	  API: add gst_tag_parse_extended_comment() (#351426).

	* tests/check/Makefile.am:
	* tests/check/libs/.cvsignore:
	* tests/check/libs/tag.c: (GST_START_TEST), (tag_suite), (main):
	  Add unit test for gst_tag_parse_extended_comment().

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

	* sys/ximage/ximagesink.c: (gst_ximagesink_get_property):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_property):
	  Fix leak (#351502).

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

	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/gst-plugins-base-plugins.args:
	* gst/playback/gstplaybin.c:
	  Document playbin.
	  
	* docs/plugins/inspect/plugin-adder.xml:
	* docs/plugins/inspect/plugin-alsa.xml:
	* docs/plugins/inspect/plugin-audioconvert.xml:
	* docs/plugins/inspect/plugin-audiorate.xml:
	* docs/plugins/inspect/plugin-audioresample.xml:
	* docs/plugins/inspect/plugin-audiotestsrc.xml:
	* docs/plugins/inspect/plugin-cdparanoia.xml:
	* docs/plugins/inspect/plugin-decodebin.xml:
	* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
	* docs/plugins/inspect/plugin-gnomevfs.xml:
	* docs/plugins/inspect/plugin-ogg.xml:
	* docs/plugins/inspect/plugin-pango.xml:
	* docs/plugins/inspect/plugin-playbin.xml:
	* docs/plugins/inspect/plugin-subparse.xml:
	* docs/plugins/inspect/plugin-tcp.xml:
	* docs/plugins/inspect/plugin-theora.xml:
	* docs/plugins/inspect/plugin-typefindfunctions.xml:
	* docs/plugins/inspect/plugin-video4linux.xml:
	* docs/plugins/inspect/plugin-videorate.xml:
	* docs/plugins/inspect/plugin-videoscale.xml:
	* docs/plugins/inspect/plugin-videotestsrc.xml:
	* docs/plugins/inspect/plugin-volume.xml:
	* docs/plugins/inspect/plugin-vorbis.xml:
	* docs/plugins/inspect/plugin-ximagesink.xml:
	* docs/plugins/inspect/plugin-xvimagesink.xml:
	  Update to CVS version.

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

	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_set_property), (gst_play_bin_get_property),
	(value_list_append_structure_list),
	(gst_play_bin_handle_redirect_message),
	(gst_play_bin_handle_message):
	  API: GstPlayBin::connection-speed
	  Add "connection-speed" property; re-order redirect messages with
	  multiple redirect locations depending on the minimum bitrate if
	  that information is available and a connection speed is set
	  (#350399).

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

	* gst/playback/gstplaybin.c:
	  Update max volume to the same value that the volume element uses.

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

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open):
	Less uglyness..

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_submit_buffer),
	(gst_ogg_demux_get_next_page), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_loop):
	Add some more debug info.
	Don't crash when a seek failed.
	Actually return the result of the seek instead of TRUE.
	Ignore multiple BOS pages with the same serial so that we don't create
	the same stream multiple times.
	Post an error when we fail to do the initial seek.

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

	* ext/alsa/gstalsa.c: (gst_alsa_detect_rates),
	(gst_alsa_detect_channels), (gst_alsa_probe_supported_formats):
	Small code cleanup.

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open),
	(gst_alsa_mixer_new):
	Remove hack that always set the device to hw:0*.
	Properly find the card name for whatever device was configured.
	Do some better debugging.
	Fixes #350784.

	* ext/alsa/gstalsamixerelement.c:
	(gst_alsa_mixer_element_set_property),
	(gst_alsa_mixer_element_change_state):
	Cleanups.
	Handle setting of a NULL device name better.

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

	* gst/adder/gstadder.c:
	Don't clip float values. Fixes #350900.

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

	* gst/tcp/gsttcp.c: Really fix the build?

	* gst/tcp/gsttcp.h: For now, always disable deprecation here --
	fixes the build.

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

	* gst/audioconvert/gstaudioconvert.c: (make_lossless_changes):
	  Float caps shouldn't have a "signed" field.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query):
	  Implement SEEKING query in its most basic form, so that we can
	  at least check if we're seekable or not (#350655).

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

	* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
	  The checks here are not even close to anything that would
	  justify MAXIMUM probability, lowering to POSSIBLE until someone
	  fixes the checks (case at hand: quicktime redirection files
	  might start with 00 00 01 XX and pass the checks here just
	  fine, see #350399).

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

	Patch by: Sjoerd Simons  <sjoerd at luon net>

	* gst/typefind/gsttypefindfunctions.c: (multipart_type_find):
	  Better detection for multipart/x-mixed-replace: accept leading
	  whitespaces before the boundary marker as well (as our very own
	  multipartmux used to produce) (#349068).

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

	Patch by: Young-Ho Cha  <ganadist at chollian net>

	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	  Detect DTS audio streams (#350157).

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

	* ext/theora/gsttheoraparse.h:
	* ext/theora/theoraparse.c (gst_theora_parse_class_init)
	(theora_parse_dispose, theora_parse_set_property)
	(theora_parse_get_property, theora_parse_munge_granulepos)
	(theora_parse_push_buffer, theora_parse_change_state):
	API: GstTheoraParse::synchronization-points
	Add a property 'synchronization-points' to fix badly synchronized oggs.

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

	* tests/check/Makefile.am:
	* tests/check/libs/.cvsignore:
	* tests/check/libs/audio.c: (structure_contains_channel_positions),
	(fixed_caps_have_channel_positions), (GST_START_TEST),
	(audio_suite), (main):
	  Add a few tests for the channel position stuff in libgstaudio.

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

	* ext/alsa/gstalsa.c: (caps_add_channel_configuration),
	(gst_alsa_detect_channels):
	* ext/alsa/gstalsasink.c:
	  Add support for cards that (only) do more than 8 channels,
	  like the Delta 44 (#345188).

	* gst-libs/gst/audio/multichannel.c:
	(gst_audio_check_channel_positions):
	* gst-libs/gst/audio/multichannel.h:
	  API: add GST_AUDIO_CHANNEL_POSITION_NONE, which stands for an
	  unspecified channel position and cannot be combined with any
	  of the other audio channel positions; adjust position layout
	  checks accordingly (#345188).

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

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Recognise ancient RealAudio files (see #349779).

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

	Patch by: Jens Granseuer  <jensgr at gmx net>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Add typefinder for Interplay's MVE format (#348973).

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

	Patch by: Marcel Moreaux <marcelm at luon dot net>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_add_to_queue):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	Handle RTP sequence number rollover.
	Disable jitterbuffer by default.

2006-07-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/audioresample/gstaudioresample.c: (audioresample_stop),
	(audioresample_set_caps):
	Don't leak references to the incoming caps. Clean them up when
	stopping.

	* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init),
	(gst_video_scale_finalize):
	Don't leak our temporary pixel buffer.

	* tests/check/Makefile.am:
	* tests/check/pipelines/simple-launch-lines.c: (run_pipeline),
	(GST_START_TEST), (simple_launch_lines_suite):

	Fix leaks and re-enable the test for valgrind checking.

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

	Patch by: Sjoerd Simons  <sjoerd at luon net>

	* gst/typefind/gsttypefindfunctions.c: (multipart_type_find),
	(plugin_init):
	  Add typefind function for multipart/x-mixed-replace (#348916).

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

	* gst/adder/gstadder.c: (gst_adder_setcaps),
	(gst_adder_query_duration):
	Fix leak in duration query.
	Reflow some docs and notes.

2006-07-28  Michael Smith  <msmith@fluendo.com>

	* tests/check/pipelines/vorbisenc.c: (GST_START_TEST),
	(vorbisenc_suite):
	  Enable Andy's extra vorbisenc test, now that it passes. Also fix one
	  aspect of it.

2006-07-28  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_generate_sink_caps),
	(gst_vorbis_enc_sink_getcaps), (gst_vorbis_enc_buffer_from_packet),
	(gst_vorbis_enc_push_buffer),
	(gst_vorbis_enc_buffer_check_discontinuous),
	(gst_vorbis_enc_chain), (gst_vorbis_enc_change_state):
	* ext/vorbis/vorbisenc.h:
	  Handle discontinuities in the input vorbis stream correctly,
	  so that the output is properly timestamped (and has good granulepos
	  values). Needs some oggmux fixes too.

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

	patch by: Kai Vehmanen <kv2004 eca cx>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_handle_sink_event),
	(gst_base_rtp_depayload_change_state):
	Don't send multiple newsegments with different formats.
	Fixes #348677.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_internal_chain),
	(gst_ogg_demux_do_seek), (gst_ogg_demux_read_chain):
	Make seeking in ogg more accurate again by doing the more correct
	granuletime to stream time conversion.

2006-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_add_full),
	(gst_multi_fd_sink_new_client):
	  debug a little more understandably
	  do not use goto as a substitute for break, especially if
	  break is also being used

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

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property):
	* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
	  Remove GLib-2.6 compatibility cruft.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	Don't try to align a sample to an unknown value.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_provide_clock), (gst_base_audio_sink_render):
	When the audio clock is slaved to another clock, never try to align
	samples but trust the rate interpolation algorithm.

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

	* ext/alsa/gstalsasink.c: (set_hwparams), (gst_alsasink_prepare):
	Don't try to calculate silence samples, base class does this much
	better now.

	* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format),
	(gst_ring_buffer_debug_spec_caps), (gst_ring_buffer_parse_caps),
	(gst_ring_buffer_acquire):
	Calculate silence samples correctly.

	* gst-libs/gst/audio/gstringbuffer.h:
	Add _CAST macro.

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

	* gst/typefind/gsttypefindfunctions.c: (xml_check_first_element):
	  Limit search for the first markup tag to the first few kB of
	  the file. If we don't find one there, it's highly unlikely that
	  this is an XML(-ish) file.

2006-07-21  Andy Wingo  <wingo@pobox.com>

	* tests/check/pipelines/theoraenc.c (test_discontinuity): Similar
	test to the one in vorbisenc. Also commented out.

	* tests/check/pipelines/vorbisenc.c: 
	(test_discontinuity): New test, commented out until Mike lands
	some elite vorbisenc patches.

	* tests/check/pipelines/theoraenc.c: Port to bufferstraw.
	Bufferstraw was actually factored out of these tests. Now we share
	code yay.

	* configure.ac (GST_MAJORMINOR): Rev core requirements to 0.10.9.1
	for bufferstraw addition to gstcheck.

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

	* ext/theora/theoradec.c: (clip_buffer):
	Better clipping.

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

	* gst-libs/gst/audio/gstaudiosink.c: (audioringbuffer_thread_func),
	(gst_audioringbuffer_finalize), (gst_audioringbuffer_acquire),
	(gst_audioringbuffer_release), (gst_audioringbuffer_stop):
	Fix leak.
	Avoid type casting when we can.

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_dispose):
	Fix mem leak.

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

	* ext/alsa/gstalsamixerelement.c:
	(gst_alsa_mixer_element_change_state):
	  Make state change fail if the specified device can't be opened
	  for some reason.

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

	* gst/playback/test.c: (gen_video_element), (gen_audio_element),
	(cb_newpad), (main):
	Example of a small audio/video player using decodebin.

2006-07-20  Stefan Kost  <ensonic@users.sf.net>

	* gst-libs/gst/riff/riff-ids.h:
	  Add 'fact' chunk id

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_change_state):
	Don't assert when not negotiated but post a meaningfull 
	error message. Fixes #347918.

	* gst-libs/gst/rtp/gstbasertppayload.c:
	Add comment about better default MTU size.

	* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data):
	Small cleanups, start docs.

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

	Patch by: Martin Szulecki

	* sys/v4l/gstv4lelement.c: (gst_v4lelement_get_property):
	  If "device-name" is requested and the device is not
	  open, try to temporarily open it to obtain this
	  information (#342494).

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

	* gst-libs/gst/tag/gstid3tag.c:
	  Add TSSE <=> GST_TAG_ENCODER mapping (see #347898).

	* gst-libs/gst/tag/gsttageditingprivate.h:
	* gst-libs/gst/tag/gstvorbistag.c:
	  Some more random const-ifications.

2006-07-18  Stefan Kost  <ensonic@users.sf.net>

	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_template_caps):
	  Add more FOURCCs (sort list to make stuff easier to find),
	  add comment what those 16 bytes in struct _gst_riff_strh according to
	  one avi-dumper are

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

	* gst-libs/gst/audio/multichannel.c:
	(gst_audio_check_channel_positions),
	(gst_audio_fixate_channel_positions):
	  Const-ify two arrays.

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

	* ext/alsa/gstalsa.c: (caps_add_channel_configuration):
	  Fix typo, so that alsasink also advertises 8 channels
	  if that's supported (tags: can, worms, open, alsa, ph34r).

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_internal_chain),
	(gst_ogg_pad_submit_packet), (gst_ogg_demux_read_chain):
	*sigh*, when is the compiler going to warn when the comments
	are out-of-sync with the code.. Refix case of busted theora
	headers with 0 granule pos.

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

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_wait),
	(gst_base_rtp_depayload_change_state),
	(gst_base_rtp_depayload_set_property),
	(gst_base_rtp_depayload_get_property):
	Fix 99% cpu load by waiting for absolute times on the
	clock. Fixes #347300.

2006-07-14  Andy Wingo  <wingo@pobox.com>

	* ext/theora/gsttheoraparse.h: 
	* ext/theora/theoraparse.c (theora_parse_drain_event_queue)
	(theora_parse_push_headers, theora_parse_clear_queue)
	(theora_parse_drain_queue_prematurely, )
	(theora_parse_sink_event, theora_parse_change_state): Queue events
	until we initialized our state, like in vorbisparse.

	* ext/vorbis/vorbisparse.h: 
	* ext/vorbis/vorbisparse.c (vorbis_parse_drain_event_queue)
	(vorbis_parse_push_headers, vorbis_parse_clear_queue)
	(vorbis_parse_drain_queue_prematurely, )
	(vorbis_parse_sink_event, vorbis_parse_change_state): Queue events
	until we have initialized our state. Fixes seeking after an
	initial pad block.

2006-07-14  Andy Wingo  <wingo@pobox.com>

	Patch by: Iain Holmes <iaingnome@gmail.com>
	
	* ext/ogg/gstoggdemux.c (gst_ogg_demux_finalize): Fix memleak.

2006-07-14  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	Bump nano back to CVS

=== release 0.10.9 ===

2006-07-13  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.9, "I walk the line"

2006-07-14  Michael Smith  <msmith@fluendo.com>

	* tests/check/pipelines/vorbisenc.c: (stop_pipeline):
	  Move a g_cond_signal to earlier to avoid sometimes deadlocking
	  (commonly happens when running this test under valgrind) when trying
	  to remove the buffer probe.

2006-07-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new):
	Fix missing g_unlock from the previous commit

2006-07-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_change_state):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_change_state):
	Implement a locking order to ensure we always take the object lock
	before the x_lock and never vice-versa.

2006-07-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gstdecodebin.c: (find_compatibles):
	Fix a caps leak when linking (#347304)

	* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
	(gst_ximagesink_ximage_destroy), (gst_ximagesink_xcontext_clear),
	(gst_ximagesink_change_state):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimage_buffer_finalize), (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_xcontext_clear), (gst_xvimagesink_change_state):
	Don't leak shared memory resources. Use the object lock to protect
	against the xcontext disappearing while returning a buffer from the
	pipeline. (#347304)

2006-07-12  Edward Hervey  <edward@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_finalize),
	(vorbis_handle_comment_packet):
	gst_tag_list_merge() returns a new object. Take that into account when
	using it. This avoids memleak.
	Revert previous commit which is not needed.

2006-07-12  Edward Hervey  <edward@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_finalize):
	Reset the decoder in finalize so that all fields get cleared.

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

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_set_clock),
	(gst_base_audio_src_check_get_range), (gst_base_audio_src_create):
	Don't try to post an error message when setting the clock fails
	as this can happen when adding an element to a bin which will then
	deadlock. Fixes #347296.

2006-07-12  Edward Hervey  <edward@fluendo.com>

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
	(vorbis_dec_sink_event), (vorbis_handle_comment_packet),
	(vorbis_handle_type_packet):
	Post tag messages on the bus even if we're not initialized.
	If we're not initialized, we still postpone the event pushing of tags.

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

	* ext/alsa/gstalsasink.c: (set_hwparams), (gst_alsasink_prepare):
	* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format),
	(gst_ring_buffer_debug_spec_caps), (gst_ring_buffer_parse_caps):
	Revert last two changes that broke the freeze.

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

	* ext/alsa/gstalsasink.c: (set_hwparams), (gst_alsasink_prepare):
	basesink calculates silence sample correctly for us.

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

	* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format),
	(gst_ring_buffer_debug_spec_caps), (gst_ring_buffer_parse_caps):
	Calculate correct silence samples so we don't fill our ringbuffer
	with noise.

2006-07-12  Edward Hervey  <edward@fluendo.com>

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init),
	(gst_vorbis_dec_reset), (vorbis_dec_sink_event),
	(vorbis_handle_comment_packet), (vorbis_handle_type_packet):
	* ext/vorbis/vorbisdec.h:
	Delay sending events (newsegment, tags) until the decoder is properly
	initialized.
	Fixes #347295

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

	* tests/check/elements/audioconvert.c: (get_float_mc_caps),
	(get_int_mc_caps), (GST_START_TEST), (audioconvert_suite):
	  Patch from #347221 adding a test for audioconvert
	  channel remappings.

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

	* gst/subparse/gstssaparse.c: (gst_ssa_parse_base_init),
	(gst_ssa_parse_parse_line):
	  Don't include the terminating NUL in the buffer size,
	  it's only there for extra paranoia (would add random
	  '*' characters at the end of each subtitle since the
	  terminator itself is not valid UTF-8 technically).
	  Also fix indenting after boilerplate macro.

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

	* gst/playback/gstdecodebin.c: (close_pad_link):
	  Also emit 'unknown-type' signal (which should really be
	  called unhandled-type) if we found potential decoders/demuxers
	  in the registry but none of them worked in the end (as in the
	  case where the plugins don't exist any longer but are still
	  listed in the registry). Fixes #329798.

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

	* theoraparse.c (theora_parse_push_buffer)
	(theora_parse_drain_queue_prematurely, theora_parse_drain_queue):
	Add some more debugging. Fix granulepos reconstruction in the face
	of discontinuities.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init),
	(gst_base_audio_sink_provide_clock):
	Use gobject_class instead of G_OBJECT_CLASS (klass)

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_class_init), (gst_base_audio_src_init),
	(gst_base_audio_src_set_clock), (gst_base_audio_src_provide_clock),
	(gst_base_audio_src_get_time),
	(gst_base_audio_src_check_get_range), (gst_base_audio_src_create),
	(gst_base_audio_src_create_ringbuffer):
	Fix latency and buffer-time constants and properties ala basesink.
	Implement pull based scheduling. Fixes #346527.
	Set default blocksize in GstBaseSrc to 0, we default to pushing out
	one segment.
	Refuse slaving to another clock instead of silently not working.
	Only provide a clock when we are actually able to do so.
	Various small cleanups and compiler hints.

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

	Patch by: Lutz Mueller <lutz at topfrose de>

	* gst/typefind/gsttypefindfunctions.c: (html_type_find),
	(plugin_init):
	  Add typefinding for text/html (#346581).

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

	* gst/typefind/gsttypefindfunctions.c: (utf8_type_find),
	(xml_check_first_element), (xml_type_find), (smil_type_find):
	  Fix SMIL typefinding, make xml_check_first_element() more
	  useful.

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

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(gst_play_base_bin_finalize), (decodebin_element_added_cb),
	(decodebin_element_removed_cb), (gst_play_base_bin_set_property):
	* gst/playback/gstplaybasebin.h:
	  Protect list of elements with a subtitle-encoding property and
	  the subtitle encoding member itself with a lock of their own
	  instead of using the object lock. This prevents a dead-lock in
	  the element-remove callback in some circumstances when shutting
	  down playbin.

2006-07-05  Sebastien Moutte  <sebastien@moutte.net>

	* win32/common/libgsttag.def:
	Export some new functions.
	* win32/vs6/libgstogg.dsp:
	Add a link to libgsttag-0.10.lib.

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

	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	  Some const-ification.

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

	* gst/playback/gstplaybasebin.c: (is_stream), (gen_source_element):
	Improve checking if we are dealing with a stream. Added some
	more uris that need buffering.

2006-07-03  Edward Hervey  <edward@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_do_clip):
	Remove unused variable.

2006-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  include lcov.mak
	* configure.ac:
	  add GCOV_LIBS to GST_LIBS

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

	Patch by: Michael Sheldon  <webmaster at mikeasoft com>

	* ext/alsa/gstalsasrc.c:
	  Add 32 bps to template caps and increase channels range
	  from [1,2] to [1,MAX]. See #346326.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Recognise 'WMVA' video codec fourcc (#345879).
	  
2006-06-29 Philippe Kalaf <philippe.kalaf@collabora.co.uk> 	 
	 
	* gst-libs/gst/rtp/gstbasertpaudiopayload.c: 	 
	  Fixed nasty memory leak

2006-06-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcp.c: (gst_tcp_read_buffer),
	(gst_tcp_gdp_read_buffer), (gst_tcp_gdp_read_caps):
	  fix logging

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

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(gst_decode_bin_init), (gst_decode_bin_finalize), (add_fakesink),
	(remove_fakesink), (pad_probe), (gst_decode_bin_change_state):
	Protect remove_fakesink using a mutex, so that we don't try and
	remove the fakesink simultaneously from multiple threads.

	When going from READY to PAUSED, restore the fakesink, so that
	it is there when decodebin gets reused.

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

	* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	* gst-libs/gst/rtp/gstbasertppayload.c:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	* gst/tcp/gstmultifdsink.c:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	* gst/videorate/gstvideorate.c:
	* gst/videotestsrc/gstvideotestsrc.c:
	* sys/v4l/gstv4ljpegsrc.c:
	* sys/v4l/gstv4lmjpegsink.c:
	* sys/v4l/gstv4lsrc.c:
	* tests/examples/seek/scrubby.c:
	* tests/examples/seek/seek.c:
	  Use GST_DEBUG_CATEGORY_STATIC where possible (#342503).

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

	* gst-libs/gst/tag/tags.c: (register_tag_image_type_enum):
	  Second field in GEnumValue shouldn't be a description,
	  but a stringified version of the enum value.

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

	* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
	(gst_ximage_buffer_free), (gst_ximagesink_ximage_put),
	(gst_ximagesink_setcaps), (gst_ximagesink_buffer_alloc):
	Avoid type checking in buffer casts.
	Avoid caps copy in buffer_alloc when we can.
	Use pad_peer_accept.

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

	* gst-libs/gst/tag/tag.h:
	  Oops, make that 'Since: 0.10.9'.

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/tag/tag.h:
	* gst-libs/gst/tag/tags.c: (register_tag_image_type_enum),
	(gst_tag_image_type_get_type):
	  API: add GstTagImageType enum to describe images contained
	  in image tags (#345641).

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

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
	  Fix warnings with gst-inspect: "buffers-min" property
	  should be of G_TYPE_INT and not G_TYPE_INT64. Also fix
	  typo in property description.

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

	Patch by: Cody Russell <bratsche at gnome org>

	* gst/audioresample/gstaudioresample.c:
	(gst_audioresample_class_init):
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_class_init):
	* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
	* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
	* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
	* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
	* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_video_test_src_class_init):
	* gst/volume/gstvolume.c: (gst_volume_class_init):
	  Avoid unnecessary class cast check in class_init
	  functions (#337747).

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

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_make_utf8),
	(gst_text_overlay_video_chain):
	  g_markup_escape_text() REALLY doesn't like non-UTF8 input
	  and doesn't validate its input either (and neither did
	  textoverlay it seems). Let's do that then and fix #345206.

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

	* gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type),
	(gst_unit_type_get_type), (gst_multi_fd_sink_class_init),
	(gst_multi_fd_sink_init), (gst_multi_fd_sink_add_full),
	(gst_multi_fd_sink_add), (gst_multi_fd_sink_handle_client_read),
	(find_syncframe), (find_limits), (assign_value),
	(count_burst_unit), (gst_multi_fd_sink_new_client),
	(gst_multi_fd_sink_handle_client_write),
	(gst_multi_fd_sink_queue_buffer), (gst_multi_fd_sink_render),
	(gst_multi_fd_sink_set_property), (gst_multi_fd_sink_get_property),
	(gst_multi_fd_sink_change_state):
	* gst/tcp/gstmultifdsink.h:
	Added shiny new burst-on-connect methods.
	Add properties to control the minimal amount of data queued.
	Small cleanups.
	API: bytes-min property
	API: time-min property
	API: buffers-min property
	API: burst-unit property
	API: burst-value property
	API: add-full signal

	* gst/tcp/gsttcp-marshal.list:
	Added new marshaller code for the new signal.

	* tests/check/elements/multifdsink.c: (GST_START_TEST),
	(multifdsink_suite):
	Added testcases for new burst methods.

2006-06-19  Edward Hervey  <edward@fluendo.com>

	* ext/theora/theoradec.c: (clip_buffer), (theora_dec_push):
	Implement clipping for accurate seeking.
	Closes #345225

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

	Patch by: Philip Jaegenstedt <philip at lysator dot liu dot se>

	* gst/videoscale/gstvideoscale.c: (gst_video_scale_prepare_size),
	(gst_video_scale_transform):
	Make videoscale support RGBA, ARGB, BGRA and ABGR. Fixes #345131

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

	* configure.ac:
	  Fix --disable-external (can't set conditionals conditionally,
	  #343602).

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

	* tests/check/elements/audioresample.c: (test_reuse),
	(audioresample_suite):
	  Add test case for bug #342789 fixed below.

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

	* gst/audioresample/gstaudioresample.c:
	(gst_audioresample_class_init), (gst_audioresample_init),
	(audioresample_start), (audioresample_stop),
	(gst_audioresample_set_property), (gst_audioresample_get_property):
	  Implement GstBaseTransform::start and ::stop so that audioresample
	  can clear its internal state properly and be reused instead of
	  causing non-negotiated errors with playbin under some circumstances
	  (#342789).

	* tests/check/elements/audioresample.c: (setup_audioresample),
	(cleanup_audioresample):
	  Need to set element state here so that ::start and ::stop are
	  called.

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

	Patch by: Young-Ho Cha <ganadist at chollian dot net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_parse_strf_vids):
	Parse extra data better, apparently it's right behind
	the normal strf header size. Fixes #343500.

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

	* ext/alsa/gstalsasink.c: (set_hwparams):
	If we fail to set the buffer_time and period_time alsa
	parameters, post a warning and leave alsa select a 
	default instead of failing. Fixes #342085

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

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/cdda/gstcddabasesrc.h:
	  Remove GST_CDDA_TAG_TRACK_TAGS again, it is #ifdef 0'ed
	  out in the header file and shouldn't be listed in the docs.

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk):
	  Must dereference pointer to fourcc in the debug statement.

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

	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* docs/libs/gst-plugins-base-libs.types:
	add remaining symbols into correct setions
	
	* gst-libs/gst/audio/gstringbuffer.c:
	fix incomplete docs
	
	* gst-libs/gst/audio/gstringbuffer.h:
	comment out not yet implemented function
	
	
	* gst-libs/gst/floatcast/floatcast.h:
	* gst-libs/gst/netbuffer/gstnetbuffer.c:
	add short descriptions
	
	
	* gst-libs/gst/interfaces/propertyprobe.c:
	fix return value docs	
	
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk):
	simplify debug logging
	
	* gst-libs/gst/riff/riff-read.h:
	sync function prototype and docs
	
	* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
	remove left over symbol

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

	* autogen.sh:
	* configure.ac:
	* docs/Makefile.am:
	  Use GST_PLUGIN_DOCS macro in configure.ac, add
	  --enable-plugin-docs default to autogen.sh and use
	  ENABLE_PLUGIN_DOCS conditional in Makefile.am (#344039).

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_peer),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_combine_flows),
	(gst_ogg_demux_loop):
	Combine GstFlowReturn from the source pads to give a
	meaningfull result to the upstream peer or to stop the
	processing task in case of errors.

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

	* gst/playback/gststreaminfo.c: (cb_probe):
	  Try GST_TAG_CODEC as fallback when extracting the
	  codec name; more debug info.

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

	* ext/ogg/Makefile.am:
	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	  Extract language tags from ogm subtitle streams, so that
	  the subtitle menu choices are labelled correctly in
	  Totem (fixes #344708).

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

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

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_get_type), (gst_ogg_mux_clear),
	(gst_ogg_mux_release_pad), (gst_ogg_mux_get_headers),
	(gst_ogg_mux_set_header_on_caps), (gst_ogg_mux_init_collectpads),
	(gst_ogg_mux_clear_collectpads), (gst_ogg_mux_change_state):
	Fix various leaks. Fixes #343699.
	Add x-smoke mime type.

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

	* gst-libs/gst/riff/riff-ids.h:
	  Add IDs for 'bext' chunks (see #343837).

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

	Patch by: Young-Ho Cha  <ganadist at chollian net>

	* gst/subparse/samiparse.c: (sami_context_pop_state),
	(handle_start_font), (end_sami_element):
	  Honour font face tags in SAMI subtitles (#344503).

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

	* po/POTFILES.in:
	  add missing files containing translatable strings

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

	* docs/libs/tmpl/.cvsignore:
	  we don't want those *.sgml files in CVS either

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

	* docs/libs/.cvsignore:
	* tests/check/elements/.cvsignore:
	* tests/check/libs/.cvsignore:
	  ignore more

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

	* docs/libs/Makefile.am:
	  also commiting the changed Makefile.am (added more libs to the
	  doc-build)

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

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* docs/libs/gst-plugins-base-libs.types:
	  first batch of reordering things, add index & hierarchy

2006-06-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  use GST_PKG_CHECK_MODULES, cleans up output

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

	* ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris):
	  Add support for burn:// URIs (#343385); const-ify things a bit,
	  use G_N_ELEMENTS instead of hard-coded array size.

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

	Patch by: Young-Ho Cha  <ganadist at chollian net>

	* gst/subparse/samiparse.c: (fix_invalid_entities), (parse_sami):
	  Fix up broken entities before passing them to libxml *sigh*.
	  (#343303).
	  
2006-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to TRUNK

=== release 0.10.8 ===

2006-06-09  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.8, "Moar gij ziet mij nie"

2006-06-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	* win32/common/config.h:
	  0.10.7.2 prerelease

2006-06-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/tmpl/gstaudio.sgml:
	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstmixer.sgml:
	* docs/libs/tmpl/gstringbuffer.sgml:
	* docs/libs/tmpl/gsttuner.sgml:
	* docs/libs/tmpl/gstxoverlay.sgml:
	* gst-libs/gst/audio/audio.c:
	* gst-libs/gst/audio/gstringbuffer.c:
	* gst-libs/gst/interfaces/colorbalance.c:
	* gst-libs/gst/interfaces/mixer.c:
	* gst-libs/gst/interfaces/tuner.c:
	* gst-libs/gst/interfaces/xoverlay.c:
	  move last template doc snippets to source code and delete them

2006-06-06  Michael Smith  <msmith@fluendo.com>

	* ext/theora/theoraparse.c: (theora_parse_drain_queue_prematurely),
	(theora_parse_drain_queue):
	  Mark DELTA_UNIT on non-keyframes.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_setcaps):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_parse_caps),
	(gst_ring_buffer_samples_done):
	* gst-libs/gst/audio/gstringbuffer.h:
	Document better the fact that latency_time and buffer_time are values
	stored in microseconds, and not the usual GStreamer nanoseconds.
	Change the variables (compatibly) that store them from GstClockTime 
	to guint64 to make it more clear that they're not storing clock times.
	Also, remove the bogus property description that says the user can
	specify -1 to get the default value, since that's never been the case.

	When computing the default segment size for the ring buffer, make it
	an integer number of samples.

	When the sub-class indicates a delay greater than the number of
	samples we've written return 0 from the audio sink get_time method.

2006-06-02  Michael Smith  <msmith@fluendo.com>

	* tests/check/elements/audioconvert.c: (set_channel_positions),
	(get_float_mc_caps), (get_int_mc_caps):
	* tests/check/elements/audioresample.c:
	* tests/check/elements/audiotestsrc.c: (GST_START_TEST):
	* tests/check/elements/videorate.c:
	* tests/check/elements/videotestsrc.c: (GST_START_TEST):
	* tests/check/elements/volume.c:
	* tests/check/elements/vorbisdec.c:
	* tests/check/pipelines/vorbisenc.c: (GST_START_TEST):
	  Don't busy-wait in tests; this was causing test timeouts very
	  frequently when running under valgrind.

2006-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/README:
	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_init),
	(gst_multi_fd_sink_remove_client_link),
	(gst_multi_fd_sink_client_queue_caps),
	(gst_multi_fd_sink_client_queue_buffer),
	(gst_multi_fd_sink_handle_client_write),
	(gst_multi_fd_sink_render):
	* gst/tcp/gstmultifdsink.h:
	  make multifdsink properly deal with streamheader:
	  - streamheader is taken from caps
	  - buffers marked with IN_CAPS are not sent
	  - streamheaders are sent, on connection, from the caps of the
	    buffer where the client gets positioned to
	  - further streamheader changes are done every time the client
	    will receive a buffer with different caps
	* tests/check/elements/multifdsink.c: (GST_START_TEST),
	(gst_multifdsink_create_streamheader):
	  add tests for this

2006-06-02  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet):
	  Reinstate limit on channel count. Vorbis does not define the meaning
	  of > 6 channels, so they're just independent channels. Gstreamer
	  currently has no mechanism to represent N independent channels.

2006-06-02  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet):
	  Don't arbitrarily restrict channel counts and rate in vorbis.
	  In terms of effects likely on real-world files, this fixes 96kHz
	  playback of vorbis.

2006-06-02  Michael Smith  <msmith@fluendo.com>

	* gst/audioconvert/audioconvert.c: (float):
	  More correct float->int conversion.

2006-06-02  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_perform_seek):
	  Don't accidently send GST_CLOCK_TIME_NONE as a new segment start
	  value. Fixes g-critical on trying to play back ogg containing
	  unknown codec.

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

	* gst/playback/gstplaybasebin.c: (group_create), (group_commit),
	(setup_source):
	* gst/playback/gstplaybasebin.h:
	Make the subtitle detection work from any thread so we don't
	deadlock. Fixes #343397.

2006-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/volume/Makefile.am:
	  Seriously, it's not *that* hard to get compilation right.  Even
	  a drunk can do it ! Add LIBOIL CFLAGS and LIBS

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

	* gst/volume/gstvolume.c: (volume_choose_func),
	(volume_update_real_volume), (gst_volume_class_init),
	(gst_volume_init), (volume_process_float), (volume_process_int16),
	(volume_process_int16_clamp), (volume_set_caps),
	(volume_transform_ip), (plugin_init):
	* gst/volume/gstvolume.h:
	rewrite the passthrough check, split _int16 and _int16_clamp, fix
	another property desc., remove unused param from process function
	
	* tests/check/elements/volume.c: (volume_suite):
	reactivate the passthrough test

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

	* ext/alsa/gstalsamixerelement.h:
	* ext/alsa/gstalsamixeroptions.h:
	* ext/alsa/gstalsamixertrack.h:
	* ext/gnomevfs/gstgnomevfssink.h:
	* ext/gnomevfs/gstgnomevfssrc.h:
	* ext/theora/gsttheoradec.h:
	* ext/theora/gsttheoraenc.h:
	* ext/theora/gsttheoraparse.h:
	* ext/vorbis/vorbisparse.h:
	* gst-libs/gst/audio/gstaudioclock.h:
	* gst-libs/gst/audio/gstaudiofilter.h:
	* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
	* gst/audioconvert/gstaudioconvert.h:
	* gst/audioresample/gstaudioresample.h:
	* gst/audiotestsrc/gstaudiotestsrc.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.h:
	* gst/playback/gststreamselector.h:
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.h:
	* gst/videorate/gstvideorate.h:
	* gst/videoscale/gstvideoscale.h:
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/volume/gstvolume.h:
	* sys/v4l/gstv4ljpegsrc.h:
	* sys/v4l/gstv4lmjpegsink.h:
	* sys/v4l/gstv4lmjpegsrc.h:
	* sys/v4l/gstv4lsrc.h:
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.h:
	* tests/old/testsuite/alsa/sinesrc.h:
	Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass

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

	* ext/libvisual/visual.c: (gst_visual_reset),
	(gst_visual_sink_setcaps), (gst_visual_sink_event),
	(gst_visual_src_event), (get_buffer), (gst_visual_chain):
	Handle DISCONT.
	Use running time before doing QoS.
	Handle mono too.

2006-05-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/Makefile.am:
	  set a magic variable to indicate we know the docs are incomplete

2006-05-30  Sebastien Moutte  <sebastien@moutte.net>

	* win32/common/libgstvideo.def:
	  export gst_video_calculate_display_ratio
	* win32/vs6/libgstvideoscale.dsp:
	  add link to libgstvideo-0.10.lib

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

	* gst/playback/gstplaybasebin.c: (gen_source_element):
	  Throw a more comprehensible error for rtsp:// URIs (rather
	  than erroring out with a negotiation error later on) until
	  we fix playbin to handle rtspsrc etc.

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

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_src_event),
	(gst_text_overlay_text_event):
	Added some FIXMEs.

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

	* gst/adder/gstadder.c: (gst_adder_class_init), (gst_adder_init),
	(gst_adder_request_new_pad), (gst_adder_release_pad):
	* gst/adder/gstadder.h:
	Implement release_request_pad.
	Make padcounter atomic.

	* tests/check/elements/adder.c: (GST_START_TEST), (adder_suite):
	Added check for release_pad in adder.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_chain_new_stream):
	Fix build again.

2006-05-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind),
	(gst_ogg_demux_chain_elem_pad), (gst_ogg_demux_queue_data),
	(gst_ogg_demux_chain_peer), (gst_ogg_pad_submit_packet),
	(gst_ogg_pad_submit_page), (gst_ogg_chain_new_stream),
	(gst_ogg_demux_seek), (gst_ogg_demux_get_data),
	(gst_ogg_demux_get_next_page), (gst_ogg_demux_do_seek),
	(gst_ogg_demux_bisect_forward_serialno),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_find_chains),
	(gst_ogg_demux_chain), (gst_ogg_demux_loop), (gst_ogg_print):
	  add more debugging
	  clean up printf formats for granulepos and serialno

2006-05-30  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (raw_caps_factory),
	(gst_vorbis_enc_class_init), (gst_vorbis_enc_dispose),
	(gst_vorbis_enc_generate_sink_caps), (gst_vorbis_enc_sink_getcaps),
	(gst_vorbis_enc_init), (gst_vorbis_enc_buffer_from_header_packet),
	(gst_vorbis_enc_chain), (gst_vorbis_enc_change_state):
	* ext/vorbis/vorbisenc.h:
	  Multi-channel caps negotiation, so we can do proper multichannel
	  vorbis encoding, negotiated through audioconvert.

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

	* tests/check/elements/adder.c: (test_event_message_received),
	(test_play_twice_message_received), (GST_START_TEST),
	(adder_suite):
	Added check to show that #339935 is fixed with ongoing
	adder and collectpads fixes.

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

	* gst/adder/gstadder.c: (gst_adder_request_new_pad):
	Don't leak pad name.

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

	* gst/adder/gstadder.c: (gst_adder_query_duration),
	(forward_event_func), (forward_event), (gst_adder_src_event):
	Fix adder seeking.
	Make query/seeking code threadsafe.

	* tests/check/Makefile.am:
	* tests/check/elements/adder.c: (test_event_message_received),
	(GST_START_TEST), (test_play_twice_message_received):
	Fix adder test case.

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

	Patch by: Young-Ho Cha  <ganadist at chollian net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_init), (gst_play_base_bin_dispose),
	(set_encoding_element), (decodebin_element_added_cb),
	(decodebin_element_removed_cb), (setup_subtitle), (setup_source),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property):
	* gst/playback/gstplaybasebin.h:
	  Add 'subtitle-encoding' property to playbin, so applications can
	  force a subtitle encoding for non-UTF8 subtitles (#342268).

	* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init),
	(gst_sub_parse_set_property):
	  Rename recently-added 'encoding' property to 'subtitle-encoding'
	  (so it can be proxied by playbin/decodebin in a generic way
	  with less danger of false positives).

2006-05-29  Michael Smith  <msmith@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c: (make_lossless_changes),
	(append_with_other_format), (set_structure_widths),
	(gst_audio_convert_transform_caps):
	  Patch from #341562: give more specific audio caps in get_caps, so
	  that basetransform  can make better decisions on what caps to
	  negotiate.

2006-05-28  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/volume.c:
	make it compile again

2006-05-28  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/volume.c: (volume_suite):
	disable test until #343196 gets resolved

2006-05-28  Stefan Kost  <ensonic@users.sf.net>

	* gst/adder/gstadder.c: (gst_adder_get_type):
	Make it easier to copy&paste
	
	* gst/volume/Makefile.am:
	* gst/volume/gstvolume.c: (volume_update_real_volume),
	(gst_volume_set_volume), (gst_volume_set_mute),
	(gst_volume_class_init), (volume_process_int16), (volume_set_caps),
	(volume_transform_ip), (volume_update_mute),
	(volume_update_volume):
	* gst/volume/gstvolume.h:
	Add own debug category, move duplicate code to helper function, fix
	property texts, add more comments and prepare ffor liboil-goodness
	
	* tests/check/Makefile.am:
	* tests/check/elements/volume.c: (GST_START_TEST), (volume_suite):
	add test for mute and passtrough case, be a bit more verbose to track
	failure
	
	* tests/check/generic/states.c: (GST_START_TEST):
	catch elements that fail to instantiate

2006-05-28  Edward Hervey  <edward@fluendo.com>

	* tests/check/pipelines/simple-launch-lines.c:
	* tests/check/pipelines/theoraenc.c:
	* tests/check/pipelines/vorbisenc.c:
	Comment out tests using parse_launch() if core was built without
	parsing capabilities.

2006-05-27  Edward Hervey  <edward@fluendo.com>

	* tests/check/Makefile.am:
	Extra bonus points for whoever explains to ensonic that you are meant
	to test unit tests thoroughly before commiting them, especially if
	you know it's going to break.
	De-activated element/adder tests.

2006-05-27  Edward Hervey  <edward@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_smpfmt_to_caps):
	Marking caps conversion issues as GST_WARNING is way too verbose,
	Moving them to GST_LOG.

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

	* README:
	  Replace current README (containing the release notes from
	  some 0.9.x version) with a proper README taken from the core.

2006-05-26  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_src_event), (vorbis_dec_sink_event), (vorbis_do_clip),
	(vorbis_dec_push), (vorbis_handle_data_packet), (vorbis_dec_chain),
	(vorbis_dec_change_state):
	Small cleanups.
	Add some FIXMEs
	Clip output samples to segment boundaries.

2006-05-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_show_frame):
	Improve the errors produced on bad output, including some human
	readable description strings.
	Handle the (theoretical for ximagesink) case where the XServer 
	has a different idea about the size required for a particular 
	frame and gives us too small a memory allocation.

2006-05-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_get_xv_support), (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_get_format_from_caps), (gst_xvimagesink_setcaps),
	(gst_xvimagesink_show_frame), (gst_xvimagesink_buffer_alloc):
	Improve the errors produced on bad output, including some human 
	readable description strings.
	Handle RGB Xv formats properly by transforming them into our 
	big-endian caps description.
	Use gst_caps_truncate to ensure that we never try and choose a
	non-fixed caps in buffer_alloc.
	Handle the case where the XServer has a different idea about the size
	required for a particular frame and gives us too small a memory
	allocation.
	Use -1 to indicate 'no image format', because 0 is a valid XServer
	image format number.
	Put RGB Xv formats at the end of the caps, so that we always prefer
	YUV format frames.
	Iterate the available Xv Encodings to determine the maximum width and
	height, and then return that in our caps.
	(Closes #315312, #337544)

2006-05-25  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gstdecodebin.c: (remove_fakesink), (pad_probe):
	When there is only one unfinished pad and it receives an event that
	doesn't match our requirements, we need to set alldone=FALSE so that
	the fakesink is not removed yet.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind):
	  Use gst_type_find_helper_for_buffer() to find the type
	  of stream from the first packet.

	* configure.ac:
	  Bump requirements to core CVS (needed for vorbis
	  typefinding to work).

2006-05-24  Edward Hervey  <edward@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (qt_type_find): 
	Added the 'prfl' atom type which MQV (no, it's not a typo) files
	contain.  Else they play perfectly fine with qtdemux.

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

	* ext/theora/theoradec.c:
	* ext/theora/theoraenc.c:
	* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
	* gst/audiorate/gstaudiorate.c:
	  make more debug catagories static
	
	* tests/check/Makefile.am:
	* tests/check/elements/adder.c: (message_received),
	(test_event_message_received), (GST_START_TEST),
	(test_play_twice_message_received), (adder_suite):
	  added test case for using element twice, extra bonus points for anyone
	  who can make these test run reliably

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

	* ext/theora/theoradec.c: (theora_dec_chain):
	  Make work with time-stamped input buffers that do not
	  have a granulepos in BUFFER_OFFSET_END (like theora
	  buffers coming from matroskademux). Fixes #342448.

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

	Patch by: Peter Kjellerstedt  <pkj at axis com>

	* gst/tcp/Makefile.am:
	  fdstresstest doesn't need Gtk+, fix compilation if 
	  gtk is not available (#342566).

2006-05-19 Philippe Kalaf <philippe.kalaf@collabora.co.uk> 	 
	 
	* gst-libs/gst/rtp/gstbasertpaudiopayload.c: 	 
	  80 line columns
	  Removed redundant floor()

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

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk):
	  On second thought, just skip JUNK chunks automatically, so
	  the caller doesn't have to handle this. Fixes #342345.
	  Also, return GST_FLOW_UNEXPECTED if we get a short read,
	  not GST_FLOW_ERROR.

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

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk):
	  Don't bail out on JUNK chunks with a size of 0 (would try to
	  pull_range 0 bytes before, which sources don't like too much).
	  See #342345.

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

	* gst/videoscale/gstvideoscale.c: (gst_video_scale_fixate_caps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
	Use the gstutil scaling function to preserve 64 bits while calculating
	output width and height from the display-aspect-ratio. (A continuation
	of #341542)

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

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_clear),
	(gst_xvimagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.h:
	When performing buffer allocations, remember the caps and image format
	we return so that if the same caps are asked for next time we can
	return them immediately without doing any caps intersections.

2006-05-18 Philippe Kalaf <philippe.kalaf@collabora.co.uk> 	 
	 
	* gst-libs/gst/rtp/README:
	  Some new documentation
	* gst-libs/gst/rtp/gstrtpbuffer.h: 	 
	  Added GST_RTP_PAYLOAD_DYNAMIC_STRING for use by children 	 
	* gst-libs/gst/rtp/gstbasertpaudiopayload.c: 	 
	* gst-libs/gst/rtp/gstbasertpaudiopayload.h: 	 
	  New RTP audio base payloader class. Supports frame or sample based
	  codecs.  Not enabled in Makefile.am until approved.

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

	* tests/check/elements/alsa.c: (test_device_property_probe):
	  Fix test case: don't try to free NULL GValueArray when there
	  are no devices.

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

	* tests/check/Makefile.am:
	* tests/check/elements/alsa.c: (test_device_property_probe),
	(alsa_suite), (main):
	  Add simple test that runs a device property probe on alsasrc,
	  alsasink and alsamixer. Disable valgrind check for now (too
	  many leaks in libasound, and valgrind ignored my suppressions
	  additions).

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

	* ext/alsa/gstalsadeviceprobe.c: (gst_alsa_get_device_list),
	(gst_alsa_device_property_probe_probe_property),
	(gst_alsa_device_property_probe_needs_probe),
	(gst_alsa_device_property_probe_get_values),
	(gst_alsa_type_add_device_property_probe_interface):
	* ext/alsa/gstalsadeviceprobe.h:
	* ext/alsa/gstalsamixerelement.c:
	(gst_alsa_mixer_element_init_interfaces):
	* ext/alsa/gstalsamixerelement.h:
	  Clean up and simplify alsa device probing. Make it actually work
	  for multiple classes. Don't cache results any longer.

	* ext/alsa/gstalsasink.c: (gst_alsasink_init_interfaces),
	(gst_alsasink_init):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_dispose),
	(gst_alsasrc_interface_supported), (gst_implements_interface_init),
	(gst_alsasrc_init_interfaces), (gst_alsasrc_set_property):
	  Make alsasink and alsasrc implement the GstPropertyProbe interface
	  for device probing (#342181).
	  Patch by: Martin Szulecki  <gnomebugzilla at sukimashita com>

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

	* gst/subparse/samiparse.c: (handle_start_font):
	  Don't ignore return value of strtol (++compiler_happiness).

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

	Patch by: Young-Ho Cha  <ganadist chollian net>

	* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
	(gst_sub_parse_class_init), (gst_sub_parse_init),
	(gst_sub_parse_set_property), (gst_sub_parse_get_property),
	(convert_encoding):
	* gst/subparse/gstsubparse.h:
	  Add 'encoding' property (#341681).

	* gst/subparse/samiparse.c: (characters_sami):
	  Output is pango markup, so we need to escape text
	  between tags (#342143).

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

	* gst-libs/gst/audio/multichannel.c:
	(gst_audio_check_channel_positions):
	  It's okay to have caps with channels=1 and a channel position
	  different from GST_AUDIO_CHANNEL_POSITION_FRONT_MONO
	  (deinterleavers might want to keep the position in the caps,
	  so that they can be re-interleaved again properly later).
	  Leave check for unexpected 2-channel layouts intact for now.

2006-05-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/tcp/gsttcp.c: (gst_tcp_socket_read):
	Return GST_FLOW_UNEXPECTED when we have an eos on the socket so
	basesrc can do its job correctly.

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

	* ext/alsa/Makefile.am:
	* ext/alsa/gstalsa.c: (gst_alsa_detect_rates),
	(gst_alsa_detect_formats), (get_channel_free_structure),
	(caps_add_channel_configuration), (gst_alsa_detect_channels),
	(gst_alsa_probe_supported_formats):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasink.c: (gst_alsasink_getcaps):
	  Refactor and improve caps probing code: probe signedness
	  when we probe the supported formats/widths; set endianness
	  to the one we actually probed for (ie. cpu endianness).
	  
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_init), (gst_alsasrc_getcaps),
	(gst_alsasrc_close):
	* ext/alsa/gstalsasrc.h:
	  Implement caps probing for alsasrc.

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

	* ext/theora/theoradec.c: (gst_theora_dec_reset),
	(theora_dec_src_query), (theora_dec_src_event),
	(theora_dec_sink_event), (theora_handle_comment_packet),
	(theora_handle_data_packet), (theora_dec_change_state):
	Cleanups, add some G_LIKELY.
	Use segment helpers instead of our own wrong code.
	Clear queued buffers on seek and READY.

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
	(vorbis_dec_convert), (vorbis_dec_src_query),
	(vorbis_dec_src_event), (vorbis_dec_sink_event),
	(vorbis_handle_comment_packet), (vorbis_dec_push),
	(vorbis_handle_data_packet), (vorbis_dec_chain),
	(vorbis_dec_change_state):
	* ext/vorbis/vorbisdec.h:
	Remove old useless packetno variable.
	Do position query properly.
	Add some G_LIKELY.
	Do cleanup of queued buffers in new helper function
	and use it.

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

	* ext/alsa/gstalsasink.c: (gst_alsasink_getcaps):
	  Query supported sample rates. Fixes #341732.

2006-05-15  Julien MOUTTE  <julien@moutte.net>

	* gst/playback/gstdecodebin.c: (cleanup_decodebin),
	(gst_decode_bin_change_state): Make decodebin reusable
	when going from PAUSE_TO_READY and then back to PAUSED.
	Fixes #331678.

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

	* ext/vorbis/vorbisdec.c: (vorbis_get_query_types),
	(vorbis_dec_convert), (vorbis_dec_src_query),
	(vorbis_dec_sink_query), (vorbis_dec_src_event),
	(vorbis_dec_sink_event), (vorbis_handle_identification_packet),
	(vorbis_dec_clean_queued), (vorbis_dec_push),
	(vorbis_handle_data_packet), (vorbis_dec_change_state):
	Cleanups. Use refcounting and DEBUG_OBJECT.
	Reset segment on flush, use code methods instead of our
	own wrong version.
	Fix potential memleak.

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

	* ext/alsa/gstalsasink.c: (gst_alsasink_finalise),
	(gst_alsasink_init):
	* ext/alsa/gstalsasink.h:
	  Don't leak allocated snd_output_t structure if there's
	  more than one alsasink instance at a time (#341873).
	  Also fix GObject macros in header file.
	  
2006-05-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/subparse/gstsubparse.c:
	(gst_sub_parse_data_format_autodetect):
	  Don't use libxml functions in the typefinding code.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet):
	Fix seeking performance in the case where a non-header 
	packet has a 0 granulepos (busted theora case). 
	Fixes #341719
	(nvdr: thanks Wim for not mentioning who spotted and fixed it in
	 the first place, you limelight stealer you)

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

	* gst/subparse/gstsubparse.c:
	(gst_sub_parse_data_format_autodetect):
	  Improve SAMI typefinding: handle case where there are
	  whitespaces or newlines in front of the first <SAMI>
	  tag (#169936).

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

	* configure.ac:
	  Build video4linux plugin even if there's no XVIDEO, just
	  without implementing the GstXOverlay interface (#334002).
	 
2006-05-15  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/libvisual/visual.c: (gst_visual_actor_plugin_is_gl),
	(plugin_init):
	  Add tentative support for libvisual-0.4 (#336881).

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

	Patch by: Young-Ho Cha <ganadist at chollian net>

	* gst/subparse/samiparse.c: (handle_start_font):
	  Need to map "silver" colour explicitly (#169936).

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

	Patch by: Young-Ho Cha  <ganadist at chollian net>

	* gst/subparse/Makefile.am:
	* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
	(parser_state_dispose), (gst_sub_parse_data_format_autodetect),
	(gst_sub_parse_format_autodetect), (feed_textbuf),
	(gst_subparse_type_find), (plugin_init):
	* gst/subparse/gstsubparse.h:
	* gst/subparse/samiparse.c:
	* gst/subparse/samiparse.h:
	  Add support for SAMI subtitles (#169936).

2006-05-14  Michael Smith  <msmith@fluendo.com>

	* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_fill_others):
	  Fix #341696: crash when mixing L+R+C to mono or stereo.
	* tests/check/Makefile.am:
	* tests/check/elements/audioconvert.c: (set_channel_positions),
	(get_float_mc_caps), (get_int_mc_caps), (GST_START_TEST),
	(audioconvert_suite):
	  Add test for the above, including some generic framework bits for
	  testing multichannel things.

=== release 0.10.7 ===

2006-05-14  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.7, "Leave the gun"

2006-05-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/videoscale/gstvideoscale.c: (gst_video_scale_fixate_caps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
	Fix the build.

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

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/video/video.c: (gst_video_calculate_display_ratio):
	* gst-libs/gst/video/video.h:
	* gst/videoscale/Makefile.am:
	* gst/videoscale/gstvideoscale.c: (gst_video_scale_fixate_caps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
	* tests/check/Makefile.am:
	* tests/check/libs/video.c: (GST_START_TEST), (video_suite),
	(main):
	  Fix integer overflow problem with pixel-aspect-ratio calculations
	  in videoscale and xvimagesink (#341542)

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

	* gst-libs/gst/tag/gstid3tag.c:
	  Map GST_IMAGE_TAG to and from ID2v2 APIC frames (#341557).

2006-05-12  Sebastien Moutte  <sebastien@moutte.net>

	* win32/MANIFEST:
	  update win32 files listing

2006-05-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Sjoerd Simons (sjoerd@luon.net)

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(group_create), (group_destroy), (add_stream),
	(gst_play_base_bin_get_property),
	(gst_play_base_bin_get_streaminfo_value_array):
	* gst/playback/gstplaybasebin.h:
	  API: GstPlayBaseBin::stream-info-value-array property
	  use a more bindings-friendly way of exposing streaminfo
	  using a GValueArray.  Tested in ipython.
	  Closes #341114

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

	* gst/playback/gstdecodebin.c: (try_to_link_1), (queue_enlarge),
	(queue_underrun_cb), (queue_filled_cb):
	Also catch queue underruns but don't do anything yet.
	Refactor and comment queue enlarging code a bit.

	* gst/playback/gstplaybasebin.c: (queue_overrun),
	(queue_threshold_reached), (queue_out_of_data),
	(gen_preroll_element):
	If a queue over/underruns check that we don't create nasty
	deadlocks when the min-threshold is not reached but the
	max-bytes is. In those cases disable max-bytes when we
	know that the queue is fed timed data.
	Add more comments.

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

	* gst/playback/gstplaybin.c: (gen_audio_element):
	  Make playbin automatically plug an 'audioresample'
	  element before the audio sink as well. This solves
	  problems with sinks that only accept a very specific
	  sample rate, like esdsink (e.g. #340379).

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

	* gst/playback/gstplaybasebin.c: (gen_source_element):
	  Make http sources send special headers so that we receive
	  icecast metadata if the http stream is an icecast stream
	  (otherwise the server will just ignore them). This also
	  means that from now on users will need the 'icydemux'
	  element from gst-plugins-good installed if they want to
	  listen to icecast radio streams. (#341432, #333657).

2006-05-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_remove_client_link),
	(gst_multi_fd_sink_new_client), (gst_multi_fd_sink_stop):
	  remove stupid example from docs - it should come with a simple
	  C program instead.
	  Clean up/fix docs
	* tests/check/elements/multifdsink.c: (wait_bytes_served),
	(fail_if_can_read), (GST_START_TEST),
	(gst_multifdsink_create_streamheader), (multifdsink_suite):
	  add a test for changing streamheader which exposes a bug in
	  multifdsink

2006-05-11  Michael Smith  <msmith@fluendo.com>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_init),
	(gst_gnome_vfs_src_received_headers_callback):
	* ext/gnomevfs/gstgnomevfssrc.h:
	  Don't set icy-caps unless we have a sane interval value. Move
	  interval to a local variable; we never use it outside this function.

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

	* sys/ximage/ximagesink.c: (gst_ximagesink_get_type):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_type):
	Register special buffer types along with the objects so
	that they are not registered at runtime from N different
	streaming threads since they are not threadsafe.

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

	* tests/check/elements/multifdsink.c: (wait_bytes_served),
	(GST_START_TEST), (fail_unless_read), (multifdsink_suite):
	  add two more tests, one doing streamheader

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

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_stop):
	  clean up the bufqueue when shutting down
	* tests/check/Makefile.am:
	* tests/check/elements/multifdsink.c: (setup_multifdsink),
	(cleanup_multifdsink), (GST_START_TEST), (multifdsink_suite),
	(main):
	  add a test for the leak that was just fixed

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

	* gst/adder/gstadder.c: (gst_adder_setcaps),
	(gst_adder_query_duration), (gst_adder_query), (forward_event),
	(gst_adder_src_event), (gst_adder_sink_event),
	(gst_adder_class_init), (gst_adder_finalize),
	(gst_adder_request_new_pad), (gst_adder_collected):
	* gst/adder/gstadder.h:
	Updated some docs. Added comments and FIXMEs all over the place.
	Improve debugging info.
	Fix leak on finalize by not calling the parent.
	Implement duration query.
	Make event forwarding threadsafe.
	Correctly send NEWSEGMENT at start and after flush.
	Handle EOS correctly.
	Post error when not negotiated.

	* tests/check/elements/adder.c: (GST_START_TEST):
	Added FIXME in the test.

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

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_valign_get_type),
	(gst_text_overlay_halign_get_type),
	(gst_text_overlay_wrap_mode_get_type):
	* ext/theora/theoradec.c: (theora_handle_type_packet),
	(theora_handle_data_packet):
	* ext/theora/theoraenc.c: (gst_border_mode_get_type),
	(theora_enc_sink_setcaps), (theora_enc_chain):
	* gst-libs/gst/cdda/gstcddabasesrc.c:
	(gst_cdda_base_src_mode_get_type):
	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiostestsrc_wave_get_type):
	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type):
	* gst/tcp/gstfdset.c: (gst_fdset_mode_get_type):
	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_sync_method_get_type), (gst_unit_type_get_type),
	(gst_client_status_get_type):
	* gst/videoscale/gstvideoscale.c:
	(gst_video_scale_method_get_type):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_video_test_src_pattern_get_type):
	* gst/videotestsrc/videotestsrc.c: (paint_setup_I420),
	(paint_setup_YV12), (paint_setup_YUY2), (paint_setup_UYVY),
	(paint_setup_YVYU), (paint_setup_IYU2), (paint_setup_Y41B),
	(paint_setup_Y42B), (paint_setup_Y800), (paint_setup_YVU9),
	(paint_setup_YUV9), (paint_setup_RGB888), (paint_setup_BGR888),
	(paint_setup_RGB565), (paint_setup_xRGB1555):
	  Const-ify GEnumValue and GFlagsValue arrays. Use
	  GST_ROUND_UP_* macros instead of home-made ones.

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

	* configure.ac:
	  Require core CVS for the new newsegment stuff.

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

	Patch by: Sjoerd Simons  <sjoerd at luon net>

	* gst/tcp/gstmultifdsink.c: (gst_client_status_get_type):
	  Register nick for enum value (#341160).

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

	* gst/typefind/gsttypefindfunctions.c: (m4a_type_find),
	(plugin_init):
	 backout typefind patch #340375
	 
	* tests/check/elements/adder.c: (message_received),
	(GST_START_TEST), (adder_suite):
	  redo, signal-handling of test

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

	* gst/adder/gstadder.c: (gst_adder_request_new_pad),
	(gst_adder_collected):
	* gst/adder/gstadder.h:
	Remove bogus segment merging and forwarding, we don't
	care about timestamps anyway and we just produce a
	continuous stream. 
	Also create a nice NEWSEGMENT event when we start.
	Use _scale_int some more.

2006-05-09  Edward Hervey  <edward@fluendo.com>

	* tests/icles/stress-xoverlay.c:
	Fix if core was built without parsing support.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Add SEDG (Samsung MPEG-4) fourcc.

2006-05-09  Edward Hervey  <edward@fluendo.com>

	* tests/icles/stress-xoverlay.c:
	* tests/examples/volume/volume.c:
	Fix if core was built without parsing support.

	* tests/examples/seek/seek.c:
	Disable the parse_launch example if core was built without parsing
	support.

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

	* autogen.sh: (CONFIGURE_DEF_OPT): 
	libtoolize on Darwin/MacOSX is called glibtoolize

2006-05-07  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/Makefile.am:
	* tests/check/elements/adder.c: (event_loop), (GST_START_TEST):
	  Disable the adder test, until the build-slaves posses the kindness to 
	  either like it or to give valid reason for not doing so 

2006-05-07  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/adder.c: (event_loop), (GST_START_TEST),
	(adder_suite):
	  Shuffle NULL state change around and raise timeout more

2006-05-07  Stefan Kost  <ensonic@users.sf.net>

	* gst/typefind/gsttypefindfunctions.c: (mp4_find_box),
	(mp4_type_find), (plugin_init):
	  Add typefind to distinguish between "audio/x-m4a" and new type
	  "video/mp4". Fixes #340375

	* tests/check/elements/adder.c: (adder_suite):
	  Raise timeout to make buildbot happy

2006-05-07  Stefan Kost  <ensonic@users.sf.net>

	* gst/adder/gstadder.c: (gst_adder_sink_event),
	(gst_adder_request_new_pad), (gst_adder_change_state):
	* gst/adder/gstadder.h:
	* tests/check/Makefile.am:
	* tests/check/elements/adder.c: (event_loop), (GST_START_TEST),
	(adder_suite), (main):
	  Add sink-event handling to adder. It tries to merge incomming
	  newsegment-events. Added test to check if segment_done is comming
	  through. Fixes #340060

2006-05-05  Andy Wingo  <wingo@pobox.com>

	* ext/theora/theoraparse.c (gst_theora_parse_init)
	(theora_parse_src_convert, theora_parse_src_query):
	* ext/vorbis/vorbisparse.c (gst_vorbis_parse_init)
	(vorbis_parse_convert, vorbis_parse_src_query): Add convert and
	query functions on the source pads of the theora and vorbis parse
	elements. Fixes position querying when doing a remux.

2006-05-05  Michael Smith  <msmith@fluendo.com>

	* ext/theora/theoraparse.c: (parse_granulepos),
	(theora_parse_drain_queue_prematurely),
	(theora_parse_queue_buffer), (theora_parse_sink_event):
	  Fix flushing.
	  Fix invalid granulepos outputs when starting with a non-keyframe.

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

	* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find),
	(mpeg1_sys_type_find), (ogganx_type_find), (sw_data_destroy):
	Rearrange MPEG system stream detection, fixing some memleaks in the
	process.
	Constify the data for STARTS_WITH and RIFF helper handlers. Make sure
	they clean up their data correctly.
	Remove unused ogganx caps and move the 'is_annodex' check to inside
	the 'is_ogg' if statement.

2006-05-05  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (cleanup_decodebin):
	Properly remove ghostpads. Fixes #340392

2006-05-04  David Schleef  <ds@schleef.org>

	* gst/typefind/gsttypefindfunctions.c:

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

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
	(mpeg_ts_probe_headers), (mpeg_ts_type_find):

	When typefinding an MP3 in push-based mode, don't penalise the
	probability down to 74% when we found 5 valid frames just because we
	can't peek the end of the file.

	Make the probability for detecting MPEG Transport Streams based on the
	number of sequential headers we successfully detected.

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

	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_dec_push), (vorbis_dec_chain):
	Still produce an error when we receive an empty packet.

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

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_peer),
	(gst_ogg_chain_mark_discont), (gst_ogg_chain_new_stream),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_perform_seek):
	Mark buffers with DISCONT after seek and after activating new
	chains.

	* ext/theora/gsttheoradec.h:
	* ext/theora/theoradec.c: (gst_theora_dec_reset),
	(theora_get_query_types), (theora_dec_sink_event),
	(theora_dec_push), (theora_handle_data_packet), (theora_dec_chain),
	(theora_dec_change_state):
	Fix frame counter.
	Detect and mark DISCONT buffers.

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_sink_event), (vorbis_dec_push), (vorbis_dec_chain),
	(vorbis_dec_change_state):
	* ext/vorbis/vorbisdec.h:
	Use GstSegment.
	Detect and mark DISCONT buffers.
	Don't crash on 0 sized buffers.

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

	* gst/volume/gstvolume.c: (volume_funcfind), (volume_set_caps),
	(volume_transform_ip):
	Increase "volume" property to 10.0. Fixes #340369.
	Set the process function to NULL when capsnego fails so that
	we properly error out.

2006-05-02  Stefan Kost  <ensonic@users.sf.net>

	* gst/playback/gstplaybin.c: (add_sink):
	* gst/playback/test.c: (main):
	* gst/playback/test5.c: (dump_element_stats):
	* gst/playback/test6.c: (main):
	  free caps using gst_caps_unref, don't leak caps-strings

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

	* gst/typefind/gsttypefindfunctions.c: (musepack_type_find),
	(plugin_init):
	  Refine musepack typefinding a bit. Return MAXIMUM
	  probability when we detect stream version 7 to make
	  sure the mpeg audio typefinder doesn't trump us.

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

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  Protect against unexpected NULL strf_data buffer.

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

	* tests/check/elements/audioconvert.c: (verify_convert),
	(GST_START_TEST):
	  interpret the out[] buffer in the order the bytes are actually
	  put in, which is LITTLE_ENDIAN, not BYTE_ORDER.
	  Other tests should use BYTE_ORDER since the array is filled in
	  with actual values

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

	* tests/check/elements/audioconvert.c: (verify_convert),
	(GST_START_TEST):
	  when a test fails, give an indication of which it is

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

	* gst-libs/gst/cdda/gstcddabasesrc.c:
	  compile fix; strtol() needs <stdlib.h>

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

	* ext/alsa/gstalsamixerelement.c:
	* ext/alsa/gstalsasrc.c:
	* ext/cdparanoia/gstcdparanoiasrc.c:
	* ext/gnomevfs/gstgnomevfssink.c:
	* ext/gnomevfs/gstgnomevfssrc.c:
	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggmux.c:
	* ext/ogg/gstoggparse.c:
	* ext/ogg/gstogmparse.c:
	* ext/pango/gstclockoverlay.c:
	* ext/pango/gsttextoverlay.c:
	* ext/pango/gsttextrender.c:
	* ext/pango/gsttimeoverlay.c:
	* ext/theora/theoradec.c:
	* ext/theora/theoraenc.c:
	* ext/vorbis/vorbisdec.c:
	* ext/vorbis/vorbisenc.c:
	* gst-libs/gst/audio/gstaudiofilter.c:
	* gst-libs/gst/audio/gstaudiofiltertemplate.c:
	* gst/audioconvert/gstaudioconvert.c:
	* gst/audiorate/gstaudiorate.c:
	* gst/audioresample/gstaudioresample.c:
	* gst/audiotestsrc/gstaudiotestsrc.c:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	* gst/playback/gstdecodebin.c:
	* gst/playback/gstplaybin.c:
	* gst/playback/gststreamselector.c:
	* gst/subparse/gstsubparse.c:
	* gst/tcp/gstmultifdsink.c:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	* gst/videorate/gstvideorate.c:
	* gst/videoscale/gstvideoscale.c:
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/volume/gstvolume.c:
	* sys/v4l/gstv4ljpegsrc.c:
	* sys/v4l/gstv4lmjpegsink.c:
	* sys/v4l/gstv4lmjpegsrc.c:
	* sys/v4l/gstv4lsrc.c:
	* sys/ximage/ximagesink.c:
	* sys/xvimage/xvimagesink.c:
	* tests/check/libs/cddabasesrc.c:
	  make GstElementDetails const

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

	* gst/adder/gstadder.c: (gst_adder_setcaps), (gst_adder_src_event),
	(gst_adder_init):
	  send events from src-pad to all sink-pads fixes #338657

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

	* ext/alsa/gstalsasink.c: (gst_alsasink_getcaps),
	(alsasink_parse_spec):
	  query width capabilities from alsa, fixes #338919

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

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init),
	(gst_multi_fd_sink_remove_client_link):
	* gst/tcp/gstmultifdsink.h:
	Fix race condition in multifdsink that can lead to spurious 
	duplicate clients. this patch adds a new signal that is fired when
	multifdsink has removed all references to the fd.
	Fixes #339574.
	Updated documentation.
	API: client-fd-removed signal added

2006-04-28  Michael Smith  <msmith@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_get_stats):
	  When asking g_value_array_new to prealloc elements, we may as well
	  ask for the right number of elements.

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

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_drain), (gst_base_audio_sink_event),
	(gst_base_audio_sink_render), (gst_base_audio_sink_change_state):
	patch to make timestamp checking more tollerant to rounding 
	errors given that real discontinuities are to be marked on
	buffers. Fixes some asf files and #338778.
	Also avoid some crashers when we receive an event in the 
	NULL state.

2006-04-28  Michael Smith  <msmith@fluendo.com>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init),
	(gst_gnome_vfs_src_init), (gst_gnome_vfs_src_finalize),
	(gst_gnome_vfs_src_get_property),
	(gst_gnome_vfs_src_send_additional_headers_callback),
	(gst_gnome_vfs_src_received_headers_callback),
	(gst_gnome_vfs_src_create), (gst_gnome_vfs_src_start),
	(gst_gnome_vfs_src_stop):
	* ext/gnomevfs/gstgnomevfssrc.h:
	  Remove ICY handling (mostly) from gnomevfssrc, in favour of
	  proper shared support within icydemux.

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

	* gst/videorate/gstvideorate.c: (gst_video_rate_reset),
	(gst_video_rate_swap_prev), (gst_video_rate_chain):
	  fix up docs
	  fix a leak when no caps negotiated
	  fix counting of input frames
	* tests/check/elements/.cvsignore:
	* tests/check/elements/videorate.c: (assert_videorate_stats),
	(GST_START_TEST), (videorate_suite):
	  add tests for these

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

	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_set_callback), (gst_ring_buffer_acquire),
	(gst_ring_buffer_release), (gst_ring_buffer_is_acquired),
	(gst_ring_buffer_set_flushing), (gst_ring_buffer_start),
	(gst_ring_buffer_pause), (gst_ring_buffer_stop),
	(gst_ring_buffer_delay), (gst_ring_buffer_samples_done),
	(gst_ring_buffer_set_sample), (gst_ring_buffer_clear_all),
	(gst_ring_buffer_commit), (gst_ring_buffer_read),
	(gst_ring_buffer_prepare_read), (gst_ring_buffer_advance),
	(gst_ring_buffer_clear), (gst_ring_buffer_may_start):
	Check arguments passed to public functions instead of
	crashing.

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

	* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_init),
	(gst_base_audio_src_get_time), (gst_base_audio_src_create):
	GstBaseAudioSrc must be live or it does not work.

	* gst-libs/gst/audio/gstaudiosrc.c: (gst_audio_src_init):
	Don't set live to TRUE as this is the default in the parentclass.

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

	* gst/videoscale/gstvideoscale.c: (gst_video_scale_transform_caps),
	(gst_video_scale_fixate_caps), (gst_video_scale_src_event):
	Videoscale doesn't pass on pixel-aspect ratio. Handle all
	fixation cases better. Fixes #338991

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

	* gst/videotestsrc/gstvideotestsrc.c: (gst_video_test_src_create):
	Handle 0/1 framerate correctly Fixes #331901.

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

	* tests/check/elements/audioconvert.c: (get_float_caps),
	(GST_START_TEST), (audioconvert_suite):
	Added check for correct clipping when doing float samples
	in audioconvert.

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

	* gst/videorate/gstvideorate.c: (gst_video_rate_event),
	(gst_video_rate_chain):
	Print more debugging info.

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

	* gst/audioresample/gstaudioresample.c: (gst_audioresample_init),
	(resample_set_state_from_caps):
	Add support for other formats audioresample can handle such as
	32 bits in and float and 64 bits float. Fixes #301759

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

	* gst/audioconvert/audioconvert.c: (float):
	correctly clip float samples > 1.0. Fixes #338718

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

	Patch by: Young-Ho Cha  <ganadist at chollian net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
	(gst_text_overlay_render_text):
	  Don't strip newlines from the text. Also, center lines
	  within multi-line paragraphs (#339405).

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

	* gst/typefind/gsttypefindfunctions.c: (wavpack_type_find):
	  Fix wavpack typefinding to work in more cases (don't peek
	  for chunks of multiple hundred kBs at once, but process
	  things step-by-step in smaller units). Fixes #339786.

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

	* configure.ac:
	  back to HEAD

=== release 0.10.6 ===

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

	* configure.ac:
	  releasing 0.10.6, "Chao"

2006-04-26  David Schleef  <ds@schleef.org>

	* gst/videoscale/gstvideoscale.c: Add call to oil_init().
	  Fixes #338897.

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

	* configure.ac:
	* win32/common/config.h:
	  new prerelease

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

	patch by: Wim Taymans

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_perform_seek):
	  make sure correct newsegments are sent, so that the decoder
	  and the demuxer agree on timestamps.  Fixes playback of a lot
	  of Ogg files that do not start from 0.  Fixes #339833.

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

	Patch by: Edward Hervey  <edward@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_video_rate_chain):
	* tests/check/Makefile.am:
	* tests/check/elements/videorate.c: (assert_videorate_stats),
	(setup_videorate), (cleanup_videorate), (GST_START_TEST),
	(videorate_suite), (main):
	  Fix an infinite loop if frames are passed in with wrongly ordered
	  timestamps.  Fixes #339013.

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

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

	* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
	  fix typefinding on some ISO files.  Fixes #339212.

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

	Patch by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  add another H264 fourcc.  Fixes #339047.

2006-04-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: Jan Schmidt

	* gst/playback/gststreamselector.c:
	(gst_stream_selector_bufferalloc):
	  Restore old StreamSelector behaviour.
	  Fixes #338419.

2006-04-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* win32/common/config.h:
	  prerelease

2006-04-11  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Antoine Tremblay  <hexa00 at gmail dot com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_finalize), (gst_base_rtp_depayload_push):
	  Fix some memory leaks: on finalize, free buffers left in the queue
	  before destroying the queue; in _push(), unref rtp_buf even if
	  the process vfunc returned a NULL buffer as output buffer (#337548);
	  demote some recuring debug messages to LOG level.

2006-04-11  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query),
	(gst_ogg_demux_chain_peer), (gst_ogg_pad_submit_packet),
	(gst_ogg_chain_free), (gst_ogg_demux_sink_event),
	(gst_ogg_demux_loop):
	More cleanups.
	Respect segment stop when emiting EOS or SEGMENT_DONE.
	Fixes (#337945).

2006-04-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gststreamselector.c:
	(gst_stream_selector_get_property):
	  Don't leak pad name.

2006-04-10  Michael Smith  <msmith@fluendo.com>

	* tests/check/Makefile.am:
	* tests/check/gst-plugins-base.supp:
	  Suppress an old libtheora bug (fixed in more recent versions), so 
	  that FC4 buildslaves can pass.

2006-04-10  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query),
	(gst_ogg_demux_receive_event), (gst_ogg_pad_event),
	(gst_ogg_demux_init), (gst_ogg_demux_finalize),
	(gst_ogg_demux_sink_event), (gst_ogg_demux_get_data),
	(gst_ogg_demux_loop):
	Don't leak events.
	Remember what error we got when finding chains, if we
	were shutdown, that would not be an error.

2006-04-10  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_event):
	Starting the ringbuffer when we did not acquire it can cause
	a deadlock, is pointless and causes nasty things for
	subclasses. 
	Fixes gst-launch audiotestsrc num-buffers=0 ! alsasink.

2006-04-10  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query),
	(gst_ogg_demux_receive_event), (gst_ogg_pad_event),
	(gst_ogg_demux_chain_peer), (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_submit_buffer), (gst_ogg_demux_get_data),
	(gst_ogg_demux_deactivate_current_chain),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_bisect_forward_serialno),
	(gst_ogg_demux_find_chains), (gst_ogg_demux_chain):
	Add some more debugging.

2006-04-10  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_src_event),
	(theora_handle_data_packet):
	Some more debug info.

	* tests/examples/seek/seek.c: (start_seek), (main):
	Print element messages too.

2006-04-09  Sebastien Moutte  <sebastien@moutte.net>

	* gst/audioresample/debug.h:
	  replace debug macros with variable number of parameters
	  by a simple alias to gstreamer standard debug macros 
	 (#define RESAMPLE_ERROR GST_ERROR, __VA_ARGS__ is not
	  supported by MSVC 6.0 and 7.1)
	* gst/audioresample/resample.h:
	  define M_PI and rint for WIN32
	* win32/common/libgstaudio.def:
	* win32/common/libgstriff.def:
	* win32/common/libgsttag.def:
	* win32/common/libgstvideo.def:
	  add new exported functions
	* win32/vs6:
	  update project files

2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* ext/alsa/gstalsamixeroptions.c:
	(gst_alsa_mixer_options_class_init):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_class_init):
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_class_init):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init):
	* ext/ogg/gstoggparse.c: (gst_ogg_parse_class_init):
	* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_class_init):
	* gst-libs/gst/audio/gstaudiofilter.c:
	(gst_audio_filter_class_init):
	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_class_init):
	* gst-libs/gst/audio/gstaudiosrc.c:
	(gst_audioringbuffer_class_init):
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_class_init):
	* gst-libs/gst/interfaces/colorbalancechannel.c:
	(gst_color_balance_channel_class_init):
	* gst-libs/gst/interfaces/mixeroptions.c:
	(gst_mixer_options_class_init):
	* gst-libs/gst/interfaces/mixertrack.c:
	(gst_mixer_track_class_init):
	* gst-libs/gst/interfaces/tunerchannel.c:
	(gst_tuner_channel_class_init):
	* gst-libs/gst/interfaces/tunernorm.c: (gst_tuner_norm_class_init):
	* gst-libs/gst/netbuffer/gstnetbuffer.c:
	(gst_netbuffer_class_init):
	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init):
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
	* gst/playback/gststreaminfo.c: (gst_stream_info_class_init):
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_class_init):
	* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
	* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
	* sys/v4l/gstv4lcolorbalance.c:
	(gst_v4l_color_balance_channel_class_init):
	* sys/v4l/gstv4ljpegsrc.c: (gst_v4ljpegsrc_class_init):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
	* sys/v4l/gstv4ltuner.c: (gst_v4l_tuner_channel_class_init),
	(gst_v4l_tuner_norm_class_init):
	* sys/ximage/ximagesink.c: (gst_ximagesink_class_init):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init):
	* tests/old/testsuite/alsa/sinesrc.c: (sinesrc_class_init):
	Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)

2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* ext/pango/gsttextrender.h:
	* gst-libs/gst/audio/gstaudiosink.h:
	* gst-libs/gst/audio/gstaudiosrc.h:
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	* gst-libs/gst/audio/gstringbuffer.h:
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	* gst-libs/gst/rtp/gstbasertppayload.h:
	* gst-libs/gst/video/gstvideofilter.h:
	* gst-libs/gst/video/gstvideosink.h:
	* gst/playback/gstplaybasebin.h:
	* gst/tcp/gstmultifdsink.h:
	* sys/v4l/gstv4lelement.h:
	Fix broken GObject macros

2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* ext/alsa/gstalsasink.c: (set_hwparams), (alsasink_parse_spec):
	More debug to trace why my USB headset is not working with gst

2006-04-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gstplaybasebin.c: (group_destroy):
	Clean up our group elements properly in the case where it never 
	got committed - it still got added unconditionally to the bin.

2006-04-07  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_sink_event),
	(theora_handle_data_packet), (theora_dec_chain):
	Unref unhandled events.
	Protect against empty buffers.
	Perform QoS on running time.

2006-04-07  Michael Smith  <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_set_header_on_caps),
	(gst_vorbis_enc_chain):
	  Remove leaks from vorbisenc.
	  Mostly minor changes, the only significant one is that now the
	  buffers we set as 'streamheader' on the caps are copies of the
	  original buffers, to avoid circular refcounting problems.

2006-04-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gstplaybasebin.c: (mute_stream), (setup_substreams):
	  Don't remove our mute-probe if someone else already did so.
	  Don't set a 2nd one if there is already one pending on the pad.

	* gst/playback/gstplaybin.c: (gst_play_bin_send_event_to_sink),
	(do_playbin_seek):
	  When a seek fails, ensure that playbin is still set back to playing.
	  
	* gst/typefind/gsttypefindfunctions.c: (mpeg_ts_probe_headers),
	(mpeg_ts_type_find), (plugin_init):
	  Add a typefind function for mpeg-ts streams. (Closes: #336617)

2006-04-06  Andy Wingo  <wingo@pobox.com>

	* gst/videorate/gstvideorate.c (gst_video_rate_reset) 
	(gst_video_rate_init): Caps-related parameters should not be reset
	by a flush -- move their inits to the instance init function.
	(gst_video_rate_flush_prev): Don't complain if gst_pad_push
	is not OK, just return the result.

	* gst/audiotestsrc/gstaudiotestsrc.c
	(gst_audio_test_src_class_init)
	(gst_audio_test_src_get_times): Re-enable is-live=true, as was
	broken by Stefan's commit on 24 March.

	* ext/ogg/gstoggmux.c (gst_ogg_mux_push_buffer): Set caps on
	buffers being pushed out. Fixes oggmux ! multifdsink.

2006-04-05  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_class_init),
	(gst_vorbis_dec_init), (vorbis_dec_finalize):
	* ext/vorbis/vorbisdec.h:
	* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_add_interfaces),
	(gst_vorbis_enc_base_init), (gst_vorbis_enc_class_init),
	(gst_vorbis_enc_sink_setcaps), (gst_vorbis_enc_convert_src),
	(gst_vorbis_enc_convert_sink), (gst_vorbis_enc_get_query_types),
	(gst_vorbis_enc_src_query), (gst_vorbis_enc_sink_query),
	(gst_vorbis_enc_init), (gst_vorbis_enc_get_tag_value),
	(gst_vorbis_enc_metadata_set1), (gst_vorbis_enc_set_metadata),
	(gst_vorbis_enc_setup), (gst_vorbis_enc_clear),
	(gst_vorbis_enc_buffer_from_packet),
	(gst_vorbis_enc_buffer_from_header_packet),
	(gst_vorbis_enc_push_buffer), (gst_vorbis_enc_push_packet),
	(gst_vorbis_enc_set_header_on_caps), (gst_vorbis_enc_sink_event),
	(gst_vorbis_enc_chain), (gst_vorbis_enc_output_buffers),
	(gst_vorbis_enc_get_property), (gst_vorbis_enc_set_property),
	(gst_vorbis_enc_change_state):
	* ext/vorbis/vorbisenc.h:
	  Remove left-over 0.8 cruft; use GST_DEBUG_FUNCPTR; make
	  vorbisenc adhere to the official nomenclature; use boilerplate
	  macro.

2006-04-04  Andy Wingo  <wingo@pobox.com>

	* gst/videorate/gstvideorate.c (gst_video_rate_flush_prev):
	Whoops, fix bug introduced. Bad hacker!
	
	* gst/videorate/gstvideorate.c (gst_video_rate_flush_prev):
	Properly handle the case where you get EOS before any buffers are
	received. Use gst_buffer_make_metadata_writable where appropriate.

	* ext/theora/theoradec.c (theora_handle_data_packet): This value
	is often negative -- make it signed so as not to wrap around.
	Fixes segfaults introduced on 9 March.

2006-04-03  Wim Taymans  <wim@fluendo.com>

	* ext/theora/gsttheoradec.h:
	* ext/theora/theoradec.c: (theora_dec_src_event):
	Don't try to store a gdouble in a gboolean.
	Small cleanups.

2006-04-03  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_queue_pads):
	  Oggmux sucks.
	  Make it suck slightly less by writing out the final page.
	  Still can't encode a vorbis-in-ogg file correctly, though.

2006-04-03  Andy Wingo  <wingo@pobox.com>

	* ext/theora/theoraparse.c (theora_parse_drain_queue): Um, remove
	a g_print.

	* ext/theora/theora.c (plugin_init): Register theoraparse.

	* ext/theora/gsttheoraparse.h: 
	* ext/theora/theoraparse.c: New files implementing a theora
	parser. Now we can properly remux ogg/theora+vorbis, yay.

	* ext/vorbis/vorbisparse.c: Add some docs and a copyright.

2006-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audiotestsrc/gstaudiotestsrc.c:
	  Fixed the sample pipeline (see #323798)

2006-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* win32/common/config.h:
	* win32/common/config.h.in:
	  use AS_VERSION and AS_NANO
	  more cleanups

2006-03-31  Andy Wingo  <wingo@pobox.com>

	* ext/vorbis/vorbisparse.c (vorbis_parse_sink_event): Fix
	uninitialized variable return that would happen.
	
	* ext/vorbis/vorbisparse.c (vorbis_parse_drain_queue): Fix
	uninitialized variable return that would never happen.

	* ext/vorbis/vorbisparse.c (gst_vorbis_parse_init) 
	(vorbis_parse_sink_event): Add an event function to flush our
	state on a seek, and to drain buffers on a premature EOS.
	(vorbis_parse_push_headers, vorbis_parse_clear_queue) 
	(vorbis_parse_push_buffer, vorbis_parse_drain_queue_prematurely) 
	(vorbis_parse_chain, vorbis_parse_queue_buffer) 
	(vorbis_parse_drain_queue): Queue up buffers until we can set
	their timestamps and granulepos values.

	* ext/vorbis/vorbisparse.h: Include the vorbis decoder headers,
	and keep track of data needed for deriving granulepos and
	timestamps for buffers.

2006-03-29  Wim Taymans  <wim@fluendo.com>

	Patch by: j^ <j at bootlab dot org>

	* ext/alsa/gstalsamixerelement.c:
	(gst_alsa_mixer_element_class_init):
	* ext/alsa/gstalsasink.c:
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init):
	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggmux.c:
	* ext/ogg/gstoggparse.c:
	* ext/pango/gstclockoverlay.c:
	* ext/pango/gsttextoverlay.c:
	* ext/pango/gsttextrender.c:
	* ext/pango/gsttimeoverlay.c:
	* ext/theora/theoradec.c:
	* ext/theora/theoraenc.c:
	* ext/vorbis/vorbisdec.c:
	* ext/vorbis/vorbisenc.c:
	* gst/audioconvert/gstaudioconvert.c:
	* gst/subparse/gstsubparse.c:
	* gst/tcp/gstmultifdsink.c:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	  better/unified long descriptions
	  Fixes #336477

2006-03-29  Wim Taymans  <wim@fluendo.com>

	* tests/examples/seek/seek.c: (end_scrub), (seek_cb), (start_seek),
	(stop_seek):
	Don't let double and triple clicks mess up our state.

2006-03-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_text_element), (gen_audio_element), (gen_vis_element):
	  Error out gracefully when we can't create any of the usual
	  conversion elements for some reason. Also, don't try to
	  create an audioscale (sic) element that's not used anyway.

2006-03-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybasebin.c: (setup_source):
	  Don't post RESOURCE_NOT_FOUND error when we can't find a source
	  element for a particular protocol, that's confusing for users.
	  Instead, post a RESOURCE_FAILED error, so that our own error
	  message is actually shown in totem etc. (#336303).

2006-03-27  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_finalize),
	(gst_gnome_vfs_src_get_icy_metadata):
	  Fix some minor memory leaks (#336194).

2006-03-27  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gnomevfs/gstgnomevfs.c:
	(gst_gnome_vfs_location_to_uri_string):
	* ext/gnomevfs/gstgnomevfs.h:
	* ext/gnomevfs/gstgnomevfssink.c:
	(gst_gnome_vfs_sink_set_property):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_set_property):
	  Make gnomevfssink accept filenames as well as URIs for the
	  "location" property, just like gnomevfssrc does (and
	  filesrc/filesink do) (#336190).

2006-03-24  Thomas Vander Stichele <thomas at apestaart dot org>

	* tests/check/generic/clock-selection.c: (GST_START_TEST):
	  set to NULL before unreffing, fixes a valgrind leak.
	  Why was this not triggering the error that an object needs to
	  be NULL before unreffing ?
	* win32/common/config.h:
	  update

2006-03-24  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/subparse/gstsubparse.c: (convert_encoding),
	(gst_sub_parse_change_state):
	* gst/subparse/gstsubparse.h:
	  Text subtitle files may or may not be UTF-8. If it's not, we
	  don't really want to see '?' characters in place of non-ASCII
	  characters like accented characters. So let's assume the input
	  is UTF-8 until we come across text that is clearly not. If it's
	  not UTF-8, we don't really know what it is, so try the following:
	  (a) see whether the GST_SUBTITLE_ENCODING environment variable
	  is set; if not, check (b) if the current locale encoding is
	  non-UTF-8 and use that if it is, or (c) assume ISO-8859-15 if
	  the current locale encoding is UTF-8 and the environment variable
	  was not set to any particular encoding. Not perfect, but better
	  than nothing (and better than before, I think) (fixes #172848).

2006-03-24  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  update core requirement to 0.10.4.1 because of async_playback
	  vmethod on GstBaseSink

2006-03-24  Stefan Kost  <ensonic@users.sf.net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init):
	* gst/adder/gstadder.c: (gst_adder_init):
	use DEBUG_FUNCPTR for collectpads

2006-03-24  Stefan Kost  <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* ext/cdparanoia/gstcdparanoiasrc.c:
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_base_init),
	(gst_gnome_vfs_sink_class_init):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_base_init):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_base_init):
	* ext/ogg/gstoggmux.c:
	* ext/ogg/gstoggparse.c: (gst_ogg_parse_base_init):
	* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_base_init),
	(gst_ogm_video_parse_base_init), (gst_ogm_text_parse_base_init):
	* ext/pango/gsttextoverlay.c:
	* ext/pango/gsttextrender.c:
	* ext/theora/theoradec.c:
	* ext/theora/theoraenc.c:
	* ext/vorbis/vorbisdec.c:
	* ext/vorbis/vorbisenc.c:
	* gst-libs/gst/audio/gstaudiofilter.c:
	(gst_audio_filter_base_init):
	* gst-libs/gst/audio/gstaudiofiltertemplate.c:
	(gst_audio_filter_template_base_init):
	* gst/adder/gstadder.c: (gst_adder_get_type):
	* gst/adder/gstadder.h:
	* gst/audioconvert/gstaudioconvert.c:
	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiostestsrc_wave_get_type), (gst_audio_test_src_class_init),
	(gst_audio_test_src_create):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	* gst/playback/gstdecodebin.c:
	* gst/playback/gstplaybin.c:
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_base_init):
	* gst/subparse/gstsubparse.c: (gst_sub_parse_base_init):
	* gst/volume/gstvolume.c:
	* sys/v4l/gstv4lmjpegsink.c:
	* sys/v4l/gstv4lmjpegsrc.c:
	* tests/check/libs/cddabasesrc.c:
	* tests/old/examples/gob/gst-identity2.gob:
	  Add docs for adder, use GST_ELEMENT_DETAILS macro,
	  define GstElementDetails at the top

2006-03-23  Sebastien Moutte  <sebastien@moutte.net>

	* win32/common/libgstinterfaces.def:
	Add a lot of export functions for gst-python
	* win32/vs6/libgstinterfaces.dsp:
	Add a missing include folder in the project configuration
	
2006-03-23  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_get_time), (gst_base_audio_src_create),
	(gst_base_audio_src_change_state):
	Fix audio sources, forgot to make the ringbuffer
	startable...

2006-03-23  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_get_time), (gst_base_audio_src_create),
	(gst_base_audio_src_change_state):
	unparent instead of unref the ringbuffer.

2006-03-23  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_async_play),
	(gst_base_audio_sink_do_play), (gst_base_audio_sink_change_state):
	Implement new async_play vmethod to start slaving and allow
	playback start in case of async PLAY state changes. 

	* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_init):
	Enable QoS with new method in base class.

2006-03-23  Wim Taymans  <wim@fluendo.com>

	Patch by: Julien MOUTTE <julien at moutte dot net>

	* gst/videotestsrc/gstvideotestsrc.c: (gst_video_test_src_query),
	(gst_video_test_src_do_seek), (gst_video_test_src_create):
	Partially handle 0 framerate, only EOS after the first frame
	is missing.

2006-03-23  Wim Taymans  <wim@fluendo.com>

	Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_video_template_caps):
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c:
	Patch for support of YVU9 AVI files (#334822)

2006-03-22  Edward Hervey  <edward@fluendo.com>

	* docs/design/design-decodebin.txt:
	Added design document for new decodebin
	(Target Caps): text/x-pango-markup is also a default target caps.

2006-03-22  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_dispose):
	Since we _parent the ringbuffer, we also need to
	_unparent instead of a plain _unref.

2006-03-22  Wim Taymans  <wim@fluendo.com>

	* tests/examples/seek/seek.c: (end_scrub), (do_seek), (seek_cb),
	(stop_seek), (scrub_toggle_cb), (main):
	Add scrub checkbox.

2006-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ogg/gstoggparse.c: (gst_ogg_parse_find_stream),
	(gst_ogg_parse_chain):
	  Fix very inefficient usage of linked lists (#335365).

2006-03-21  Edward Hervey  <edward@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose):
	* gst/playback/gstplaybin.c: (handoff):
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_set_property):
	gcc 4.1 unreferenced pointer fixes.
	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put):
	gst_buffer_ref() now takes a GstBuffer*.

2006-03-20  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_get_format_from_caps): Fix a memleak reported
	by Jan Schmidt.

2006-03-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (id3v2_type_find),
	(id3v1_type_find), (apetag_type_find), (plugin_init):
	  Can't do tag preferences via probability, as tags would then
	  lose against types that are recognised with MAXIMUM probability
	  (like .wav); so let all tag typefinders return MAXIMUM themselves
	  and order them via the rank. Split ID3v1 and ID3v2 typefinders so
	  that we can prefer APE to ID3v1 (fixes #335028).
	  
2006-03-17  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_change_state):
	* gst-libs/gst/audio/gstringbuffer.c: (wait_segment),
	(gst_ring_buffer_may_start):
	* gst-libs/gst/audio/gstringbuffer.h:
	Only start playback if we are playing.
	should fix #330748.

2006-03-17  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/alsa/gstalsasink.c: (gst_alsasink_getcaps):
	* win32/common/config.h:
	  Revert accidental commits to these files.

2006-03-16  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Michal Benes  <michal dot benes at xeris dot cz>

	* tests/Makefile.am:
	  Don't try to build tests in tests/icles if we
	  don't have X (#323852)

2006-03-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/tag/gstid3tag.c:
	  Add TXXX frame identifiers for replaygain stuff as used
	  by some taggers (see #323721).

2006-03-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gststreamselector.c:
	(gst_stream_selector_set_property),
	(gst_stream_selector_bufferalloc):
	  Preserve the existing buggy streamselector behaviour by performing
	  a fallback buffer allocation when downstream isn't linked yet.
	  This should really be fixed in playbin by blocking pads until it's
	  linked them.
	  Also, use gst_pad_alloc_buffer instead of
	  gst_pad_alloc_buffer_and_set.

2006-03-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/tag/gstid3tag.c:
	  Don't crash on unknown ID3v2 TXXX frames.
	  
2006-03-15  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/alsa/gstalsasink.c: (gst_alsasink_finalise):
	  Chain up to the parent finalize method.
	  Add 32-bit sample size to the template caps.

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_video_template_caps):
	  Add the fourcc that the VMWare codec uses.
	  
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_set_property),
	(gst_stream_selector_bufferalloc),
	(gst_stream_selector_request_new_pad):
	  For the active pad, forward buffer-alloc requests, otherwise
	  return GST_FLOW_NOT_LINKED. This also prevents xvimagesink
	  having to memcpy every frame when used by playbin.

	* gst/tcp/gstmultifdsink.c:
	(gst_multi_fd_sink_handle_client_write):
	  Get negotiated caps from the sink pad, rather than the sink
	  pad's peer.

2006-03-15  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
	
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_pop_callbacks):
	  Don't forget to set src->callbacks_pushed to FALSE again when
	  popping them, otherwise re-activation in a different mode won't
	  work (#334620).

2006-03-15  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastien Moutte  <sebastien moutte net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c: (gst_ff_vid_caps_new),
	(gst_ff_aud_caps_new), (gst_ffmpeg_pixfmt_to_caps),
	(gst_ffmpeg_smpfmt_to_caps):
	  Replace __VA_ARGS__ caps creation macros with varargs functions.
	  Makes things compile on MSVC (#320765), looks nicer, and we can
	  tell the compiler to check for the NULL terminator.

2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Fabrizio Gennari  <fabrizio dot ge at tiscali dot it>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Make sure the buffer we copy into is really always big
	  enough, this time for real (#333488).
	  
2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Add support for 24bpp DIB (#305279).

2006-03-14  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/video/gstvideofilter.c: (gst_video_filter_init):
	* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_init):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c: (gst_ffmpegcsp_init):
	* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init),
	(gst_video_scale_init), (gst_video_scale_src_event):
	Re-enable QoS after the release.
	Rework videoscale to use the base class src_event handler.

2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  back to CVS.

=== release 0.10.5 ===

2006-03-13  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.5, "Net"

2006-03-13  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	  Part of previous cdparanoiasrc docs fixes, forgot to commit.
	  
2006-03-12  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/gst-plugins-base-plugins.hierarchy:
	  Add cdparanoiasrc to docs.

	* gst-libs/gst/cdda/gstcddabasesrc.c:
	  More GstCddaBaseSrc docs.

2006-03-12  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/tag/gstid3tag.c: (gst_tag_from_id3_user_tag):
	* gst-libs/gst/tag/tag.h:
	  API: libgsttag: new method gst_tag_from_id3_user_tag().

2006-03-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  NULL-terminate array of mpeg4 video file extensions.
	  Fixes crash on PPC (#334226).

2006-03-11  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gnomevfs/gstgnomevfssrc.c:
	(gst_gnome_vfs_src_check_get_range):
	  gnome_vfs_uri_is_local() alone is not a good indicator
	  whether we can operate in pull-mode with a specific URI,
	  as it returns FALSE for file:// URIs that point to an
	  NFS-mounted path. Be more conservative here: whitelist
	  local files, blacklist http URIs and use the old
	  mechanism for anything else (fixes #334216).

2006-03-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to trunk

=== release 0.10.4 ===

2006-03-10  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.4, "Power"

2006-03-10  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_init):
	Disable max-lateness by setting it to -1 for now, so that 
	we can bed QoS stuff in thoroughly between now and the next
	release.

2006-03-10  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Fabrizio Gennari

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Make sure we don't read beyond the palette buffer in case of
	  broken or manipulated files (#333488)

2006-03-10  Edward Hervey  <edward@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset):
	Fix for variable not initialized.

2006-03-09  Wim Taymans  <wim@fluendo.com>

	* ext/libvisual/visual.c: (gst_visual_get_type),
	(gst_visual_src_setcaps), (gst_vis_src_negotiate),
	(gst_visual_chain):
	Small cleanups.

	* ext/theora/gsttheoradec.h:
	* ext/theora/theoradec.c: (gst_theora_dec_init),
	(gst_theora_dec_reset), (_theora_granule_time),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event),
	(theora_dec_sink_event), (theora_handle_comment_packet),
	(theora_handle_header_packet), (theora_dec_push),
	(theora_handle_data_packet), (theora_dec_chain),
	(theora_dec_change_state):
	Add simple QoS.

2006-03-09  Wim Taymans  <wim@fluendo.com>

	* ext/gnomevfs/gstgnomevfssrc.c: (audiocast_init),
	(audiocast_register_listener), (gst_gnome_vfs_src_start):
	Some cleanups.

2006-03-09  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_activate_chain):
	Don't try to activate NULL chains.

2006-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset):
	  Fix invalid memory access to region before peek'd data (#332964).

2006-03-09  Wim Taymans  <wim@fluendo.com>

	Patch by: Christophe Fergeau

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_init):
	* ext/pango/gsttextrender.c: (gst_text_render_init):
	* gst/adder/gstadder.c: (gst_adder_init):
	Don't leak padtemplates, closes #333510.

2006-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/subparse/gstsubparse.c: (gst_subparse_type_find):
	  Fix invalid memory access: make sure string passed to
	  regexec() is NUL-termianted.

2006-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset),
	(mp3_type_find):
	  Refactor mpeg/audio typefinding to make it more maintainable
	  and easier to fine-tune. Make probing into middle of the file
	  work properly (fixes #333900, also see #152688).

2006-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c:
	(utf8_type_find_have_valid_utf8_at_offset):
	  Remove part from previous commit that was bogus:
	  g_utf8_validate() does in fact not accept embedded
	  zeroes, so we don't need to check for those (thanks
	  to Mike for the hint).

2006-03-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c:
	(utf8_type_find_count_embedded_zeroes),
	(utf8_type_find_have_valid_utf8_at_offset), (utf8_type_find):
	  Make plain/text typefinder more conservative: firstly, check
	  for embedded zeroes, which are perfectly valid UTF-8 characters,
	  but also a fairly good sign that something is not a plain text
	  file; secondly, probe into the middle of the file if possible.
	  If we can't probe into the middle, limit the probability value
	  to be returned to TYPE_FIND_POSSIBLE (see #333900).

2006-03-08  Michael Smith  <msmith@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Make typefind function name for mpeg4 video unique.

2006-03-08  Wim Taymans  <wim@fluendo.com>

	* ext/libvisual/visual.c: (gst_visual_init),
	(gst_visual_clear_actors), (gst_visual_dispose),
	(gst_visual_reset), (gst_visual_src_setcaps),
	(gst_visual_sink_setcaps), (gst_vis_src_negotiate),
	(gst_visual_sink_event), (gst_visual_src_event), (get_buffer),
	(gst_visual_chain), (gst_visual_change_state):
	Cleanups, post nice errors.
	Handle sink and src events.
	Implement simple QoS.

	* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_init):
	Use new basesink methods to configure max-lateness.
	Small doc update.

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_transform_caps), (gst_ffmpegcsp_set_caps):
	Debug statement cleanups.

	* gst/volume/gstvolume.c: (gst_volume_class_init):
	Simple cleanup.

2006-03-08  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init),
	(gst_text_overlay_init), (gst_text_overlay_set_property),
	(gst_text_overlay_get_property):
	  Revert API/ABI break from March 1. Keep 'halign' and 'valign'
	  as string type properties, but mark them deprecated. Add
	  'halignment' and 'valignment' properties that use enums
	  instead of strings.

2006-03-08  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Fabrizio Gennari

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Allow palettes with less than 256 colours in AVI files
	  (#333488)

2006-03-07  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_text_event),
	(gst_text_overlay_video_event): Fix wrong EOS handling on text
	pad. We were releasing the queued text buffer when we should keep
	it until video pad gets EOS or discard the text buffer because it's
	too old. That was eating the last subtitle buffer. Add some more
	debug.

2006-03-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_render_text),
	(gst_text_overlay_video_chain):
	  Fix invalid memory access (we can't access a buffer after it's been
	  pushed downstream without taking a reference); fix memory leak (if
	  there's no text to render, bail out before allocating stuff).

2006-03-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
	(gst_text_overlay_setcaps_txt), (gst_text_overlay_video_chain):
	* ext/pango/gsttextoverlay.h:
	  If input is plain text, escape it before passing it to
	  pango_layout_set_markup().

2006-03-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audio_filter_chain):
	  Don't ignore flow return from gst_pad_push().

2006-03-07  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Fabrizio Gennari

	* ext/libvisual/visual.c: (gst_visual_getcaps),
	(gst_visual_src_setcaps), (gst_visual_sink_setcaps):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_sinkconnect):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_convert_src),
	(gst_vorbisenc_convert_sink):
	* gst-libs/gst/audio/audio.c: (gst_audio_frame_byte_size),
	(gst_audio_duration_from_pad_buffer):
	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audio_filter_link),
	(gst_audio_filter_chain):
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_setcaps):
	* gst-libs/gst/video/video.c: (gst_video_frame_rate),
	(gst_video_get_size):
	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_setcaps):
	  Don't leak references returned by gst_pad_get_parent()
	  (#333663)

2006-03-06  Stefan Kost  <ensonic@users.sf.net>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init):
	  change location param details
	* gst/volume/gstvolume.c: (plugin_init):
	  correct plugin description

2006-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init),
	(gst_gnome_vfs_src_check_get_range):
	  Override GstBaseSrc::check_get_range() in order to avoid opening
	  the resource just to check whether we can operate in pull-mode or
	  not - we can predict that pretty well from the URI alone. Should
	  fix problems with last.fm (#331690). (Requires latest core CVS).

2006-03-06  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_init),
	(gst_video_sink_class_init):
	Throw away frames that are later than 20 ms.

2006-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Fabrizio Gennari

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  Set depth on WMA caps (#333545)

2006-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_buffer_from_page),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_collected):
	  put Theora BOS pages before others.  This hardcodes
	  the Ogg/Theora I profile, but hey.

2006-03-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/README:
	  updated with some examples
	* ext/theora/theoraenc.c: (granulepos_to_timestamp),
	(granulepos_add), (theora_buffer_from_packet):
	* ext/vorbis/vorbisenc.c: (granulepos_to_timestamp_offset),
	(granulepos_to_timestamp), (gst_vorbisenc_buffer_from_packet),
	(gst_vorbisenc_chain):
	  implement strategy from ext/ogg/README
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_buffer_from_page),
	(gst_ogg_mux_push_buffer), (gst_ogg_mux_dequeue_page),
	(gst_ogg_mux_pad_queue_page), (gst_ogg_mux_compare_pads),
	(gst_ogg_mux_queue_pads), (gst_ogg_mux_collected):
	  Fix muxer so that oggz-validate is happy with all streams;
	  except for no eos mark, and the BOS page ordering
	* tests/check/pipelines/theoraenc.c: (check_buffer_is_header),
	(check_buffer_granulepos):
	* tests/check/pipelines/vorbisenc.c: (check_buffer_granulepos):
	  update tests to check for OFFSET being set as requested
	  fixed type of granulepos, it's not a ClockTime

2006-03-05  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_show_frame), (gst_xvimagesink_buffer_alloc):
	Check that the xvimage we are creating has a correct size
	before returning it. (#314897)

2006-03-05  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Give id3 and ape tag typefinders a rank slightly higher
	  than PRIMARY to ensure they're always run before any of
	  the other typefinders (in particular wav and mp3) (#324186).

2006-03-05  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Add support for '3IVD' fourcc (#333403).

2006-03-04  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Bump requirements to GStreamer CVS for the new error enum.

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_render):
	  Emit new GST_RESOURCE_ERROR_NO_SPACE_LEFT when there's no
	  space left on the device (fixes #333352).

2006-03-04  Sebastien Moutte  <sebastien@moutte.net>

	* win32/vs6:
	  add a project file for libgstvolume
	  update the workspace

2006-03-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/theora/theoraenc.c: (theora_set_header_on_caps):
	* tests/check/pipelines/theoraenc.c: (check_buffer_is_header),
	(GST_START_TEST):
	  Fix for http://bugzilla.gnome.org/show_bug.cgi?id=333254
	  Set IN_CAPS on header buffers

2006-03-02  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	Add audioresample to docs.

	* gst/audioconvert/gstaudioconvert.c:
	Add revision date.

	* gst/audioresample/gstaudioresample.c:
	(gst_audioresample_base_init), (gst_audioresample_class_init),
	(gst_audioresample_init), (gst_audioresample_dispose),
	(audioresample_get_unit_size), (audioresample_transform_caps),
	(resample_set_state_from_caps), (audioresample_transform_size),
	(audioresample_set_caps), (audioresample_event),
	(audioresample_do_output), (audioresample_transform),
	(audioresample_pushthrough), (gst_audioresample_set_property),
	(gst_audioresample_get_property), (plugin_init):
	* gst/audioresample/gstaudioresample.h:
	Added docs.
	Small code cleanups.

2006-03-02  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	Added videoscale to docs.

	* gst/videorate/gstvideorate.c: (gst_video_rate_flush_prev),
	(gst_video_rate_swap_prev), (gst_video_rate_event),
	(gst_video_rate_chain):
	Fix typo in docs.

	* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init),
	(gst_video_scale_init), (gst_video_scale_prepare_size),
	(gst_video_scale_set_caps), (gst_video_scale_get_unit_size),
	(gst_video_scale_fixate_caps), (gst_video_scale_transform):
	* gst/videoscale/gstvideoscale.h:
	Added docs, examples.
	Some code cleanups.
	Post errors instead of g_warning.

2006-03-02  Wim Taymans  <wim@fluendo.com>

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* docs/libs/gst-plugins-base-libs.types:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	Added some more docs to libs and plugins.

	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_prepare_read), (gst_ring_buffer_clear):
	* gst-libs/gst/audio/gstringbuffer.h:
	Document ringbuffer some more.

	* gst/videorate/gstvideorate.c: (gst_video_rate_class_init),
	(gst_video_rate_setcaps), (gst_video_rate_reset),
	(gst_video_rate_init), (gst_video_rate_flush_prev),
	(gst_video_rate_swap_prev), (gst_video_rate_event),
	(gst_video_rate_chain), (gst_video_rate_change_state):
	* gst/videorate/gstvideorate.h:
	Fix videorate to use segments.
	Make it work with 0/1 framerates (closes #331903)
	Handle EOS correctly.
	Added docs.

2006-03-02  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ogg/gstogmparse.c: (gst_ogm_parse_class_init),
	(gst_ogm_audio_parse_init), (gst_ogm_video_parse_init),
	(gst_ogm_text_parse_init), (gst_ogm_parse_change_state):
	  In state change function, first chain up to parent class,
	  then handle downwards state change stuff. Remove some
	  commented out cruft from 0.8 code.

2006-03-02  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_init),
	(gst_ogm_video_parse_init), (gst_ogm_text_parse_init),
	(gst_ogm_parse_sink_convert), (gst_ogm_parse_sink_query),
	(gst_ogm_parse_chain):
	  Don't remove/re-add source pad if the new caps are the same as
	  the old caps anyway (#333042). When removing source pad, don't
	  unref it afterwards - we didn't ref it when adding. Sprinkle some
	  GST_DEBUG_FUNCPTR goodness here and there. Don't leak references
	  after using gst_pad_get_parent(). Return downstream flow return
	  value in chain function.

2006-03-02  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins.args:
	* docs/plugins/gst-plugins-base-plugins.hierarchy:
	* docs/plugins/gst-plugins-base-plugins.interfaces:
	* docs/plugins/gst-plugins-base-plugins.signals:
	Fix hierarchy, added some more elements to the docs.

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_get_type):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.h:
	Fix docs for ffmpegcolorspace.

2006-03-01  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (id3_type_find),
	(apetag_type_find), (ape_type_find), (plugin_init):
	  Some typefinding fine-tuning:
	  - rank ID3/APE tags in order of preference via probabilities, so that
	    ID3v2 > APEv2 > APEv1 > ID3v1.
	  - three or four bytes don't really justify MAXIMUM probability,
	    change those to 'very likely' (musepack and monkeysaudio).

2006-03-01  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* ext/alsa/gstalsamixer.c:
	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixerelement.c:
	(gst_alsa_mixer_element_class_init), (gst_alsa_mixer_element_init):
	* ext/alsa/gstalsamixerelement.h:
	* ext/alsa/gstalsasink.c:
	* ext/alsa/gstalsasink.h:
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init),
	(gst_alsasrc_init):
	* ext/alsa/gstalsasrc.h:
	Added alsa docs.
	Small code cleanups.

2006-03-01  Wim Taymans  <wim@fluendo.com>

	* ext/theora/Makefile.am:
	Dist new header too,

2006-03-01  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* ext/gnomevfs/gstgnomevfssink.h:
	* ext/gnomevfs/gstgnomevfssrc.h:
	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	* ext/vorbis/vorbisdec.h:
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_convert_sink):
	* ext/vorbis/vorbisenc.h:
	* ext/vorbis/vorbisparse.c: (vorbis_parse_set_header_on_caps),
	(vorbis_parse_chain), (vorbis_parse_change_state):
	* ext/vorbis/vorbisparse.h:
	* gst/audioconvert/gstaudioconvert.h:
	* gst/tcp/gsttcpserversink.h:
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/volume/gstvolume.c:
	* gst/volume/gstvolume.h:
	Fix some more docs.
	Added docs for vorbisdec and vorbisparse.
	Fix vorbisparse.

2006-03-01  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* ext/pango/gstclockoverlay.h:
	* ext/pango/gsttextoverlay.h:
	* ext/pango/gsttextrender.h:
	* ext/pango/gsttimeoverlay.h:
	* ext/theora/gsttheoradec.h:
	* ext/theora/gsttheoraenc.h:
	* ext/theora/theoradec.c:
	* ext/theora/theoraenc.c:
	* gst/audioconvert/gstaudioconvert.h:
	* gst/audiotestsrc/gstaudiotestsrc.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.h:
	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
	* gst/tcp/gstmultifdsink.h:
	Updated/added documentation.

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_valign_get_type),
	(gst_text_overlay_halign_get_type),
	(gst_text_overlay_wrap_mode_get_type),
	(gst_text_overlay_base_init), (gst_text_overlay_class_init),
	(gst_text_overlay_init), (gst_text_overlay_set_property),
	(gst_text_overlay_get_property):
	Fix up properties to be enums instead of string to make bindings,
	introspection and automatic GUI creation possible.
	Add getters for the properties.

2006-02-28  Sebastien Moutte  <sebastien@moutte.net>

	* gst/audiotestsrc/gstaudiotestsrc.c:
	  added defines of M_PI and M_PI_2
	* gst/ffmpegcolorspace/avcodec.h:
	  removed #include "stdint.h" for win32 as _stdint.h is 
	  autogenerated to win32/common
	* win32/common/libgstaudio.def:
	* win32/common/libgsttag.def:
	  added some exports
	* win32/vs6:
	  some project files bugs corrected
	* win32/vs7:
	  project files are reset to the default vs7 configuration 
	  (they link to msvcr71.dll using default optimizations)
	  
2006-02-28  Wim Taymans  <wim@fluendo.com>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init):
	Fix some docs.

2006-02-28  Edward Hervey  <edward@fluendo.com>

	* ext/alsa/gstalsasrc.c:
	Set proper class on the ElementDetails:
	Source/Audio instead of Src/Audio/

2006-02-28  Edward Hervey  <edward@fluendo.com>

	* gst/videoscale/vs_scanline.c:
	(vs_scanline_resample_nearest_RGBA):
	Revert optimization in videoscale. It should go in liboil and have
	an appropriate liboil function.

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_provide_clock):
	Don't try to provide a clock in the NULL state.

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_receive_event),
	(gst_ogg_pad_event), (gst_ogg_pad_internal_chain),
	(gst_ogg_demux_chain_peer), (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_deactivate_current_chain),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_do_seek),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_collect_info),
	(gst_ogg_demux_find_chains), (gst_ogg_demux_chain),
	(gst_ogg_demux_loop), (gst_ogg_demux_change_state):
	Use GstSegment infrastructure to remove duplicated code
	and handle more seek cases correctly.

2006-02-28  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_transform):
	Don't ignore return code from ffmpeg convert function.

	* gst/ffmpegcolorspace/imgconvert.c: (img_convert):
	Split out some long statements to ease debugging.

2006-02-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libvisual/visual.c: (gst_visual_init),
	(gst_vis_src_negotiate), (get_buffer), (plugin_init):
	Don't use gst_pad_use_fixed_caps, because it prevents downstream from
	being able to renegotiate the size. Instead, use the negotiation
	algorithm from the goom plugin to pick an initial output caps. 

	Also, allow theoretical libvisual plugins that might support non-GL 
	output even if they also do GL.

2006-02-26  Julien MOUTTE  <julien@moutte.net>

	* ext/libvisual/visual.c: (gst_visual_init),
	(gst_visual_src_setcaps), (get_buffer), (gst_visual_chain),
	(plugin_init): Load only non GL plugins. Fix some memleaks and 
	possible negotiation issues.

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/tag/tag.h: Adding Annodex tags here.

2006-02-24  Michael Smith  <msmith@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (mpeg4_video_type_find),
	(cmml_type_find), (plugin_init):
	  Fix CMML type find function to not require a specific minor version
	  of the CMML header.

	  Add an MPEG4 video elementary stream typefind function.

2006-02-04  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_parse_skeleton_fishead),
	(gst_ogg_pad_parse_skeleton_fisbone), (gst_ogg_pad_query_convert),
	(gst_ogg_demux_chain_peer), (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_read_chain),
	(gst_ogg_demux_read_end_chain), (gst_ogg_demux_collect_chain_info),
	(gst_ogg_demux_change_state), (gst_annodex_granule_to_time):
	  Annodex support in ogg demuxer. Doesn't do very much without the
	  other annodex patches (to come).

2006-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Fabrizio Gennari <fabrizio dot get at tiscali dot it>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Pick up palette for MS video v1 (#327028)

2006-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info),
	(gst_ffmpegcsp_get_unit_size):
	  The 'palette_data' field from incoming RGB caps shouldn't be
	  proxied on outgoing YUV caps; also, restrict unit size
	  adjustment in case of paletted data only to the unit that
	  actually has a palette. Fixes #330711.

2006-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_transform_caps), (gst_ffmpegcsp_set_caps),
	(gst_ffmpegcsp_finalize), (gst_ffmpegcsp_class_init),
	(gst_ffmpegcsp_get_unit_size):
	  Plug some memory leaks.

2006-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/ximage/Makefile.am:
	* sys/xvimage/Makefile.am:
	  Add some _CFLAGS and _LIBS that seem to be missing
	  and/or required for Cygwin (see #317048).

2006-02-22  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsasrc.c:
	Fix description as pointed out by caugier.

2006-02-22  Tommi Myöhänen  <ext-tommi do myohanen at nokia dot com>

	Reviewed by : Edward Hervey  <edward@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (q3gp_type_find),
	(qt_type_find):
	Better 3gp typefinding (#331526).

2006-02-21  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_create):
	  Don't send EOS event here, the base class will send one for us.

	* gst/playback/gstplaybasebin.c: (prepare_output):
	  Subpictures without video stream aren't allowed either.
	
	* gst/subparse/gstsubparse.c: (gst_subparse_type_find):
	  Fix debug statement copy'n'paste-o.

2006-02-21  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_get_volume):
	  Fix issues with mixer keeping state when muting/unmuting
	  and when changing the volume whilst muted (see #331763
	  and #331765).

2006-02-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/subparse/gstsubparse.c: (subrip_unescape_formatting),
	(parse_subrip), (gst_sub_parse_format_autodetect):
	  Set right caps given that we send escaped text. Also,
	  honour <i></i>, <b></b> and <u></u> markers that can be found
	  in .srt files (fixes #310202).

2006-02-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/mixerutils.c:
	(element_factory_rank_compare_func):
	  Make order in which elements are tried more determinable.

2006-02-20  Julien MOUTTE  <julien@moutte.net>

	* gst/playback/gstdecodebin.c: (get_our_ghost_pad),
	(remove_element_chain), (cleanup_decodebin),
	(gst_decode_bin_change_state): Make decodebin reusable by
	fixing remove_element_chain first and then introduce a
	cleaner in state change to ->NULL. (Closes #331678)

2006-02-19  Wim Taymans  <wim@fluendo.com>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_open_file):
	use 0666 mask when creating files so umask gets applied
	correctly. Fixes #331295.

2006-02-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/subparse/Makefile.am:
	* gst/subparse/gstssaparse.c: (gst_ssa_parse_base_init),
	(gst_ssa_parse_dispose), (gst_ssa_parse_init),
	(gst_ssa_parse_class_init), (gst_ssa_parse_src_event),
	(gst_ssa_parse_sink_event), (gst_ssa_parse_setcaps),
	(gst_ssa_parse_remove_override_codes), (gst_ssa_parse_parse_line),
	(gst_ssa_parse_chain), (gst_ssa_parse_change_state):
	* gst/subparse/gstssaparse.h:
	* gst/subparse/gstsubparse.c: (plugin_init):
	  Add very basic parser for SSA subtitle streams (as often
	  found in matroska files).

2006-02-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstdecodebin.c: (mimetype_is_raw):
	  That should be text/x-pango-markup, not text/x-pango-layout.

2006-02-19  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_finalize):
	Polishing.

2006-02-19  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init),
	(gst_text_overlay_finalize), (gst_text_overlay_init),
	(gst_text_overlay_setcaps), (gst_text_overlay_src_event),
	(gst_text_overlay_render_text), (gst_text_overlay_text_pad_link),
	(gst_text_overlay_text_event), (gst_text_overlay_video_event),
	(gst_text_overlay_pop_text), (gst_text_overlay_text_chain),
	(gst_text_overlay_video_chain), (gst_text_overlay_change_state):
	Fix state change deadlock.

2006-02-19  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init),
	(gst_text_overlay_finalize), (gst_text_overlay_init),
	(gst_text_overlay_setcaps), (gst_text_overlay_src_event),
	(gst_text_overlay_render_text), (gst_text_overlay_text_pad_link),
	(gst_text_overlay_text_event), (gst_text_overlay_video_event),
	(gst_text_overlay_pop_text), (gst_text_overlay_text_chain),
	(gst_text_overlay_video_chain), (gst_text_overlay_change_state):
	* ext/pango/gsttextoverlay.h: Fix seeking both for muxed formats
	and subtitles files.

2006-02-19  Julien MOUTTE  <julien@moutte.net>

	* gst/playback/gstdecodebin.c: (mimetype_is_raw): pango layout
	should be considered as raw.

2006-02-19  Julien MOUTTE  <julien@moutte.net>

	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
	(cb_probe):
	* gst/playback/gststreaminfo.h: Introduce language informations.

2006-02-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new):
	Set shared memory segments to be deleted as soon as we have attached,
	that way they get cleaned up automatically if we crash.

2006-02-18  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gstclockoverlay.c: (gst_clock_overlay_get_text): 
	* ext/pango/gsttimeoverlay.c: (gst_time_overlay_get_text): Those
	functions are called with lock held.

2006-02-18  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_base_init),
	(gst_text_overlay_finalize), (gst_text_overlay_init),
	(gst_text_overlay_setcaps), (gst_text_overlay_src_event),
	(gst_text_overlay_render_text), (gst_text_overlay_text_pad_link),
	(gst_text_overlay_text_pad_unlink), (gst_text_overlay_text_event),
	(gst_text_overlay_video_event), (gst_text_overlay_pop_text),
	(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
	(gst_text_overlay_change_state): Refactoring of textoverlay
	without collectpads. This now supports sparse subtitles coming
	from a demuxer instead of a sub file. Seeking is still broken 
	though. Need to discuss with wtay some more on how to handle
	seeking correctly.
	* ext/pango/gsttextoverlay.h:
	* gst/playback/gstplaybin.c: (setup_sinks): Support linking with
	subtitles coming from the demuxer.

2006-02-17  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_convert_src),
	(gst_vorbisenc_convert_sink):
	Use some more scaling functions.

2006-02-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cdparanoia/gstcdparanoiasrc.c:
	(gst_cd_paranoia_src_class_init), (gst_cd_paranoia_dummy_callback),
	(gst_cd_paranoia_paranoia_callback),
	(gst_cd_paranoia_src_signal_is_being_watched),
	(gst_cd_paranoia_src_read_sector):
	* ext/cdparanoia/gstcdparanoiasrc.h:
	  Add back 'transport-error' and 'uncorrected-error' signals and
	  make them actually be fired when bad stuff happens (#319340).

2006-02-17  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_get_type),
	(gst_ring_buffer_open_device), (gst_ring_buffer_close_device),
	(gst_ring_buffer_device_is_open), (gst_ring_buffer_acquire),
	(gst_ring_buffer_release), (gst_ring_buffer_set_flushing),
	(gst_ring_buffer_start), (gst_ring_buffer_pause_unlocked),
	(gst_ring_buffer_pause), (gst_ring_buffer_stop),
	(gst_ring_buffer_delay), (gst_ring_buffer_samples_done),
	(gst_ring_buffer_set_sample), (gst_ring_buffer_clear_all),
	(gst_ring_buffer_commit), (gst_ring_buffer_prepare_read),
	(gst_ring_buffer_clear):
	Small cleanups.
	Added some G_LIKELY.

2006-02-17  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/TODO:
	Update TODO

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_get_offset):
	When trying to play samples ASAP and we don't have a
	previous sample, try to play at position 0 instead of
	an invalid position.

2006-02-17  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsasink.c: (gst_alsasink_open),
	(gst_alsasink_reset):
	Also release lock when we get an error in _reset();
	fix an error message.

2006-02-16  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/alsa/gstalsasink.c: (gst_alsasink_class_init),
	(gst_alsasink_init), (get_channel_free_structure),
	(caps_add_channel_configuration), (gst_alsasink_getcaps),
	(gst_alsasink_close):
	* ext/alsa/gstalsasink.h:
	  Add support for more than 2 channels (#326720).

2006-02-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  Set codec_name for WAVEFORMATEX as well. When we have 'normal PCM'
	  with 4 or 6 channels, assume a default channel layout to make things
	  work (not sure there's anything else we can do in those cases).

2006-02-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/multichannel.c:
	  Minor docs fix.

	* gst-libs/gst/riff/Makefile.am:
	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_wavext_add_channel_layout), (gst_riff_create_audio_caps):
	  Add support for WAVEFORMATEX, eg. PCM audio with more than two
	  channels and a channel layout map.
	  
2006-02-16  Mathieu Garcia <b0nk at free dot fr>

	Reviewed by Edward Hervey  <edward@fluendo.com>

	* gst/videoscale/vs_scanline.c: (vs_scanline_resample_nearest_RGBA): 
	C-level optimization of the RGBA nearest neighbour function.
	Eventually this might end up in liboil with vectorized versions.

2006-02-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/multichannel.c:
	(gst_audio_get_channel_positions):
	  When we have more than 2 channels, but no channel layout is
	  specified in the caps, return some default channel layout
	  to the caller and warn about about a possibly buggy element
	  (could be buggy filtercaps as well of course) (#317038).

2006-02-16  Tim-Philipp Müller  <tim at centricular dot net>

	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
	  Add gst-libs/gst/cdda to list of lib search paths.

2006-02-15  Andy Wingo  <wingo@pobox.com>

	* ext/ogg/gstoggmux.c (gst_ogg_mux_collected): When updating
	timestamp, update timestamp_end as well. Fixes a bugaboo. I hope
	to the Lord Jesus that I do not have to touch the ogg muxer ever
	again.

2006-02-15  Edward Hervey  <edward@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
	quicktime movie files can also contain 'uuid' atoms.

2006-02-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/audioconvert/plugin.c: (plugin_init):
	  Register the GstAudioChannelPosition enum type with the type
	  system in the plugin_init function, so that it is known before
	  any element actually makes use of multi-channel stuff. This is
	  required for example if one wants to be able to deserialise/use
	  a caps string with channel positions before any pipeline has
	  been setup and started, like with gst-launch.

2006-02-14  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_pause_unlocked), (gst_ring_buffer_delay),
	(gst_ring_buffer_samples_done), (wait_segment),
	(gst_ring_buffer_commit), (gst_ring_buffer_clear):
	Add some compiler G_(UN_)LIKELY help.
	SIGNAL the ringbuffer waiters when going to PAUSED as well to
	make sure they can exit their functions. Should fix #330748

2006-02-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	* win32/MANIFEST:
	* win32/common/_stdint.h:
	  Windows does not have long long; copy the generated _stdint.h
	* win32/common/interfaces-enumtypes.c:
	(gst_color_balance_type_get_type), (gst_mixer_type_get_type),
	(gst_mixer_track_flags_get_type),
	(gst_tuner_channel_flags_get_type):
	* win32/common/multichannel-enumtypes.c:
	(gst_audio_channel_position_get_type):
	  update

2006-02-13  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_get_time), (gst_base_audio_sink_preroll),
	(gst_base_audio_sink_render), (gst_base_audio_sink_change_state):
	Always sync on first sample we receive when starting.

2006-02-13  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybin.c: (gen_vis_element):
	Update vis bin docs.
	Move queue after tee so we don't queue video buffers but
	audio samples instead. Fixes problems where the video queue
	is filled and the audio queue empty.

2006-02-13  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create):
	  No need to push an EOS event here, GstBaseSrc will do that for us
	  when we return FLOW_UNEXPECTED.
	  
2006-02-12  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_get_time), (gst_base_audio_sink_setcaps),
	(gst_base_audio_sink_drain), (gst_base_audio_sink_preroll),
	(gst_base_audio_sink_render), (gst_base_audio_sink_change_state):
	Use scale functions when possible.
	Fix error messages.
	Free clockid when after waiting for EOS.
	Use G_(UN_)LIKLY when it makes sense.
	Fix sample clipping bug found by Arwed v. Merkatz fixes #330789.

2006-02-12  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstplaybasebin.c: (prepare_output): 
	Remove stray semi-colon (fixes #330888).

2006-02-12  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls):
	Fix up the XShm call testing so that we catch errors, and don't
	cause new ones by attempting to detach from a segment we failed
	to attach to. Fixes #312439.

2006-02-10  Edward Hervey  <edward@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	Added flv file typefind (video/x-flv).

2006-02-10  Edward Hervey  <edward@fluendo.com>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_video_template_caps):
	Added FLV1 <==> 'video/x-flash-video,flvversion=1' conversion.
	Also added the caps to the default set of riff video caps.

2006-02-09  Andy Wingo  <wingo@pobox.com>

	* ext/ogg/gstoggmux.c (GstOggPad): Keep track of both the start
	time and the end time of the last packet in the page.
	(gst_ogg_mux_pad_queue_page): In addition to setting the timestamp
	on the pages in our queue, set the duration as well. Reflow a
	debug statement.
	(gst_ogg_mux_collected): Keep track of GstOggPad->timestamp_end.
	Fixes bad muxing order.

2006-02-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_setcaps), (gst_basertppayload_push):
	  update seqnum before setting it on the packet; this makes sure
	  that the timestamp and seqnum properties match after pushing
	  a buffer

2006-02-09  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstringbuffer.c
	(gst_ring_buffer_samples_done): Cast to guint64, fixes an integer
	overflow after 13.5 hours of recording. Kapow!

	* ext/alsa/gstalsasrc.c (gst_alsasrc_delay): Clamp the delay to
	the buffer size -- we don't care about underrun/overrun reporting
	right now, just need to return a useful value.

2006-02-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Back to CVS

=== release 0.10.3 ===

2006-02-09  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.3, "Under Pressure"

2006-02-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	Drat. Bump libtool version number for new API.
	Prelease 0.10.2.3 (of 0.10.3)

2006-02-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* win32/common/config.h:
	0.10.2.2 prerelease (of 0.10.3).

2006-02-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_create):
	  Revert Andy's newsegment change pending a more correct
	  fix.

2006-02-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/typefind/gsttypefindfunctions.c: (q3gp_type_find),
	(qt_type_find), (plugin_init):
	  detect more files as 3gp
	  group and reorder the iso file formats

2006-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/vorbis/vorbis.c: (plugin_init):
	  Register musicbrainz tags, so apps don't have to.

2006-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/tag/gstvorbistag.c: (gst_tag_from_vorbis_tag),
	(gst_tag_to_vorbis_tag):
	  Make sure we called gst_tag_register_musicbrainz_tags()
	  before possibly mapping a vorbiscomment string from/to a
	  musicbrainz tag.

2006-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
	  In case we can't find the required number of consecutive
	  mpeg audio frames to positively identify an MPEG audio
	  stream, check if there's at least a valid mpeg audio
	  frame right at offset 0 and if so suggest mpeg/audio
	  caps with a very low probability (#153004).

2006-02-07  Andy Wingo  <wingo@pobox.com>

	* gst/tcp/gsttcpclientsrc.c (gst_tcp_client_src_create): Switch to
	a TIME segment if we get timestamped buffers. Requires recent
	fixes in core to work properly.

2006-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybasebin.c: (prepare_output):
	  Don't print the URI as part of the error message, it
	  makes error dialogs look rather ugly, especially if
	  the URI is very long or has characters in it that
	  need escaping.

2006-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybasebin.c: (prepare_output):
	  Error out if we have only text or subtitles, but nothing
	  else. Also error out if we have subtitles but no video
	  stream.

2006-02-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_create):
	  Treat GNOME_VFS_RESULT_EOF as EOS, not as error (#329194).
	  Post an error message on the bus when we encounter an
	  error, which will hopefully be more meaningful than the
	  'Internal Flow Error' message users get to see if we
	  just return GST_FLOW_ERROR.

2006-02-07  Andy Wingo  <wingo@pobox.com>

	* configure.ac (GST_MAJORMINOR): Update core version req to
	0.10.2.2, for the collectpads API addition (#330244).

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
	  Return FALSE from plugin_init() when GnomeVFS can't
	  be initialised for some reason (#328423).

2006-02-06  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_src_event): 
	Stick to seeking theory until i find the bug.
	* gst/subparse/gstsubparse.c: (parse_subrip): Fix debug.

2006-02-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_finalize), (theora_enc_sink_setcaps),
	(theora_set_header_on_caps), (theora_enc_chain),
	(theora_enc_change_state):
	* tests/check/pipelines/theoraenc.c: (GST_START_TEST):
	  Make theoraenc and the tests leak free. Like, really.

2006-02-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_finalize), (theora_enc_sink_setcaps):
	  Add a finalize method to ensure we clean up state even if
	  someone omitted the state change back to NULL.

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_metadata_set1),
	(gst_vorbisenc_chain):
	  Free some more leaked bits.

	* tests/check/pipelines/theoraenc.c: (start_pipeline),
	(stop_pipeline):
	  Wait for state changes to happen if they're ASYNC.

	  This ought to teach those fancy pants buildbots a lesson.

2006-02-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst-libs/gst/tag/gstid3tag.c:
	  Add mapping for ID3 International Standard Recording Code
	  tag "TSRC"

2006-02-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_metadata_set1):
	  Don't leak tag names.

2006-02-05  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/tag/gstid3tag.c:
	* gst-libs/gst/tag/gstvorbistag.c:
	* gst-libs/gst/tag/tags.c:
	  Split libgsttag docs into multiple sections.

2006-02-05  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/tag/gstid3tag.c: (gst_tag_from_id3_tag):
	* gst-libs/gst/tag/gstvorbistag.c:
	* gst-libs/gst/tag/tag.h:
	* gst-libs/gst/tag/tags.c:
	  Add libgsttag to the docs.

2006-02-05  Julien MOUTTE  <julien@moutte.net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_finalize),
	(gst_text_overlay_init), (gst_text_overlay_src_event),
	(gst_text_overlay_collected): Fix clockoverlay.

2006-02-05  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/compiling.sgml:
	  Fix typo: it's pkg-config, not pkg-gconfig

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* docs/libs/tmpl/gstgconf.sgml:
	  There is no libgstgconf in 0.10, remove it
	  from the docs.

2006-02-05  Julien MOUTTE  <julien@moutte.net>

	* docs/libs/tmpl/gstcolorbalance.sgml: Updated.
	* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
	(gst_text_overlay_src_event), (gst_text_overlay_collected):
	* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
	(gst_sub_parse_class_init), (gst_sub_parse_init),
	(gst_sub_parse_src_event), (parse_mdvdsub), (parse_subrip),
	(parse_mpsub), (parser_state_init), (handle_buffer),
	(gst_sub_parse_chain), (gst_sub_parse_sink_event), (plugin_init):
	* gst/subparse/gstsubparse.h: Introduce seeking code.

2006-02-05  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
	  Add comment about LANGUAGE tag inconsistency (we want
	  ISO-639-1, but extract three-letter identifiers?)

	* po/POTFILES.in:
	  Add two translatable files.

2006-02-05  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/tag/Makefile.am:
	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
	* gst-libs/gst/tag/tag.h:
	* gst-libs/gst/tag/tags.c:
	(gst_tag_register_musicbrainz_tags_internal),
	(gst_tag_register_musicbrainz_tags):
	  Forward-port some tags stuff from the 0.8 branch. This is
	  mostly the addition of musicbrainz tags and their mapping
	  to vorbistags, and a vorbistag mapping of the language tag.

2006-02-05  Julien MOUTTE  <julien@moutte.net>

	* gst/playback/gstplaybin.c: (gen_text_element): Fix broken code
	refactoring.

2006-02-04  David Schleef  <ds@schleef.org>

	* ext/ogg/gstoggmux.c:
	* gst/typefind/gsttypefindfunctions.c:
	  Add Dirac typefinding and add dirac format to oggmux.

2006-02-03  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstdecodebin.c: (try_to_link_1):
	  Don't put essential function call into
	  g_return_*() macro, otherwise it'll all be
	  replaced by NOOPs when compiling with
	  G_DISABLE_CHECKS defined.

2006-02-03  Edgard Lima <edgard.lima@indt.org.br>

	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggparse.c:
	* gst/tcp/gsttcpserversink.c:
	* sys/v4l/v4lsrc_calls.c:
	* sys/v4l/v4lsrc_calls.h:
	Just make it compile with --disable-gst-debug.

2006-02-03  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsasink.c: (gst_alsasink_finalise),
	(gst_alsasink_class_init), (gst_alsasink_init),
	(gst_alsasink_write), (gst_alsasink_reset):
	* ext/alsa/gstalsasink.h:
	Add lock to protect alsa calls.
	Implement reset to flush samples ASAP, does not work
	with dmix though.

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_provide_clock):
	Ugh.. getting late I guess...

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_provide_clock),
	(gst_base_audio_sink_set_property),
	(gst_base_audio_sink_get_property), (gst_base_audio_sink_render):
	Don't try to provide a clock when we are not negotiated since
	we might not be able to make it run.

2006-02-02  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstdecodebin.c: (try_to_link_1):
	  Unlinking two source pads is ... hard.

2006-02-02  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/TODO:
	Updated.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_drain), (gst_base_audio_sink_event):
	On EOS, wait till the last sample is played before posting EOS.

2006-02-01  Philippe Kalaf <burger at speedy dot org>

	Patch by: Kai Vehmanen
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	  Adds ability to enable newsegment bypass by setting queue_delay to
	  zero. Also avoid thread being started if queue_delay is zero.

2006-02-01  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/test6.c: (new_decoded_pad_cb), (show_error), (main):
	  Make test work again by connecting fakesinks to each decoded pad,
	  which makes the pipeline wait until each fakesink has a buffer
	  queued before going to PAUSED state. At that point we know the
	  decodebin pads are negotiated.

2006-02-01  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_query),
	(gst_cdda_base_src_handle_event):
	* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audio_test_src_query):
	  Pass unhandled queries to the parent class's query function.

2006-02-01  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_query_types),
	(gst_ogg_pad_src_query):
	* ext/ogg/gstogmparse.c: (gst_ogm_parse_sink_query):
	* ext/theora/theoradec.c: (theora_dec_src_query),
	(theora_dec_sink_query):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_sink_query):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_src_query),
	(gst_vorbisenc_sink_query):
	* gst/adder/gstadder.c: (gst_adder_query):
	  Pass unhandled queries upstream instead of just
	  dropping them (#326447). Also, fix supported
	  query types list for some elements.

2006-02-01  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (au_type_find),
	(paris_type_find), (ilbc_type_find), (plugin_init):
	  Fix typefinding for audio/x-au, audio/x-paris and
	  audio/iLBC-sh. We cannot use the START_WITH macros
	  here, because there can only be one typefind factory
	  with the same name (caps), so the second one would
	  replace the first one and the first one would never
	  be called when doing typefinding (see #161712).
	  

2006-01-31  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_convert),
	(vorbis_handle_header_packet), (vorbis_dec_push),
	(vorbis_handle_data_packet):
	Use scale_int when we can, add some more scaling.
	Check packettype before parsing it.

2006-01-31  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (_theora_granule_time),
	(theora_dec_src_convert), (theora_dec_sink_convert):
	Call right _scale functions.
	Use parameter instead of some other random value.

2006-01-31  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (_theora_granule_frame),
	(_theora_granule_time), (_inc_granulepos),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_handle_type_packet), (theora_handle_data_packet),
	(theora_dec_chain):
	Use higher precision timestamps calculation.
	Convert some other conversions to _scale.

2006-01-31  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audio_test_src_create_sine_table), (plugin_init):
	* gst/volume/gstvolume.c: (plugin_init):
	  initialize gst_controller before using

2006-01-31  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/check/pipelines/theoraenc.c:
	* tests/check/pipelines/vorbisenc.c:
	Define constant using G_GINT64_CONSTANT to avoid errors when
	passing it around - otherwise it gets truncated to 32 bits.

	Fixes failing tests.

2006-01-31  Andy Wingo  <wingo@pobox.com>

	* sys/v4l/gstv4lsrc.c (gst_v4lsrc_set_caps): Don't segfault if the
	caps being set doesn't have a framerate value. Basically a stopgap
	measure.

	* ext/ogg/gstoggmux.c (GST_BUFFER_END_TIME): New macro. Not
	technically correct enough to put into core though.
	(gst_ogg_mux_dequeue_page): Use END_TIME instead of TIMESTAMP +
	DURATION. Fixes theoraenc ! oggmux.

	* sys/v4l/gstv4lsrc.c (gst_v4lsrc_fixate): Fixate to the nearest
	fraction, not double.

2006-01-31  Sebastien Moutte  <sebastien@moutte.net>

	* win32/vs7:
	add vs7 project files created by Sergey Scobich

2006-01-30  Sebastien Moutte  <sebastien@moutte.net>

	* win32/vs8:
	add vs8 project files created by Sergey Scobich
	
2006-01-30  Andy Wingo  <wingo@pobox.com>

	* ext/ogg/gstoggmux.c (gst_ogg_mux_dequeue_page): Compare
	timestamp + duration, not just timestamp -- ogg pages should be
	ordered by stop time. Necessary fix given the change in vorbis
	timestamps.

	* ext/theora/theoraenc.c (theora_enc_sink_setcaps) 
	(gst_theora_enc_init): Pull the granule shift out of the encoder.
	(granulepos_add): New function, handles the messiness of adjusting
	granulepos values.
	(theora_buffer_from_packet):
	(theora_enc_chain):
	(theora_enc_sink_event): Use granulepos_add, not +.

	* tests/check/pipelines/theoraenc.c
	(check_buffer_granulepos_from_starttime): Just check the frame
	count, not the actual granulepos -- we can't dictate to the
	encoder when it should be placing keyframes.

2006-01-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_start):
	  SERVICE_NOT_AVAILABLE happens for example when you're trying to
	  play an http:// stream from a server that's not serving

2006-01-30  Andy Wingo  <wingo@pobox.com>

	* tests/check/pipelines/vorbisenc.c (TIMESTAMP_OFFSET): 
	* tests/check/pipelines/theoraenc.c (TIMESTAMP_OFFSET): Totally
	remove the UINT64_CONSTANT macro, doesn't appear to be needed or
	available.

	* ext/theora/gsttheoraenc.h:
	* ext/theora/theoraenc.c: Same changes as were done to vorbisenc,
	although theoraenc was timestamping correctly. Added handling of
	streams that start with nonzero timestamps.

	* tests/check/Makefile.am:
	* tests/check/pipelines/theoraenc.c: New file, basically does same
	tests as vorbisenc.

	* tests/check/pipelines/vorbisenc.c: I claim these bugs.

2006-01-30  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_class_init), (gst_audioringbuffer_release),
	(gst_audioringbuffer_pause):
	Implement pause that does not wait for completion.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render), (gst_base_audio_sink_change_state):
	Don't drop buffers when going to PAUSED but perform preroll on
	remaining samples now that core base class supports this.

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_release),
	(gst_ring_buffer_pause_unlocked), (gst_ring_buffer_stop),
	(gst_ring_buffer_commit):
	Pause should not signal waiters.
	Implement return value of _commit correctly.

2006-01-30  Andy Wingo  <wingo@pobox.com>

	* tests/check/Makefile.am (check_vorbis): Add pipelines/vorbisenc.

	* ext/vorbis/vorbisenc.c (gst_vorbisenc_buffer_from_packet): Logic
	updated to timestamp from the first sample, not the last.
	(gst_vorbisenc_buffer_from_header_packet): New function, takes
	special care of granulepos and timestamp for header packets.
	(gst_vorbisenc_chain): Reflow, fix some leaks, and handle the case
	when the first buffer has a nonzero timestamp.

	* ext/vorbis/vorbisenc.h (GstVorbisEnc.granulepos_offset)
	(GstVorbisEnc.subgranule_offset): New members. Take care of the
	case when the first audio buffer we get has a nonzero timestamp.
	(GstVorbisEnc.next_ts): Renamed from prev_ts, because now we
	properly timestamp vorbis buffers with the time of the first
	sample, not the last.
	
	* ext/vorbis/vorbisenc.c (granulepos_to_clocktime): Renamed from
	vorbis_granule_time_copy -- now it takes the granule/subgranule
	offset into account.

	* tests/check/pipelines/vorbisenc.c: New test for correctness of
	timestamps, durations, and granulepos on buffers produced by
	vorbisenc.

2006-01-30  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt):
	  Patch from Eric Jonas to support conversions to/from UYVY 
	  (Fixes: #324626)

2006-01-30  Julien MOUTTE  <julien@moutte.net>

	* gst/playback/gstplaybasebin.c: (group_commit), (queue_overrun),
	(setup_subtitle), (setup_source), (set_active_source):
	* gst/playback/gstplaybin.c: (gst_play_bin_dispose),
	(gen_text_element), (gen_audio_element), (gen_vis_element),
	(remove_sinks), (add_sink), (setup_sinks): Implement subtitles.

2006-01-29  Sebastien Moutte  <sebastien@moutte.net>

	* gst-libs/gst/audio/audio.h: (GST_CLOCK_TIME_TO_FRAMES)
	* gst-libs/gst/audio/gstbaseaudiosink.c: (gst_base_audio_sink_render)
		use gst_guint64_to_gdouble to be compliant with vs6
	* gst/playback/gstdecodebin.c: (try_to_link_1)
	* gst/videorate/videorate.c: (gst_video_rate_blank_data)
		use G_GINT64_CONSTANT for int64 constants
	* win32/common/libgstinterfaces.def:
		export some symbols (gst_mixer_get_type,gst_mixer_track_get_type)
	* win32/vs6:
		update and add new project files
		
2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* win32/MANIFEST:
	* win32/common/interfaces-enumtypes.c:
	(gst_color_balance_type_get_type), (gst_mixer_type_get_type),
	(gst_mixer_track_flags_get_type),
	(gst_tuner_channel_flags_get_type):
	* win32/common/interfaces-enumtypes.h:
	* win32/common/multichannel-enumtypes.c:
	(gst_audio_channel_position_get_type):
	* win32/common/multichannel-enumtypes.h:
	  add a win32-update rule like in core, and copy over enumtypes files

2006-01-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* win32/MANIFEST:
	* win32/common/config.h:
	* win32/common/config.h.in:
	  add config files just like in core

2006-01-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format):
	  Make gcc-4.1 happy (part of #327357).

2006-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsasink.c: (gst_alsasink_init), (set_hwparams),
	(set_swparams), (gst_alsasink_prepare), (gst_alsasink_unprepare),
	(gst_alsasink_close), (gst_alsasink_write), (gst_alsasink_reset):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_init), (set_hwparams),
	(set_swparams), (gst_alsasrc_open), (gst_alsasrc_prepare),
	(gst_alsasrc_unprepare), (gst_alsasrc_read):
	  Update all error messages.  All of them should either use
	  the default translated message, or actually provide a
	  translatable string.
	  Make the string for channel count problems meaningful.

2006-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/v4l_calls.c: (gst_v4l_open):
	  check for and throw RESOURCE_BUSY

2006-01-27  David Schleef  <ds@schleef.org>

	* gst/videoscale/vs_scanline.c: Oops, *that's* why I never
	  checked in this change -- it requires liboil features not
	  in 0.3.6.  Revert parts.

2006-01-27  David Schleef  <ds@schleef.org>

	* REQUIREMENTS:
	* configure.ac: update liboil requirement to 0.3.6
	* gst/videoscale/Makefile.am:
	* gst/videoscale/vs_scanline.c: liboilify

2006-01-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libvisual/visual.c: (get_buffer):
	  When pad_alloc returns a GstFlowReturn other
	  than GST_FLOW_OK, make sure it is passed upstream.

2006-01-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/alsa/gstalsasink.c: (gst_alsasink_finalise),
	(gst_alsasink_class_init):
	  Free the device name string.

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init),
	(gst_ogg_mux_request_new_pad), (gst_ogg_mux_release_pad),
	(gst_ogg_mux_handle_src_event), (gst_ogg_mux_clear_collectpads):
	  Don't remove a pad from the collectpads structure until it
	  is released - it's a request pad, and may receive data again
	  if the element gets moved back to PLAYING state.

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	  Ensure we turn on double buffering on the Xv port, and
	  set the colour key to something dark and mysterious that
	  isn't black.

2006-01-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsaplugin.c: (plugin_init):
	* ext/cdparanoia/gstcdparanoiasrc.c:
	(gst_cd_paranoia_src_base_init), (plugin_init):
	* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init):
	  - a library should not call setlocale. see "Libraries" node in
	    gettext manual
	  - make sure all plugins that use translation do bindtextdomain
	    to point to the localedir
	* gst/playback/gstplaybin.c: (gen_vis_element), (add_sink),
	(setup_sinks), (plugin_init):
	  all this, and check for NULL when creating sinks

2006-01-27  Julien MOUTTE  <julien@moutte.net>

	* gst/subparse/gstsubparse.c: (gst_subparse_type_find),
	(plugin_init): Make typefinding of subtitles work again.

2006-01-26  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (aac_type_find),
	(mp3_type_frame_length_from_header), (mp3_type_find),
	(wavpack_type_find), (m4a_type_find), (ircam_type_find),
	(plugin_init):
	  Backport a bunch of typefinding fixes from the 0.8 branch.
	  Also, improve wavpack typefinding: if we can't peek the
	  entire wavpack block, try to parse the bits we can get and
	  see if we find what we're looking for in those.

2006-01-26  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c:
	(gst_ximagesink_calculate_pixel_aspect_ratio):
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_calculate_pixel_aspect_ratio): Handle some
	more cases of pixel aspect ratio.

2006-01-26  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstdecodebin.c: (pad_probe):
	Also consider the flush-start and tag events as unblockers
	for the pad probes.

2006-01-26  Julien MOUTTE  <julien@moutte.net>

	* gst/playback/gstplaybin.c: (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_vis_unblocked),
	(gst_play_bin_vis_blocked), (gst_play_bin_set_property): 
	On the fly visualisation switch, works disabling, enabling as
	well but it won't be able to enable vis in a playbin that was
	created with no visualisation.

2006-01-25  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render), (gst_base_audio_sink_change_state):
	Undo previous commit that returned WRONG_STATE sooner, it breaks 
	resume after pause.

2006-01-25  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_setcaps), (gst_base_audio_sink_event),
	(gst_base_audio_sink_preroll), (gst_base_audio_sink_render):
	Improve debugging.
	Post error when caps cannot be parsed.
	Resync on discontinuity in the stream.
	Clip samples to segment boundaries.
	return WRONG_STATE sooner when we are flushing.

	* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_init),
	(gst_base_audio_src_get_time), (gst_base_audio_src_create):
	Make audiosrc operate in TIME.
	Set TIMESTAMP and DURATION on buffers.

2006-01-24  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/examples/seek/seek.c: (main):
	  Output tag messages as well.

2006-01-23  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(free_pad_probes), (remove_fakesink), (pad_probe),
	(close_pad_link), (gst_decode_bin_change_state):
	Replace GstPadBlockCallback with pad probes that detect
	first buffer AND eos before removing fakesink.
	Fixes hang with demuxers doing EOS while pre-rolling.
	Solves #328279

2006-01-23  Andy Wingo  <wingo@pobox.com>

	* ext/alsa/gstalsasink.c:
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_setcaps),
	(gst_base_rtp_depayload_add_to_queue),
	(gst_base_rtp_depayload_queue_release): GCC 2.95 fixes (#328263).
	
	Patch by: Jens Granseuer <jensgr at gmx dot net>

2006-01-22  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimagesink_buffer_alloc): Playbin keeps some ref to some 
	frames. We might get a frame destroyed after changing state to
	NULL, adding a safety check on xcontext.

2006-01-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/interfaces/xoverlay.c:
	  Fix prepare-xwindow-id code example in the docs - we need to
	  ignore all messages that aren't element messages as well.
	  
2006-01-21  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_buffer_alloc):
	  I think one day i'll completely undestand how caps negotiation
	  is supposed to work. This refactoring handles buffer_alloc
	  called with caps we can't handle. We definitely don't want a
	  set_caps with those caps, so we define and allocate a buffer
	  we would like to receive.

2006-01-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybasebin.c: (setup_source):
	  Free iterator when done.

2006-01-17  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	  Fix playback of non-synchronised streams by assuming a rate
	  of 1.0 instead of a random one.

	  Makes this work again:

	  gst-launch filesrc location=raw_audio.file ! 'audio/x-raw-int,
	  endianness=(int)4321, signed=(boolean)true, width=(int)16,
	  depth=(int)16, rate=(int)44100, channels=(int)2' ! audioconvert !
	  audioresample ! alsasink

=== release 0.10.2 ===

2006-01-16  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.2, "Then the devil is six"

2006-01-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute):
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_set_property):
	  Comment out broken code that connects to the state-changed signal.
	  At this point, changing current stream selection is broken, but 
	  stuff like gst-launch playbin current-audio=1 works and filters
	  to the chosen stream.

2006-01-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
	  Fix #327216 (null dereference in vorbisdec)

2006-01-16  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/theora/theoradec.c: (theora_handle_comment_packet):
	  Post taglist actually on bus instead of just freeing it
	  (fixes #327114 and totem bug #327080).

	* ext/vorbis/vorbisdec.c: (vorbis_handle_comment_packet):
	  Use gst_element_found_tags_for_pad(), so that the tags
	  are sent downstream as an event as well.

2006-01-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_put),
	(gst_ximagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_finalize),
	(gst_xvimagesink_xvimage_put), (gst_xvimagesink_show_frame),
	(gst_xvimagesink_buffer_alloc):
	  move all regularly occurring messages to GST_LOG level
	  add some more object logs

2006-01-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_collected):
	  fix a silly segfault

2006-01-14  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/audio/mixerutils.c:
	* gst-libs/gst/audio/mixerutils.h:
	  Add docs for mixerutils stuff.

2006-01-13  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybasebin.c: (setup_source):
	  Fix playback for sources that emit raw audio or
	  raw video streams (e.g.: cd audio sources) (#325984).

2006-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/audio/mixerutils.c:
	(gst_audio_mixer_filter_do_filter):
	  actually save the element we create

2006-01-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/cdda/gstcddabasesrc.c:
	(gst_cdda_base_src_handle_track_seek):
	  No need to post a tag message on the bus when seeking
	  within the same track, only post it when the current
	  track changes.

2006-01-11  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gstplaybasebin.c: (group_destroy),
	(probe_triggered), (new_decoded_pad), (mute_group_type),
	(set_active_source):
	* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute):
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_base_init),
	(gst_stream_selector_set_property),
	(gst_stream_selector_request_new_pad):
	  Reenable stream selection. These mechanisms need a complete overhaul
	  in the face of 0.8->0.10 changes though.

2006-01-11  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/ogg/gstoggdemux.c:
	  Change the pad template to src_%d to match the pads that 
	  are created from it. decodebin needs this information in order
	  to decide that oggdemux is capable of producing multiple pads
	  (and hence needs queues inserted).

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_collected):
	  Make debug output more useful by using GST_PTR_FORMAT.

2006-01-11  Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_parse_caps):
	  Set depth and width for alaw/mulaw (fixes #326601).

2006-01-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* tests/icles/Makefile.am:
	  don't build the tests if we don't have the libs

2006-01-10  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/cdparanoia/gstcdparanoiasrc.c: (gst_cd_paranoia_src_close),
	(gst_cd_paranoia_paranoia_callback):
	  Don't try to free NULL pointers.

2006-01-10  Edward Hervey  <edward@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain),
	(gst_audio_rate_change_state), (plugin_init):
	Add debugging category.
	Fix type issues.
	Add case for incoming buffers without valid offset/offset_end.

2006-01-10  Michael Smith  <msmith@fluendo.com>

	* gst-libs/gst/audio/gstaudiosrc.c: (gst_audioringbuffer_dispose):
	  Don't leak GCond in audio sources.

2006-01-10  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gstplaybin.c: (gen_audio_element):
	  Don't leak an autoaudiosink/alsasink when we generate
	  a new audio element. (old code, I guess)

2006-01-10  Michael Smith  <msmith@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_setcaps):
	  Support float audio in audiorate.
	  Use width rather than depth for selecting sample width.

2006-01-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/videotestsrc/videotestsrc.h:
	  Use GLib types here (that way we don't have to include the
	  generated _stdint.h header, which makes life easier for win32
	  folks that don't use autotools for the build) (#325990, patch
	  by: Sergey Scobich).

2006-01-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_init),
	(gst_ring_buffer_set_flushing), (gst_ring_buffer_start),
	(gst_ring_buffer_pause), (wait_segment):
	* gst-libs/gst/audio/gstringbuffer.h:
	  Name (private) union, makes Forte compiler happy (this time
	  for real) (#324900).

2006-01-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/Makefile.am:
	  Link against libgstinterfaces, needed for mixer
	  and property probe stuff.

2006-01-09  Edward Hervey  <edward@fluendo.com>

	* gst-libs/gst/Makefile.am:

2006-01-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/audio/mixerutils.c:
	(gst_audio_mixer_filter_do_filter),
	(gst_audio_mixer_filter_check_element),
	(gst_audio_mixer_filter_probe_feature),
	(element_factory_rank_compare_func),
	(gst_audio_default_registry_mixer_filter):
	* gst-libs/gst/audio/mixerutils.h:
	  Add gst_audio_default_registry_mixer_filter() utility
	  function.

2006-01-03  Michael Smith  <msmith@fluendo.com>

	* gst/audioresample/resample.h:
	  As before, but for o_buf

2006-01-03  Michael Smith  <msmith@fluendo.com>

	* gst/audioresample/resample.h:
	  Declare struct _ResampleState.buffer as unsigned char *, not void *,
	  since we do arithmetic on it.

2006-01-02  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_init),
	(gst_ring_buffer_set_flushing), (gst_ring_buffer_start),
	(gst_ring_buffer_pause), (wait_segment):
	* gst-libs/gst/audio/gstringbuffer.h:
	  Sun's Forte compiler doesn't seem to like anonymous structs,
	  so use same setup as in GstBaseSrc (fixes #324900).

2005-12-30  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* gst/volume/Makefile.am:
	* gst/volume/demo.c:
	  move old example to tests/examples/volume/volune.c
	* tests/examples/Makefile.am:
	* tests/examples/seek/seek.c: (main):
	  change window-close event from "delete-event" to "destroy"
	* tests/examples/volume/Makefile.am:
	* tests/examples/volume/volume.c: (value_changed_callback),
	(setup_gui), (message_received), (eos_message_received), (main):
	  fix event handling and bus usage

2005-12-29  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiostestsrc_wave_get_type), (gst_audio_test_src_class_init),
	(gst_audio_test_src_init), (gst_audio_test_src_src_fixate),
	(gst_audio_test_src_query), (gst_audio_test_src_create_sine),
	(gst_audio_test_src_create_square),
	(gst_audio_test_src_create_saw),
	(gst_audio_test_src_create_triangle),
	(gst_audio_test_src_create_silence),
	(gst_audio_test_src_create_white_noise),
	(gst_audio_test_src_create_pink_noise),
	(gst_audio_test_src_init_sine_table),
	(gst_audio_test_src_create_sine_table),
	(gst_audio_test_src_change_wave),
	(gst_audio_test_src_change_volume), (gst_audio_test_src_do_seek),
	(gst_audio_test_src_create), (gst_audio_test_src_set_property):
	* gst/audiotestsrc/gstaudiotestsrc.h:
	  update to basesrc changes, implement segmented seeking and eos
	  handling, add a 'sine-tab' waveform for performance critical playback

2005-12-29  Tim-Philipp Müller  <tim at centricular dot net>

	* po/POTFILES.in:
	  ... and this time the other modified file that I missed last time.

2005-12-29  Michael Smith  <msmith@fluendo.com>

	* gst/playback/gstdecodebin.c: (new_pad):
	  Fix non-C89 variable declaration not at the start of a block. Should
	  help some compilers.

2005-12-29  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	  And now fix 'make distcheck' (builddir != srcdir)

2005-12-29  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/cdparanoia/Makefile.am:
	* ext/cdparanoia/gstcdparanoia.c:
	* ext/cdparanoia/gstcdparanoia.h:
	* ext/cdparanoia/gstcdparanoiasrc.c:
	(gst_cd_paranoia_mode_get_type), (gst_cd_paranoia_src_base_init),
	(gst_cd_paranoia_src_init), (gst_cd_paranoia_src_class_init),
	(gst_cd_paranoia_src_open), (gst_cd_paranoia_src_close),
	(gst_cd_paranoia_paranoia_callback),
	(gst_cd_paranoia_src_read_sector), (gst_cd_paranoia_src_finalize),
	(gst_cd_paranoia_src_set_property),
	(gst_cd_paranoia_src_get_property), (plugin_init):
	* ext/cdparanoia/gstcdparanoiasrc.h:
	  New cdparanoiasrc element based on cddabasesrc; enable cdparanoia
	  plugin again (there are still fixes required to playbin to make
	  cdda:// uris work there).

2005-12-29  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	  Fix test case compilation.

2005-12-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/cdda/gstcddabasesrc.c:
	(gst_cdda_base_src_update_duration),
	(gst_cdda_base_src_calculate_cddb_id):
	  An integer is not a string. Fix access to uninitialised variable.

	* tests/check/Makefile.am:
	  Add cddabasesrc unit test; also actually enable the vorbis test.

	* tests/check/generic/states.c:
	  Blacklist new cd audio elements as well.

	* tests/check/libs/cddabasesrc.c:
	  Unit test for GstCddaBaseSrc (discid calculation mostly).

2005-12-28  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* docs/libs/gst-plugins-base-libs.types:
	  Add docs for libgstcdda/GstCddaBaseSrc.

	* gst-libs/gst/interfaces/mixertrack.h:
	  Do one struct member per line with a semicolon at the end, that way
	  even gtk-doc might parse it without complaining.

2005-12-28  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/cdda/Makefile.am:
	* gst-libs/gst/cdda/base64.c:
	* gst-libs/gst/cdda/base64.h:
	* gst-libs/gst/cdda/gstcddabasesrc.c:
	(gst_cdda_base_src_mode_get_type), (gst_cdda_base_src_base_init),
	(gst_cdda_base_src_class_init), (gst_cdda_base_src_init),
	(gst_cdda_base_src_finalize), (gst_cdda_base_src_set_property),
	(gst_cdda_base_src_get_property),
	(gst_cdda_base_src_get_track_from_sector),
	(gst_cdda_base_src_get_query_types), (gst_cdda_base_src_convert),
	(gst_cdda_base_src_query), (gst_cdda_base_src_is_seekable),
	(gst_cdda_base_src_do_seek), (gst_cdda_base_src_handle_track_seek),
	(gst_cdda_base_src_handle_event), (gst_cdda_base_src_uri_get_type),
	(gst_cdda_base_src_uri_get_protocols),
	(gst_cdda_base_src_uri_get_uri), (gst_cdda_base_src_uri_set_uri),
	(gst_cdda_base_src_uri_handler_init),
	(gst_cdda_base_src_setup_interfaces),
	(gst_cdda_base_src_add_track), (gst_cdda_base_src_update_duration),
	(cddb_sum), (gst_cddabasesrc_calculate_musicbrainz_discid),
	(lba_to_msf), (gst_cdda_base_src_calculate_cddb_id),
	(gst_cdda_base_src_add_tags),
	(gst_cdda_base_src_add_index_associations),
	(gst_cdda_base_src_set_index), (gst_cdda_base_src_get_index),
	(gst_cdda_base_src_track_sort_func), (gst_cdda_base_src_start),
	(gst_cdda_base_src_clear_tracks), (gst_cdda_base_src_stop),
	(gst_cdda_base_src_create):
	* gst-libs/gst/cdda/gstcddabasesrc.h:
	* gst-libs/gst/cdda/sha1.c:
	* gst-libs/gst/cdda/sha1.h:
	  Add new libgstcdda with GstCddaBaseSrc class.

2005-12-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gnomevfs/gstgnomevfssink.h:
	  Use GstBaseSinkClass as parent_class member for class struct, not
	  GstBaseSink.

2005-12-27  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Michael Benes

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_video_test_src_class_init), (gst_video_test_src_start):
	  Add start method to reset running time and number of frames sent
	  when starting up (fixes #324696)

2005-12-27  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/gst-plugins-base-plugins.args:
	* docs/plugins/gst-plugins-base-plugins.hierarchy:
	* docs/plugins/gst-plugins-base-plugins.signals:
	  Add docs stuff for gnomevfssrc and gnomevfssink.

	* ext/gnomevfs/gstgnomevfssrc.c:
	  Fix example pipeline in gtk-doc blurb.

2005-12-27  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gnomevfs/Makefile.am:
	* ext/gnomevfs/gstgnomevfs.c: (gst_gnome_vfs_uri_get_type),
	(gst_gnome_vfs_handle_copy), (gst_gnome_vfs_handle_free),
	(gst_gnome_vfs_handle_get_type), (plugin_init):
	* ext/gnomevfs/gstgnomevfs.h:
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_do_init),
	(gst_gnome_vfs_sink_base_init), (gst_gnome_vfs_sink_class_init),
	(gst_gnome_vfs_sink_finalize), (gst_gnome_vfs_sink_init),
	(gst_gnome_vfs_sink_set_property),
	(gst_gnome_vfs_sink_get_property), (gst_gnome_vfs_sink_open_file),
	(gst_gnome_vfs_sink_close_file), (gst_gnome_vfs_sink_start),
	(gst_gnome_vfs_sink_stop), (gst_gnome_vfs_sink_handle_event),
	(gst_gnome_vfs_sink_query), (gst_gnome_vfs_sink_render),
	(gst_gnome_vfs_sink_uri_get_type),
	(gst_gnome_vfs_sink_uri_get_protocols),
	(gst_gnome_vfs_sink_uri_get_uri), (gst_gnome_vfs_sink_uri_set_uri),
	(gst_gnome_vfs_sink_uri_handler_init):
	* ext/gnomevfs/gstgnomevfssink.h:
	  Port gnomevfssink; add gtk-doc blurb.

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_get_type),
	(gst_gnome_vfs_src_base_init), (gst_gnome_vfs_src_class_init),
	(gst_gnome_vfs_src_init), (gst_gnome_vfs_src_finalize),
	(gst_gnome_vfs_src_uri_get_type),
	(gst_gnome_vfs_src_uri_get_protocols),
	(gst_gnome_vfs_src_uri_get_uri), (gst_gnome_vfs_src_uri_set_uri),
	(gst_gnome_vfs_src_uri_handler_init),
	(gst_gnome_vfs_src_set_property), (gst_gnome_vfs_src_get_property),
	(gst_gnome_vfs_src_unicodify), (audiocast_thread_run),
	(gst_gnome_vfs_src_send_additional_headers_callback),
	(gst_gnome_vfs_src_received_headers_callback),
	(gst_gnome_vfs_src_push_callbacks),
	(gst_gnome_vfs_src_pop_callbacks),
	(gst_gnome_vfs_src_get_icy_metadata), (gst_gnome_vfs_src_create),
	(gst_gnome_vfs_src_is_seekable), (gst_gnome_vfs_src_get_size),
	(gst_gnome_vfs_src_start), (gst_gnome_vfs_src_stop):
	* ext/gnomevfs/gstgnomevfssrc.h:
	  s/gst_gnomevfssrc/gst_gnome_vfs_src/; move header stuff to header
	  file; add gtk-doc blurb with example pipelines.

=== release 0.10.1 ===

2005-12-23  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.10.1, "Dobro Dedek"

2005-12-21  Edgard Lima <edgard.lima@indt.org.br>

	* gst/typefind/gsttypefindfunctions.c:
	iLBC30 and iLBC20 added to typefind.

2005-12-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init):
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_class_init):
	  update strings, values are in microseconds
	  change the default sink buffer time to something that is smaller
	  (to help software volume mixing have a slightly lower delay) but
	  still be acceptable on Wim's laptop

2005-12-20  Edward Hervey  <edward@fluendo.com>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_template_caps):
	Made a quack, forgot to add DUCK to the riff video template.

2005-12-19  Edward Hervey  <edward@fluendo.com>

	* ext/ogg/gstogmparse.c: (gst_ogm_text_parse_base_init),
	(gst_ogm_parse_init), (gst_ogm_audio_parse_init),
	(gst_ogm_video_parse_init), (gst_ogm_text_parse_init),
	(gst_ogm_parse_chain):
	Make sure pads are initialized correctly.
	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_video_template_caps):
	Add a whole bunch of FOURCC <=> MimeType.
	Extend the riff video pad template to support the newly added fourcc.

2005-12-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_deactivate_current_chain),
	(gst_ogg_demux_activate_chain):
	  Extra debug output when activating/deactivating chains.

	* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),
	(is_demuxer_element), (try_to_link_1), (remove_element_chain),
	(unlinked):
	  Remove a queue from our list when it becomes unlinked.
	  Don't add queues to elements in class 'Demux' if they
	  can only produce one pad 

2005-12-18  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_base_init),
	(gst_video_sink_get_type): Add a debug category.

2005-12-17  Philippe Khalaf  <burger@speedy.org> 

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_init), (gst_base_rtp_depayload_handle_sink_event):
	  Handle downstream newsegment by sending our own newsegment before the
	  next buffer to be released. (#323900)

2005-12-17  Philippe Khalaf  <burger@speedy.org> 

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_set_gst_timestamp):
	  add queue delay to new segment as well (as opposed to just the first
	  buffer). (bug #322347)

2005-12-16  Stefan Kost  <ensonic@users.sf.net>

	* ext/libvisual/visual.c: (make_valid_name):
	  change some char* into char[]
	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audio_test_src_class_init), (gst_audio_test_src_do_seek),
	(gst_audio_test_src_create):
	* gst/audiotestsrc/gstaudiotestsrc.h:
	  prepare to handle EOS and SEGMENT_DONE

2005-12-16  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/generic/states.c: (GST_START_TEST):
	  Blacklist cdparanoia element in state test.

2005-12-16  Tim-Philipp Müller  <tim at centricular dot net>

	  Patch by: Benjamin Pineau

	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	  Add <string.h> includes for memset and FD_ZERO (fixes #323878)

2005-12-15  Michael Smith  <msmith@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_video_rate_blank_data),
	(gst_video_rate_chain):
	  Fix timestamping for videorate when the first buffer it sees has a
	  non-zero timestamp. Fix some misleading debug output.

2005-12-15  Michael Smith  <msmith@fluendo.com>

	* gst/audioresample/gstaudioresample.c:
	  Don't leak all input buffers to audioresample.

2005-12-15  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/pango/gsttextoverlay.c: (gst_text_overlay_collected):
	  Don't operate on empty text buffers. Strip newlines and
	  tabs only from the end of the text, but leave them intact
	  in the middle. Fix typo in gtk-doc description.

2005-12-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybasebin.c:
	* gst/playback/gstplaybin.c: (handoff):
	  Make sure the video frame buffer we return to apps via the
	  "frame" property always has caps set on it. Modify
	  _gst_gvalue_set_object() macro to handle NULL objects
	  gracefully too.

2005-12-14  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audio_test_src_class_init), (gst_audio_test_src_init),
	(gst_audio_test_src_setcaps), (gst_audio_test_src_src_query),
	(gst_audio_test_src_do_seek), (gst_audio_test_src_is_seekable),
	(gst_audio_test_src_create):
	* gst/audiotestsrc/gstaudiotestsrc.h:
	Adjust to some recent api changes and add wtays new cool seeking
	capabillities

2005-12-14  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/alsa/Makefile.am:
	* ext/alsa/gstalsadeviceprobe.c:
	* ext/alsa/gstalsadeviceprobe.h:
	  Helper functions to add device probing via the GstPropertyProbe
	  interface to a class.

	* ext/alsa/gstalsamixer.h:
	  Comment out GST_ALSA_MIXER, it returns a struct that's not
	  used.

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open):
	  Add some debug info. 

	* ext/alsa/gstalsamixerelement.c:
	(gst_alsa_mixer_element_interface_supported),
	(gst_implements_interface_init),
	(gst_alsa_mixer_element_init_interfaces),
	(gst_alsa_mixer_element_class_init),
	(gst_alsa_mixer_element_finalize), (gst_alsa_mixer_element_init),
	(gst_alsa_mixer_element_set_property),
	(gst_alsa_mixer_element_get_property),
	(gst_alsa_mixer_element_change_state):
	* ext/alsa/gstalsamixerelement.h:
	  Add 'device' and 'device-name' properties. Add GstPropertyProbe
	  for device handling (gnome-volume-control will need that).

2005-12-12  Christian Schaller  <uraeus@gnome.org>

	* ext/Makefile.am: fix cdparanoia entry
	* gst-plugins-base.spec.in: add cdparanoia

2005-12-12  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_type_find):
	  Use the correct function to free list of typefind factories.

2005-12-12  Wim Taymans  <wim@fluendo.com>

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_video_test_src_class_init), (gst_video_test_src_init),
	(gst_video_test_src_parse_caps), (gst_video_test_src_query),
	(gst_video_test_src_do_seek), (gst_video_test_src_is_seekable),
	(gst_video_test_src_create):
	* gst/videotestsrc/gstvideotestsrc.h:
	Implement seeking in videotestsrc.
	Small cleanups.

2005-12-12  Wim Taymans  <wim@fluendo.com>

	* ext/cdparanoia/Makefile.am:
	* ext/cdparanoia/gstcdparanoia.c: (gst_paranoia_mode_get_type),
	(gst_paranoia_endian_get_type), (_do_init),
	(cdparanoia_class_init), (cdparanoia_init),
	(cdparanoia_set_property), (cdparanoia_get_property),
	(cdparanoia_do_seek), (cdparanoia_is_seekable),
	(cdparanoia_create), (cdparanoia_start), (cdparanoia_stop),
	(cdparanoia_convert), (cdparanoia_get_query_types),
	(cdparanoia_query), (cdparanoia_set_index),
	(cdparanoia_uri_set_uri):
	* ext/cdparanoia/gstcdparanoia.h:
	Partially ported cdparanoia now that basesrc can support a
	plugin like this..

2005-12-12  Wim Taymans  <wim@fluendo.com>

	* tests/examples/seek/scrubby.c: (main):
	Set higher priority for bus events so they don't get reordered with
	gtk gui events.

	* tests/examples/seek/seek.c: (do_seek), (start_seek), (stop_seek),
	(flush_toggle_cb), (main):
	Added checkbox to disable flushing seeks. 
	Disable scrubbing when doing non flushing seeks.

2005-12-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/subparse/gstsubparse.c: (gst_sub_parse_init),
	(gst_sub_parse_do_seek), (gst_sub_parse_src_event), (parse_subrip),
	(parser_state_init), (handle_buffer), (gst_sub_parse_chain),
	(gst_sub_parse_sink_event), (gst_sub_parse_change_state):
	  Implement some sort of event handling that doesn't rely on
	  g_return_if_fail; make sure we always push the last chunk of an 
	  .srt out when we receive an EOS; use gst_pad_alloc_buffer; fix
	  state change function; remove some old cruft. Seeking is still
	  rather unlikely to work though.

	* tools/.cvsignore:
	  Ignore more.

2005-12-11  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state): 
	Fixed a leak of the current image reference when cleaning up.
	Thanks to Arwed von Merkatz (alley_cat) for pointing it out.

2005-12-09  Michael Smith  <msmith@fluendo.com>

	* tools/Makefile.am:
	* tools/gst-launch-ext-m.m:
	  Remove gst-launch-ext. It doesn't work, and is no longer
	  particularly useful.

2005-12-08  Luca Ognibene  <luogni@tin.it>

	* ext/ogg/gstogmparse.c: (gst_ogm_parse_sink_query):
	  don't pass random values to ogmparse convert function.
	  Make seeking possible in the exile1.ogm file.

2005-12-07  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property):
	* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
	  Work around refcount problem with g_value_set_object() that occur
	  if the core has been compiled against GLib-2.6 (g_value_set_object()
	  will only g_object_ref() the element, but the caller will
	  gst_object_unref() it and bad things will happen due to the way
	  GstObjects are refcounted in the GLib-2.6 case). Fixes problems with
	  totem for people on FC4 using Thomas's 0.10 RPMs.
	  
2005-12-07  Edward Hervey  <edward@fluendo.com>

	Time to welcome ogm to 0.10 :)
	
	* ext/ogg/gstoggdemux.c: (internal_element_pad_added_cb),
	(gst_ogg_pad_typefind):
	Oggdemux can now properly typefind elements with dynamic pads.
	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	Properly set caps on src pad, and set caps on outgoing buffers.

2005-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixerelement.h:
	* ext/alsa/gstalsamixeroptions.h:
	* ext/alsa/gstalsamixertrack.h:
	* ext/alsa/gstalsasink.c:
	* ext/alsa/gstalsasink.h:
	* ext/alsa/gstalsasrc.c:
	* ext/alsa/gstalsasrc.h:
	* ext/cdparanoia/gstcdparanoia.h:
	* ext/gnomevfs/gstgnomevfsuri.h:
	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggmux.c:
	* ext/pango/gsttextoverlay.h:
	* ext/theora/theoradec.c:
	* ext/theora/theoraenc.c:
	* ext/vorbis/vorbisdec.h:
	* ext/vorbis/vorbisenc.c:
	* ext/vorbis/vorbisenc.h:
	* ext/vorbis/vorbisparse.h:
	* gst-libs/gst/audio/gstaudioclock.h:
	* gst-libs/gst/audio/gstaudiosink.c:
	* gst-libs/gst/audio/gstaudiosink.h:
	* gst-libs/gst/audio/gstaudiosrc.c:
	* gst-libs/gst/audio/gstaudiosrc.h:
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	* gst-libs/gst/audio/gstringbuffer.h:
	* gst-libs/gst/audio/multichannel.h:
	* gst-libs/gst/floatcast/floatcast.h:
	* gst-libs/gst/interfaces/colorbalance.c:
	* gst-libs/gst/interfaces/colorbalance.h:
	* gst-libs/gst/interfaces/colorbalancechannel.h:
	* gst-libs/gst/interfaces/mixer.h:
	* gst-libs/gst/interfaces/mixeroptions.h:
	* gst-libs/gst/interfaces/mixertrack.h:
	* gst-libs/gst/interfaces/navigation.h:
	* gst-libs/gst/interfaces/propertyprobe.h:
	* gst-libs/gst/interfaces/tuner.h:
	* gst-libs/gst/interfaces/tunerchannel.h:
	* gst-libs/gst/interfaces/tunernorm.h:
	* gst-libs/gst/interfaces/xoverlay.h:
	* gst-libs/gst/netbuffer/gstnetbuffer.h:
	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/riff/riff-media.h:
	* gst-libs/gst/riff/riff-read.h:
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	* gst-libs/gst/rtp/gstbasertppayload.c:
	* gst-libs/gst/rtp/gstbasertppayload.h:
	* gst-libs/gst/rtp/gstrtpbuffer.c:
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	* gst-libs/gst/tag/gsttageditingprivate.h:
	* gst-libs/gst/tag/gstvorbistag.c:
	(gst_tag_list_from_vorbiscomment_buffer):
	* gst-libs/gst/tag/tag.h:
	* gst-libs/gst/video/video.h:
	* gst/adder/gstadder.c:
	* gst/adder/gstadder.h:
	* gst/audioconvert/audioconvert.c:
	* gst/audioconvert/audioconvert.h:
	* gst/audioconvert/gstaudioconvert.c:
	* gst/audioconvert/gstchannelmix.c:
	* gst/audioconvert/gstchannelmix.h:
	* gst/audiorate/gstaudiorate.c:
	* gst/audioresample/buffer.h:
	* gst/audioresample/functable.h:
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/resample.h:
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.h:
	* gst/ffmpegcolorspace/imgconvert.c:
	* gst/ffmpegcolorspace/imgconvert_template.h:
	* gst/playback/gstdecodebin.c:
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c:
	* gst/playback/gststreaminfo.h:
	* gst/tcp/gstfdset.c:
	* gst/tcp/gstfdset.h:
	* gst/tcp/gstmultifdsink.c:
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpplugin.h:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	* gst/typefind/gsttypefindfunctions.c:
	* gst/videorate/gstvideorate.c:
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.h:
	* sys/v4l/gstv4lcolorbalance.h:
	* sys/v4l/gstv4ltuner.h:
	* sys/v4l/gstv4lxoverlay.h:
	* sys/v4l/v4l_calls.h:
	* sys/v4l/videodev_mjpeg.h:
	* tests/check/elements/audioconvert.c:
	* tests/check/elements/audioresample.c:
	* tests/check/elements/audiotestsrc.c:
	* tests/check/elements/videotestsrc.c:
	* tests/check/elements/volume.c:
	* tests/examples/seek/scrubby.c:
	* tests/examples/seek/seek.c:
	  expand tabs

=== release 0.10.0 ===

2005-12-05 Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	  releasing 0.10.0, "Mont-d'or"

2005-12-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* tests/examples/seek/Makefile.am:
	Build fix for when gtk is not available.

2005-12-05  Andy Wingo  <wingo@pobox.com>

	* ext/libvisual/visual.c: (get_buffer):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_peer):
	* ext/pango/gsttextrender.c: (gst_text_render_chain):
	* ext/theora/theoradec.c: (theora_handle_data_packet):
	* ext/theora/theoraenc.c: (theora_buffer_from_packet),
	(theora_enc_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_video_test_src_create):
	Update for alloc_buffer changes.

2005-12-05  Andy Wingo  <wingo@pobox.com>

	patch by: Kai Vehmanen <kv2004 eca cx>
	
	* gst-libs/gst/rtp/gstbasertpdepayload.c
	(gst_base_rtp_depayload_thread): Fix busy loop (#323017).

2005-12-04  Andy Wingo  <wingo@pobox.com>

	patch by: Sebastien Cote <sebas642 yahoo ca>
	
	* pkgconfig/gstreamer-plugins-base.pc.in (Libs): Add -L flag.
	Fixes #319172.

2005-12-02  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/gst-plugins-base-plugins.hierarchy:
	* ext/pango/gstclockoverlay.c:
	* ext/pango/gsttextoverlay.c: 
	* ext/pango/gsttextrender.c:
	* ext/pango/gsttimeoverlay.c:
	  Add gtk-doc blurbs to pango elements.

2005-12-02  Wim Taymans  <wim@fluendo.com>

	* gst/audioresample/buffer.c: (audioresample_buffer_queue_flush):
	* gst/audioresample/buffer.h:
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/gstaudioresample.h:
	* gst/audioresample/resample.c: (resample_input_flush),
	(resample_input_pushthrough), (resample_input_eos),
	(resample_get_output_size_for_input),
	(resample_get_input_size_for_output), (resample_get_output_size),
	(resample_get_output_data):
	* gst/audioresample/resample.h:
	* gst/audioresample/resample_ref.c: (resample_scale_ref):
	Fix audioresample, seek torture, new segments, reverse negotiation
	etc.. work fine.

2005-12-02  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	Small cleanups.

2005-12-02  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_transform):
	Post errors.

=== release 0.9.7 ===

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	  releasing 0.9.7, "Mi Perro No Tiene Ninguna Nariz"

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* po/hu.po:
	* win32/MANIFEST:
	* win32/gst.sln:
	  add win32 MANIFEST file
	  do something to the hungarian translation

2005-12-01  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/Makefile.am:
	  Add $(PANGO_DIR) to SUBDIRS

	* ext/pango/gstclockoverlay.c:
	* ext/pango/gsttimeoverlay.c:
	  Fix and improve element descriptions.

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-libvisual.xml:
	* docs/plugins/inspect/plugin-pango.xml:
	  add pango plugin to docs

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	* ext/Makefile.am:
	  moved pango to base

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* tests/Makefile.am:
	* tests/icles/.cvsignore:
	* tests/icles/Makefile.am:
	* tests/icles/stress-xoverlay.c: (myclock), (open_display),
	(close_display), (resize_window), (move_window), (create_window),
	(terminate_playback), (pause_playback), (start_playback), (main):
	  add stress test for xoverlay from Julien

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* docs/libs/tmpl/gstcolorbalance.sgml:
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	* gst-libs/gst/rtp/gstbasertppayload.c:
	* gst-libs/gst/rtp/gstrtpbuffer.c:
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	  Do burger's rename for rtp payloaders and depayloaders

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* win32/:
	  add Visual Studio 6 build files

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* docs/libs/tmpl/gstaudio.sgml:
	* docs/libs/tmpl/gstringbuffer.sgml:
	* gst-libs/gst/interfaces/xoverlay.c:
	* gst-libs/gst/video/gstvideofilter.c:
	* gst-libs/gst/video/gstvideosink.c:
	  update documentation

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_base_init),
	(gst_multi_fd_sink_class_init), (gst_multi_fd_sink_init),
	(gst_multi_fd_sink_finalize), (gst_multi_fd_sink_add),
	(gst_multi_fd_sink_remove), (gst_multi_fd_sink_clear),
	(gst_multi_fd_sink_get_stats),
	(gst_multi_fd_sink_remove_client_link),
	(gst_multi_fd_sink_handle_client_read),
	(gst_multi_fd_sink_client_queue_data),
	(gst_multi_fd_sink_client_queue_caps),
	(gst_multi_fd_sink_client_queue_buffer),
	(gst_multi_fd_sink_new_client),
	(gst_multi_fd_sink_handle_client_write),
	(gst_multi_fd_sink_recover_client),
	(gst_multi_fd_sink_queue_buffer),
	(gst_multi_fd_sink_handle_clients), (gst_multi_fd_sink_thread),
	(gst_multi_fd_sink_render), (gst_multi_fd_sink_set_property),
	(gst_multi_fd_sink_get_property), (gst_multi_fd_sink_start),
	(gst_multi_fd_sink_stop), (gst_multi_fd_sink_change_state):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_get_type),
	(gst_tcp_client_sink_base_init), (gst_tcp_client_sink_class_init),
	(gst_tcp_client_sink_init), (gst_tcp_client_sink_finalize),
	(gst_tcp_client_sink_setcaps), (gst_tcp_client_sink_render),
	(gst_tcp_client_sink_set_property),
	(gst_tcp_client_sink_get_property), (gst_tcp_client_sink_start),
	(gst_tcp_client_sink_stop), (gst_tcp_client_sink_change_state):
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_base_init),
	(gst_tcp_client_src_class_init), (gst_tcp_client_src_init),
	(gst_tcp_client_src_finalize), (gst_tcp_client_src_getcaps),
	(gst_tcp_client_src_create), (gst_tcp_client_src_set_property),
	(gst_tcp_client_src_get_property), (gst_tcp_client_src_start),
	(gst_tcp_client_src_stop), (gst_tcp_client_src_unlock):
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpplugin.c: (plugin_init):
	* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_base_init),
	(gst_tcp_server_sink_class_init), (gst_tcp_server_sink_init),
	(gst_tcp_server_sink_finalize),
	(gst_tcp_server_sink_handle_server_read),
	(gst_tcp_server_sink_removed), (gst_tcp_server_sink_handle_wait),
	(gst_tcp_server_sink_set_property),
	(gst_tcp_server_sink_get_property),
	(gst_tcp_server_sink_init_send), (gst_tcp_server_sink_close):
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_base_init),
	(gst_tcp_server_src_class_init), (gst_tcp_server_src_init),
	(gst_tcp_server_src_finalize), (gst_tcp_server_src_create),
	(gst_tcp_server_src_set_property),
	(gst_tcp_server_src_get_property), (gst_tcp_server_src_start),
	(gst_tcp_server_src_stop), (gst_tcp_server_src_unlock):
	* gst/tcp/gsttcpserversrc.h:
	  more borgifying

2005-12-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins.args:
	* docs/plugins/inspect/plugin-libvisual.xml:
	* gst/audioconvert/plugin.h:
	* gst/audiorate/gstaudiorate.c: (gst_audio_rate_get_type),
	(gst_audio_rate_base_init), (gst_audio_rate_class_init),
	(gst_audio_rate_setcaps), (gst_audio_rate_init),
	(gst_audio_rate_chain), (gst_audio_rate_set_property),
	(gst_audio_rate_get_property), (gst_audio_rate_change_state),
	(plugin_init):
	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiostestsrc_wave_get_type), (gst_audio_test_src_base_init),
	(gst_audio_test_src_class_init), (gst_audio_test_src_init),
	(gst_audio_test_src_src_fixate), (gst_audio_test_src_setcaps),
	(gst_audio_test_src_get_query_types),
	(gst_audio_test_src_src_query), (gst_audio_test_src_create_sine),
	(gst_audio_test_src_create_square),
	(gst_audio_test_src_create_saw),
	(gst_audio_test_src_create_triangle),
	(gst_audio_test_src_create_silence),
	(gst_audio_test_src_create_white_noise),
	(gst_audio_test_src_init_pink_noise),
	(gst_audio_test_src_generate_pink_noise_value),
	(gst_audio_test_src_create_pink_noise),
	(gst_audio_test_src_change_wave), (gst_audio_test_src_get_times),
	(gst_audio_test_src_create), (gst_audio_test_src_set_property),
	(gst_audio_test_src_get_property), (gst_audio_test_src_start),
	(plugin_init):
	* gst/audiotestsrc/gstaudiotestsrc.h:
	* gst/subparse/gstsubparse.c: (gst_sub_parse_get_type),
	(gst_sub_parse_base_init), (gst_sub_parse_class_init),
	(gst_sub_parse_init), (gst_sub_parse_formats),
	(gst_sub_parse_src_eventmask), (gst_sub_parse_src_event),
	(convert_encoding), (get_next_line),
	(gst_sub_parse_data_format_autodetect),
	(gst_sub_parse_format_autodetect), (feed_textbuf), (handle_buffer),
	(gst_sub_parse_loop), (gst_sub_parse_chain),
	(gst_sub_parse_change_state), (gst_sub_parse_type_find),
	(plugin_init):
	* gst/subparse/gstsubparse.h:
	* gst/videorate/gstvideorate.c: (gst_video_rate_get_type),
	(gst_video_rate_base_init), (gst_video_rate_class_init),
	(gst_video_rate_transformcaps), (gst_video_rate_getcaps),
	(gst_video_rate_setcaps), (gst_video_rate_blank_data),
	(gst_video_rate_init), (gst_video_rate_event),
	(gst_video_rate_chain), (gst_video_rate_set_property),
	(gst_video_rate_get_property), (gst_video_rate_change_state),
	(plugin_init):
	* gst/videoscale/gstvideoscale.c:
	(gst_video_scale_method_get_type), (gst_video_scale_get_capslist),
	(gst_video_scale_src_template_factory),
	(gst_video_scale_sink_template_factory),
	(gst_video_scale_get_type), (gst_video_scale_base_init),
	(gst_video_scale_class_init), (gst_video_scale_init),
	(gst_video_scale_set_property), (gst_video_scale_get_property),
	(gst_video_scale_transform_caps), (gst_video_scale_get_format),
	(gst_video_scale_prepare_size), (parse_caps),
	(gst_video_scale_set_caps), (gst_video_scale_get_unit_size),
	(gst_video_scale_fixate_caps), (gst_video_scale_prepare_image),
	(gst_video_scale_transform), (gst_video_scale_handle_src_event),
	(plugin_init):
	* gst/videoscale/gstvideoscale.h:
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_video_test_src_pattern_get_type),
	(gst_video_test_src_base_init), (gst_video_test_src_class_init),
	(gst_video_test_src_init), (gst_video_test_src_src_fixate),
	(gst_video_test_src_set_pattern),
	(gst_video_test_src_set_property),
	(gst_video_test_src_get_property), (gst_video_test_src_getcaps),
	(gst_video_test_src_parse_caps), (gst_video_test_src_setcaps),
	(gst_video_test_src_event), (gst_video_test_src_get_times),
	(gst_video_test_src_create), (plugin_init):
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.c: (gst_video_test_src_get_size),
	(gst_video_test_src_smpte), (gst_video_test_src_snow),
	(gst_video_test_src_black):
	* gst/videotestsrc/videotestsrc.h:
	  borgify further
	  clean up docs a little

2005-11-30  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_init),
	(gst_basertppayload_event), (gst_basertppayload_push),
	(gst_basertppayload_change_state):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	closed #320644.

2005-11-30  Julien MOUTTE  <julien@moutte.net>

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* gst-libs/gst/video/gstvideofilter.c:
	* gst-libs/gst/video/gstvideosink.c:
	* gst-libs/gst/video/gstvideosink.h: Adding docs.

2005-11-30  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* LICENSE:
	  move
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	* Makefile.am:
	  update
	* scripts/autoplugins.sh:
	  remove

2005-11-30  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* Makefile.am:
	* configure.ac:
	* examples/Makefile.am:
	* examples/capsfilter/Makefile.am:
	* examples/capsfilter/capsfilter1.c:
	* examples/gob/Makefile.am:
	* examples/gob/gst-identity2.gob:
	* examples/indexing/.cvsignore:
	* examples/indexing/Makefile.am:
	* examples/indexing/indexmpeg.c:
	* examples/seeking/.cvsignore:
	* examples/seeking/Makefile.am:
	* examples/seeking/cdparanoia.c:
	* examples/seeking/cdplayer.c:
	* examples/seeking/chained.c:
	* examples/seeking/scrubby.c:
	* examples/seeking/seek.c:
	* examples/stats/Makefile.am:
	* examples/stats/mp2ogg.c:
	* examples/switch/.cvsignore:
	* examples/switch/Makefile.am:
	* examples/switch/switcher.c:
	* tests/Makefile.am:
	* tests/check/generic/.cvsignore:
	* tests/check/pipelines/.cvsignore:
	* tests/examples/Makefile.am:
	* tests/examples/seek/Makefile.am:
	  reorganize stuff under tests/

2005-11-30  Edward Hervey  <edward@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind):
	Go away you stupid GstStaticPadTemplate memleak.

2005-11-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/net/Makefile.am:
	* gst-libs/gst/net/README:
	* gst-libs/gst/net/gstnetbuffer.c:
	* gst-libs/gst/net/gstnetbuffer.h:
	  this was moved to "netbuffer"

2005-11-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/video/gstvideofilter.c: (gst_video_filter_get_type),
	(gst_video_filter_class_init), (gst_video_filter_init):
	* gst-libs/gst/video/gstvideofilter.h:
	  borgify name to bring in line with other classes

2005-11-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioscale/.cvsignore:
	* gst/audioscale/Makefile.am:
	* gst/audioscale/README:
	* gst/audioscale/audioscale.vcproj:
	* gst/audioscale/dtof.c:
	* gst/audioscale/dtos.c:
	* gst/audioscale/functable.c:
	* gst/audioscale/gstaudioscale.c:
	* gst/audioscale/gstaudioscale.h:
	* gst/audioscale/private.h:
	* gst/audioscale/resample.c:
	* gst/audioscale/resample.h:
	* gst/audioscale/test.c:
	  remove

2005-11-30  Edward Hervey  <edward@fluendo.com>

	* gst-libs/gst/netbuffer/Makefile.am:
	really, really tired

2005-11-30  Edward Hervey  <edward@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	Update for new GstTypeFindFactory _register()

2005-11-30  Edward Hervey  <edward@fluendo.com>

	* gst-libs/gst/netbuffer/Makefile.am: (libgstnetbufferincludedir): 
	Let's not override libgstnet from core for no reason...
	(libgstnetbuffer_@GST_MAJORMINOR@_la_SOURCES):
	Ok, maybe not so quick next time.

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	  moved gst-libs/gst/net to netbuffer through CVS surgery
	  remove old directory
	  updating build to accomodate
	  (#322257)

2005-11-29  Andy Wingo  <wingo@pobox.com>

	* pkgconfig/gstreamer-plugins-base.pc.in:
	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
	* gst-libs/gst/net/Makefile.am: Rename gstnet to gstnetbuffer
	(#322257).

2005-11-29  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gststreamselector.c: (gst_stream_selector_chain):
	3rd time's the charm. Correct ref-counting for discarded buffers.

2005-11-29  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gststreamselector.c:
	(gst_stream_selector_class_init),
	(gst_stream_selector_set_property),
	(gst_stream_selector_get_property),
	(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
	Fix ref-counting

2005-11-29  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/subparse/gstsubparse.c: (feed_textbuf):
	  Don't access already unref'ed buffer.

2005-11-29  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/playback/gststreamselector.c:
	(gst_stream_selector_class_init), (gst_stream_selector_init),
	(gst_stream_selector_dispose), (gst_stream_selector_set_property),
	(gst_stream_selector_get_property),
	(gst_stream_selector_get_linked_pad),
	(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
	* gst/playback/gststreamselector.h:
	Add the active-pad property for playbin to use shortly. Ignore buffers
	from any other pad, returning GST_FLOW_NOT_LINKED

2005-11-29  Julien MOUTTE  <julien@moutte.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_type_find): Free the list,
	patch from bug #322704 (Alessandro Decina).

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/audio/Makefile.am:
	  folded audiofilter into the audio library

2005-11-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/gstvideoscale.h:
	* gst/videoscale/gstvideoscale.c:
	  remove unimplemented scale methods

2005-11-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers):
	  Don't leak caps.

2005-11-28  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put),
	(gst_ximagesink_setcaps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_setcaps): Fixed a tricky bug. When caps renegotiation
	happens (only visible on ximagesink but bug is in xv too) set_caps was
	destroying the internal x[v]image used to memcpy non locally alloced
	buffers so that it got renewed on next _chain. The issue is that 
	_expose will try to put that image as it reffed it in _put.
	Using gst_buffer_unref instead of destroy fixes it !

2005-11-28  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(try_to_link_1), (queue_filled_cb):
	Better use of the queues. Start with a small size queue and only increase
	the size of the queues when the other queues are empty.

2005-11-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/video/Makefile.am:
	  compile in copied-over videofilter into the video library
	* gst-libs/gst/video/videosink.h:
	  rename the header to gstvideosink.h since it's a base GstObject class
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.h:
	  use the new header

2005-11-28  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (group_commit), (probe_triggered):
	* gst/playback/gstplaybasebin.h:
	Prepare to handle errors betters.

	* gst/playback/gstplaybin.c: (add_sink), (setup_sinks):
	Set sinks to PAUSED first before adding and linking them so that
	we don't interrupt dataflow.

2005-11-28  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/TODO:
	Updated TODO

	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_open_device),
	(gst_audioringbuffer_close_device), (gst_audioringbuffer_acquire),
	(gst_audioringbuffer_release):
	Small cleanups.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_render),
	(gst_base_audio_sink_change_state):
	Slave to the master clock when going to PLAYING and unslave when
	going to PAUSED.

	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_open_device), (gst_ring_buffer_close_device),
	(gst_ring_buffer_acquire), (gst_ring_buffer_release),
	(gst_ring_buffer_samples_done), (gst_ring_buffer_set_sample),
	(gst_ring_buffer_clear_all), (wait_segment),
	(gst_ring_buffer_commit), (gst_ring_buffer_read),
	(gst_ring_buffer_advance):
	* gst-libs/gst/audio/gstringbuffer.h:
	Add some docs and cleanups.

2005-11-28  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_navigation_send_event): Fix navigation events
	coordinates translation with pixel aspect ratios.

2005-11-28  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put):
	Use calculated video geometry from _setcaps instead of buffer
	caps to respect pixel aspect ratio. (fixes #322388)

2005-11-28  Julien MOUTTE  <julien@moutte.net>

	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstmixer.sgml:
	* docs/libs/tmpl/gstxoverlay.sgml:
	* gst-libs/gst/interfaces/xoverlay.c: Add docs for the Xoverlay
	interface.

2005-11-28  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new):
	Refuse to create an XvImage if we can't find the format.

2005-11-28  Edward Hervey  <edward@fluendo.com>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_template_caps):
	Add ATRAC3 to the list of riff-possible audio caps.
	I know we still don't have a plugin for atrac3, but it's saner to output
	that than a cryptic mimetype.

2005-11-27  Edward Hervey  <edward@fluendo.com>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_parse_strf_auds):
	Don't try to create a zero-sized subbuffer.

2005-11-27  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximage_buffer_free),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_put),
	(gst_ximagesink_bufferpool_clear), (gst_ximagesink_buffer_alloc),
	(gst_ximagesink_expose): Fixed a tricky race.
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_expose): Fixed a tricky race.
	* sys/xvimage/xvimagesink.h:

2005-11-27  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(gst_decode_bin_init), (close_pad_link), (try_to_link_1):
	Remove unused properties, and add queues between demuxers and decoders
	so that a lot more files can preroll properly.

2005-11-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/net/Makefile.am:
	* gst-libs/gst/rtp/Makefile.am:
	* gst-libs/gst/tag/Makefile.am:
	  remove silly include
	* gst/tags/Makefile.am:
	* gst/tags/gsttagediting.c:
	* gst/tags/gsttageditingprivate.h:
	* gst/tags/tagedit.vcproj:
	  remove directory, is as good as empty

2005-11-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  added GST_LIB_LDFLAGS and GST_ALL_LDFLAGS
	* gst-libs/Makefile.am:
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/net/Makefile.am:
	* gst-libs/gst/riff/Makefile.am:
	* gst-libs/gst/rtp/Makefile.am:
	* gst-libs/gst/tag/Makefile.am:
	* gst-libs/gst/video/Makefile.am:
	  and use them

2005-11-27  Julien MOUTTE  <julien@moutte.net>

	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstmixer.sgml:
	* docs/libs/tmpl/gstxoverlay.sgml:
	* sys/ximage/ximagesink.c: (gst_ximagesink_buffer_alloc):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.h: More and more documentation.

2005-11-26  Julien MOUTTE  <julien@moutte.net>

	* docs/libs/gst-plugins-base-libs-docs.sgml:
	* docs/libs/gst-plugins-base-libs-sections.txt:
	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstmixer.sgml:
	* docs/libs/tmpl/gstxoverlay.sgml: Add the XOverlay interface
	to documentation.

2005-11-26  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* sys/xvimage/xvimagesink.c: Added doc for xvimagesink.

2005-11-26  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/inspect/plugin-adder.xml:
	* docs/plugins/inspect/plugin-alsa.xml:
	* docs/plugins/inspect/plugin-audioconvert.xml:
	* docs/plugins/inspect/plugin-audiorate.xml:
	* docs/plugins/inspect/plugin-audioresample.xml:
	* docs/plugins/inspect/plugin-audiotestsrc.xml:
	* docs/plugins/inspect/plugin-decodebin.xml:
	* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
	* docs/plugins/inspect/plugin-gnomevfs.xml:
	* docs/plugins/inspect/plugin-ogg.xml:
	* docs/plugins/inspect/plugin-playbin.xml:
	* docs/plugins/inspect/plugin-subparse.xml:
	* docs/plugins/inspect/plugin-tcp.xml:
	* docs/plugins/inspect/plugin-theora.xml:
	* docs/plugins/inspect/plugin-typefindfunctions.xml:
	* docs/plugins/inspect/plugin-video4linux.xml:
	* docs/plugins/inspect/plugin-videorate.xml:
	* docs/plugins/inspect/plugin-videoscale.xml:
	* docs/plugins/inspect/plugin-videotestsrc.xml:
	* docs/plugins/inspect/plugin-volume.xml:
	* docs/plugins/inspect/plugin-vorbis.xml:
	* docs/plugins/inspect/plugin-ximagesink.xml:
	* docs/plugins/inspect/plugin-xvimagesink.xml: Updated version.
	* sys/ximage/ximagesink.c: Adding documentation for ximagesink.

2005-11-26  Edward Hervey  <edward@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audiorate_chain):
	Properly return GstFlowReturn from gst_pad_push in chain functions.

2005-11-25  Michael Smith  <msmith@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_query_convert),
	(gst_ogg_demux_chain_peer), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_read_end_chain),
	(gst_ogg_demux_send_event), (gst_ogg_demux_loop):
	  Handle various conditions better when we don't understand a stream.
	  Removes a heap of CRITICALs on ogg streams containing unknown data.

2005-11-24  Andy Wingo  <wingo@pobox.com>

	* gst/tcp/gstmultifdsink.c (gst_multifdsink_handle_client_write):
	Be threadsafe.

2005-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: back to HEAD

=== release 0.9.6 ===

2005-11-23  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.9.6, "White Eight"

2005-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/pipelines/simple_launch_lines.c: (GST_START_TEST):
	* docs/plugins/inspect/plugin-sine.xml:
	  remove sinesrc some more

2005-11-23  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_read):
	If we are reading too slowly, jump forward in the ringbuffer
	instead of blocking.

2005-11-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libvisual/visual.c: (gst_visual_src_setcaps), (get_buffer),
	(gst_visual_chain):
	* ext/theora/theoraenc.c: (theora_enc_sink_setcaps):
	* gst/videorate/gstvideorate.c: (gst_videorate_setcaps),
	(gst_videorate_chain):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_src_fixate), (gst_videotestsrc_create):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get_fps),
	(gst_v4lmjpegsrc_src_convert), (gst_v4lmjpegsrc_src_query),
	(gst_v4lmjpegsrc_get), (gst_v4lmjpegsrc_getcaps):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_get_fps),
	(gst_v4lsrc_get_fps_list), (gst_v4lsrc_buffer_new):
	  Updates for API changes

2005-11-23  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_set_clock),
	(gst_base_audio_sink_render), (gst_base_audio_sink_change_state):
	Fix for calibration API change.

2005-11-23  Michael Smith <msmith@fluendo.com>

	* gst-libs/gst/audio/multichannel.c:
	(gst_audio_get_channel_positions),
	(gst_audio_set_channel_positions),
	(gst_audio_set_structure_channel_positions_list),
	(gst_audio_fixate_channel_positions):
	  Use gst_value_array_*() functions on value arrays, not
	  gst_value_list_*().

2005-11-23  Edward Hervey  <edward@fluendo.com>

	* autogen.sh:
	eheh, sinesrc is gone. Replacing sample srcfile by existing one.
	Fixes autogen

2005-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* check/elements/videotestsrc.c: (setup_videotestsrc),
	(cleanup_videotestsrc), (GST_START_TEST), (videotestsrc_suite),
	(main):
	  add a test for videotestsrc

2005-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/sine/.cvsignore:
	* gst/sine/Makefile.am:
	* gst/sine/gstsinesrc.c:
	* gst/sine/gstsinesrc.h:
	* gst/sine/sinesrc.vcproj:
	  and remove sinesrc from the repository.  Closes #321446

2005-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* gst-plugins-base.spec.in:
	  remove sinesrc from the build

2005-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* check/elements/audiotestsrc.c: (setup_audiotestsrc),
	(cleanup_audiotestsrc), (GST_START_TEST), (audiotestsrc_suite),
	(main):
	  add a test for audiotestsrc, testing all waves.  Even seems
	  leak-free at first glance, nice job Stefan

2005-11-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	  Translation string updates

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_fixate), (gst_v4lsrc_get_caps),
	(gst_v4lsrc_set_caps):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_get_fps),
	(gst_v4lsrc_get_fps_list), (gst_v4lsrc_buffer_new):
	* sys/v4l/v4lsrc_calls.h:
	  Improve v4lsrc, by making it work again.

2005-11-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libvisual/visual.c: (gst_visual_chain):
	  Fix the fps calculations.

	* gst/ffmpegcolorspace/avcodec.h:
	  Move structure element for clarity

	* gst-libs/gst/interfaces/tunernorm.c: (gst_tuner_norm_init):
	* gst-libs/gst/interfaces/tunernorm.h:
	* sys/v4l/gstv4ljpegsrc.c: (gst_v4ljpegsrc_src_link):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_base_init):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_base_init),
	(gst_v4lmjpegsrc_get_fps), (gst_v4lmjpegsrc_src_convert),
	(gst_v4lmjpegsrc_src_query), (gst_v4lmjpegsrc_get),
	(gst_v4lmjpegsrc_getcaps):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_fixate), (gst_v4lsrc_get_caps),
	(gst_v4lsrc_set_caps):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4l_calls.c: (gst_v4l_open):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_get_fps),
	(gst_v4lsrc_get_fps_list), (gst_v4lsrc_buffer_new):
	* sys/v4l/v4lsrc_calls.h:
	  Fractional framerates...

2005-11-22  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_set_clock),
	(gst_base_audio_sink_render), (gst_base_audio_sink_change_state):
	And we provide a clock by default, of course...

2005-11-22  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_init):
	This clock can be slaved to a master clock now.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_init),
	(gst_base_audio_sink_dispose), (gst_base_audio_sink_provide_clock),
	(gst_base_audio_sink_set_clock),
	(gst_base_audio_sink_set_property),
	(gst_base_audio_sink_get_property), (gst_base_audio_sink_preroll),
	(gst_base_audio_sink_render), (gst_base_audio_sink_change_state):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	Handle slaving the internal clock to the clock selected in the
	pipeline.
	Add property to make the basesink not provide a clock.

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_class_init), (gst_base_rtp_depayload_init),
	(gst_base_rtp_depayload_wait):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	We can use the clock in GstElement, no need to store it ourselves.

2005-11-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/tmpl/gstaudio.sgml:
	  update
	* ext/cdparanoia/gstcdparanoia.c: (gst_paranoia_mode_get_type),
	(gst_paranoia_endian_get_type):
	* ext/theora/theoraenc.c: (gst_border_mode_get_type):
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_method_get_type):
	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiostestsrc_wave_get_type):
	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type):
	* gst/tcp/gstfdset.c: (gst_fdset_mode_get_type):
	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_sync_method_get_type), (gst_unit_type_get_type),
	(gst_client_status_get_type), (gst_multifdsink_class_init),
	(gst_multifdsink_new_client), (gst_multifdsink_recover_client),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property):
	* gst/tcp/gstmultifdsink.h:
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_method_get_type):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_pattern_get_type):
	  remove deprecated properties
	  fix up enums to correctly have short lowercase dashed nicks

2005-11-22  Michael Smith <msmith@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_chain):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_create):
	  Add underscore.

2005-11-22  Michael Smith <msmith@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_chain):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_create):
	  Use utility method for scaling clocktime for fractional framerates.

2005-11-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libvisual/visual.c: (gst_visual_src_setcaps), (get_buffer),
	(gst_visual_chain):
	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	* ext/theora/theoradec.c: (theora_handle_type_packet):
	* ext/theora/theoraenc.c: (theora_enc_sink_setcaps),
	(theora_enc_chain):
	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	* gst-libs/gst/video/video.c: (gst_video_frame_rate):
	* gst-libs/gst/video/video.h:
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pixfmt):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_set_caps):
	* gst/videorate/gstvideorate.c: (gst_videorate_transformcaps),
	(gst_videorate_setcaps), (gst_videorate_blank_data),
	(gst_videorate_chain):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_src_fixate), (gst_videotestsrc_getcaps),
	(gst_videotestsrc_parse_caps), (gst_videotestsrc_setcaps),
	(gst_videotestsrc_event), (gst_videotestsrc_create):
	* gst/videotestsrc/gstvideotestsrc.h:
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
	(gst_ximagesink_setcaps), (gst_ximagesink_change_state),
	(gst_ximagesink_get_times), (gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_setcaps), (gst_xvimagesink_change_state),
	(gst_xvimagesink_get_times), (gst_xvimagesink_init):
	* sys/xvimage/xvimagesink.h:
	  Convert elements to use fractions for their framerate.
	  V4L elements to come later tonight.

2005-11-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/audio/audio.c:
	* gst-libs/gst/audio/audio.h:
	  remove some deprecated functions

2005-11-22  Andy Wingo  <wingo@pobox.com>

	* Update for gst_tag_setter API changes.

2005-11-22  Andy Wingo  <wingo@pobox.com>

	* ext/ogg/gstoggdemux.c (gst_ogg_pad_submit_packet)
	(gst_ogg_demux_perform_seek):
	* ext/theora/theoradec.c (theora_dec_sink_event):
	* ext/vorbis/vorbisdec.c (vorbis_dec_sink_event): Run
	update-funcnames.

2005-11-22  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (main):
	Give higher priority to bus signals than the gtk events
	to fix a race condition in the segment looping.

2005-11-22  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/theora/Makefile.am:
	* ext/vorbis/Makefile.am:
	* gst-libs/gst/tag/Makefile.am:
	* gst-plugins-base.spec.in:
	  Rename libgsttagedit to libgsttag (#322117).

2005-11-22  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_setcaps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
	  Call gst_x_overlay_prepare_xwindow_id() to give applications
	  a final chance to set their own xwindow id before the video
	  sink creates its own window.

2005-11-22  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_navigation_send_event): Handle navigation
	events correcly with borders if applicable.

2005-11-22  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Luca Ognibene

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info):
	* gst/ffmpegcolorspace/imgconvert.c:
	* gst/ffmpegcolorspace/imgconvert_template.h:
	  Forward-port fixes from the 0.8 branch (patch by Luca Ognibene,
	  #318353); use gst_structure_has_name().

2005-11-22  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_event_thread),
	(gst_ximagesink_class_init): Add debug macros on functions.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_xwindow_draw_borders),
	(gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_xwindow_update_geometry),
	(gst_xvimagesink_handle_xevents), (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_event_thread), (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_xcontext_clear),
	(gst_xvimagesink_get_format_from_caps), (gst_xvimagesink_setcaps),
	(gst_xvimagesink_change_state), (gst_xvimagesink_show_frame),
	(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_expose), (gst_xvimagesink_set_property),
	(gst_xvimagesink_get_property), (gst_xvimagesink_finalize),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h: Refactoring to handle aspect ratio,
	expose while being PAUSED, out of data flow navigation events, etc..

2005-11-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/audio/audio.c: (gst_audio_duration_from_pad_buffer):
	* gst-libs/gst/audio/audio.h:
	  fix prototype - wondering why the test worked regardless

2005-11-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* gst-libs/gst/audio/audio.c: (gst_audio_duration_from_pad_buffer):
	* gst-libs/gst/audio/audio.h:
	  add a method that returns a proper GstClockTime

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/interfaces/xoverlay.c: (gst_x_overlay_base_init),
	(gst_x_overlay_got_xwindow_id), (gst_x_overlay_prepare_xwindow_id):
	* gst-libs/gst/interfaces/xoverlay.h:
	  Remove everything having to do with the desired size; add 
	  gst_x_overlay_prepare_xwindow_id() function; remove the
	  'have-xwindow-id' signal and make gst_x_overlay_got_xwindow_id()
	  post a message on the bus instead (#321816).

	* sys/ximage/ximagesink.c: (gst_ximagesink_xoverlay_init):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps),
	(gst_xvimagesink_xoverlay_init):
	  Remove desired size stuff (#321816).

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find),
	(mpeg2_sys_type_find), (mpeg1_sys_type_find),
	(mpeg_video_type_find), (mpeg_video_stream_type_find):
	  Terminate vararg functions with NULL instead of 0 to 
	  make gcc4 happy.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	patch by: Sebastien Cote <sebas642@yahoo.ca>
	
	* gst-libs/gst/rtp/gstrtpbuffer.h: 
	* gst-libs/gst/rtp/gstrtpbuffer.c
	(gst_rtpbuffer_get_payload_buffer): New function. Fixes #321451.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* gst/playback/gstplaybin.c (gen_audio_element) 
	(gen_video_element): Use the new MISSING_PLUGIN core error
	category. Closes #320060.

	* ext/vorbis/vorbisdec.c (vorbis_dec_sink_event): 
	* gst/videorate/gstvideorate.c (gst_videorate_event):
	* ext/theora/theoradec.c (theora_dec_sink_event): 
	* ext/theora/theoraenc.c (theora_enc_sink_event): Don't take
	stream lock.

	* gst/subparse/gstsubparse.c (gst_subparse_src_event):
	* ext/ogg/gstoggdemux.c (gst_ogg_demux_perform_seek): Update for
	stream lock changes.

2005-11-21  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init), (gst_base_audio_sink_init),
	(gst_base_audio_sink_provide_clock),
	(gst_base_audio_sink_set_clock), (gst_base_audio_sink_render),
	(gst_base_audio_sink_change_state):
	* gst/audioresample/gstaudioresample.c:
	Segment update fix.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	* *.h:
	* *.c: Ran scripts/update-macros. Oh yes.

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/ximage/Makefile.am:
	* sys/ximage/ximage.c:
	  Rename ximage plugin to ximagesink (#321426) (Don't forget to
	  remove your old libgstximage.* manually if necessary).

2005-11-21  Michael Smith <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_setup):
	  Minimal fix for bug #320200: set the min/max bitrate in the correct
	  units. A better fix would be to upgrade to the RATEMANAGE2
	  interface, rather than using the deprecated interface used here, but
	  that would require an update in our libvorbis dependency (to 1.1),
	  which is probably undesirable.

2005-11-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libvisual/visual.c: (get_buffer):
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_fixate):
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_fixate_caps):
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_fixate):
	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiotestsrc_src_fixate):
	* gst/sine/gstsinesrc.c: (gst_sinesrc_src_fixate):
	* gst/videorate/gstvideorate.c: (gst_videorate_setcaps):
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_fixate_caps):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_src_fixate):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_fixate):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_fixate):
	  Rename gst_caps_structure_fixate_* to gst_structure_fixate_*
	  (#322027)


2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_iavs_caps):
	* gst-libs/gst/riff/riff-read.c: (gst_riff_parse_file_header),
	(gst_riff_parse_strh), (gst_riff_parse_strf_vids),
	(gst_riff_parse_info):
	* gst/videotestsrc/videotestsrc.c: (paintinfo_find_by_structure):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_set_caps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
	  Fixes for GST_FOURCC_FORMAT API change.

2005-11-21  Andy Wingo  <wingo@pobox.com>

	patch by: Alessandro Dessina <alessandro nnva org>

	* ext/ogg/gstoggmux.c (gst_ogg_mux_set_header_on_caps):
	* ext/ogg/gstoggparse.c (gst_ogg_parse_append_header)
	(gst_ogg_parse_chain):
	* ext/theora/theoraenc.c (theora_set_header_on_caps):
	* ext/vorbis/vorbisenc.c (gst_vorbisenc_set_header_on_caps):
	* ext/vorbis/vorbisparse.c (vorbis_parse_set_header_on_caps): Fix
	gst_value_list calls on arrays. Fixes #321962.

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_request_new_pad), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_clear_collectpads), (gst_ogg_mux_change_state):
	* gst/adder/gstadder.c: (gst_adder_init),
	(gst_adder_request_new_pad), (gst_adder_collected),
	(gst_adder_change_state):
	  Update for gst_collectpads_foo() to gst_collect_pads_foo()
	  API change.

2005-11-21  Michael Smith <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_clear),
	(gst_vorbisenc_chain), (gst_vorbisenc_output_buffers):
	  Properly handle pad_push return values.

2005-11-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst-libs/gst/tag/Makefile.am:
	* gst-libs/gst/tag/gstvorbistag.c:
	(gst_tag_list_to_vorbiscomment_buffer):
	  Remove obsolete vorbistag element and debug category.

	* gst/playback/gstplaybasebin.c: (check_queue):
	  Don't divide by 0 when queue-threshold is 0.

	* sys/ximage/ximagesink.c: (gst_ximagesink_set_property):
	  Don't modify an existing pixel-aspect-ratio if we fail to read
	  a new one.

2005-11-20  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_push_buffer),
	(gst_vorbisenc_push_packet):
	GST_PAD_IS_USABLE is gone, use the return value of
	the push or pad_alloc_buffer instead.

2005-11-18  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
	(gst_ximagesink_check_xshm_calls), (gst_ximagesink_ximage_new),
	(gst_ximagesink_ximage_destroy),
	(gst_ximagesink_xwindow_draw_borders), (gst_ximagesink_ximage_put),
	(gst_ximagesink_xwindow_new),
	(gst_ximagesink_xwindow_update_geometry),
	(gst_ximagesink_handle_xevents), (gst_ximagesink_event_thread),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_xcontext_clear),
	(gst_ximagesink_bufferpool_clear), (gst_ximagesink_getcaps),
	(gst_ximagesink_setcaps), (gst_ximagesink_change_state),
	(gst_ximagesink_show_frame), (gst_ximagesink_buffer_alloc),
	(gst_ximagesink_navigation_send_event),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_expose),
	(gst_ximagesink_set_property), (gst_ximagesink_get_property),
	(gst_ximagesink_finalize), (gst_ximagesink_init),
	(gst_ximagesink_class_init):
	* sys/ximage/ximagesink.h: Refactoring of ximagesink.
	This new version brings correct software scaling, non flickering
	window while resizing, pixel aspect ratio handling, usage of
	hardware buffer pools, out of data flow event thread for 
	navigation and handling of expose events even when being PAUSED,
	a new property to keep video aspect ratio when resizing, etc...

2005-11-18  Julien MOUTTE  <julien@moutte.net>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init),
	(gst_videoscale_fixate_caps): Introduce back caps fixate with
	handling of PAR.

2005-11-18  Edward Hervey  <bilboed@dvdsrc.fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init): 
	Unsetting IS_SINK flag from the fakesink, so decodebin
	never behaves as a sink.

2005-11-17  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_change_state):
	Fix the audiosrc base class again, we did not unflush.

2005-11-17  Julien MOUTTE  <julien@moutte.net>

	* examples/seeking/seek.c: (make_dv_pipeline),
	(make_vorbis_theora_pipeline), (make_avi_pipeline),
	(make_mpegnt_pipeline): Use VSINK everywhere, add a scaler
	to ogg/vorbis/theora pipeline.

2005-11-17  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_send_headers),
	(gst_ogg_mux_collected), (gst_ogg_mux_change_state):
	Fix EOS on multiple streams.
	More debugging.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_configure_segment),
	(gst_ogg_demux_perform_seek):
	Segment done must include stream time.

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init),
	(gst_ogg_mux_clear), (gst_ogg_mux_init), (gst_ogg_mux_finalize),
	(gst_ogg_mux_change_state):
	Fix ogg muxer again.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_init):
	Fix compile again.

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/libvisual/visual.c: (gst_visual_init):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init):
	* ext/ogg/gstoggparse.c: (gst_ogg_parse_init),
	(gst_ogg_parse_chain):
	* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_init),
	(gst_ogm_video_parse_init), (gst_ogm_text_parse_init):
	* ext/theora/theoradec.c: (gst_theora_dec_init):
	* ext/theora/theoraenc.c: (gst_theora_enc_init):
	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init):
	* ext/vorbis/vorbisparse.c: (gst_vorbis_parse_init):
	* gst/adder/gstadder.c: (gst_adder_class_init),
	(gst_adder_dispose):
	* gst/audiorate/gstaudiorate.c: (gst_audiorate_init):
	* gst/subparse/gstsubparse.c: (gst_subparse_init):
	* gst/videorate/gstvideorate.c: (gst_videorate_init):
	  Fix a whole set of pad template leaks

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/generic/states.c: (GST_START_TEST):
	  fix the test so that it only checks for elements that are part of
	  this source module

2005-11-16  Michael Smith <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear), (gst_ogg_mux_reset),
	(gst_ogg_mux_init), (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_push_buffer), (gst_ogg_mux_dequeue_page),
	(gst_ogg_mux_pad_queue_page), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_collected), (gst_ogg_mux_clear_collectpads),
	(gst_ogg_mux_change_state):
	  Fix leaking collectpads.

2005-11-16  Edward Hervey  <edward@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_blank_data),
	(gst_videorate_event), (gst_videorate_chain):
	Handle segment seeks

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_provide_clock),
	(gst_base_audio_sink_change_state):
	Set ringbuffer to non-flushing when going to PAUSED, set to
	flushing again when going to READY.

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_init),
	(gst_ring_buffer_stop):
	Start in flushing mode by default.
	Don't set flushing in the _stop method, let the app call
	this explicitly.

2005-11-16  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_center_rect):
	* gst-libs/gst/video/videosink.h: Add helper function needed
	for video sinks.

2005-11-16  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/videoscale/gstvideoscale.c:
	(gst_videoscale_handle_src_event):
	  Don't leak reference to pad parent.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_stop):
	Set ringbuffer to flushing when stopping so that we don't
	block on wait_segment anymore and livelock.

2005-11-16  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (send_event), (do_seek),
	(loop_toggle_cb), (segment_done), (main):
	Added looping checkbox.

2005-11-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind),
	(gst_ogg_demux_init):
	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_base_init),
	(gst_vorbis_dec_init):
	  revert unrefs, they don't pass make check

2005-11-15  Johan Dahlin  <johan@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind),
	(gst_ogg_demux_init), (gst_ogg_demux_finalize):
	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_base_init),
	(gst_vorbis_dec_init):
	Fix pad template leaks.	

2005-11-15  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state):
	  Make state change function thread safe.

2005-11-15  Edward Hervey  <edward@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_receive_event),
	(gst_ogg_demux_class_init):
	Implement GstElement::send_event, so we can send seek events
	in GST_STATE_READY

2005-11-14  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_new):
	Discovered how to take away flickering while resizing the
	window. Please don't put that in ximagesink, refactoring in
	progress.

2005-11-14  Michael Smith <msmith@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_client_queue_data),
	(gst_multifdsink_render):
	  Don't leak GDP headers when using GDP mode (i.e. tcpserversink).

2005-11-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybin.c: (gen_audio_element):
	  Use autoaudiosink, it tends to be more widely available than
	  autoaudiiosink.
	  
2005-11-14  Andy Wingo  <wingo@pobox.com>

	* gst/playback/gstplaybin.c (gen_audio_element): Use autoaudiosink
	as well if it is available. Fixes #316442.

2005-11-14  Michael Smith <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear), (gst_ogg_mux_init),
	(gst_ogg_mux_sinkconnect), (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_push_buffer), (gst_ogg_mux_dequeue_page),
	(gst_ogg_mux_pad_queue_page), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_set_header_on_caps), (gst_ogg_mux_collected),
	(gst_ogg_mux_clear_collectpads), (gst_ogg_mux_change_state):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_buffer_from_packet),
	(gst_vorbisenc_change_state):
	  Fix a small memory leak in vorbisenc.
	  Fix large memory leaks in oggmux, also fix lots of state change
	  bugs in oggmux.

2005-11-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_class_init), (gst_videotestsrc_init),
	(gst_videotestsrc_src_fixate):
	  move fixation to a fixate function
	  remove negotiate function, basesrc's is good enough
	  fixes a bug for check when using the element alone

2005-11-13  Edward Hervey  <edward@fluendo.com>

	* examples/seeking/seek.c: (do_seek), (accurate_toggle_cb),
	(key_toggle_cb), (main):
	Added checkboxes for adding/removing the accurate and key_unit seek
	flags.

2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: back to HEAD

=== release 0.9.5 ===

2005-11-11  Thomas Vander Stichele <thomas at apestaart dot org>

	* configure.ac:
	  releasing 0.9.5, "No No Kia"

2005-11-11  Edward Hervey  <edward@fluendo.com>

	* examples/seeking/seek.c: (make_parselaunch_pipeline):
	Added parse-launch syntax seeking mode for the seeking example.
	This should help stress-test even more cases.
	Ex usage : ./seek 15 "filesrc location=uranus.avi ! decodebin ! xvimagesink"

2005-11-11  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_navigation_send_event):
	  Check whether peer pad exists before sending navigation events
	  to it.

2005-11-11  Michael Smith <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_setup),
	(gst_vorbisenc_buffer_from_packet):
	* ext/vorbis/vorbisenc.h:
	  Set duration on encoded buffers. This allows oggmux's
	  max_page_delay parameter to actually work.

2005-11-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_get_palette), (gst_ffmpeg_set_palette),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_get_unit_size), (gst_ffmpegcsp_transform):
	  Make palettes work again (see #132341). Use our own macros
	  for rounding up.

2005-11-10  Andy Wingo  <wingo@pobox.com>

	* gst/playback/gstplaybasebin.c (prepare_output): Fix format
	string doober.

2005-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_transform_caps):
	  Prefer passthrough in transform_caps

2005-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsasink.c: (gst_alsasink_open):
	  check for ALSA errors properly, instead of relying on ALSA's
	  error strings to serve to the user.

2005-11-10  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_event), (gst_ogg_demux_init),
	(gst_ogg_demux_configure_segment), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_loop), (gst_ogg_demux_change_state):
	Modernise the seek code.

2005-11-10  Michael Smith <msmith@fluendo.com>
	
	* gst/playback/gstplaybasebin.c: (group_commit), (new_decoded_pad),
	(setup_substreams), (set_active_source):
	  Unlock GROUP_LOCK in failure cases, so that we don't deadlock when
	  trying to go to NULL if we failed to read a file.

2005-11-10  Wim Taymans  <wim@fluendo.com>

	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiotestsrc_class_init), (gst_audiotestsrc_get_times),
	(gst_audiotestsrc_create):
	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_get_times), (gst_sinesrc_create):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_class_init), (gst_videotestsrc_get_times),
	(gst_videotestsrc_create):
	The base class can now sync for us.

2005-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_fixate): Check if the caps have
	  a fourcc field. Fixes crash for gst-launch-0.9 v4lsrc
	  name=source autoprobe=false autoprobe-fps=false copy-mode=1
	  device=/dev/video0 ! ffmpegcolorspace ! "video/x-raw-yuv,
	  format=(fourcc)I420" ! xvimagesink

2005-11-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_get_query_types), (gst_sinesrc_src_query),
	(gst_sinesrc_newsegment):
	  Send newsegment event in TIME format, set duration if
	  num-buffers is set, fix duration querying.

2005-11-10  Michael Smith <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_push_buffer), (gst_ogg_mux_dequeue_page),
	(gst_ogg_mux_pad_queue_page), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_collected):
	 Fix EOS handling, partially. Now forwarding an EOS event once we have
	 EOS on all pads works correctly. However, we still don't properly set
	 EOS on the actual ogg stream pages.

2005-11-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/gstplaybin.c: (gst_play_bin_dispose):
	  Set elements to NULL state before disposing of them.

2005-11-08  Sebastien Cote  <sebas642 at yahoo dot ca>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_init),
	(gst_base_rtp_depayload_set_gst_timestamp):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	  We need to send a newsegment event for each instance, not
	  just for the first instance of this class (get rid of
	  static variable in function). (#321011).
	  
2005-11-08  Michael Smith <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_buffer_from_page), (gst_ogg_mux_push_buffer),
	(gst_ogg_mux_dequeue_page), (gst_ogg_mux_pad_queue_page),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_collected):
	  Forward port rewrite of muxing strategy to 0.9 version of oggmux.
	  This makes us mux things correctly according to the ogg muxing
	  rules. Still not handling EOS correctly right now, though.

2005-11-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/audioconvert/gstaudioconvert.c:
	  Fix typo in docs. 

2005-11-08  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_internal_chain),
	(gst_ogg_pad_submit_packet), (gst_ogg_chain_new):
	  Initialise segment_stop to GST_CLOCK_TIME_NONE when
	  creating a new chain; should fix live streaming. Also
	  add more debug output and fix a typo.

2005-11-08  Brian Cameron  <brian dot cameron at sun dot com>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/volume/gstvolume.c: (volume_set_caps):
	  Fix compilation on Solaris with Forte. (#320923)

2005-11-08  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	No need to do a typecheck.

2005-11-07  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/alsa/gstalsa.h:
	  We register a debug category, so let's use it.

2005-11-04  Zeeshan Ali  <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_class_init), (gst_base_rtp_depayload_wait):
	Fixed a small problem.

2005-11-04  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/Makefile.am:
	* examples/seeking/scrubby.c: (gst_element_factory_make_or_warn),
	(dynamic_link), (setup_dynamic_link), (make_wav_pipeline),
	(make_playerbin_pipeline), (format_value), (update_scale),
	(speed_cb), (seek_cb), (do_seek), (start_seek), (stop_seek),
	(play_cb), (pause_cb), (stop_cb), (print_message), (bus_message),
	(print_usage), (main):
	Added app for playback speed testing.

	* examples/seeking/seek.c: (dynamic_link),
	(make_avi_msmpeg4v3_mp3_pipeline), (make_avi_pipeline),
	(make_mpeg_pipeline), (do_seek), (set_update_scale),
	(message_received), (main):
	Updated seek example.

2005-11-04  Zeeshan Ali  <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_class_init), (gst_base_rtp_depayload_init),
	(gst_base_rtp_depayload_thread), (gst_base_rtp_depayload_wait),
	(gst_base_rtp_depayload_set_clock):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	Don't sleep on the bench (system clock) when you have a nice 
	comfortable bed (Gstreamer clock) to sleep on.

2005-11-03  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(gst_decode_bin_dispose), (free_dynamics), (remove_fakesink),
	(pad_blocked), (close_pad_link), (new_pad), (no_more_pads):
	Handle the case where a pad_block failed.

2005-11-02  Sebastien Cote  <sebas642@yahoo.ca> 

	reviewed by: Zeeshan Ali  <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_add_to_queue),
	(gst_base_rtp_depayload_push),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_queue_release):
	  Fixes some bugs in the depayloader's queuing/de-queueing code.

2005-10-31  Michael Smith <msmith@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_init),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_read_end_chain),
	(gst_ogg_demux_collect_chain_info), (gst_ogg_print):
	  Patch from Alessandro Decina <alessandro@nnva.org>.
	  Make oggdemux only find the final time in a chain, not per-pad,
	  since the per-pad information can be very expensive to locate, and
	  it isn't used anywhere. This makes reading a file containing
	  OggSkeleton reasonably fast.
	  Also, make chain finding work when there are logical bitstreams that
	  can't be decoded. Fixes #319110.

2005-10-31  Zeeshan Ali  <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_class_init), (gst_base_rtp_depayload_init),
	(gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_add_to_queue),
	(gst_base_rtp_depayload_push),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_queue_release),
	(gst_base_rtp_depayload_start_thread),
	(gst_base_rtp_depayload_set_property),
	(gst_base_rtp_depayload_get_property):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	Some random fixes, to fullfill the desires of thomas.

2005-10-31  Zeeshan Ali  <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_add_to_queue),
	(gst_base_rtp_depayload_push):
	Fixed the queueing algorithm.

2005-10-31  Zeeshan Ali  <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_push):
	A small fix

2005-10-31  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstringbuffer.h:
	Don't break ABI.

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pixfmt):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_set_caps):
	Some more comments.
	Handle missing required caps fields better.

2005-10-31  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_event), (gst_base_audio_sink_get_offset),
	(gst_base_audio_sink_render):
	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_open_device), (gst_ring_buffer_close_device),
	(gst_ring_buffer_set_flushing), (gst_ring_buffer_start),
	(gst_ring_buffer_pause_unlocked), (gst_ring_buffer_pause),
	(gst_ring_buffer_stop), (wait_segment), (gst_ring_buffer_commit),
	(gst_ring_buffer_read):
	* gst-libs/gst/audio/gstringbuffer.h:
	Add flushing mode to the ringbuffer so that it in all cases does
	not try to handle more audio. This makes sure it does not try to
	block anymore when flushing and fixes a livelock.

2005-10-29  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_query_convert),
	(gst_ogg_demux_chain_peer), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_read_end_chain):
	  Explicitly check for -1 values before doing a conversion
	  and always map them to -1. (#315545)

2005-10-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/playback/gstplaybin.c: (gen_video_element):
	  first try autovideosink, then xvimagesink, then error out
	* po/POTFILES.in:
	  add translatable file
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	  update translations

2005-10-27  Philippe Khalaf <burger at speedy dot org> 

	* gst-libs/gst/rtp/gstbasedepayload.c:
	* gst-libs/gst/rtp/gstbasedepayload.h:
	  Minor cleanups

2005-10-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/playback/.cvsignore:
	* gst/playback/decodetest.c:
	* gst/playback/test3.c:
	  Port these two tests as well.

2005-10-27  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_src_query),
	(theora_dec_sink_event):
	* ext/theora/theoraenc.c: (theora_enc_sink_event),
	(theora_enc_change_state):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_init),
	(gst_vorbisenc_sink_event), (gst_vorbisenc_change_state):
	Take proper locks when handling events.

2005-10-27  Wim Taymans  <wim@fluendo.com>

	* gst/adder/gstadder.c: (gst_adder_query), (gst_adder_collected),
	(gst_adder_change_state):
	Fix timestamps and fix deadlock when stopping the collectpads.

2005-10-27  Zeeshan Ali  <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstrtpbuffer.h:
	Declaring the payload types as strings too so that they can be used
	in the padtemplate inialization.

2005-10-26  Andre Magalhaes  <andrunko@gmail.com>

	reviewed by: Zeeshan Ali   <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_class_init):
	Fixes a small but nasty bug. The derived elements no longer segfaults
	on finalization.

2005-10-26  Michael Smith <msmith@fluendo.com>

	* gst/audioconvert/audioconvert.c: (audio_convert_clean_context):
	  When clearing an audioconvert context, set tmpbufsize to zero, so
	  we'll allocate it again later if required.
	  This fixes audioconvert re-negotiating formats, which previously
	  segfaulted with a NULL destination buffer.

2005-10-26  Zeeshan Ali <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_base_init), (gst_base_rtp_depayload_push),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_queue_release):
	Fixed a smalll memleak.

2005-10-26  Zeeshan Ali  <zeenix@gmail.com>
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_base_init), (gst_base_rtp_depayload_init),
	(gst_base_rtp_depayload_finalize),
	(gst_base_rtp_depayload_setcaps),
	(gst_base_rtp_depayload_add_to_queue),
	(gst_base_rtp_depayload_push),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_queue_release),
	(gst_base_rtp_depayload_thread),
	(gst_base_rtp_depayload_change_state):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	Changed the C++ comments to C comments

2005-10-26  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init):
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init):
	* gst/tcp/gsttcpserversrc.h:
	  Remove unused 'curoffset' structure member.

2005-10-25  Zeeshan Ali  <zeenix@gmail.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_base_init),
	(gst_base_rtp_depayload_finalize):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	* gst-libs/gst/rtp/gstbasertppayload.h:
	  The pad-template on the sinkpad should be set by the derived classes.
	  Also added some useful macros.

2005-10-24  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	Correctly flush decoder samples even if we could not
	copy them to an output buffer. Fixes #319618.

2005-10-24  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_setcaps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps): Check
	the caps against our xcontext caps.

2005-10-24  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_get_offset), (gst_base_audio_sink_render):
	Remove g_print
	Use sync property from baseclass to disable sync.

2005-10-24  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_get_offset), (gst_base_audio_sink_render):
	Buffers with no timestamps get aligned with previous buffers or
	on underrun, played ASAP.

2005-10-24  Julien MOUTTE  <julien@moutte.net>

	* gst-libs/gst/video/video.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): And
	here comes my change on caps for framerate and geometry range.
	We are now accepting 1 to MAXINT for width and height, and from
	0.0 to MAXDOUBLE for framerate. That allows duration less png frames
	to be blended correctly in videomixer.

2005-10-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to HEAD

=== release 0.9.4 ===

2005-10-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	  releasing 0.9.4, "Velociraptor"

2005-10-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_loop):
	* po/POTFILES.in:
	  STOPPED -> FAILED

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(gst_decode_bin_dispose), (free_dynamics), (pad_unblocked),
	(pad_blocked), (close_pad_link), (new_pad):
	Don't try to remove elements twice.

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_src_query),
	(theora_dec_sink_event):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_sink_event), (vorbis_handle_identification_packet),
	(vorbis_handle_data_packet):
	* ext/vorbis/vorbisdec.h:
	Fix old naming.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	Don't try to sync on buffers without a timestamp.

2005-10-21  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_src_query),
	(theora_dec_sink_event):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_sink_event), (vorbis_handle_identification_packet),
	(vorbis_handle_data_packet):
	* ext/vorbis/vorbisdec.h:
	Fix old naming.

2005-10-20  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_query_types),
	(gst_vorbisenc_src_query):
	  Implement position and duration queries.

	* gst/playback/test3.c: (update_scale), (main):
	  Fix for async state changes and print nicer output.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/playback/test5.c: (new_pad), (no_more_pads), (start_finding),
	(dump_element_stats), (main):
	* gst/playback/test6.c: (main):
	Fix tests again

2005-10-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audiotestsrc_src_query):
	* gst/sine/gstsinesrc.c: (gst_sinesrc_src_query):
	  Don't use functions for position queries when handling
	  duration queries.

2005-10-20  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_handle_data_packet), (vorbis_dec_chain),
	(vorbis_dec_change_state):
	* ext/vorbis/vorbisdec.h:
	  Vorbis streams can be embedded in other container formats
	  than ogg, container formats where the demuxer might set 
	  timestamps on encoded vorbis buffers instead of those silly 
	  granulepos thingies. In short: make vorbisdec handle 
	  timestamps on incoming buffers as well.

2005-10-20  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (group_destroy),
	(gst_play_base_bin_change_state):
	Fix leak.
	Handle case where playbasebin is now ASYNC because
	decodebin is.

2005-10-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/audioconvert/Makefile.am:
	* gst/audioconvert/bufferframesconvert.c:
	* gst/audioconvert/plugin.c: (plugin_init):
	* gst/audioconvert/plugin.h:
	  And bye bye buffer-frames-convert

2005-10-19  Wim Taymans  <wim@fluendo.com>

	* check/elements/audioconvert.c:
	* docs/libs/tmpl/gstaudio.sgml:
	* docs/libs/tmpl/gstcolorbalance.sgml:
	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_handle_identification_packet), (vorbis_handle_data_packet):
	* ext/vorbis/vorbisenc.c: (raw_caps_factory):
	* gst-libs/gst/audio/audio.c: (gst_audio_structure_set_int):
	* gst-libs/gst/audio/audio.h:
	* gst/audioconvert/audioconvert.h:
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_parse_caps):
	* gst/volume/gstvolume.c:
	Bye bye buffer-frames.

2005-10-19  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_avi_msmpeg4v3_mp3_pipeline),
	(query_positions_elems), (query_positions_pads), (update_scale),
	(do_seek), (set_update_scale), (message_received), (main):
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_find_chains),
	(gst_ogg_demux_loop):
	* ext/ogg/gstogmparse.c: (gst_ogm_parse_sink_query):
	* ext/theora/theoradec.c: (theora_dec_src_query),
	(theora_dec_sink_event):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_sink_event), (vorbis_handle_data_packet):
	* gst/adder/gstadder.c: (gst_adder_query):
	* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audiotestsrc_src_query):
	* gst/playback/test3.c: (update_scale):
	* gst/playback/test5.c: (new_pad), (no_more_pads), (start_finding),
	(dump_element_stats), (main):
	* gst/playback/test6.c: (main):
	* gst/sine/gstsinesrc.c: (gst_sinesrc_src_query):
	Query API update.

2005-10-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (utf8_type_find),
	(xml_check_first_element), (xml_type_find), (smil_type_find),
	(plugin_init):
	  Add typefinding for SMIL and for generic XML. Based on patch by
	  Akos Maroy (#308663).

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* gst/playback/Makefile.am:
	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(gst_decode_bin_dispose), (dynamic_create), (dynamic_free),
	(free_dynamics), (pad_unblocked), (pad_blocked), (close_pad_link),
	(try_to_link_1), (new_pad), (no_more_pads), (type_found),
	(gst_decode_bin_change_state):
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_send_event_to_sink):
	* gst/playback/test5.c: (new_pad), (no_more_pads), (start_finding),
	(dump_element_stats), (main):
	* gst/playback/test6.c: (main):
	Make playbin async, it'll commit state to paused when all streams
	are detected.
	Remove ugly hack.
	Added test6.c to show async behaviour.

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_peer),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_loop):
	Fix for segment-start/stop API change.

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* check/Makefile.am:
	* check/clocks/selection.c: (GST_START_TEST), (volume_suite),
	(main):
	Add future test for clock selection.

2005-10-18  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsasink.c: (gst_alsasink_init),
	(gst_alsasink_close):
	Set handle to NULL.

	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ring_buffer_open_device), (gst_ring_buffer_close_device),
	(gst_ring_buffer_acquire), (gst_ring_buffer_release),
	(gst_ring_buffer_start), (gst_ring_buffer_pause),
	(gst_ring_buffer_stop), (gst_ring_buffer_commit),
	(gst_ring_buffer_read):
	More debug info.

2005-10-17  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiotestsrc/Makefile.am:
	* gst/sine/Makefile.am:
	* gst/volume/Makefile.am:
	  fix broken build of controllerized plugins

2005-10-17  Fabrizio Gennari  <fabrizio dot ge at tiscali dot it>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_video_template_caps):
	  Add support for Indeo-3 (IV32).

2005-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  rewrite

2005-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/video/video.c: (gst_video_get_size):
	* gst/audiotestsrc/gstaudiotestsrc.c:
	  doc updates

2005-10-17  Andy Wingo  <wingo@pobox.com>

	* ext/ogg/gstoggmux.c (gst_ogg_mux_queue_pads): Fix bug introduced
	with the collectpads change.
	(gst_ogg_mux_send_headers): Elevate warning to a g_critical.

	* gst/tcp/gstmultifdsink.c: Convert to use the boilerplate macro.

	* gst/tcp/gsttcp.c (gst_tcp_socket_read): Comment update.

	* ext/theora/theoraenc.c (theora_buffer_from_packet): Pass the
	alloc_buffer flow return to callers.
	(theora_enc_chain, theora_enc_chain): Adapt to buffer_from_packet
	change. Fix some memleaks in theoraenc.

	* ext/ogg/gstoggmux.c (gst_ogg_mux_send_headers): Fix a segfault
	in strange circumstance.

2005-10-17  Julien MOUTTE  <julien@moutte.net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_get_unit_size): We are asked to compute a buffer size
	from caps, let's use the caps...

2005-10-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  put back AX_CREATE_STDINT_H, ffmpegcolorspace includes _stdint.h

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/interfaces/Makefile.am:
	  fix silly typo

2005-10-16  Andy Wingo  <wingo@pobox.com>

	* gst/playback/gstdecodebin.c
	(gst_element_set_state_like_a_crazy_man): New kraaaaaaazy
	function!
	(try_to_link_1): Increase kraziness level.

2005-10-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  restructure like the core one
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/net/Makefile.am:
	* gst-libs/gst/riff/Makefile.am:
	* gst-libs/gst/rtp/Makefile.am:
	* gst-libs/gst/tag/Makefile.am:
	* gst-libs/gst/video/Makefile.am:
	  use correct linker flags, now the libs are properly versioned
	* check/elements/audioconvert.c: (verify_convert):
	* ext/alsa/gstalsaplugin.c:
	* ext/cdparanoia/gstcdparanoia.c:
	* ext/gnomevfs/gstgnomevfs.c:
	* ext/libvisual/visual.c:
	* ext/ogg/gstogg.c:
	* ext/ogg/gstoggparse.c: (gst_ogg_parse_chain):
	* ext/theora/theora.c:
	* ext/vorbis/vorbis.c:
	* gst-libs/gst/audio/gstaudiofiltertemplate.c:
	* gst-libs/gst/tag/gsttagediting.c:
	* gst-libs/gst/video/video.c:
	* gst/adder/gstadder.c:
	* gst/audioconvert/plugin.c:
	* gst/audiorate/gstaudiorate.c:
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/resample_ref.c: (resample_scale_ref):
	* gst/audioscale/gstaudioscale.c:
	* gst/audioscale/resample.c:
	* gst/audiotestsrc/gstaudiotestsrc.c:
	* gst/ffmpegcolorspace/gstffmpeg.c:
	* gst/playback/gstdecodebin.c: (close_pad_link):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	* gst/sine/gstsinesrc.c:
	* gst/subparse/gstsubparse.c:
	* gst/tags/gsttagediting.c:
	* gst/tcp/gsttcpplugin.c:
	* gst/typefind/gsttypefindfunctions.c:
	* gst/videorate/gstvideorate.c:
	* gst/videoscale/gstvideoscale.c:
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/volume/gstvolume.c:
	* sys/v4l/gstv4l.c:
	* sys/ximage/ximage.c:
	* sys/xvimage/xvimagesink.c:
	  fix up defines

2005-10-13  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/vorbis/vorbisenc.c:
	* gst-libs/gst/tag/gstid3tag.c: (gst_tag_list_new_from_id3v1):
	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add),
	(gst_tag_to_vorbis_comments):
	  Fix handling of GST_TAG_DATE, which is now of GST_TYPE_DATE.

2005-10-13  Stefan Kost  <ensonic@users.sf.net>

	* examples/stats/mp2ogg.c:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	  typo fixes

2005-10-13  Michael Smith <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c:
	  Use magic glib macros to define constants as 64 bit, to ensure
	  appropriate vararg passing.

2005-10-13  Michael Smith <msmith@fluendo.com>

	* ext/ogg/gstoggmux.c:
	* gst/audioconvert/audioconvert.c: (float):
	  Don't use LL suffix, as it's not portable, and neither of these
	  uses required it anyway.

2005-10-12  Stefan Kost  <ensonic@users.sf.net>

	* examples/indexing/indexmpeg.c: (main):
	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_get),
	(cdparanoia_open), (cdparanoia_close), (cdparanoia_event),
	(cdparanoia_convert), (cdparanoia_query):
	* ext/cdparanoia/gstcdparanoia.h:
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_init),
	(gst_gnomevfssink_open_file), (gst_gnomevfssink_close_file),
	(gst_gnomevfssink_chain), (gst_gnomevfssink_change_state):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init):
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_init):
	* gst/playback/gststreamselector.c: (gst_stream_selector_init):
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_init),
	(gst_multifdsink_render), (gst_multifdsink_start),
	(gst_multifdsink_stop):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init),
	(gst_tcpclientsink_render), (gst_tcpclientsink_start),
	(gst_tcpclientsink_stop):
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init),
	(gst_tcpclientsrc_getcaps), (gst_tcpclientsrc_create),
	(gst_tcpclientsrc_start), (gst_tcpclientsrc_stop):
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init),
	(gst_tcpserversrc_create), (gst_tcpserversrc_start),
	(gst_tcpserversrc_stop):
	* gst/tcp/gsttcpserversrc.h:
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_init):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_init):
	* sys/ximage/ximagesink.c: (gst_ximagesink_init):
	  renamed GST_FLAGS macros to GST_OBJECT_FLAGS
	  moved bitshift from macro to enum definition

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/Makefile.am:
	Oops.

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
	(gst_ring_buffer_read), (gst_ring_buffer_clear):
	Don't assert on normal stuff.

	* gst/playback/gstplaybin.c: (do_playbin_seek):
	API fix.

2005-10-12  Wim Taymans  <wim@fluendo.com>

	* check/pipelines/simple_launch_lines.c: (run_pipeline):
	* examples/seeking/Makefile.am:
	* examples/seeking/cdplayer.c: (play_cb), (pause_cb), (stop_cb):
	* examples/seeking/seek.c: (make_avi_msmpeg4v3_mp3_pipeline),
	(do_seek), (set_update_scale), (message_received), (main):
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
	(gst_ring_buffer_read), (gst_ring_buffer_clear):
	Update for _get_state() API change.

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_create):
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
	(gst_ring_buffer_read):
	Cleanups.
	Commit and read from ringbuffer in samples rather than bytes.

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	Respect segment rate and accum when scheduling samples.

2005-10-11  Julien MOUTTE  <julien@moutte.net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_collected): Quick hack to fix build. We need to handle
	EOS correctly, that needs more work.

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* check/generic/states.c: (GST_START_TEST):
	remove old property.

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_perform_seek):
	* ext/theora/theoradec.c: (theora_dec_sink_event):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_handle_data_packet):
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_set_gst_timestamp):
	* gst/videorate/gstvideorate.c: (gst_videorate_event):
	Update for newsegment API change.

2005-10-11  Michael Smith <msmith@fluendo.com>

	* gst/playback/gstplaybin.c: (gst_play_bin_send_event_to_sink),
	(do_playbin_seek), (gst_play_bin_send_event):
	  Override send_event differently, so that we can takes bits of
	  functionality from GstPipeline (special handling for seeks,
	  including pausing/resuming, and resetting stream time) and still get
	  the appropriate behaviour of only forwarding event to a single sink,
	  rather than all of them.
	  Unfortunately requires a lot of code duplication, but the
	  alternatives are equally ugly in the end.

2005-10-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/elements/audioconvert.c: (setup_audioconvert),
	(cleanup_audioconvert), (get_int_caps), (verify_convert),
	(GST_START_TEST), (audioconvert_suite):
	  clean up tests a little, fix some leaks.

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsasink.c:
	Also allow unsigned int.

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_create), (gst_base_audio_src_change_state):
	Small cleanup

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* check/pipelines/simple_launch_lines.c: (run_pipeline):
	Small update, use API as stated in design docs.

	* examples/seeking/seek.c: (make_avi_msmpeg4v3_mp3_pipeline),
	(update_scale), (do_seek), (seek_cb), (set_update_scale),
	(start_seek), (stop_seek), (play_cb), (pause_cb), (stop_cb),
	(message_received), (main):
	Updated seek example for GOption. Some usability improvements.

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/audioconvert.h:
	* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_unset_matrix),
	(gst_channel_mix_setup_matrix), (gst_channel_mix_mix):
	Alloc temp storage somewhere else where we can do it more
	portable.

2005-10-10  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_create),
	(gst_tcpserversrc_start):
	Don't block in accept while doing the state change, move
	to poll and make cancellable.

2005-10-09  Philippe Khalaf <burger@speedy.org>

	* gst-libs/gst/rtp/rtpbasedepayload.c:
	Set timestamp and add queue delay to timestamp
	* gst-libs/gst/rtp/rtpbuffer.h:
	Set correct payload type for h263

2005-10-09  Stefan Kost  <ensonic@users.sf.net>

	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiostestsrc_wave_get_type), (gst_audiotestsrc_class_init),
	(gst_audiotestsrc_init), (gst_audiotestsrc_create_sine),
	(gst_audiotestsrc_create_square), (gst_audiotestsrc_create_saw),
	(gst_audiotestsrc_create_triangle),
	(gst_audiotestsrc_create_silence),
	(gst_audiotestsrc_create_white_noise),
	(gst_audiotestsrc_init_pink_noise),
	(gst_audiotestsrc_generate_pink_noise_value),
	(gst_audiotestsrc_create_pink_noise),
	(gst_audiotestsrc_change_wave):
	* gst/audiotestsrc/gstaudiotestsrc.h:
	  fixed typo, added pink noise

2005-10-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (wavpack_type_find),
	(plugin_init):
	  Add wavpack and spc typefind functions from 0.8 branch.

2005-10-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/typefind/gsttypefindfunctions.c: (tar_type_find),
	(ar_type_find), (msdos_type_find), (plugin_init):
	  Add typefind functions for tar archives, ar archives,
	  RAR archives, and msdos-executables (dlls, exe, etc.).
	  Some of those would be wrongly identified as mpeg
	  streams of some sort before (#315550).

2005-10-09  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_method_get_type):
	* gst/audiotestsrc/Makefile.am:
	* gst/audiotestsrc/gstaudiotestsrc.c:
	(gst_audiostestsrc_wave_get_type), (gst_audiotestsrc_base_init),
	(gst_audiotestsrc_class_init), (gst_audiotestsrc_init),
	(gst_audiotestsrc_src_fixate), (gst_audiotestsrc_setcaps),
	(gst_audiotestsrc_get_query_types), (gst_audiotestsrc_src_query),
	(gst_audiotestsrc_wait), (gst_audiotestsrc_unlock),
	(gst_audiotestsrc_create_sine), (gst_audiotestsrc_create_square),
	(gst_audiotestsrc_create_saw), (gst_audiotestsrc_create_triangle),
	(gst_audiotestsrc_create_silence),
	(gst_audiotestsrc_create_white_noise),
	(gst_audiotestsrc_change_wave), (gst_audiotestsrc_create),
	(gst_audiotestsrc_set_property), (gst_audiotestsrc_get_property),
	(gst_audiotestsrc_start), (plugin_init):
	* gst/audiotestsrc/gstaudiotestsrc.h:
	  add new plugin and element
	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init):
	  use gobject_class

2005-10-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/adder/gstadder.c: (gst_adder_query), (gst_adder_class_init),
	(gst_adder_init), (gst_adder_request_new_pad),
	(gst_adder_change_state):
	  Add query function to source pad, so adder reports the correct
	  time/sample position when queried (#315457); fix state change
	  function; use GST_DEBUG_FUNCPTR() for pad functions.

2005-10-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/typefind/gsttypefindfunctions.c: (utf8_type_find):
	  Fix leaks in typefind registration
	  Clean up the gratuitous commenting and whitespacing a little

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_stop):
	Only actually wait for the thread to be stopped if it's 
	running.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_event), (gst_base_audio_sink_render):
	If we receive EOS we can start playback of what we had.

2005-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_finalize), (multifdsink_hash_remove),
	(gst_multifdsink_stop):
	Fix crasher when going to NULL multiple times.

2005-10-06  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_event),
	(gst_base_audio_src_create), (gst_base_audio_src_change_state):
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_read):
	patch from Edgard Lima <edgard.lima@indt.org.br>
	Fixed gstbaseaudiosrc adding ring buffer sync to it.

2005-10-06  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_loop):
	Report the FLOW_RETURN as string in the error message.

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_clear_all):
	Don't assert when clearing an unnegotiated buffer.

2005-10-04  Michael Smith <msmith@fluendo.com>

	* gst/playback/gstplaybasebin.c: (group_destroy),
	(gen_preroll_element), (remove_groups), (setup_source):
	* gst/playback/gstplaybin.c: (remove_sinks), (add_sink),
	(setup_sinks), (gst_play_bin_send_event),
	(gst_play_bin_change_state):
	  Set state to NULL before removing from bin. Fix refcounting.

2005-10-04  Michael Smith <msmith@fluendo.com>

	* gst/playback/gstplaybin.c: (gst_play_bin_send_event):
	  Correct refcounting in send_event() function. Previously was wrong
	  if the first sink was unable to handle the event.

2005-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to development

=== release 0.9.3 ===

2005-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Releasing 0.9.3, "De Facto"

2005-10-03  Andy Wingo  <wingo@pobox.com>

	* gst/playback/gstdecodebin.c (try_to_link_1)
	(remove_element_chain): set element to NULL before removing it.

2005-10-02  Johan Dahlin  <johan@gnome.org>

	* ext/gnomevfs/gstgnomevfssrc.c (gst_gnomevfssrc_uri_get_protocols): 
	protect gst_gnomevfs_get_supported_uris by a mutex, to make it
	MT safe.

2005-10-02  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstringbuffer.c (gst_ring_buffer_clear) 
	(gst_ring_buffer_prepare_read): 
	* gst-libs/gst/audio/gstaudiosink.c (audioringbuffer_thread_func):
	Demote to LOG.

2005-09-29  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_peer):
	* ext/theora/theoradec.c: (theora_handle_data_packet):
	* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
	Propagate error codes from alloc_buffer too.

2005-09-29  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init):
	We use fixed caps.

	* gst/playback/Makefile.am:
	* gst/playback/test5.c: (new_pad), (no_more_pads), (start_finding),
	(dump_element_stats), (main):
	Added example stream introspection code.

2005-09-28  Stefan Kost  <ensonic@users.sf.net>

	* gst/adder/gstadder.c: (gst_adder_collected):
	  fix adder for float elements

2005-09-28  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_class_init),
	(gst_base_audio_sink_provide_clock), (gst_base_audio_sink_render):
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_class_init),
	(gst_base_audio_src_provide_clock):
	get_clock -> provide_clock

2005-09-28  Andy Wingo  <wingo@pobox.com>

	* gst/videotestsrc/gstvideotestsrc.c: Implement live source mode
	and unlocking.

	* gst/sine/gstsinesrc.c (gst_sinesrc_unlock): Actually implement
	unlocking.

	* gst/tcp/gsttcpclientsink.c (gst_tcpclientsink_base_init):
	Actually add the pad template.
	(gst_tcpclientsink_get_type): We're a base sink. Woot, works.

	* gst/tcp/gsttcpserversrc.c: Go ahead and fix up serversrc while
	I'm at it...

	* gst/tcp/gsttcpclientsrc.c: Make interruptable -- code stolen
	from fdsrc. Get caps in create() instead of start() so it can be
	interrupted. Interruption somewhat untested.

	* gst/tcp/gsttcp.c (gst_tcp_read_buffer, gst_tcp_socket_read):
	Proper EOS handling.

2005-09-27  Andy Wingo  <wingo@pobox.com>

	* gst/tcp/gsttcpclientsrc.c: Cleaned up.

	* gst/tcp/gsttcpserversrc.c: Cleaned up.

	* gst/tcp/gsttcpclientsrc.c: Updated for new gsttcp API.

	* gst/tcp/gsttcp.h: 
	* gst/tcp/gsttcp.c (gst_tcp_read_buffer): New function, factored
	out of tcpclientsrc.c. Cancellable.
	(gst_tcp_socket_read): Made private, cancellable, with better
	diagnostics. Also the FIONREAD ioctl takes a int*, not a size_t*.
	(gst_tcp_gdp_read_buffer): Made cancellable, actually returns the
	whole buffer, and better diagnostics.
	(gst_tcp_gdp_read_caps): Same.

	* gst/sine/gstsinesrc.c (gst_sinesrc_wait): Add the base time.

2005-09-26  Andy Wingo  <wingo@pobox.com>

	* gst/sine/gstsinesrc.h:
	* gst/sine/gstsinesrc.c: Refactor, remove the table lookup code,
	change the 'sync' property to 'is-live' and implement it halfway,
	update for controller api change.

	* gst/volume/gstvolume.c (volume_transform_ip): Update for
	controller api change.

2005-09-24  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsasink.c: (gst_alsasink_reset):
	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_class_init), (audioringbuffer_thread_func),
	(gst_audioringbuffer_stop):
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_event), (gst_base_audio_sink_render),
	(gst_base_audio_sink_change_state):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_stop),
	(gst_ring_buffer_set_sample), (gst_ring_buffer_clear_all),
	(gst_ring_buffer_commit), (gst_ring_buffer_read):
	* gst-libs/gst/audio/gstringbuffer.h:
	Fix sync again. Moved sample alignment to basesink.

2005-09-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* gst/volume/gstvolume.c:
	  add/fix docs
	* gst-libs/gst/audio/audio.c: (gst_audio_frame_byte_size):
	* gst-libs/gst/audio/audio.h:
	  add conversion macros for frames <-> clocktime

2005-09-23  David Schleef  <ds@schleef.org>

	* gst/audioresample/Makefile.am:
	* gst/audioresample/debug.h:
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/resample.c: Convert to using gst debugging

2005-09-22  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_send_event):
	Only seek on one sink, the first one that succeeds.

2005-09-22  Michael Smith <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_clear),
	(gst_vorbisenc_sink_event), (gst_vorbisenc_change_state):
	Don't flush encoder state unless we have an initialised encoder.
	Clear out encoder state on PAUSED_TO_READY.

2005-09-22  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_setcaps), (gst_basertppayload_chain),
	(gst_basertppayload_set_options), (gst_basertppayload_set_outcaps),
	(gst_basertppayload_is_filled), (gst_basertppayload_push),
	(gst_basertppayload_set_property),
	(gst_basertppayload_get_property),
	(gst_basertppayload_change_state):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	Added max-ptime to control amount of data in the rtp packets.

2005-09-21  Andy Wingo  <wingo@pobox.com>

	* gst/playback/gstplaybasebin.c: Attempt to fix up buffer probe
	thingies.

	* gst/playback/gstdecodebin.c (gst_decode_bin_dispose): Dispose
	can be called multiple times, dogs.

2005-09-21  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_setcaps), (gst_basertppayload_chain),
	(gst_basertppayload_set_options), (gst_basertppayload_set_outcaps),
	(gst_basertppayload_push), (gst_basertppayload_get_property),
	(gst_basertppayload_change_state):
	Allow 0 ssrc too.

2005-09-21  Stefan Kost  <ensonic@users.sf.net>

	* docs/libs/compiling.sgml:
	  fixing typos

2005-09-20  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_setcaps), (gst_basertppayload_chain),
	(gst_basertppayload_set_options), (gst_basertppayload_set_outcaps),
	(gst_basertppayload_push), (gst_basertppayload_set_property),
	(gst_basertppayload_get_property),
	(gst_basertppayload_change_state):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	Added property to configure sequence number offsets.

2005-09-20  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_setcaps), (gst_basertppayload_chain),
	(gst_basertppayload_set_options), (gst_basertppayload_set_outcaps),
	(gst_basertppayload_push), (gst_basertppayload_set_property),
	(gst_basertppayload_get_property),
	(gst_basertppayload_change_state):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	Make timestamp offset configurable.

2005-09-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/pipelines/simple_launch_lines.c: (run_pipeline):
	  fix wrong pop/unref

2005-09-19  Torsten Schoenfeld  <kaffeetisch at gmx dot net>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/interfaces/propertyprobe.c:
	(gst_property_probe_probe_property_name),
	(gst_property_probe_needs_probe_name),
	(gst_property_probe_get_values_name),
	(gst_property_probe_probe_and_get_values_name):
	  Fix wrong macro usage; it's G_OBJECT_GET_CLASS(obj) or
	  G_OBJECT_CLASS(klass), not G_OBJECT_CLASS(obj). (#316571)

2005-09-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	  have some tests be disabled for valgrinding
	* check/elements/vorbisdec.c: (cleanup_vorbisdec),
	(GST_START_TEST):
	* ext/vorbis/vorbisdec.c: (vorbisdec_finalize):
	  Fix A Leak.  Chain To Parent Finalize.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_wav_pipeline), (main):
	Fixed wav pipeline.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_setcaps), (gst_basertppayload_chain),
	(gst_basertppayload_set_options), (gst_basertppayload_set_outcaps),
	(gst_basertppayload_push), (gst_basertppayload_get_property),
	(gst_basertppayload_change_state):
	Posting ERROR and WARNING messages is good.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_add_to_queue),
	(gst_base_rtp_depayload_push),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_queue_release):
	This one was not supposed to go in.

2005-09-19  Wim Taymans  <wim@fluendo.com>

	* check/pipelines/simple_launch_lines.c: (run_pipeline):
	Fix for bus API.

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_add_to_queue),
	(gst_base_rtp_depayload_push),
	(gst_base_rtp_depayload_set_gst_timestamp),
	(gst_base_rtp_depayload_queue_release):
	Some cleanups.

	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_setcaps), (gst_basertppayload_set_options),
	(gst_basertppayload_set_outcaps), (gst_basertppayload_push),
	(gst_basertppayload_get_property),
	(gst_basertppayload_change_state):
	Added debugging category.

2005-09-18  David Schleef  <ds@schleef.org>

	* gst/playback/gstdecodebin.c: free plugin list correctly
	* gst/playback/gstplaybin.c: emit warning if autovideosink
	  and autoaudiosink can't be found (instead of segfaulting)

2005-09-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/elements/audioconvert.c: (GST_START_TEST):
	  try out 24 bit conversion

2005-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_init),
	(gst_vorbisenc_sink_event), (gst_vorbisenc_chain),
	(gst_vorbisenc_output_buffers), (gst_vorbisenc_change_state):
	* ext/vorbis/vorbisenc.h:
	  Fix EOS handling.  Still needs a fix in the ogg muxer to
	  mark the last page as eos.

2005-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gtk-doc-plugins.mak:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* gst/ffmpegcolorspace/Makefile.am:
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	* gst/tcp/gstmultifdsink.c:
	  fix up ffmpegcolorspace docs; extract header

2005-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gtk-doc-plugins.mak:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* ext/theora/Makefile.am:
	* ext/theora/gsttheoraenc.h:
	* ext/theora/theoraenc.c:
	* ext/vorbis/vorbisenc.c:
	  pick up signals and args for vorbis; add some docs for vorbis

2005-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gstdoc-scangobj:
	* common/gtk-doc-plugins.mak:
	* docs/libs/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins.args:
	* docs/plugins/gst-plugins-base-plugins.hierarchy:
	* docs/plugins/gst-plugins-base-plugins.interfaces:
	* docs/plugins/gst-plugins-base-plugins.prerequisites:
	* docs/plugins/gst-plugins-base-plugins.signals:
	  only scanobj stuff from our source module.  Not sure yet
	  if that's correct, given the hierarchy stuff :)

2005-09-15  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c:
	And enable 24 bits mode as well..

2005-09-15  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/Makefile.am:
	* gst-libs/gst/rtp/gstbasertppayload.c:
	(gst_basertppayload_get_type), (gst_basertppayload_base_init),
	(gst_basertppayload_class_init), (gst_basertppayload_init),
	(gst_basertppayload_finalize), (gst_basertppayload_setcaps),
	(gst_basertppayload_chain), (gst_basertppayload_set_options),
	(gst_basertppayload_set_outcaps), (gst_basertppayload_push),
	(gst_basertppayload_set_property),
	(gst_basertppayload_get_property),
	(gst_basertppayload_change_state):
	* gst-libs/gst/rtp/gstbasertppayload.h:
	Added rtp payloader base class.

2005-09-15  Andy Wingo  <wingo@pobox.com>

	* configure.ac (plugindir): Remove the EOL matcher from the
	regexp, as it causes me problems. Libtool? Make? Who knows?

2005-09-14  David Schleef  <ds@schleef.org>

	* check/generic/states.c: 
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
	  Fixes for changes in registry API.

	* configure.ac: Only export gst_plugins_desc.  Add -no-undefined
	  to GST_PLUGIN_LDFLAGS.
	* ext/libvisual/visual.c: Make the library shut up.
	* gst-libs/gst/audio/audio.c: Don't define a plugin in a library.
	* gst-libs/gst/audio/gstaudiofilter.c: same

2005-09-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-libvisual.xml:
	* docs/plugins/tmpl/element-tcpserversink.sgml:
	* ext/theora/theoraenc.c:
	  add libvisual plugin and theoraenc element to docs

2005-09-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* ext/theora/theoraenc.c:
	  add theoraenc

2005-09-13  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/audioconvert/Makefile.am:
	  Audioconvert derives from GstBaseTransform and should
	  link to the library with our base elements to avoid
	  unresolved symbols. Makes things work with MinGW (#316160)

	* gst/playback/test4.c: (main):
	  Fix MinGW build problem and use g_usleep() instead of 
	  sleep() (#316162)

2005-09-12  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/audioconvert.c: (float),
	(audio_convert_prepare_context), (audio_convert_convert):
	* gst/audioconvert/audioconvert.h:
	Cleanups, speedups, simplifications, added back support
	for 24 bits.

2005-09-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
	* docs/plugins/tmpl/element-tcpserversink.sgml:
	* gst/ffmpegcolorspace/gstffmpeg.c:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/volume/gstvolume.c:
	  add more elements to the docs

2005-09-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/Makefile.am:
	* check/pipelines/simple_launch_lines.c: (setup_pipeline),
	(run_pipeline), (GST_START_TEST), (simple_launch_lines_suite):
	  Add extra tests for basetransform based components. 
	  Comment out the test_element_negotiation test until we decide
	  if it's testing correct behaviour.
	* ext/libvisual/visual.c: (gst_visual_init), (get_buffer),
	(gst_visual_chain), (gst_visual_change_state):
	  Slightly more correct but still bogus timestamping.
	  Fix state change function.
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_class_init):
	* gst/audioresample/gstaudioresample.c:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_class_init):
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init),
	(gst_videoscale_prepare_size), (gst_videoscale_set_caps),
	(gst_videoscale_prepare_image):
	* gst/volume/gstvolume.c: (gst_volume_class_init),
	(volume_transform_ip):
	  Basetransform updates. Enable passthrough modes.
	* sys/ximage/ximagesink.c: (gst_ximage_buffer_init),
	(gst_ximagesink_renegotiate_size), (gst_ximagesink_xcontext_get),
	(gst_ximagesink_setcaps), (gst_ximagesink_buffer_alloc):
	  Negotiation fix that allows the window to return to the original
	  size and renegotiate passthrough upstream. Extra debug output.

2005-09-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/sine/gstsinesrc.c:
	* gst/volume/gstvolume.c:
	  fix up header include

2005-09-09  Stefan Kost  <ensonic@users.sf.net>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit):
	* gst/volume/gstvolume.c: (gst_volume_class_init),
	(volume_transform):
	  fixing lost sync, some more debugging

2005-09-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximage_buffer_init),
	(gst_ximagesink_check_xshm_calls), (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_init),
	(gst_xvimagesink_check_xshm_calls):
	  Fix compilation when XShm is not available.

2005-09-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libvisual/visual.c: (gst_visual_dispose),
	(gst_visual_getcaps), (gst_visual_src_setcaps),
	(gst_visual_sink_setcaps), (get_buffer), (gst_visual_chain),
	(gst_visual_change_state):
	  Finish fixing up libvisual plugin so that it runs. 

2005-09-07  Stefan Kost  <ensonic@users.sf.net>

	* ext/vorbis/vorbisenc.c:
	* gst-libs/gst/tag/gstvorbistag.c:
	  gsttaginterface.h -> gsttagsetter.h

2005-09-07  Stefan Kost  <ensonic@users.sf.net>

	* check/pipelines/simple_launch_lines.c: (GST_START_TEST):
	  added another test that failes for me (test is not active by default)

2005-09-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	  v4l2 is no longer in gst-plugins-base

2005-09-07  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  In the output at the end, don't show the first plugin on the same
	  line as "Core plug-ins, always built:".
	  Indent the output as for other plugin categories
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_create):
	  #define that can be used to not use peer buffer_alloc functions for
	  test purposes.
	* sys/ximage/ximagesink.c: (gst_ximage_buffer_init),
	(gst_ximage_buffer_get_type), (gst_ximagesink_ximage_new),
	(gst_ximagesink_show_frame):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_init),
	(gst_xvimage_buffer_get_type), (gst_xvimagesink_setcaps),
	(gst_xvimagesink_show_frame):
	  Error case handling fixes. gst-launch fakesrc ! x[v]imagesink now
	  fails gracefully instead of XError aborting or deadlocking.

2005-09-07  Stefan Kost  <ensonic@users.sf.net>

	* ext/libvisual/Makefile.am:
	  link against gst-base-libs

2005-09-06  David Schleef  <ds@schleef.org>

	* configure.ac: Enable libvisual plugin.
	* ext/libvisual/Makefile.am:
	* ext/libvisual/visual.c: Fixes to make it compile.

=== release 0.9.2 ===

2005-09-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* docs/random/ChangeLog-0.8:
	  releasing 0.9.2, "Spoon"

2005-09-05  Michael Smith <msmith@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_class_init):
	  libvorbis accepts quality as low as -0.1, not just 0.0. So accept
	  that in the vorbisenc element.

2005-09-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gtk-doc-plugins.mak:
	* docs/plugins/Makefile.am:
	  fix distcheck
	* gst/audioresample/resample.c:
	  fix wrong docstring

2005-09-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gst-xmlinspect.py:
	* common/gtk-doc-plugins.mak:
	  only inspect plugins for this given package
	  require gst-python 0.9

2005-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* autogen.sh:
	* common/gst-xmlinspect.py:
	* configure.ac:
	* docs/Makefile.am:
	* docs/plugins/inspect/plugin-alsa.xml:
	* docs/plugins/inspect/plugin-audioresample.xml:
	* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
	* docs/plugins/inspect/plugin-ogg.xml:
	* docs/plugins/tmpl/element-gnomevfssink.sgml:
	* docs/plugins/tmpl/element-multifdsink.sgml:
	* docs/plugins/tmpl/element-tcpserversink.sgml:
	* docs/plugins/tmpl/element-vorbisenc.sgml:
	* gst-plugins-base.spec.in:
	  various doc-related updates

2005-08-31  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	Resync if the buffer timestamps drift more than a 10th 
	of a second.

2005-08-31  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	  The 'timestamp-offset' property is registered as an int64, so
	  let's use g_value_{set|get}_int64() in our setter and getter
	  functions (makes it work and fixes warnings with gst-inspect).

2005-08-30  Wim Taymans  <wim@fluendo.com>

	* check/elements/audioconvert.c: (setup_audioconvert):
	* check/elements/audioresample.c: (setup_audioresample):
	* check/elements/volume.c: (setup_volume):
	Fix checks.

2005-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gtk-doc-plugins.mak:
	* common/plugins.xsl:
	* docs/plugins/Makefile.am:
	  make module a param

2005-08-30  Stefan Kost  <ensonic@users.sf.net>

	* examples/seeking/seek.c: (make_mp3_pipeline),
	(make_mpeg_pipeline), (seek_cb), (start_seek), (stop_seek),
	(play_cb), (pause_cb), (stop_cb):
	  update the example

2005-08-30  Stefan Kost  <ensonic@users.sf.net>

	* gst/volume/gstvolume.c: (gst_volume_class_init),
	(volume_transform):
	  do not update controlled params, if buffer has no timestamp

2005-08-29  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* gst/sine/Makefile.am:
	* gst/volume/Makefile.am:
	  controllerized elements also need to link against controller-libs ;)

2005-08-29  Stefan Kost  <ensonic@users.sf.net>

	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstgconf.sgml:
	* docs/libs/tmpl/gstmixer.sgml:
	* docs/libs/tmpl/gstringbuffer.sgml:
	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_create):
	* gst/volume/gstvolume.c: (gst_volume_class_init),
	(volume_transform):
	  controllerized two audio plugins

2005-08-29  Andy Wingo  <wingo@pobox.com>

	* ext/vorbis/vorbisdec.c (vorbis_dec_convert, vorbis_dec_push) 
	(vorbis_handle_data_packet): Fix some int overflow errors.

	* ext/ogg/gstoggdemux.c (gst_ogg_demux_init): Init total_time to
	-1.
	(gst_ogg_demux_perform_seek): Clamp segment_stop only if it's
	valid.
	(gst_ogg_pad_submit_packet): Subtract the chain's begin_time only
	if it's valid. Fixed streaming-mode playback.

	* check/elements/volume.c (cleanup_volume): Fix for running
	CK_FORK=no.

	* check/elements/audioconvert.c: Convert from native endian, not
	little endian.

2005-08-29  Michael Smith <msmith@fluendo.com>

	* ext/ogg/Makefile.am:
	* ext/ogg/gstogg.c: (plugin_init):
	* ext/ogg/gstoggparse.c: (gst_ogg_parse_get_type), (free_stream),
	(gst_ogg_parse_delete_all_streams), (gst_ogg_parse_new_stream),
	(gst_ogg_parse_find_stream), (gst_ogg_parse_base_init),
	(gst_ogg_parse_class_init), (gst_ogg_parse_init),
	(gst_ogg_parse_dispose), (gst_ogg_parse_submit_buffer),
	(gst_ogg_parse_append_header), (gst_ogg_parse_is_header),
	(gst_ogg_parse_buffer_from_page), (gst_ogg_parse_chain),
	(gst_ogg_parse_change_state), (gst_ogg_parse_plugin_init):
	Add an ogg parser element.

2005-08-28  Andy Wingo  <wingo@pobox.com>

	* Updates for two-arg init from GST_BOILERPLATE_FULL.

2005-08-26  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/audioconvert.c: (if), (float),
	(audio_convert_get_func_index), (check_default),
	(audio_convert_clean_fmt), (audio_convert_prepare_context),
	(audio_convert_clean_context), (audio_convert_get_sizes),
	(audio_convert_convert):
	Cleanups.

2005-08-26  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/audioconvert.c: (if), (float),
	(audio_convert_get_func_index), (check_default),
	(audio_convert_clean_fmt), (audio_convert_prepare_context),
	(audio_convert_clean_context), (audio_convert_get_sizes),
	(audio_convert_convert):
	More elegant and working temp buffer selection algo.

2005-08-26  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/audioconvert.c: (if), (float),
	(audio_convert_get_func_index), (check_default),
	(audio_convert_clean_fmt), (audio_convert_prepare_context),
	(audio_convert_clean_context), (audio_convert_get_sizes),
	(get_temp_buffer), (audio_convert_convert):
	Use realloc else we lose our original data.

2005-08-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioresample/gstaudioresample.c:
	  use base class' newsegment to properly timestamp

2005-08-26  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/audioconvert.c: (if), (float),
	(audio_convert_get_func_index), (check_default),
	(audio_convert_clean_fmt), (audio_convert_prepare_context),
	(audio_convert_clean_context), (audio_convert_get_sizes),
	(get_temp_buffer), (audio_convert_convert):
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_parse_caps), (gst_audio_convert_get_unit_size),
	(gst_audio_convert_transform_caps),
	(gst_audio_convert_fixate_caps), (gst_audio_convert_transform):
	* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_mix):
	Oops, allocate enough space to perform the channel mix.

2005-08-26  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/Makefile.am:
	* gst/audioconvert/audioconvert.c: (if), (float),
	(audio_convert_get_func_index), (check_default),
	(audio_convert_clean_fmt), (audio_convert_prepare_context),
	(audio_convert_clean_context), (audio_convert_get_sizes),
	(get_temp_buffer), (audio_convert_convert):
	* gst/audioconvert/audioconvert.h:
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_class_init), (gst_audio_convert_init),
	(gst_audio_convert_dispose), (gst_audio_convert_parse_caps),
	(gst_audio_convert_get_unit_size),
	(gst_audio_convert_transform_caps),
	(gst_audio_convert_fixate_caps), (gst_audio_convert_set_caps),
	(gst_audio_convert_transform_ip), (gst_audio_convert_transform):
	* gst/audioconvert/gstaudioconvert.h:
	* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_unset_matrix),
	(gst_channel_mix_fill_identical),
	(gst_channel_mix_fill_compatible), (gst_channel_mix_detect_pos),
	(gst_channel_mix_fill_one_other), (gst_channel_mix_fill_others),
	(gst_channel_mix_fill_normalize), (gst_channel_mix_fill_matrix),
	(gst_channel_mix_setup_matrix), (gst_channel_mix_passthrough),
	(gst_channel_mix_mix):
	* gst/audioconvert/gstchannelmix.h:
	Cleanups, librarify a bit, optimize, better negotiation and more.

2005-08-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/ogg/gstoggdemux.c: (ogg_find_peek):
	Another from MikeS:
	During typefinding, don't support negative offsets
	(offsets from the end of the stream) in our typefind->peek() function
	- nothing embedded in ogg ever needs them. However, we need to recognise
	those requests and reject them, otherwise we return invalid pointers.

2005-08-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose):
	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_class_init),
	(vorbisdec_finalize), (vorbis_handle_type_packet):
	  Big shout-out to MikeS for fixing this giant memory leak.
	  Huzzah!

2005-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_dispose),
	(audio_convert_get_unit_size):
	  plug some leaks

2005-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* check/elements/audioconvert.c: (setup_audioconvert),
	(cleanup_audioconvert), (get_int_caps), (verify_convert),
	(GST_START_TEST), (audioconvert_suite), (main):
	  add a test for audioconvert
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/gstaudioresample.h:
	  set DURATION so that TIMESTAMP(a) + DURATION(a) == TIMESTAMP(b);
	  note that for buffers of 1/3 sec this means DURATION(c) is 
	  one nanosecond more than for a and b

2005-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* check/elements/audioresample.c: (setup_audioresample),
	(cleanup_audioresample), (fail_unless_perfect_stream),
	(test_perfect_stream_instance), (GST_START_TEST),
	  add a check for audioresample
	(audioresample_suite), (main):
	* check/elements/volume.c: (GST_START_TEST):
	  remove unused method
	* gst/audioresample/gstaudioresample.c:
	  set correct buffer parameters since we're changing them
	* gst/audioresample/resample_ref.c: (resample_scale_ref):
	  add some debug

2005-08-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioresample/debug.c:
	* gst/audioresample/gstaudioresample.c:
	  add room for extra overlap samples when asked to transform size
	  protect against possible mem corruption and check for discrepancies
	  between written size and outbuffer's size so we can warn for
	  potential problems
	* gst/audioresample/resample.c: (resample_init),
	(resample_get_output_size_for_input), (resample_get_output_size),
	(resample_set_n_channels), (resample_set_format):
	  set debug level based on RESAMPLE_DEBUG env var
	  make sure that get_output_size* returns a whole number of
	  sample_size
	  set sample_size each time either channel or format is set
	* gst/audioresample/resample_chunk.c: (resample_scale_chunk):
	* gst/audioresample/resample_functable.c:
	(resample_scale_functable):
	* gst/audioresample/resample_ref.c: (resample_scale_ref):
	  remove r->sample_size, it's done in resample.c now
	  add some debugging to the ref implementation
	  make sure we only give back bytes that are wholes of the sample
	  size

2005-08-25  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/playback/gstplaybasebin.c: (fill_buffer):
	Revert unpopular change for GST_MESSAGE_SRC to GObject.

2005-08-25  Stefan Kost  <ensonic@users.sf.net>

	* gst/volume/gstvolume.c:
	  made set_caps function static

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_init),
	(gst_vorbisenc_change_state):
	Stop leaking taglists.

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query),
	(gst_ogg_pad_event), (gst_ogg_demux_factory_filter),
	(gst_ogg_pad_submit_packet), (gst_ogg_chain_new),
	(gst_ogg_demux_init), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_collect_chain_info), (gst_ogg_demux_collect_info),
	(gst_ogg_demux_chain), (gst_ogg_demux_loop), (gst_ogg_print):
	Parse seeking events better.
	Unref static caps.
	Generate correct newsegment events, fixes seeking in live oggs.

	* ext/theora/theoradec.c: (theora_dec_src_query),
	(theora_dec_src_event), (theora_dec_src_getcaps),
	(theora_dec_sink_event), (theora_dec_push), (theora_dec_chain):
	Use newsegment values to report correct play time.

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_src_event), (vorbis_dec_sink_event):
	* ext/vorbis/vorbisdec.h:
	Parse and use newsegment values to report correct play time.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_event), (gst_base_audio_sink_render):
	Clear ringbuffer on flush.
	Use newsegment values to calculate playback time.

	* sys/ximage/ximagesink.c: (gst_ximagesink_get_times):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_times):
	Basesink does newsegment calculations for us now.

2005-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* configure.ac:
	  add core's plugins to the mix so that playbin works
	* check/generic/states.c: (GST_START_TEST):
	  set a 0 timeout on pipelines, so they don't force the next
	  state change
	* gst/playback/gstplaybasebin.c: (setup_source), (prepare_output),
	(gst_play_base_bin_change_state):
	  remove the crappy error handling and do GST error handling

2005-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	* check/generic/states.c: (GST_START_TEST), (states_suite), (main):
	  add same test as to core, it bitches out on playbin atm.

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	Remove audioscale.

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_init),
	(gst_videoscale_prepare_size), (parse_caps),
	(gst_videoscale_set_caps), (gst_videoscale_get_size),
	(gst_videoscale_prepare_image), (gst_videoscale_transform_ip),
	(gst_videoscale_transform):
	* gst/videoscale/gstvideoscale.h:
	Refactor, make use of BaseTranform really well.

2005-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  compile audioresample
	* gst/audioresample/Makefile.am:
	* gst/audioresample/buffer.c:
	* gst/audioresample/functable.c:
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/gstaudioresample.h:
	* gst/audioresample/resample.c:
	(resample_get_output_size_for_input):
	* gst/audioresample/resample.h:
	* gst/audioresample/resample_chunk.c:
	* gst/audioresample/resample_functable.c:
	* gst/audioresample/resample_ref.c:
	  port to use basetransform; doesn't work in all cases yet

2005-08-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_class_init), (gst_audio_convert_init),
	(audio_convert_get_unit_size), (audio_convert_transform_caps),
	(audio_convert_fixate_caps), (audio_convert_set_caps),
	(audio_convert_transform),
	(gst_audio_convert_buffer_to_default_format),
	(gst_audio_convert_buffer_from_default_format),
	(gst_audio_convert_channels):
	* gst/audioconvert/gstchannelmix.c:
	* gst/audioconvert/gstchannelmix.h:
	  port to basetransform
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_transform_caps), (gst_ffmpegcsp_class_init),
	(gst_ffmpegcsp_get_unit_size):
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init),
	(gst_videoscale_transform_caps), (gst_videoscale_get_unit_size):
	  fix for basetransform changes

2005-08-24  Jan Schmidt  <thaytan@mad.scientist.com>

	* check/Makefile.am:
	  Add CHECK_CFLAGS and LDFLAGS

	* gst/playback/gstplaybasebin.c: (fill_buffer):
	  GST_MESSAGE_SRC became a GObject

2005-08-24  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_set_sample),
	(gst_ring_buffer_clear_all):
	* gst-libs/gst/audio/gstringbuffer.h:
	Added function to clear the ringbuffer.

2005-08-24  Andy Wingo  <wingo@pobox.com>

	* sys/v4l/gstv4lelement.c (gst_v4lelement_start) 
	(gst_v4lelement_stop): Call _start and _stop for xoverlay instead
	of _open and _close.

	* sys/v4l/gstv4lxoverlay.h:
	* sys/v4l/gstv4lxoverlay.c (gst_v4l_xoverlay_set_xwindow_id): Open
	an Xv connection here, instead of all the time. Make Xv only be
	loaded if you axe for it. Kindof a workaround for buggy behaviour
	of Xv when using remote xservers (XvQueryExtension would block).
	(gst_v4l_xoverlay_stop, gst_v4l_xoverlay_start): New functions,
	replace the _open and _close public API. Only start the xv
	connection if necessary.
	(gst_v4l_xoverlay_open, gst_v4l_xoverlay_close): Made static.

2005-08-23  David Schleef  <ds@schleef.org>

	* gst/audioresample/Makefile.am: Leet audioresampling code
	* gst/audioresample/buffer.c:
	* gst/audioresample/buffer.h:
	* gst/audioresample/debug.c:
	* gst/audioresample/debug.h:
	* gst/audioresample/functable.c:
	* gst/audioresample/functable.h:
	* gst/audioresample/gstaudioresample.c:
	* gst/audioresample/gstaudioresample.h:
	* gst/audioresample/resample.c:
	* gst/audioresample/resample.h:
	* gst/audioresample/resample_chunk.c:
	* gst/audioresample/resample_functable.c:
	* gst/audioresample/resample_ref.c:

2005-08-23  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_vorbis_pipeline),
	(make_theora_pipeline), (make_vorbis_theora_pipeline), (do_seek):
	Small seek updates.

2005-08-23  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c
	(gst_base_audio_src_fixate): Only fixate endianness if it is
	present in the caps.

2005-08-22  Andy Wingo  <wingo@pobox.com>

	* ext/alsa/gstalsasink.c (gst_alsasink_get_property): 
	* ext/alsa/gstalsasrc.c (gst_alsasrc_get_property): Add a
	device-name property.

	* gst-libs/gst/audio/gstaudiosrc.h:
	* gst-libs/gst/audio/gstaudiosrc.c: Implement open_device and
	close_device in the ring buffer, like gstaudiosink.

	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixer.c: Not a GObject any more. Include a nifty
	macro to implement the interface without much code. Cleanups. 

	* ext/alsa/gstalsasrc.h:
	* ext/alsa/gstalsasrc.c: Be a mixer. Open device and mixer in
	READY.

	* ext/alsa/Makefile.am: Add new files.
	* ext/alsa/gstalsamixerelement.c: 
	* ext/alsa/gstalsamixerelement.c: Split element code out from
	mixer code so that alsasrc can be a mixer too.

2005-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/elements/volume.c: (setup_volume), (cleanup_volume),
	(GST_START_TEST):
	* check/elements/vorbisdec.c: (setup_vorbisdec),
	(cleanup_vorbisdec), (GST_START_TEST), (vorbisdec_suite):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_handle_identification_packet),
	(vorbis_handle_comment_packet), (vorbis_handle_type_packet),
	(vorbis_handle_header_packet), (vorbis_dec_push),
	(vorbis_dec_chain):
	  use the setup/teardown methods to save code.  save code is good.

2005-08-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* check/Makefile.am:
	  add ext dir for plugins
	  add vorbisdec test conditionally
	* check/elements/volume.c: (setup_volume), (cleanup_volume),
	(GST_START_TEST), (volume_suite):
	  add a test with wrong caps
	* check/elements/vorbisdec.c: (chain_func), (setup_vorbisdec),
	(cleanup_vorbisdec), (GST_START_TEST), (vorbisdec_suite), (main):
	  add a vorbisdec test
	* ext/ogg/gstoggdemux.c: (gst_ogg_chain_new_stream),
	(gst_ogg_demux_chain), (gst_ogg_demux_loop):
	  clean up debug output
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  yay, fix a segfault/security issue in vorbisdec
	  gst-launch fakesrc ! vorbisdec wasn't happy
	* ext/vorbis/vorbisenc.c: (vorbisenc_get_type),
	(gst_vorbisenc_class_init), (gst_vorbisenc_sink_setcaps),
	(gst_vorbisenc_convert_src), (gst_vorbisenc_convert_sink),
	(gst_vorbisenc_src_query), (gst_vorbisenc_sink_query),
	(gst_vorbisenc_init), (gst_vorbisenc_metadata_set1),
	(gst_vorbisenc_set_metadata), (get_constraints_string),
	(update_start_message), (gst_vorbisenc_setup),
	(gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_push_buffer),
	(gst_vorbisenc_push_packet), (gst_vorbisenc_sink_event),
	(gst_vorbisenc_chain), (gst_vorbisenc_get_property),
	(gst_vorbisenc_set_property), (gst_vorbisenc_change_state):
	* ext/vorbis/vorbisenc.h:
	  march in line
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_transform):
	  have the kow come home
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init):
	  debug my func ptr
	* gst/volume/gstvolume.c: (volume_set_caps):
	  add a debug

2005-08-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* check/.cvsignore:
	* check/Makefile.am:
	* check/elements/.cvsignore:
	* check/elements/volume.c: (chain_func), (event_func),
	(setup_volume), (cleanup_volume), (GST_START_TEST), (volume_suite),
	(main):
	* configure.ac:
	  add unit test structure for gst-plugins-base
	  add a test for volume
	* gst/volume/gstvolume.c: (gst_volume_list_tracks),
	(gst_volume_set_volume), (gst_volume_get_volume),
	(gst_volume_set_mute), (gst_volume_class_init), (gst_volume_init),
	(volume_funcfind), (volume_process_float), (volume_process_int16),
	(volume_set_caps), (volume_transform), (volume_update_mute),
	(volume_update_volume), (volume_set_property),
	(volume_get_property):
	  document a little; use basetransform vmethod _set_caps

2005-08-19  Andy Wingo  <wingo@pobox.com>

	* ext/alsa/gstalsamixertrack.h:
	* ext/alsa/gstalsamixertrack.c:
	* ext/alsa/gstalsamixeroptions.h:
	* ext/alsa/gstalsamixeroptions.c:
	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixer.c: Port to 0.9.

	* ext/alsa/Makefile.am: Build mixer, mixeroptions, mixertracks.
	Remove gstalsa.c and alsaclock. No more cruft here.
	
2005-08-18  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	(gst_base_rtp_depayload_chain),
	(gst_base_rtp_depayload_add_to_queue),
	(gst_base_rtp_depayload_push),
	(gst_base_rtp_depayload_queue_release):
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	Fix for RTPBuffer changes.

	* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtpbuffer_allocate_data),
	(gst_rtpbuffer_new_take_data), (gst_rtpbuffer_new_copy_data),
	(gst_rtpbuffer_new_allocate), (gst_rtpbuffer_new_allocate_len),
	(gst_rtpbuffer_calc_header_len), (gst_rtpbuffer_calc_packet_len),
	(gst_rtpbuffer_calc_payload_len), (gst_rtpbuffer_validate_data),
	(gst_rtpbuffer_validate), (gst_rtpbuffer_set_packet_len),
	(gst_rtpbuffer_get_packet_len), (gst_rtpbuffer_get_version),
	(gst_rtpbuffer_set_version), (gst_rtpbuffer_get_padding),
	(gst_rtpbuffer_set_padding), (gst_rtpbuffer_pad_to),
	(gst_rtpbuffer_get_extension), (gst_rtpbuffer_set_extension),
	(gst_rtpbuffer_get_ssrc), (gst_rtpbuffer_set_ssrc),
	(gst_rtpbuffer_get_csrc_count), (gst_rtpbuffer_get_csrc),
	(gst_rtpbuffer_set_csrc), (gst_rtpbuffer_get_marker),
	(gst_rtpbuffer_set_marker), (gst_rtpbuffer_get_payload_type),
	(gst_rtpbuffer_set_payload_type), (gst_rtpbuffer_get_seq),
	(gst_rtpbuffer_set_seq), (gst_rtpbuffer_get_timestamp),
	(gst_rtpbuffer_set_timestamp), (gst_rtpbuffer_get_payload_len),
	(gst_rtpbuffer_get_payload):
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	Don't subclass GstBuffer but add methods and helper functions
	to construct and manipulate RTP packets in regular GstBuffers.

2005-08-18  Stefan Kost  <ensonic@users.sf.net>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_src_query):
	  moved statement below switch
	* gst/volume/gstvolume.c: (gst_volume_class_init):
	  added debug ptr

2005-08-16  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_change_state):
	Open and close device in READY<->NULL state change.

2005-08-16  Andy Wingo  <wingo@pobox.com>

	* examples/seeking/Makefile.am: Don't compile non-compiling
	compiled objects with the compiler.

	* examples/seeking/seek.c (make_dv_pipeline): Update for new DV
	elements.

2005-08-12  Philippe Khalaf <burger@speedy.org>
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	  Made a thread to release the queue.
	  Removed timestamp conversion for now.

2005-08-10  Philippe Khalaf <burger@speedy.org>
	* gst-libs/gst/rtp/gstbasertpdepayload.c:
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	  Added rtp timestamp -> gst timestamp conversion.
	  Fixed several problems with queue.

2005-08-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/gstaudioclock.h:
	* gst-libs/gst/audio/gstaudiofilter.h:
	* gst-libs/gst/audio/gstaudiosink.h:
	* gst-libs/gst/audio/gstaudiosrc.h:
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	* gst-libs/gst/audio/gstringbuffer.h:
	* gst-libs/gst/net/gstnetbuffer.h:
	* gst-libs/gst/rtp/gstbasertpdepayload.h:
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	  Add padding (you will need to rebuild gst-plugins-base,
	  gst-plugins and all applications afterwards!)

2005-08-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk),
	(gst_riff_parse_chunk):
	  Fix bug in debug message and add some more debug messages.

2005-08-08  Edward Hervey  <edward@fluendo.com>

	* gst-libs/gst/riff/riff-media.c:
	backported updates since branch

2005-08-08  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c
	(gst_base_audio_sink_change_state): Open the device in NULL->READY
	like good elements should. Close on READY->NULL too.

	* gst-libs/gst/audio/gstaudiosink.c
	(gst_audioringbuffer_open_device,
	(gst_audioringbuffer_close_device, gst_audioringbuffer_acquire)
	(gst_audioringbuffer_release): Updates for new ring buffer API,
	hook into the new audio sink api.

	* gst-libs/gst/audio/gstaudiosink.h (GstAudioSinkClass.open)
	(GstAudioSinkClass.close): Just open and close the device -- no
	resource allocation or configuration.
	(GstAudioSinkClass.prepare, GstAudioSinkClass.unprepare): New
	vmethods, handle device setup and resource allocation.

	* ext/alsa/gstalsasink.c (gst_alsasink_open, gst_alsasink_close)
	(gst_alsasink_prepare, gst_alsasink_unprepare): Update for new
	base class API.

	* gst-libs/gst/audio/gstringbuffer.h
	(GstRingBufferClass.open_device, GstRingBufferClass.close_device):
	New vmethods.

	* gst-libs/gst/audio/gstringbuffer.c (gst_ring_buffer_open_device)
	(gst_ring_buffer_close_device, gst_ring_buffer_device_is_open):
	New API functions. The device should be opened before acquiring
	and closed after releasing.

2005-08-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/interfaces/mixer.h:
	  Reset padding to GST_PADDING.

2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (remove_sinks):
	  Remove visualization from parent explicitely; works around some
	  apparent refcount issue that I haven't tracked down yet.

2005-08-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (set_hwparams):
	  Assign debug category, add negotiation debug msgs.

2005-08-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_start):
	  Fix error code for file-not-found to NOT_FOUND.

2005-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/gtk-doc-plugins.mak:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	  renamed to actual element names, so much nicer to look at
	* docs/plugins/tmpl/gstmultifdsink.sgml:
	  remove
	* docs/plugins/tmpl/multifdsink.sgml:
	* docs/plugins/tmpl/tcpserversink.sgml:
	  add
	* ext/alsa/gstalsa.c:
	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_get_property):
	* ext/ogg/gstoggmux.c:
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain):
	* gst/playback/gstdecodebin.c:
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init):
	* gst/tcp/gsttcpserversink.c:
	  various fixes and documentation additions

2005-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/Makefile.am:
	* common/gstdoc-scangobj:
	* common/gtk-doc-plugins.mak:
	* common/gtk-doc.mak:
	  add a custom scangobj that uses the registry
	  add a custom gtk-doc-plugins.mak that uses it
	  some doc build fixes
	* configure.ac:
	* docs/Makefile.am:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
	* docs/plugins/gst-plugins-base-plugins-sections.txt:
	* docs/plugins/gst-plugins-base-plugins.types:
	* docs/plugins/tmpl/gstmultifdsink.sgml:
	  add docs for one element, multifdsink
	* gst/adder/gstadder.h:
	* gst/volume/gstvolume.h:
	  don't privatize enum
	* gst/tcp/gstfdset.c: (gst_fdset_mode_get_type):
	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_sync_method_get_type), (gst_client_status_get_type),
	(gst_multifdsink_class_init),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_class_init),
	(gst_tcpclientsink_init), (gst_tcpclientsink_setcaps),
	(gst_tcpclientsink_render):
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init),
	(gst_tcpclientsrc_init), (gst_tcpclientsrc_create),
	(gst_tcpclientsrc_start):
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init),
	(gst_tcpserversrc_init), (gst_tcpserversrc_create):
	* gst/tcp/gsttcpserversrc.h:
	* gst/typefind/gsttypefindfunctions.c:
	  remove superfluous Type stuff

2005-08-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gen_video_element):
	  Enable videoscale.

2005-08-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/gconf/gconf.c:
	* gst-libs/gst/gconf/gconf.h:
	  Fix some Andy Problem [tm].

2005-08-04  Andy Wingo  <wingo@pobox.com>

	* gst/videoscale/gstvideoscale.c (gst_videoscale_get_size):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c
	(gst_ffmpegcsp_get_size): Adapt to API changes.

	* gst/videoscale/gstvideoscale.c (gst_videoscale_transform_ip):
	Implement an in-place do-nothing transform.

2005-08-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put),
	(gst_ximagesink_renegotiate_size):
	  Do not set new window sizes yet if we prepare a new buffer size
	  for upstream renegotiation (software scaling) at some point in the
	  future, because this new size waqs not actually accepted yet. Once
	  accepted, renegotiation later on will set the new sizes just fine.
	  Fixes a videotestsrc ! queue ! videoscale ! ximagesink xoverlay
	  embedding testcase.

2005-08-03  Andy Wingo  <wingo@pobox.com>

	* sys/ximage/ximagesink.c (gst_ximagesink_renegotiate_size):
	(gst_ximagesink_buffer_alloc): 
	Protect the height, width, and desired_caps with the pool_lock.
	Fixes videotestsrc ! queue ! ximagesink.

2005-08-02  Edward Hervey  <edward@fluendo.com>

	* gst/volume/gstvolume.c:
	include left from controller cleanup

2005-08-02  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_change_state):
	  Stop collectpads before calling the parent state
	  change function on PAUSED->READY.

2005-08-01  Jan Schmidt  <thaytan@mad.scientist.com>
	* configure.ac:
	  When testing for X libs, use the X CFlags 
	* gst/adder/gstadder.c: (gst_adder_change_state):
	  Stop the collectpads before calling parent state change function
	  on PAUSED->READY, otherwise we deadlock deactivating pads.

2005-08-01  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstmixer.sgml:
	* examples/Makefile.am:
	* gst/sine/Makefile.am:
	* gst/sine/gstsinesrc.c: (gst_sinesrc_init), (gst_sinesrc_create),
	(gst_sinesrc_set_property), (plugin_init):
	* gst/sine/gstsinesrc.h:
	* gst/volume/Makefile.am:
	* gst/volume/gstvolume.c: (gst_volume_set_volume),
	(gst_volume_set_mute), (gst_volume_dispose), (gst_volume_init),
	(volume_process_float), (volume_process_int16),
	(volume_set_property), (plugin_init):
	* gst/volume/gstvolume.h:
	  deactivate and remove dparams (libgstcontrol)

2005-07-29  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link_src):
	Convert me to BaseTransform!! help..

2005-07-29  Andy Wingo  <wingo@pobox.com>

	* ext/alsa/gstalsaplugin.c (plugin_init): We are primary audio
	sinks.

	* ext/alsa/gstalsasink.c (alsasink_sink_factory): Advertise our
	support of both endiannesses.

2005-07-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
	  Fix confusing debug message (s/event/query/)

2005-07-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/videotestsrc/videotestsrc.h:
	  Use "_stdint.h" instead of <stdint.h>

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/Makefile.am:
	Revert wrong commit.

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosrc.c: (gst_base_audio_src_event):
	More compilation fixen.

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_event), (gst_base_audio_sink_render),
	(gst_base_audio_sink_create_ringbuffer),
	(gst_base_audio_sink_change_state):
	Fix compilation.

2005-07-27  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (setup_dynamic_link),
	(make_dv_pipeline), (make_vorbis_theora_pipeline), (query_rates),
	(query_positions_elems), (query_positions_pads), (do_seek):
	Update seek example.

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_event),
	(gst_ogg_pad_typefind), (gst_ogg_demux_chain_elem_pad),
	(gst_ogg_demux_queue_data), (gst_ogg_demux_chain_peer),
	(gst_ogg_pad_submit_packet), (gst_ogg_pad_submit_page),
	(gst_ogg_demux_handle_event),
	(gst_ogg_demux_deactivate_current_chain),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_collect_chain_info), (gst_ogg_demux_collect_info),
	(gst_ogg_demux_chain), (gst_ogg_demux_send_event),
	(gst_ogg_demux_loop):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_collected):
	* ext/theora/theoradec.c: (theora_dec_src_event),
	(theora_dec_src_getcaps), (theora_dec_sink_event),
	(theora_dec_push), (theora_dec_chain):
	* ext/vorbis/Makefile.am:
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_event),
	(vorbis_dec_sink_event), (vorbis_dec_push),
	(vorbis_handle_data_packet):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_sink_event),
	(gst_vorbisenc_chain):
	* gst/playback/gststreaminfo.c: (cb_probe):
	* gst/subparse/gstsubparse.c: (gst_subparse_src_event):
	* gst/videorate/gstvideorate.c: (gst_videorate_event):
	* gst/videoscale/gstvideoscale.c:
	(gst_videoscale_handle_src_event):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_event):
	* sys/ximage/ximagesink.c: (gst_ximagesink_show_frame),
	(gst_ximagesink_navigation_send_event):
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_navigation_send_event):
	Various event updates and cleanups

2005-07-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_prepare_images):
	  Fix segfault for I420/YV12.

2005-07-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisdec.c: (vorbis_handle_comment_packet):
	  Report bitrate.

2005-07-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	  Switch to auto*sink elements as default sinks; add volume element
	  so that volume control in totem works.

2005-07-21  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (gen_preroll_element):
	* gst/playback/gstplaybin.c: (setup_sinks),
	(gst_play_bin_change_state):
	Refcount fix and more comments.

2005-07-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximage/Makefile.am:
	* sys/ximage/ximage.c: (plugin_init):
	* sys/ximage/ximagesink.c:
	Prepare for adding ximagesrc, rename of plugin to ximage etc.
	

2005-07-21  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_event),
	(gst_ogg_pad_internal_chain), (gst_ogg_pad_typefind),
	(gst_ogg_demux_chain_elem_pad), (gst_ogg_demux_queue_data),
	(gst_ogg_demux_chain_peer), (gst_ogg_pad_submit_packet),
	(gst_ogg_pad_submit_page), (gst_ogg_chain_new),
	(gst_ogg_demux_init), (gst_ogg_demux_activate_chain),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_collect_chain_info),
	(gst_ogg_demux_collect_info), (gst_ogg_demux_chain),
	(gst_ogg_demux_send_event), (gst_ogg_demux_loop):
	Generate correct disconts for live chained oggs.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render),
	(gst_base_audio_sink_create_ringbuffer),
	(gst_base_audio_sink_change_state):
	Handle discont math correctly.

	* gst/playback/gstplaybin.c: (add_sink):
	Some small debug cleanup.

2005-07-21  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_init), (gst_ogg_pad_event),
	(gst_ogg_pad_internal_chain), (gst_ogg_pad_typefind),
	(gst_ogg_demux_chain_elem_pad), (gst_ogg_demux_queue_data),
	(gst_ogg_demux_chain_peer), (gst_ogg_pad_submit_packet),
	(gst_ogg_pad_submit_page), (gst_ogg_chain_new),
	(gst_ogg_demux_init), (gst_ogg_demux_deactivate_current_chain),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_find_pad),
	(gst_ogg_demux_collect_chain_info), (gst_ogg_demux_collect_info),
	(gst_ogg_demux_find_chains), (gst_ogg_demux_chain),
	(gst_ogg_demux_send_event), (gst_ogg_demux_loop),
	(gst_ogg_demux_change_state), (gst_ogg_print):
	Reorganize code to send the right disconts when in streaming
	mode.

2005-07-20  Andy Wingo  <wingo@pobox.com>

	* gst/videoscale/vs_image.c (vs_image_scale_nearest_YUYV): Typo
	fix (?), fixes a seggie mcfalterson (#310894).

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_get_headers),
	(gst_ogg_mux_set_header_on_caps):
	* ext/theora/theoraenc.c: (theora_set_header_on_caps):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_set_header_on_caps):
	* ext/vorbis/vorbisparse.c: (vorbis_parse_set_header_on_caps):
	* gst-libs/gst/audio/multichannel.c:
	(gst_audio_set_channel_positions),
	(gst_audio_set_structure_channel_positions_list):
	* gst/playback/gstdecodebin.c: (dynamic_create):
	* gst/playback/gstplaybasebin.c: (setup_source), (mute_group_type):
	* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute):
	  Fixes for API changes in core.

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (fill_buffer):
	  Use _new_custom() so we can set custom message types for buffering
	  messages.

2005-07-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/gconf/.cvsignore:
	* gst-libs/gst/gconf/Makefile.am:
	* gst-libs/gst/gconf/test-gconf.c:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-gconf-uninstalled.pc.in:
	* pkgconfig/gstreamer-gconf.pc.in:
	  Remove gconf stuff, use gconf elements instead from now on.

2005-07-20  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/TODO:
	* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_init),
	(gst_audio_clock_get_internal_time):
	* gst-libs/gst/audio/gstaudioclock.h:
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_init), (gst_base_audio_sink_dispose),
	(gst_base_audio_sink_get_time), (gst_base_audio_sink_event),
	(gst_base_audio_sink_render),
	(gst_base_audio_sink_create_ringbuffer),
	(gst_base_audio_sink_change_state):
	Make sure the audio clock always returns an increasing value.

2005-07-19  Andy Wingo  <wingo@pobox.com>

	* gst/videotestsrc/: Cleanups.

2005-07-19  Wim Taymans  <wim@fluendo.com>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_create):
	Better debugging.

2005-07-19  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_dv_pipeline),
	(make_vorbis_theora_pipeline), (query_rates),
	(query_positions_elems), (query_positions_pads), (do_seek):
	Make correct DV pipeline.

2005-07-18  Andy Wingo  <wingo@pobox.com>

	* configure.ac (DEFAULT_AUDIOSINK, DEFAULT_AUDIOSRC): Use alsa by
	default. Also because it's the only thing that really works. (This
	is used in the GConf elements).
	Use AS_LIBTOOL_TAGS.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (remove_element_chain):
	* gst/playback/gstplaybin.c: (add_sink):
	* gst/playback/gststreaminfo.c: (gst_stream_info_dispose),
	(gst_stream_info_set_mute):
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_get_linked_pad),
	(gst_stream_selector_getcaps), (gst_stream_selector_chain):
	More leak and compile fixes.

2005-07-18  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_vorbis_theora_pipeline),
	(query_rates), (query_positions_elems), (query_positions_pads),
	(do_seek), (seek_cb), (stop_seek):
	Updated seek example. 

	* gst/playback/gstdecodebin.c: (remove_element_chain), (unlinked):
	* gst/playback/gstplaybasebin.c: (queue_threshold_reached),
	(queue_out_of_data), (gen_preroll_element), (new_decoded_pad):
	* gst/playback/gstplaybin.c: (add_sink):
	* gst/playback/gststreaminfo.c: (gst_stream_info_dispose),
	(gst_stream_info_set_mute):
	Some refcount leak fixes.

2005-07-16  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_render):
	Align samples even if we have roundoff errors in the 
	timestamp conversion.

2005-07-16  Wim Taymans  <wim@fluendo.com>

	* docs/libs/tmpl/gstringbuffer.sgml:
	* examples/seeking/seek.c: (make_vorbis_theora_pipeline),
	(query_rates), (query_positions_elems), (query_positions_pads),
	(update_scale), (do_seek):
	Updated seek example.

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_pad_submit_page), (gst_ogg_demux_activate_chain),
	(gst_ogg_demux_find_chains), (gst_ogg_demux_send_event),
	(gst_ogg_demux_loop):
	Push out correct discont values.

	* ext/theora/theoradec.c: (theora_dec_src_convert),
	(theora_dec_sink_convert), (theora_dec_src_getcaps),
	(theora_dec_sink_event), (theora_handle_type_packet),
	(theora_handle_header_packet), (theora_dec_push),
	(theora_handle_data_packet), (theora_dec_chain),
	(theora_dec_change_state):
	Better timestamping.

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init),
	(vorbis_dec_sink_event), (vorbis_dec_push),
	(vorbis_handle_data_packet), (vorbis_dec_chain):
	* ext/vorbis/vorbisdec.h:
	Better timestamping.

	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_get_time), (gst_base_audio_sink_get_times),
	(gst_base_audio_sink_event), (gst_base_audio_sink_render):
	Handle syncing on timestamps instead of sample offsets. Make
	use of DISCONT values as described in design docs.

	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_get_time):
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_acquire),
	(gst_ring_buffer_set_sample), (gst_ring_buffer_commit),
	(gst_ring_buffer_read):
	* gst-libs/gst/audio/gstringbuffer.h:
	* sys/ximage/ximagesink.c: (gst_ximagesink_get_times),
	(gst_ximagesink_show_frame):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_times):
	Correcly convert buffer timestamp to stream time.

2005-07-16  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_get_buffer):
	Timestamp buffers correctly.

	* gst/playback/gstplaybin.c: (gen_video_element):
	Make internal fakesink silent.

2005-07-15  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/Makefile.am:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info),
	(gst_ffmpegcsp_transform_caps), (gst_ffmpegcsp_set_caps),
	(gst_ffmpegcsp_get_type), (gst_ffmpegcsp_class_init),
	(gst_ffmpegcsp_init), (gst_ffmpegcsp_get_size),
	(gst_ffmpegcsp_transform_ip), (gst_ffmpegcsp_transform):
	Ported ffmpegcolorspace to basetransform.

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_transform):
	* gst/volume/gstvolume.c: (volume_transform):
	Ported to new API.

2005-07-14  Wim Taymans  <wim@fluendo.com>

	* gst/videotestsrc/Makefile.am:
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get_type),
	(gst_videotestsrc_class_init), (gst_videotestsrc_negotiate),
	(gst_videotestsrc_setcaps), (gst_videotestsrc_getcaps),
	(gst_videotestsrc_init), (gst_videotestsrc_event),
	(gst_videotestsrc_create), (gst_videotestsrc_start),
	(gst_videotestsrc_stop), (gst_videotestsrc_get_times),
	(gst_videotestsrc_set_pattern), (gst_videotestsrc_set_property),
	(gst_videotestsrc_get_property):
	* gst/videotestsrc/gstvideotestsrc.h:
	Make videotestsrc a pushsrc.

2005-07-14  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_free):
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_init),
	(gst_multifdsink_add), (gst_multifdsink_remove),
	(gst_multifdsink_clear), (gst_multifdsink_get_stats),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients),
	(gst_multifdsink_stop):
	* gst/tcp/gstmultifdsink.h:
	0.8 backporting.

	* sys/ximage/ximagesink.c: (gst_ximagesink_show_frame):
	Also draw image when not from a pool.

2005-07-14  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (check_queue), (probe_triggered),
	(mute_stream), (silence_stream):
	Small debug additions.

2005-07-14  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose),
	(gst_ogg_pad_submit_packet), (gst_ogg_pad_submit_page),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_loop):
	Better error recovery, ignore unconnected pads and
	non-fatal errors.

2005-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/tmpl/gstaudio.sgml:
	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstgconf.sgml:
	* docs/libs/tmpl/gstmixer.sgml:
	* docs/libs/tmpl/gstringbuffer.sgml:
	* docs/libs/tmpl/gsttuner.sgml:
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get_type),
	(gst_tcpclientsrc_class_init):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_get_type),
	(gst_tcpserversrc_class_init):
	* sys/v4l/gstv4lelement.c:
	  more autistic cleanliness in functions/names/defines

2005-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  make GST_PLUGIN_LDFLAGS only be flags; GST_LIBS should be
	  added manually to each Makefile.am so we are sure it goes
	  *last* and doesn't add -L flags before linking in libs of our
	  own, like, say, internal .la libs, that then accidentally pick
	  up the installed copy.
	* docs/libs/Makefile.am:
	* ext/alsa/Makefile.am:
	* ext/cdparanoia/Makefile.am:
	* ext/gnomevfs/Makefile.am:
	* ext/libvisual/Makefile.am:
	* ext/ogg/Makefile.am:
	* ext/theora/Makefile.am:
	* ext/vorbis/Makefile.am:
	* gst-libs/gst/video/Makefile.am:
	* gst/adder/Makefile.am:
	* gst/audioconvert/Makefile.am:
	* gst/audiorate/Makefile.am:
	* gst/audioscale/Makefile.am:
	* gst/ffmpegcolorspace/Makefile.am:
	* gst/playback/Makefile.am:
	* gst/sine/Makefile.am:
	* gst/subparse/Makefile.am:
	* gst/tags/Makefile.am:
	* gst/tcp/Makefile.am:
	* gst/typefind/Makefile.am:
	* gst/videorate/Makefile.am:
	* gst/videoscale/Makefile.am:
	* gst/videotestsrc/Makefile.am:
	* gst/volume/Makefile.am:
	* sys/v4l/Makefile.am:
	* sys/ximage/Makefile.am:
	* sys/xvimage/Makefile.am:
	  adapt properly to this change. This should make sure that
	  plugins and libs properly link to the as-yet-uninstalled
	  copies of stuff like libgstinterfaces and libgstvideo

2005-07-13  Andy Wingo  <wingo@pobox.com>

	* sys/v4l/gstv4lsrc.c (gst_v4lsrc_stop): Fix a spurious warning.
	(gst_v4lsrc_fixate): Fixate on format as well.

	* sys/xvimage/xvimagesink.c (gst_xvimage_buffer_destroy) 
	(gst_xvimagesink_xvimage_new): Ref the xvimagesink while the
	buffer points to it.
	(gst_xvimagesink_check_xshm_calls): Don't use our xvimage buffer,
	rather just doing X calls ourselves. Also fixes a memleak.

2005-07-12  Andy Wingo  <wingo@pobox.com>

	* sys/v4l/gstv4lsrc.c (gst_v4lsrc_get_property) 
	(gst_v4lsrc_set_property, gst_v4lsrc_class_init, gst_v4lsrc_init) 
	(gst_v4lsrc_create): Re-add the copy-mode property, default to
	TRUE to avoid deadlocks if an element holds on to our buffers.

2005-07-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_init), (gst_sinesrc_create),
	(gst_sinesrc_set_property), (gst_sinesrc_get_property),
	(gst_sinesrc_start):
	* gst/sine/gstsinesrc.h:
	  removing num-buffers property before moving it

2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  use overridable ERROR_CFLAGS
	* docs/libs/gst-plugins-base-libs.types:
	* docs/libs/tmpl/gstringbuffer.sgml:
	* ext/alsa/gstalsasink.c: (gst_alsasink_get_type),
	(gst_alsasink_class_init):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_get_type),
	(gst_alsasrc_class_init):
	* gst-libs/gst/audio/audio.h:
	* gst-libs/gst/audio/gstaudioclock.h:
	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audio_filter_get_type),
	(gst_audio_filter_base_init), (gst_audio_filter_class_init),
	(gst_audio_filter_link), (gst_audio_filter_init),
	(gst_audio_filter_chain), (gst_audio_filter_set_property),
	(gst_audio_filter_get_property),
	(gst_audio_filter_class_add_pad_templates):
	* gst-libs/gst/audio/gstaudiofilter.h:
	* gst-libs/gst/audio/gstaudiofiltertemplate.c:
	(gst_audio_filter_template_get_type),
	(gst_audio_filter_template_base_init),
	(gst_audio_filter_template_class_init),
	(gst_audio_filter_template_init),
	(gst_audio_filter_template_set_property),
	(gst_audio_filter_template_get_property), (plugin_init),
	(gst_audio_filter_template_setup),
	(gst_audio_filter_template_filter),
	(gst_audio_filter_template_filter_inplace):
	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_get_type), (gst_audioringbuffer_class_init),
	(audioringbuffer_thread_func), (gst_audioringbuffer_acquire),
	(gst_audioringbuffer_release), (gst_audioringbuffer_start),
	(gst_audioringbuffer_stop), (gst_audioringbuffer_delay),
	(gst_audio_sink_base_init), (gst_audio_sink_class_init),
	(gst_audio_sink_init), (gst_audio_sink_create_ringbuffer):
	* gst-libs/gst/audio/gstaudiosink.h:
	* gst-libs/gst/audio/gstaudiosrc.c: (gst_audioringbuffer_get_type),
	(gst_audioringbuffer_class_init), (audioringbuffer_thread_func),
	(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
	(gst_audioringbuffer_start), (gst_audioringbuffer_stop),
	(gst_audioringbuffer_delay), (gst_audio_src_base_init),
	(gst_audio_src_class_init), (gst_audio_src_init),
	(gst_audio_src_create_ringbuffer):
	* gst-libs/gst/audio/gstaudiosrc.h:
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_base_audio_sink_base_init), (gst_base_audio_sink_class_init),
	(gst_base_audio_sink_init), (gst_base_audio_sink_dispose),
	(gst_base_audio_sink_get_clock), (gst_base_audio_sink_get_time),
	(gst_base_audio_sink_set_property),
	(gst_base_audio_sink_get_property), (gst_base_audio_sink_setcaps),
	(gst_base_audio_sink_get_times), (gst_base_audio_sink_event),
	(gst_base_audio_sink_preroll), (gst_base_audio_sink_render),
	(gst_base_audio_sink_create_ringbuffer),
	(gst_base_audio_sink_callback), (gst_base_audio_sink_change_state):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_base_audio_src_base_init), (gst_base_audio_src_class_init),
	(gst_base_audio_src_init), (gst_base_audio_src_get_clock),
	(gst_base_audio_src_get_time), (gst_base_audio_src_set_property),
	(gst_base_audio_src_get_property), (gst_base_audio_src_fixate),
	(gst_base_audio_src_setcaps), (gst_base_audio_src_get_times),
	(gst_base_audio_src_event), (gst_base_audio_src_create),
	(gst_base_audio_src_create_ringbuffer),
	(gst_base_audio_src_callback), (gst_base_audio_src_change_state):
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_get_type),
	(gst_ring_buffer_class_init), (gst_ring_buffer_init),
	(gst_ring_buffer_dispose), (gst_ring_buffer_finalize),
	(gst_ring_buffer_debug_spec_caps),
	(gst_ring_buffer_debug_spec_buff), (gst_ring_buffer_parse_caps),
	(gst_ring_buffer_set_callback), (gst_ring_buffer_acquire),
	(gst_ring_buffer_release), (gst_ring_buffer_is_acquired),
	(gst_ring_buffer_start), (gst_ring_buffer_pause),
	(gst_ring_buffer_stop), (gst_ring_buffer_delay),
	(gst_ring_buffer_samples_done), (gst_ring_buffer_set_sample),
	(wait_segment), (gst_ring_buffer_commit), (gst_ring_buffer_read),
	(gst_ring_buffer_prepare_read), (gst_ring_buffer_advance),
	(gst_ring_buffer_clear):
	* gst-libs/gst/audio/gstringbuffer.h:
	* gst-libs/gst/video/gstvideosink.c: (gst_video_sink_init),
	(gst_video_sink_class_init), (gst_video_sink_get_type):
	* gst-libs/gst/video/videosink.h:
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_get_type),
	(gst_multifdsink_class_init),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_change_state):
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_class_init),
	(gst_tcpclientsink_setcaps):
	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_getcaps), (gst_ximagesink_setcaps),
	(gst_ximagesink_change_state), (gst_ximagesink_show_frame),
	(gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc),
	(gst_ximagesink_send_pending_navigation),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_get_desired_size),
	(gst_ximagesink_class_init), (gst_ximagesink_get_type):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_getcaps),
	(gst_xvimagesink_setcaps), (gst_xvimagesink_change_state),
	(gst_xvimagesink_show_frame), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_send_pending_navigation),
	(gst_xvimagesink_navigation_send_event),
	(gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_get_desired_size), (gst_xvimagesink_class_init),
	(gst_xvimagesink_get_type):
	more macro splitting

2005-07-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose):
	  plug a memleak, allows me to import 1479 albums in one go
	  in jamboree
	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_handle_type_packet), (vorbis_dec_chain),
	(vorbis_dec_change_state):
	  fix some format strings

2005-07-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstmixer.sgml:
	* ext/alsa/gstalsasink.c: (gst_alsasink_class_init),
	(gst_alsasink_set_property), (gst_alsasink_get_property):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init),
	(gst_alsasrc_set_property), (gst_alsasrc_get_property):
	  add device property

2005-07-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
	* ext/gnomevfs/gstgnomevfssrc.c: (audiocast_init),
	(audiocast_register_listener), (audiocast_thread_run),
	(gst_gnomevfssrc_send_additional_headers_callback),
	(gst_gnomevfssrc_received_headers_callback),
	(gst_gnomevfssrc_push_callbacks), (gst_gnomevfssrc_pop_callbacks),
	(gst_gnomevfssrc_get_icy_metadata), (gst_gnomevfssrc_create),
	(gst_gnomevfssrc_get_size):
	  add/clean up debugging
	* gst/audiorate/gstaudiorate.c: (gst_audiorate_init):
	  cleanups

2005-07-07  Andy Wingo  <wingo@pobox.com>

	* sys/v4l/gstv4lsrc.c (gst_v4lsrc_fixate): Also fixate the
	framerate. Need to get a handle on when exactly this function is
	called, tho.

	* sys/v4l/v4lsrc_calls.h:
	* sys/v4l/v4lsrc_calls.c: Remove sync-related stuff.
	(gst_v4lsrc_get_fps_list): Moved here from gstv4lsrc.c.
	(gst_v4lsrc_buffer_new): Totally derive from GstBuffer.

	* sys/v4l/v4l_calls.h: Cast to V4lElement.
	* sys/v4l/v4l_calls.c: Header loc fixen, don't load mjpeg, all
	v4lelements are sources.

	* sys/v4l/gstv4lxoverlay.h:
	* sys/v4l/gstv4lxoverlay.c:
	* sys/v4l/gstv4ltuner.h:
	* sys/v4l/gstv4ltuner.c: Header loc fixen.
	
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/gstv4lsrc.c: Crucial GPL update. Clean up a bit, port to
	PushSrc/BaseSrc. Removed most sync-related properties, videorate
	or something should handle that. Made a live source.

	* sys/v4l/gstv4lelement.h:
	* sys/v4l/gstv4lelement.c: Derive from GstPushSrc. No more
	signals. Some cleanups.

	* sys/v4l/gstv4lcolorbalance.h: Interface header update.

	* sys/v4l/gstv4l.c: Don't register v4lelement, or the jpeg/mjpeg
	stuff.

	* sys/v4l/Makefile.am: Build everything except the jpeg/mjpeg
	stuff.

	* sys/Makefile.am (SUBDIRS): Hit the V4L crack pipe.

2005-07-07  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_get_query_types),
	(theora_dec_src_getcaps), (theora_dec_push):
	* ext/vorbis/vorbisdec.c: (vorbis_get_query_types):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_query_types):
	Remove deprecated/unused query types.

2005-07-06  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/Makefile.am:
	* ext/alsa/gstalsaplugin.c: (plugin_init):
	* ext/alsa/gstalsasink.c: (gst_alsasink_open):
	* ext/alsa/gstalsasrc.c: (gst_alsasrc_get_type),
	(gst_alsasrc_dispose), (gst_alsasrc_base_init),
	(gst_alsasrc_class_init), (gst_alsasrc_init),
	(gst_alsasrc_getcaps), (set_hwparams), (set_swparams),
	(alsasrc_parse_spec), (gst_alsasrc_open), (gst_alsasrc_close),
	(xrun_recovery), (gst_alsasrc_read), (gst_alsasrc_delay),
	(gst_alsasrc_reset):
	* ext/alsa/gstalsasrc.h:
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_get_type), (gst_audioringbuffer_class_init),
	(gst_audioringbuffer_start):
	* gst-libs/gst/audio/gstaudiosrc.c: (gst_audioringbuffer_get_type),
	(gst_audioringbuffer_class_init), (audioringbuffer_thread_func),
	(gst_audioringbuffer_init), (gst_audioringbuffer_dispose),
	(gst_audioringbuffer_finalize), (gst_audioringbuffer_acquire),
	(gst_audioringbuffer_release), (gst_audioringbuffer_start),
	(gst_audioringbuffer_stop), (gst_audioringbuffer_delay),
	(gst_audiosrc_base_init), (gst_audiosrc_class_init),
	(gst_audiosrc_init), (gst_audiosrc_create_ringbuffer):
	* gst-libs/gst/audio/gstaudiosrc.h:
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_baseaudiosink_class_init), (gst_baseaudiosink_dispose),
	(gst_baseaudiosink_get_time), (gst_baseaudiosink_setcaps),
	(gst_baseaudiosink_preroll), (gst_baseaudiosink_render):
	* gst-libs/gst/audio/gstbaseaudiosrc.c:
	(gst_baseaudiosrc_base_init), (gst_baseaudiosrc_class_init),
	(gst_baseaudiosrc_init), (gst_baseaudiosrc_get_clock),
	(gst_baseaudiosrc_get_time), (gst_baseaudiosrc_set_property),
	(gst_baseaudiosrc_get_property), (gst_baseaudiosrc_fixate),
	(gst_baseaudiosrc_setcaps), (gst_baseaudiosrc_get_times),
	(gst_baseaudiosrc_event), (gst_baseaudiosrc_create),
	(gst_baseaudiosrc_create_ringbuffer), (gst_baseaudiosrc_callback),
	(gst_baseaudiosrc_change_state):
	* gst-libs/gst/audio/gstbaseaudiosrc.h:
	* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format),
	(gst_ringbuffer_debug_spec_caps), (gst_ringbuffer_debug_spec_buff),
	(gst_ringbuffer_parse_caps), (gst_ringbuffer_start),
	(gst_ringbuffer_pause), (gst_ringbuffer_stop),
	(gst_ringbuffer_samples_done), (gst_ringbuffer_set_sample),
	(wait_segment), (gst_ringbuffer_commit), (gst_ringbuffer_read),
	(gst_ringbuffer_prepare_read), (gst_ringbuffer_advance):
	* gst-libs/gst/audio/gstringbuffer.h:
	Added audiosource base classes.
	Ported alsasrc, still very basic.

2005-07-06  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_src_getcaps),
	(theora_dec_push), (theora_handle_data_packet):
	Prepare for better timestamp fix later.

	* gst/audioconvert/gstaudioconvert.c:
	List most accurate caps first

	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_loop):
	Use proper pad task function.

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_show_frame):
	Fix deadlock when alloc failed.

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* ext/gnomevfs/gstgnomevfssrc.c:
	* gst/sine/gstsinesrc.c:
	* gst/tcp/gsttcpserversrc.c:
	* gst/tcp/gsttcpclientsrc.c: s/BASESRC/BASE_SRC/.

	* sys/v4l/: Port from 0.8.

	* Many files: Null if we got it....

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* gst/tcp/gsttcpserversink.c (gst_tcpserversink_handle_server_read): 
	* gst/tcp/gstmultifdsink.c (gst_multifdsink_client_queue_data):
	Signedness fixes.

2005-07-05  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/tcp/Makefile.am:
	* gst/tcp/README:
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_get_type),
	(gst_multifdsink_base_init), (gst_multifdsink_class_init),
	(gst_multifdsink_init), (gst_multifdsink_remove_client_link),
	(is_sync_frame), (gst_multifdsink_handle_client_write),
	(gst_multifdsink_render), (gst_multifdsink_start),
	(gst_multifdsink_stop), (gst_multifdsink_change_state):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp.c: (gst_tcp_host_to_ip),
	(gst_tcp_gdp_read_buffer), (gst_tcp_gdp_read_caps),
	(gst_tcp_gdp_write_buffer), (gst_tcp_gdp_write_caps):
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_class_init),
	(gst_tcpclientsink_init), (gst_tcpclientsink_setcaps),
	(gst_tcpclientsink_render), (gst_tcpclientsink_start),
	(gst_tcpclientsink_stop), (gst_tcpclientsink_change_state):
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get_type),
	(gst_tcpclientsrc_base_init), (gst_tcpclientsrc_class_init),
	(gst_tcpclientsrc_init), (gst_tcpclientsrc_getcaps),
	(gst_tcpclientsrc_create), (gst_tcpclientsrc_start),
	(gst_tcpclientsrc_stop), (gst_tcpclientsrc_unlock):
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpplugin.c: (plugin_init):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init):
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_get_type),
	(gst_tcpserversrc_base_init), (gst_tcpserversrc_class_init),
	(gst_tcpserversrc_init), (gst_tcpserversrc_finalize),
	(gst_tcpserversrc_create), (gst_tcpserversrc_start),
	(gst_tcpserversrc_stop):
	* gst/tcp/gsttcpserversrc.h:
	* gst/tcp/gsttcpsink.c:
	* gst/tcp/gsttcpsink.h:
	* gst/tcp/gsttcpsrc.c:
	* gst/tcp/gsttcpsrc.h:
	Ported tcp plugins to 0.9. 
	

2005-07-05  Andy Wingo  <wingo@pobox.com>

	* gst/playback/gstplaybasebin.c (fill_buffer):
	message_new_application fixen.

	* gst/videoscale/gstvideoscale.c (gst_videoscale_transform_caps):
	Style fix.

2005-07-04  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain):
	Set caps on output buffer.

2005-07-04  Andy Wingo  <wingo@pobox.com>

	* ext/gnomevfs/gstgnomevfssrc.c
	(gst_gnomevfssrc_received_headers_callback) 
	(audiocast_thread_kill, audiocast_thread_run): FORTIFY fixen,
	hopefully.

	* gst/audioconvert/gstaudioconvert.c (gst_audio_convert_fixate):
	No refcount leakage.

	* configure.ac: Enable -Werror.
	
	* ext/theora/theoradec.c (theora_dec_src_getcaps):
	* gst/audioconvert/bufferframesconvert.c
	(buffer_frames_convert_fixate):
	* gst/audioconvert/gstaudioconvert.c (_fixate_caps_to_int)
	(gst_audio_convert_fixate):
	* gst/sine/gstsinesrc.c (gst_sinesrc_src_fixate)
	(gst_sinesrc_create): Fixate func changes.
	
	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_buffer_alloc): Unused var.

2005-07-01  Andy Wingo  <wingo@pobox.com>

	* ext/theora/theoradec.c (theora_dec_src_getcaps): Implement a
	getcaps to do explicit caps. Needs to be done in all decoders,
	possibly via a base class.

	* configure.ac (GST_PLUGIN_LDFLAGS): Add videoscale.

	* ext/ogg/gstoggdemux.c (gst_ogg_pad_typefind): No need to set
	caps on the sink pad, just rely on the pad template. Also, setting
	ANY caps on a pad is not valid because the caps are not fixed.

	* sys/ximage/ximagesink.c (gst_ximagesink_buffer_alloc): Set the
	caps on the buffer, and get the width from the desired_caps if
	they're set.
	(gst_ximagesink_renegotiate_size): Implement via setting the
	desired_caps on the ximagesink.
	(gst_ximagesink_setcaps): Only reset the width of the player if it
	wasn't already set. Not sure if this is right.
	(gst_ximagesink_show_frame): Memcpy only for normal buffers.

	* sys/ximage/ximagesink.h (desired_caps): New field, is the caps
	that the user wants. NULL unless the window has been resized.

	* gst/volume/gstvolume.c (volume_transform): Adapt to
	basetransform refcount changes.
	
2005-07-01  Andy Wingo  <wingo@pobox.com>

	* gst/videoscale/gstvideoscale.c:
	* gst/videoscale/gstvideoscale.h: Clean up, port to 0.9. Derives
	from BaseTransform, implements a transform_caps. Removed dead code
	including some PAR stuff that was never reached -- should probably
	be added back somehow.

2005-07-01  Andy Wingo  <wingo@pobox.com>

	* gst/videoscale: Merge David's work from 0.8 branch. Changes to
	come later.

2005-06-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-libs.types:
	* ext/alsa/Makefile.am:
	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixeroptions.h:
	* ext/alsa/gstalsamixertrack.h:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/colorbalance/.cvsignore:
	* 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/colorbalance.vcproj:
	* gst-libs/gst/colorbalance/colorbalancechannel.c:
	* gst-libs/gst/colorbalance/colorbalancechannel.h:
	* gst-libs/gst/interfaces/Makefile.am:
	* gst-libs/gst/interfaces/colorbalance.c:
	(gst_color_balance_class_init):
	* gst-libs/gst/interfaces/colorbalance.h:
	* gst-libs/gst/interfaces/interfaces-marshal.list:
	* gst-libs/gst/interfaces/mixer.c: (gst_mixer_class_init):
	* gst-libs/gst/interfaces/mixer.h:
	* gst-libs/gst/interfaces/mixeroptions.h:
	* gst-libs/gst/interfaces/navigation.c:
	* gst-libs/gst/interfaces/tuner.c: (gst_tuner_class_init):
	* gst-libs/gst/interfaces/tuner.h:
	* gst/volume/Makefile.am:
	* gst/volume/gstvolume.c:
	* pkgconfig/gstreamer-interfaces-uninstalled.pc.in:
	* sys/ximage/Makefile.am:
	* sys/ximage/ximagesink.c:
	* sys/xvimage/Makefile.am:
	* sys/xvimage/xvimagesink.c:
	  fold in all interfaces into an interfaces dir, preserving CVS
	  history

2005-06-30  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	  Fix build after riff changes.

2005-06-30  Ronald S. Bultje  <rbultje@ronald.bitfreak.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-libs/gst/riff/riff-read.h:
	* gst-libs/gst/riff/riff.c: (gst_riff_init):
	  Add gst_riff_init() to initialize the debug category, instead
	  of plugin_init(). Port riff-media.[ch] from -THREADED to HEAD.

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init):
	  Oops, I shouldn't apply hacks.

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_init):
	  Remove pad_loop function which doesn't work.

2005-06-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_deactivate_current_chain):
	  Send EOS when deactivating.
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(check_queue), (queue_threshold_reached), (queue_out_of_data),
	(gen_preroll_element), (probe_triggered), (mute_stream),
	(silence_stream), (new_decoded_pad), (setup_substreams),
	(set_active_source):
	* gst/playback/gstplaybin.c: (gst_play_bin_get_property),
	(remove_sinks), (add_sink):
	* gst/playback/gststreaminfo.c: (cb_probe), (gst_stream_info_new):
	  Change for new probe API.

2005-06-29  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_init):
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_baseaudiosink_class_init), (gst_baseaudiosink_dispose),
	(gst_baseaudiosink_change_state):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ringbuffer_set_callback):
	Fix compilation error.
	Ringbuffer starts out as not running.
	Free our clock in dispose.
	When releasing the ringbuffer we need to renegotiate so
	clear the pad caps.

2005-06-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* autogen.sh:
	* configure.ac:
	* docs/Makefile.am:
	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-libs-docs.sgml:
	* docs/libs/gst-plugins-libs-sections.txt:
	* docs/libs/gst-plugins-libs.types:
	* docs/libs/tmpl/gstaudio.sgml:
	* docs/libs/tmpl/gstcolorbalance.sgml:
	* docs/libs/tmpl/gstringbuffer.sgml:
	* gst-libs/gst/audio/gstringbuffer.c:
	(gst_ringbuffer_set_callback):
	  reinstate gtk-doc docs for plugin libs

2005-06-28  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_init):
	Removed pad loop function.

2005-06-28  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet):
	If we're building a chain we are not in an error case
	when we queue a buffer.

2005-06-28  Andy Wingo  <wingo@pobox.com>

	* *.c: Don't cast to GstObject before reffing/unreffing.

2005-06-27  Andy Wingo  <wingo@pobox.com>

	* gst/videotestsrc/gstvideotestsrc.c
	(gst_videotestsrc_activate_push): Activation API changes.

	* gst/playback/gstdecodebin.c (gst_decode_bin_change_state) 
	(gst_decode_bin_dispose): Free dynamics in READY->NULL, because
	they have refs on the decodebin.

	* ext/ogg/gstoggdemux.c (gst_ogg_pad_class_init): Ref the right
	parent class.
	(gst_ogg_pad_typefind): Don't leak a pad ref.
	(gst_ogg_chain_new_stream): gst_object_unref, not g_object_unref.
	(gst_ogg_demux_sink_activate, gst_ogg_demux_sink_activate_push) 
	(gst_ogg_demux_sink_activate_pull): Changes for activation API.

2005-06-27  Edward Hervey  <edward@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_change_state): 
	re-arranged call to parent's state change in order to avoid locks (or
	worse).

2005-06-26  Edward Hervey  <edward@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
	2nd argument of 'unknow-type' signal is a GstCaps and not a
	GstMiniObject

2005-06-25  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_acquire):
	  Set the worker thread's running flag to TRUE before starting the
	  thread.
	* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
	  Catch a failure to add typefind to the bin.

2005-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_init), (gst_sinesrc_create),
	(gst_sinesrc_set_property), (gst_sinesrc_get_property),
	(gst_sinesrc_start):
	* gst/sine/gstsinesrc.h:
	  add num-buffers and timestamp-offset properties
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_class_init), (gst_videotestsrc_set_property),
	(gst_videotestsrc_get_property):
	  add timestamp-offset property

2005-06-23  Christian Schaller  <uraeus@gnome.org>

	* configure.ac: add videorate
	* gst-plugins-base.spec.in: add videorate

2005-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_transformcaps),
	(gst_videorate_getcaps), (gst_videorate_setcaps),
	(gst_videorate_event), (gst_videorate_chain):
	Fixed videorate, fixating an already fixated caps is not
	an error.

2005-06-23  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/README:
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_set_header_on_caps):
	Buffer on caps is not boxed anymore.

2005-06-22  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (theora_set_header_on_caps):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_set_header_on_caps):
	Set buffers on caps as miniobjects and not as boxed.

2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to HEAD

=== release 0.9.1 ===

2005-06-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* .cvsignore:
	* NEWS:
	* README:
	* RELEASE:
	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	  updates for release

2005-06-09  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/net/Makefile.am (lib_LTLIBRARIES): Install gstnet.
	
2005-06-09  Andy Wingo  <wingo@pobox.com>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/net/Makefile.am:
	Add gstnet to build.

2005-06-09  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/gconf/gconf.c:
	* gst/playback/test.c:
	* gst/playback/gstplaybin.c (gen_video_element): Ghost pad API
	fixes.

	* gst/audioconvert/gstaudioconvert.c: RPAD fixes.

	* ext/theora/theoraenc.c (theora_enc_chain): 
	* ext/theora/theoradec.c (theora_handle_data_packet): GCC4 fixes.

	* ext/ogg/gstoggdemux.c (GstOggPad): Derive from GstPad, not
	RealPad.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/net/Makefile.am:
	* pkgconfig/gstreamer-libs-uninstalled.pc.in:
	* pkgconfig/gstreamer-libs.pc.in:
	Added net stuff, version net lib.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_vorbis_theora_pipeline),
	(query_rates), (query_positions_elems), (query_positions_pads),
	(do_seek):
	Updated seek example.

2005-06-02  Andy Wingo  <wingo@pobox.com>

	* pkgconfig/gstreamer-libs-uninstalled.pc.in (prefix):
	* pkgconfig/gstreamer-libs.pc.in (prefix): Add gst/tag to the -L
	list.

	* gst/playback/gstdecodebin.c (gst_decode_bin_dispose): Don't
	remove the typefind, the bin dispose will do it for us. When it's
	removed and unreffed, the signal handler will be disconnected,
	too.
	(unlinked): It's too difficult to disconnect from unlinked
	handlers, as they are on pads not elements. Just punt if the pads
	aren't grandkids of the bin.

2005-06-02  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/README:
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_clear_chains):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_buffer_from_page):
	* ext/theora/theoradec.c: (theora_dec_src_query),
	(theora_handle_data_packet):
	* ext/theora/theoraenc.c: (theora_buffer_from_packet),
	(theora_enc_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_handle_data_packet):
	* gst/audioconvert/bufferframesconvert.c:
	(buffer_frames_convert_chain):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
	(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_bufferalloc),
	(gst_ffmpegcsp_chain):
	* gst/videorate/gstvideorate.c: (gst_videorate_transformcaps),
	(gst_videorate_getcaps), (gst_videorate_setcaps),
	(gst_videorate_event), (gst_videorate_chain):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_activate),
	(gst_videotestsrc_src_query), (gst_videotestsrc_loop):
	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_setcaps), (gst_ximagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimage_buffer_finalize), (gst_xvimage_buffer_free),
	(gst_xvimage_buffer_class_init), (gst_xvimage_buffer_get_type),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_show_frame), (gst_xvimagesink_buffer_alloc):
	Cleanups and buffer alloc.

2005-05-31  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ringbuffer_delay):
	Don't try to call the delay method when the device is not
	opened.

2005-05-31  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsasink.c: (set_hwparams), (gst_alsasink_open):
	Get actual segment size and buffer size after opening
	the device.

2005-05-30  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_activate_chain),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_clear_chains):
	Also FLUSH upstream, makes the loop function exit faster.
	
	* ext/theora/theoradec.c: (theora_dec_src_query):
	Some more debug info in the query.
	
	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_setcaps):
	Release lock on par error, better error reporting.

2005-05-26  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_chain),
	(gst_ogg_demux_clear_chains), (gst_ogg_demux_change_state):
	Clear chains in READY
	Queue packets until the chain is activated.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_get_type), (gst_audioringbuffer_class_init),
	(audioringbuffer_thread_func), (gst_audioringbuffer_init),
	(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
	(gst_audioringbuffer_play), (gst_audioringbuffer_stop),
	(gst_audioringbuffer_delay), (gst_audiosink_class_init),
	(gst_audiosink_create_ringbuffer):
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_baseaudiosink_class_init), (gst_baseaudiosink_init),
	(gst_baseaudiosink_get_clock), (gst_baseaudiosink_get_time),
	(gst_baseaudiosink_set_property), (build_linear_format),
	(debug_spec_caps), (debug_spec_buffer),
	(gst_baseaudiosink_setcaps), (gst_baseaudiosink_get_times),
	(gst_baseaudiosink_event), (gst_baseaudiosink_preroll),
	(gst_baseaudiosink_render), (gst_baseaudiosink_create_ringbuffer),
	(gst_baseaudiosink_callback), (gst_baseaudiosink_change_state):
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ringbuffer_get_type),
	(gst_ringbuffer_set_callback), (gst_ringbuffer_acquire),
	(gst_ringbuffer_release), (gst_ringbuffer_is_acquired),
	(gst_ringbuffer_play), (gst_ringbuffer_pause),
	(gst_ringbuffer_stop), (gst_ringbuffer_delay),
	(gst_ringbuffer_played_samples), (gst_ringbuffer_set_sample),
	(wait_segment), (gst_ringbuffer_commit),
	(gst_ringbuffer_prepare_read), (gst_ringbuffer_advance),
	(gst_ringbuffer_clear):
	Various small cleanups.

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_change_state):
	* gst/subparse/gstsubparse.c: (gst_subparse_chain):
	No need to take the locks anymore.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(gst_decode_bin_dispose), (try_to_link_1), (get_our_ghost_pad),
	(remove_element_chain), (no_more_pads), (unlinked), (close_link),
	(type_found):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_dispose),
	(group_destroy), (group_commit), (queue_overrun),
	(gen_preroll_element), (no_more_pads), (preroll_unlinked),
	(mute_stream), (new_decoded_pad), (setup_substreams),
	(setup_source), (mute_group_type), (set_active_source),
	(gst_play_base_bin_change_state):
	* gst/playback/gstplaybin.c: (gst_play_bin_dispose),
	(gen_video_element), (gen_text_element), (gen_audio_element),
	(gen_vis_element), (remove_sinks), (add_sink), (setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_info_new),
	(gst_stream_info_dispose), (gst_stream_info_set_mute):
	* gst/playback/gststreamselector.c: (gst_stream_selector_chain):
	Some playbin cleanups mostly refcounting sloppyness.

2005-05-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet):
	  Work with streaming input.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
	(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_bufferalloc),
	(gst_ffmpegcsp_chain), (gst_ffmpegcsp_change_state):
	No need to take the STREAM lock anymore.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose),
	(gst_ogg_pad_typefind), (gst_ogg_pad_submit_packet),
	(gst_ogg_chain_new_stream), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_chain), (gst_ogg_demux_loop),
	(gst_ogg_demux_sink_activate):
	* ext/theora/theoradec.c: (theora_dec_src_event),
	(theora_handle_comment_packet), (theora_dec_chain),
	(theora_dec_change_state):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_handle_data_packet), (vorbis_dec_chain),
	(vorbis_dec_change_state):
	Remove STREAM locks as they are taken in core now.
	Never set bogus granulepos on vorbis/theora.
	Fix leaks in theoradec tag parsing.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_create):
	Fix memleaks, GST_BUFFER_DATA() is not freed.

2005-05-25  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsasink.c: (gst_alsasink_open):
	Open non-blocking, set to blocking mode afterwards to avoid
	lockups when audio device is busy.

2005-05-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/audio/gstringbuffer.c: (gst_ringbuffer_clear):
	  This can't be good.

2005-05-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init),
	(gst_audio_convert_chain), (gst_audio_convert_link_src),
	(gst_audio_convert_setcaps):
	  Implement instant setup switching.

2005-05-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (probe_triggered):
	  Fix missing unlock.
	* gst/playback/gstplaybin.c: (add_sink):
	  First add, then link (otherwise pad link fails).

2005-05-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* examples/Makefile.am:
	fix buildbot (make distcheck)

2005-05-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gen_vis_element):
	  Remove some wrong code. Doesn't work yet.

2005-05-19  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/net/Makefile.am:
	* gst-libs/gst/net/README:
	* gst-libs/gst/net/gstnetbuffer.c: (gst_netbuffer_get_type),
	(gst_netbuffer_class_init), (gst_netbuffer_init),
	(gst_netbuffer_finalize), (gst_netbuffer_copy),
	(gst_netbuffer_new), (gst_netaddress_set_ip4_address),
	(gst_netaddress_set_ip6_address), (gst_netaddress_get_net_type),
	(gst_netaddress_get_ip4_address), (gst_netaddress_get_ip6_address):
	* gst-libs/gst/net/gstnetbuffer.h:
	Added buffer subclass to store extra to/from addresses for
	network sources/sinks.

2005-05-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/gconf/gconf.c: (gst_bin_find_unconnected_pad):
	  Don't lock an unassigned variable.

2005-05-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gen_preroll_element):
	  Increase buffer for video, decrease buffer for other media types.
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	  Change names for debugging purposes.

2005-05-18  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
	(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_bufferalloc),
	(gst_ffmpegcsp_chain):
	Enable buffer alloc passthrough if the source and dest
	formats are the same.

2005-05-17  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_internal_chain),
	(gst_ogg_demux_submit_buffer), (gst_ogg_demux_get_data),
	(gst_ogg_demux_chain_unlocked):
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_caps_remove_format_info),
	(gst_audio_convert_getcaps), (gst_audio_convert_setcaps),
	(gst_audio_convert_fixate), (gst_audio_convert_change_state):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
	(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_init),
	(gst_ffmpegcsp_bufferalloc), (gst_ffmpegcsp_chain),
	(gst_ffmpegcsp_change_state), (gst_ffmpegcsp_set_property),
	(gst_ffmpegcsp_get_property):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
	(gst_xvimage_buffer_finalize), (gst_xvimage_buffer_free),
	(gst_xvimage_buffer_class_init), (gst_xvimage_buffer_get_type),
	(gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_xvimage_put), (gst_xvimagesink_imagepool_clear),
	(gst_xvimagesink_setcaps), (gst_xvimagesink_change_state),
	(gst_xvimagesink_show_frame), (gst_xvimagesink_buffer_free),
	(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id):
	Leak fixes in oggdemux.
	Some cleanups in audioconvert.
	Make passthrough work along with buffer_alloc etc.
	Make buffer_alloc and buffer recycling actually work in
	xvimagesink.

2005-05-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/subparse/gstsubparse.c: (parse_subrip), (parse_mpsub):
	  make the compiler happy

2005-05-17  Wim Taymans  <wim@fluendo.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_finalize),
	(gst_xvimage_buffer_init), (gst_xvimage_buffer_class_init),
	(gst_xvimage_buffer_get_type), (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_imagepool_clear), (gst_xvimagesink_setcaps),
	(gst_xvimagesink_change_state), (gst_xvimagesink_show_frame),
	(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_set_xwindow_id):
	* sys/xvimage/xvimagesink.h:
	Port xvimagesink to new MiniObject.

2005-05-17  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link),
	(gst_audiofilter_chain):
	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_get_type), (gst_audioringbuffer_class_init),
	(audioringbuffer_thread_func), (gst_audioringbuffer_init),
	(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
	(gst_audioringbuffer_play), (gst_audioringbuffer_stop),
	(gst_audioringbuffer_delay), (gst_audiosink_class_init),
	(gst_audiosink_create_ringbuffer):
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_caps_remove_format_info),
	(gst_audio_convert_getcaps), (gst_audio_convert_setcaps),
	(gst_audio_convert_fixate), (gst_audio_convert_channels):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
	(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_chain):
	Fix passthrough in ffmpegcolorspace.
	Fix memset in audiosink on wrong memory.

2005-05-16  David Schleef  <ds@schleef.org>

	* gst/playback/gststreaminfo.c: (cb_probe): Port from GstData
	to GstMiniObject.

2005-05-16  David Schleef  <ds@schleef.org>

	Port from GstData to GstMiniObject.
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_buffer_from_page),
	(gst_ogg_mux_queue_pads), (gst_ogg_mux_set_header_on_caps),
	(gst_ogg_mux_collected):
	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	* ext/theora/theoradec.c: (theora_handle_comment_packet),
	(theora_handle_data_packet):
	* ext/theora/theoraenc.c: (theora_buffer_from_packet),
	(theora_set_header_on_caps), (theora_enc_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
	(vorbis_handle_comment_packet):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_set_header_on_caps):
	* ext/vorbis/vorbisparse.c: (vorbis_parse_set_header_on_caps):
	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_chain):
	* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_chain):
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_get_buffer):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
	* gst/playback/gstplaybasebin.c: (check_queue), (probe_triggered),
	(mute_stream), (silence_stream):
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
	* gst/volume/gstvolume.c: (volume_transform):
	* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
	(gst_ximage_buffer_init), (gst_ximage_buffer_class_init),
	(gst_ximage_buffer_get_type), (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy),
	(gst_ximagesink_ximage_put), (gst_ximagesink_imagepool_clear),
	(gst_ximagesink_show_frame), (gst_ximagesink_buffer_free),
	(gst_ximagesink_buffer_alloc):
	* sys/ximage/ximagesink.h:

2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(fill_buffer), (check_queue), (queue_threshold_reached),
	(queue_out_of_data):
	* gst/playback/gstplaybasebin.h:
	  Post buffer-fullness on the bus.

2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(try_to_link_1):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(group_commit), (probe_triggered), (setup_source),
	(gst_play_base_bin_change_state):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_init), (remove_sinks), (setup_sinks),
	(gst_play_bin_change_state):
	  Move setup_output_pads into a virtual function, remove
	  group-switch (no longer needed) and redirect (handled by bus
	  now) signals.

2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_finalize),
	(get_active_group), (get_building_group), (group_destroy),
	(group_commit), (check_queue), (queue_overrun),
	(queue_threshold_reached), (queue_out_of_data),
	(gen_preroll_element), (remove_groups), (unknown_type),
	(add_element_stream), (no_more_pads), (probe_triggered),
	(preroll_unlinked), (new_decoded_pad), (setup_subtitle),
	(setup_substreams), (setup_source), (finish_source),
	(prepare_output), (muted_group_change_state),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
	(gst_play_base_bin_change_state):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_init), (gst_play_bin_set_property),
	(gen_video_element), (gen_text_element), (gen_audio_element),
	(gen_vis_element), (remove_sinks), (add_sink), (setup_sinks),
	(gst_play_bin_change_state):
	* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
	(cb_probe), (gst_stream_info_new), (gst_stream_info_dispose),
	(stream_info_change_state), (gst_stream_info_set_mute),
	(gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	* gst/playback/gststreamselector.c: (gst_stream_selector_init),
	(gst_stream_selector_get_linked_pad),
	(gst_stream_selector_getcaps),
	(gst_stream_selector_get_linked_pads),
	(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
	* gst/playback/gststreamselector.h:
	  Rough port of playbin. Needs some more work, but is mostly done,
	  and uses a few locks in important places, which should make stuff
	  like chain-switches clean. Still uses GST_STATE() in a few places,
	  which isn't all that good an idea, subtitles/elements disabled
	  because no elements to test with and thus probably broken, query
	  and event handling moved to GstBin, internal thread removed
	  alltogether because the pipeline does that for us now. Can play
	  Ogg/Vorbis files. Haven't tested anything else yet.

2005-05-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_activate_chain):
	  Do no-more-pads (needed for autoplugging).

2005-05-10  Andy Wingo  <wingo@pobox.com>

	* ext/vorbis/vorbisdec.c (vorbis_handle_comment_packet): Post a
	message to the bus with the tags. Still not sent downstream tho.

	* gst/playback/gstdecodebin.c (remove_element_chain): Unref after
	get_parent.
	(remove_element_chain): Use OBJECT_PARENT instead of get_parent to
	avoid refcounting hassles.

2005-05-09  Andy Wingo  <wingo@pobox.com>

	* gst/volume/Makefile.am:
	* gst/volume/demo.c
	* gst/volume/gstvolume.h
	* gst/volume/gstvolume.c: Port to 0.9 API, derive from
	basetransform. Probably need an audio filter base class.

2005-05-09  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_sink_setcaps),
	(gst_vorbisenc_src_query), (gst_vorbisenc_sink_query),
	(gst_vorbisenc_set_header_on_caps), (gst_vorbisenc_sink_event),
	(gst_vorbisenc_chain):
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_caps_remove_format_info),
	(gst_audio_convert_getcaps), (gst_audio_convert_setcaps),
	(gst_audio_convert_fixate), (gst_audio_convert_channels):
	Make caps writable before writing to it.
	Fix negotiation in audioconvert some more.

2005-05-09  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_transformcaps),
	(gst_videorate_getcaps), (gst_videorate_setcaps),
	(gst_videorate_event), (gst_videorate_chain):
	Better negotiation.

2005-05-09  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
	(gst_videorate_getcaps), (gst_videorate_setcaps),
	(gst_videorate_blank_data), (gst_videorate_init),
	(gst_videorate_event), (gst_videorate_chain),
	(gst_videorate_change_state):
	Port videorate, do a better job at negotiation while we're at
	it.

2005-05-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Disable libvisual

	* examples/Makefile.am:
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/riff/Makefile.am:
	* gst-libs/gst/tag/Makefile.am:
	* gst-libs/gst/video/Makefile.am:
	  Fixups for missing variables.

2005-05-09  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_theora_pipeline),
	(make_vorbis_theora_pipeline), (make_avi_msmpeg4v3_mp3_pipeline),
	(query_rates), (query_positions_elems), (query_positions_pads),
	(update_scale), (play_cb), (pause_cb), (stop_cb), (main):
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_init),
	(gst_ogg_pad_query_types), (gst_ogg_pad_src_query),
	(gst_ogg_pad_typefind), (gst_ogg_demux_init),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_read_chain),
	(gst_ogg_demux_read_end_chain), (gst_ogg_demux_sink_activate):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_request_new_pad), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_push_page), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_send_headers),
	(gst_ogg_mux_collected), (gst_ogg_mux_change_state):
	* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_init),
	(gst_ogm_video_parse_init), (gst_ogm_text_parse_init),
	(gst_ogm_parse_sink_query), (gst_ogm_parse_chain):
	* ext/theora/theoradec.c: (gst_theora_dec_init), (_inc_granulepos),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_sink_query),
	(theora_dec_src_event), (theora_dec_sink_event),
	(theora_handle_comment_packet), (theora_handle_type_packet),
	(theora_handle_header_packet), (theora_handle_data_packet),
	(theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init),
	(vorbis_dec_convert), (vorbis_dec_src_query),
	(vorbis_dec_sink_query), (vorbis_dec_src_event),
	(vorbis_dec_sink_event), (vorbis_handle_comment_packet),
	(vorbis_handle_type_packet), (vorbis_handle_header_packet),
	(copy_samples), (vorbis_handle_data_packet), (vorbis_dec_chain):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_src_query),
	(gst_vorbisenc_sink_query), (gst_vorbisenc_init),
	(gst_vorbisenc_sink_event), (gst_vorbisenc_chain):
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_query):
	* gst/playback/test3.c: (update_scale):
	* gst/sine/gstsinesrc.c: (gst_sinesrc_setcaps),
	(gst_sinesrc_src_query), (gst_sinesrc_create), (gst_sinesrc_start):
	* gst/subparse/gstsubparse.c: (gst_subparse_init):
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_init),
	(gst_videotestsrc_src_query):
	* gst/videotestsrc/videotestsrc.c: (paint_hline_I420),
	(paint_hline_Y41B), (paint_hline_Y42B), (paint_hline_Y800),
	(paint_hline_YUV9):
	* sys/ximage/ximagesink.c: (gst_ximagesink_show_frame):
	Port to new query API.
	Updated seek.
	Cleanups in x[v]imagesink

2005-05-09  Andy Wingo  <wingo@pobox.com>

	* ext/alsa/gstalsasink.h:
	* ext/gnomevfs/gstgnomevfssrc.c:
	(gst_gnomevfssrc_get_icy_metadata):
	* ext/ogg/gstoggdemux.c (gst_ogg_demux_perform_seek)
	(gst_ogg_demux_read_chain, gst_ogg_demux_read_end_chain)
	* ext/theora/theoradec.c (theora_dec_src_query)
	(theora_dec_src_event, theora_dec_sink_event)
	(theora_handle_comment_packet, theora_handle_data_packet):
	* ext/theora/theoraenc.c (theora_enc_chain):
	* ext/vorbis/vorbisdec.c (vorbis_dec_src_event)
	(vorbis_dec_sink_event, vorbis_handle_comment_packet):
	* gst/audioconvert/gstaudioconvert.c (gst_audio_convert_getcaps):
	* gst/typefind/gsttypefindfunctions.c (mp3_type_find)
	(qt_type_find):
	* gst/videotestsrc/videotestsrc.c (paint_setup_I420)
	(paint_setup_YV12, paint_setup_YUY2, paint_setup_UYVY)
	(paint_setup_YVYU, paint_setup_IYU2, paint_setup_Y41B)
	(paint_setup_Y42B, paint_setup_Y800, paint_setup_IMC1)
	(paint_setup_IMC2, paint_setup_IMC3, paint_setup_IMC4)
	(paint_setup_YVU9, paint_setup_YUV9, paint_setup_xRGB8888)
	(paint_setup_xBGR8888, paint_setup_RGBx8888)
	(paint_setup_BGRx8888, paint_setup_RGB888, paint_setup_BGR888)
	(paint_setup_RGB565, paint_setup_xRGB1555):
	* gst/videotestsrc/videotestsrc.h:
	* sys/ximage/ximagesink.c (gst_ximagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.c (gst_xvimagesink_get_xv_support)
	(gst_xvimagesink_setcaps, gst_xvimagesink_buffer_alloc):
	GCC4 fixes.
	
	* ext/ogg/gstoggdemux.c (gst_ogg_demux_find_chains): Use the new
	gst_pad_query_position. Fixes oggdemux.

2005-05-08  David Schleef  <ds@schleef.org>

	* configure.ac: Require liboil.
	* gst/videotestsrc/gstvideotestsrc.c: Fix up liboil calls, add
	a few more.
	* gst/videotestsrc/videotestsrc.c:
	* gst/videotestsrc/videotestsrc.h:

2005-05-06  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
	(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_chain):
	Well, unreffing a buffer right before pushing it is asking
	for trouble..

2005-05-06  Christian Schaller  <uraeus@gnome.org>

	* pkgconfig/gstreamer-libs.pc.in: add missing library calls

2005-05-06  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_caps_remove_format_info),
	(gst_audio_convert_getcaps), (gst_audio_convert_setcaps),
	(gst_audio_convert_fixate), (gst_audio_convert_channels):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_getcaps), (gst_ffmpegcsp_configure_context),
	(gst_ffmpegcsp_setcaps), (gst_ffmpegcsp_chain):
	* gst/sine/Makefile.am:
	* gst/sine/gstsinesrc.c: (gst_sinesrc_get_type),
	(gst_sinesrc_class_init), (gst_sinesrc_init),
	(gst_sinesrc_src_fixate), (gst_sinesrc_setcaps),
	(gst_sinesrc_src_query), (gst_sinesrc_create), (gst_sinesrc_start),
	(gst_sinesrc_update_freq):
	* gst/sine/gstsinesrc.h:
	* gst/tcp/gstmultifdsink.c:
	* sys/xvimage/xvimagesink.c:
	Fixed negotiation wrt _peer_get_caps()
	Some cleanups.


2005-05-06  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_get_type), (gst_audioringbuffer_class_init),
	(audioringbuffer_thread_func), (gst_audioringbuffer_init),
	(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
	(gst_audioringbuffer_play), (gst_audioringbuffer_stop),
	(gst_audioringbuffer_delay), (gst_audiosink_class_init),
	(gst_audiosink_create_ringbuffer):
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_baseaudiosink_class_init), (gst_baseaudiosink_init),
	(gst_baseaudiosink_get_clock), (gst_baseaudiosink_get_time),
	(gst_baseaudiosink_set_property), (build_linear_format),
	(debug_spec_caps), (debug_spec_buffer),
	(gst_baseaudiosink_setcaps), (gst_baseaudiosink_get_times),
	(gst_baseaudiosink_event), (gst_baseaudiosink_preroll),
	(gst_baseaudiosink_render), (gst_baseaudiosink_create_ringbuffer),
	(gst_baseaudiosink_callback), (gst_baseaudiosink_change_state):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ringbuffer_get_type),
	(gst_ringbuffer_set_callback), (gst_ringbuffer_acquire),
	(gst_ringbuffer_release), (gst_ringbuffer_is_acquired),
	(gst_ringbuffer_play), (gst_ringbuffer_pause),
	(gst_ringbuffer_stop), (gst_ringbuffer_delay),
	(gst_ringbuffer_played_samples), (gst_ringbuffer_set_sample),
	(wait_segment), (gst_ringbuffer_commit),
	(gst_ringbuffer_prepare_read), (gst_ringbuffer_advance),
	(gst_ringbuffer_clear):
	* gst-libs/gst/audio/gstringbuffer.h:
	Make the base audiosink return an error when there is no
	audiobuffer negotiated.

2005-05-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/Makefile.am:
	Disable cdparanoia until someone ports it!

2005-05-06  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind),
	(gst_ogg_demux_sink_activate):
	And revert after wingo's revert.. sigh..

2005-05-05  Andy Wingo  <wingo@pobox.com>

	* gst/audiorate/gstaudiorate.c (gst_audiorate_class_init): Pacify
	GObject.
	* configure.ac: Return audiorate and subparse from the ghetto.
	Re-enable -Wall -Werror.
	* gst/subparse/gstsubparse.c:
	* gst/subparse/gstsubparse.h: Port to 0.9. Can operate loop-based
	or chain-based. Cleaned up a bit. Not tested.
	
2005-05-05  Christian Schaller <christian@fluendo.com> 

	* Makefile.am: remove stuff that is not building
	* configure.ac: remove stuff that is not building
	* examples/Makefile.am: remove stuff that is not building
	* ext/alsa/gstalsasink.c: add alsa/ before the alsalib.h file
	* ext/alsa/gstalsasink.h: add alsa/ before the alsalib.h file
	* sys/Makefile.am: remove stuff that is not building
	* testsuite/Makefile.am: remove stuff that is not building

2005-05-05  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/tag/gstid3tag.c: (gst_tag_list_new_from_id3v1):
	* gst-libs/gst/tag/gstvorbistag.c:
	(gst_tag_list_from_vorbiscomment_buffer), (gst_vorbis_tag_chain):
	* gst/adder/gstadder.h:
	* gst/audioconvert/gstchannelmix.c:
	(gst_audio_convert_fill_one_other):
	* gst/audiorate/gstaudiorate.c: (gst_audiorate_setcaps),
	(gst_audiorate_init), (gst_audiorate_chain):
	* gst/playback/gstplaybasebin.c: (setup_source):
	* gst/playback/test3.c: (update_scale):
	Some GCC4 fixes
	
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po: Foo

2005-05-05  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_caps_remove_format_info),
	(gst_audio_convert_setcaps), (gst_audio_convert_fixate),
	(gst_audio_convert_change_state), (gst_audio_convert_channels):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_src_negotiate), (gst_videotestsrc_src_link),
	(gst_videotestsrc_parse_caps), (gst_videotestsrc_src_accept_caps),
	(gst_videotestsrc_setcaps), (gst_videotestsrc_activate),
	(gst_videotestsrc_init), (gst_videotestsrc_loop):
	Don't ignore _push() return values.
	Make sure no processing is done when shutting down.
	Videotestsrc pad activation fix.

2005-05-05  Wim Taymans  <wim@fluendo.com>

	* gst/adder/Makefile.am:
	* gst/adder/gstadder.c: (gst_adder_setcaps),
	(gst_adder_class_init), (gst_adder_init),
	(gst_adder_request_new_pad), (gst_adder_collected),
	(gst_adder_change_state):
	* gst/adder/gstadder.h:
	Ported adder as an example of a mixer element using
	collect pads. Needs more negotiation work.

2005-05-05  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (_inc_granulepos),
	(theora_dec_src_event), (theora_dec_sink_event),
	(theora_handle_comment_packet), (theora_handle_type_packet),
	(theora_handle_header_packet), (theora_handle_data_packet),
	(theora_dec_chain):
	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(gst_theora_enc_init), (theora_enc_sink_setcaps),
	(theora_push_buffer), (theora_push_packet),
	(theora_enc_sink_event), (theora_enc_chain),
	(theora_enc_change_state), (theora_enc_set_property),
	(theora_enc_get_property):
	Added stream lock to decoder so that we can serialize
	the discont event.
	More theoraenc porting, recover from errors, do clean
	shutdown.

2005-05-05  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/Makefile.am:
	* ext/ogg/README:
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind),
	(gst_ogg_pad_submit_packet), (gst_ogg_demux_sink_activate),
	(gst_ogg_print):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_request_new_pad), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_push_page), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_collected),
	(gst_ogg_mux_change_state):
	Ported ogg muxer.

2005-05-05  Wim Taymans  <wim@fluendo.com>

	* docs/design-audiosinks.txt:
	* gst-libs/gst/audio/TODO:
	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_get_type), (gst_audioringbuffer_class_init),
	(audioringbuffer_thread_func), (gst_audioringbuffer_init),
	(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
	(gst_audioringbuffer_play), (gst_audioringbuffer_stop),
	(gst_audioringbuffer_delay), (gst_audiosink_class_init),
	(gst_audiosink_create_ringbuffer):
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_baseaudiosink_class_init), (gst_baseaudiosink_init),
	(gst_baseaudiosink_get_clock), (gst_baseaudiosink_get_time),
	(gst_baseaudiosink_set_property), (build_linear_format),
	(debug_spec_caps), (debug_spec_buffer),
	(gst_baseaudiosink_setcaps), (gst_baseaudiosink_get_times),
	(gst_baseaudiosink_event), (gst_baseaudiosink_preroll),
	(gst_baseaudiosink_render), (gst_baseaudiosink_create_ringbuffer),
	(gst_baseaudiosink_callback), (gst_baseaudiosink_change_state):
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ringbuffer_get_type),
	(gst_ringbuffer_set_callback), (gst_ringbuffer_acquire),
	(gst_ringbuffer_release), (gst_ringbuffer_play),
	(gst_ringbuffer_pause), (gst_ringbuffer_stop),
	(gst_ringbuffer_delay), (gst_ringbuffer_played_samples),
	(gst_ringbuffer_set_sample), (wait_segment),
	(gst_ringbuffer_commit), (gst_ringbuffer_prepare_read),
	(gst_ringbuffer_advance), (gst_ringbuffer_clear):
	More work on the audiosink, mostly debugging and a race in
	shutdown.

2005-04-28  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind),
	(gst_ogg_demux_perform_seek), (gst_ogg_demux_sink_activate):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_convert),
	(vorbis_dec_src_query), (vorbis_dec_src_event),
	(vorbis_dec_sink_event), (vorbis_handle_comment_packet),
	(vorbis_handle_type_packet), (vorbis_handle_header_packet),
	(copy_samples), (vorbis_handle_data_packet), (vorbis_dec_chain):
	Don't crap out when seeking back to position 0.

2005-04-28  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_mod_pipeline), (make_dv_pipeline),
	(make_wav_pipeline), (make_flac_pipeline), (make_sid_pipeline),
	(make_vorbis_pipeline), (make_vorbis_theora_pipeline),
	(make_avi_msmpeg4v3_mp3_pipeline), (make_mp3_pipeline),
	(make_avi_pipeline), (make_mpeg_pipeline), (make_mpegnt_pipeline):
	Make audio sink configurable, use alsasink as default.

2005-04-28  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_sink_event), (vorbis_handle_comment_packet),
	(vorbis_handle_type_packet), (vorbis_handle_header_packet),
	(copy_samples), (vorbis_handle_data_packet), (vorbis_dec_chain),
	(vorbis_dec_change_state):
	* ext/vorbis/vorbisdec.h:
	Refactor, use STREAM_LOCK.

2005-04-28  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (_inc_granulepos),
	(theora_dec_sink_event), (theora_handle_comment_packet),
	(theora_handle_type_packet), (theora_handle_header_packet),
	(theora_handle_data_packet), (theora_dec_chain),
	(theora_dec_change_state):
	Refactor a bit, use STREAM_LOCK.

2005-04-28  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/Makefile.am:
	* ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_get_caps),
	(gst_alsa_fixate_to_mimetype), (gst_alsa_fixate_field_nearest_int),
	(gst_alsa_link), (gst_alsa_close_audio):
	* ext/alsa/gstalsaplugin.c: (plugin_init):
	* ext/alsa/gstalsasink.c: (gst_alsasink_get_type),
	(gst_alsasink_dispose), (gst_alsasink_base_init),
	(gst_alsasink_class_init), (gst_alsasink_init),
	(gst_alsasink_getcaps), (set_hwparams), (set_swparams),
	(alsasink_parse_spec), (gst_alsasink_open), (gst_alsasink_close),
	(xrun_recovery), (gst_alsasink_write), (gst_alsasink_delay),
	(gst_alsasink_reset):
	* ext/alsa/gstalsasink.h:
	Implement alsasink with simple open/write/close API. 
	Make alsa dir build by disabling compilation of code.

2005-04-28  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/audio/audio.h:
	* gst-libs/gst/audio/audioclock.c:
	* gst-libs/gst/audio/audioclock.h:
	* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_get_type),
	(gst_audio_clock_class_init), (gst_audio_clock_init),
	(gst_audio_clock_new), (gst_audio_clock_get_internal_time):
	* gst-libs/gst/audio/gstaudioclock.h:
	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_get_type), (gst_audioringbuffer_class_init),
	(audioringbuffer_thread_func), (gst_audioringbuffer_init),
	(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
	(gst_audioringbuffer_play), (gst_audioringbuffer_stop),
	(gst_audioringbuffer_delay), (gst_audiosink_class_init),
	(gst_audiosink_create_ringbuffer):
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_baseaudiosink_class_init), (gst_baseaudiosink_init),
	(gst_baseaudiosink_get_clock), (gst_baseaudiosink_get_time),
	(gst_baseaudiosink_set_property), (gst_baseaudiosink_get_property),
	(build_linear_format), (debug_spec_caps), (debug_spec_buffer),
	(gst_baseaudiosink_setcaps), (gst_baseaudiosink_get_times),
	(gst_baseaudiosink_event), (gst_baseaudiosink_preroll),
	(gst_baseaudiosink_render), (gst_baseaudiosink_create_ringbuffer),
	(gst_baseaudiosink_callback), (gst_baseaudiosink_change_state):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ringbuffer_get_type),
	(gst_ringbuffer_init), (gst_ringbuffer_finalize),
	(gst_ringbuffer_set_callback), (gst_ringbuffer_acquire),
	(gst_ringbuffer_release), (gst_ringbuffer_play),
	(gst_ringbuffer_pause), (gst_ringbuffer_stop),
	(gst_ringbuffer_delay), (gst_ringbuffer_played_samples),
	(gst_ringbuffer_set_sample), (wait_segment),
	(gst_ringbuffer_commit), (gst_ringbuffer_prepare_read),
	(gst_ringbuffer_advance), (gst_ringbuffer_clear):
	* gst-libs/gst/audio/gstringbuffer.h:
	Make ringbuffer faster and more simple by removing the locks
	in the playback thread.
	Add sample accurate playback based on buffer sample offsets.
	Make the baseaudiosink provide a clock.
	Parse caps in the base class.
	Correctly handle seeking, flushing and state changes.

2005-04-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* gst/audioconvert/Makefile.am:
	* gst/audioscale/Makefile.am:
	  Fix part of the build.  Come on guys, autogen didn't even work :)

2005-04-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/media-info/.cvsignore:
	* gst-libs/gst/media-info/Makefile.am:
	* gst-libs/gst/media-info/README:
	* gst-libs/gst/media-info/media-info-priv.c:
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/media-info/media-info-test.c:
	* gst-libs/gst/media-info/media-info.c:
	* gst-libs/gst/media-info/media-info.h:
	* gst-libs/gst/media-info/media-info.vcproj:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-media-info-uninstalled.pc.in:
	* pkgconfig/gstreamer-media-info.pc.in:
	  Remove media-info, which is also successed by playbin (see Totem
	  implementation).

2005-04-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* examples/Makefile.am:
	* examples/gstplay/.cvsignore:
	* examples/gstplay/Makefile.am:
	* examples/gstplay/player.c:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/play/.cvsignore:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/play/play.c:
	* gst-libs/gst/play/play.h:
	* gst-libs/gst/play/play.vcproj:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-play-uninstalled.pc.in:
	* pkgconfig/gstreamer-play.pc.in:
	  Remove libgstplay, playbin is now the official successor.

2005-04-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/xwindowlistener/Makefile.am:
	* gst-libs/gst/xwindowlistener/xwindowlistener.c:
	* gst-libs/gst/xwindowlistener/xwindowlistener.h:
	  Remove deprecated xwindowlistener (I've moved xwindowlistening
	  in the v4l/v4l2 plugins over to serverside).

2005-04-25  David Schleef  <ds@schleef.org>

	* examples/dynparams/Makefile.am: Move demo-dparams from gst/sine
	to examples/dynparams.  Examples do not belong interspersed with
	source code.
	* examples/dynparams/demo-dparams.c:
	* gst/sine/Makefile.am:
	* gst/sine/demo-dparams.c:

2005-04-25  David Schleef  <ds@schleef.org>

	Don't use GST_PLUGIN_LDFLAGS, because these aren't plugins.
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/riff/Makefile.am:
	* gst-libs/gst/tag/Makefile.am:
	* gst-libs/gst/video/Makefile.am:
	* gst-libs/gst/xwindowlistener/Makefile.am:

	Convert to 0.9 API, seems to work:
	* sys/ximage/Makefile.am:
	* sys/ximage/ximagesink.c:

2005-04-24  David Schleef  <ds@schleef.org>

	Link plugins against libraries:
	* ext/alsa/Makefile.am:
	* gst/tcp/Makefile.am:

	Remove asm code that should be in liboil
	* gst/videoscale/Makefile.am:
	* gst/videoscale/videoscale_x86_asm.s:

	gettext wants these checked in:
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:

2005-04-24  David Schleef  <ds@schleef.org>

	Convert gst_main() to g_main_loop_run()
	* gst/playback/decodetest.c: (main):
	* gst/playback/test2.c: (main):
	* gst/playback/test3.c: (main):
	* gst/playback/test4.c: (main):

	Link plugins against libraries:
	* ext/libvisual/Makefile.am:
	* sys/xvimage/Makefile.am:

2005-04-24  David Schleef  <ds@schleef.org>

	* configure.ac: Remove idct and resample libs
	* gst-libs/gst/Makefile.am: same

	Remove usage of gst_library_load():
	* ext/alsa/gstalsaplugin.c: (plugin_init):
	* ext/libvisual/visual.c: (plugin_init):
	* ext/ogg/gstogg.c: (plugin_init):
	* ext/theora/theora.c: (plugin_init):
	* ext/vorbis/vorbis.c: (plugin_init):
	* gst-libs/gst/audio/gstaudiofiltertemplate.c: (plugin_init):
	* gst/audioscale/gstaudioscale.c:
	* gst/adder/gstadder.c: (plugin_init):
	* gst/audioconvert/plugin.c: (plugin_init):
	* sys/ximage/ximagesink.c: (plugin_init):
	* sys/xvimage/xvimagesink.c: (plugin_init):
	* gst/tcp/gsttcpplugin.c: (plugin_init):

	Link plugins against libraries:
	* ext/ogg/Makefile.am:
	* ext/theora/Makefile.am:
	* ext/vorbis/Makefile.am:
	* gst/audioconvert/Makefile.am:

	Create proper libraries:
	* gst-libs/gst/riff/Makefile.am:
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/video/Makefile.am:

	Move resample library to audioscale plugin directory:
	* gst-libs/gst/resample/Makefile.am:
	* gst-libs/gst/resample/README:
	* gst-libs/gst/resample/dtof.c:
	* gst-libs/gst/resample/dtos.c:
	* gst-libs/gst/resample/functable.c:
	* gst-libs/gst/resample/private.h:
	* gst-libs/gst/resample/resample.c:
	* gst-libs/gst/resample/resample.h:
	* gst-libs/gst/resample/resample.vcproj:
	* gst-libs/gst/resample/test.c:
	* gst/audioscale/Makefile.am:
	* gst/audioscale/README:
	* gst/audioscale/dtof.c:
	* gst/audioscale/dtos.c:
	* gst/audioscale/functable.c:
	* gst/audioscale/private.h:
	* gst/audioscale/resample.c:
	* gst/audioscale/resample.h:
	* gst/audioscale/test.c:

	Move tagedit library to gst-libs:
	* gst-libs/gst/tag/Makefile.am:
	* gst-libs/gst/tag/gstid3tag.c:
	* gst-libs/gst/tag/gsttagediting.c:
	* gst-libs/gst/tag/gsttageditingprivate.h:
	* gst-libs/gst/tag/gstvorbistag.c:
	* gst/tags/Makefile.am:
	* gst/tags/gstid3tag.c:
	* gst/tags/gstvorbistag.c:

	Fix for core changes:
	* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
	(gst_sinesrc_init), (gst_sinesrc_src_fixate), (gst_sinesrc_link),
	(gst_sinesrc_getrange):

2005-04-23  David Schleef  <ds@schleef.org>

	* gst-libs/gst/Makefile.am: Remove idct.  It hasn't been used
	in gst-plugins in a long time, and properly belongs in liboil.
	* gst-libs/gst/idct/Makefile.am:
	* gst-libs/gst/idct/README:
	* gst-libs/gst/idct/dct.h:
	* gst-libs/gst/idct/doieee:
	* gst-libs/gst/idct/fastintidct.c:
	* gst-libs/gst/idct/floatidct.c:
	* gst-libs/gst/idct/idct.c:
	* gst-libs/gst/idct/idct.h:
	* gst-libs/gst/idct/idtc.vcproj:
	* gst-libs/gst/idct/ieeetest.c:
	* gst-libs/gst/idct/intidct.c:

2005-04-20  Wim Taymans  <wim@fluendo.com>

	* docs/design-audiosinks.txt:
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/audio/TODO:
	* gst-libs/gst/audio/gstaudiosink.c:
	(gst_audioringbuffer_get_type), (gst_audioringbuffer_class_init),
	(audioringbuffer_thread_func), (gst_audioringbuffer_init),
	(gst_audioringbuffer_dispose), (gst_audioringbuffer_finalize),
	(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
	(gst_audioringbuffer_play), (gst_audioringbuffer_stop),
	(gst_audioringbuffer_delay), (gst_audiosink_base_init),
	(gst_audiosink_class_init), (gst_audiosink_init),
	(gst_audiosink_create_ringbuffer):
	* gst-libs/gst/audio/gstaudiosink.h:
	* gst-libs/gst/audio/gstbaseaudiosink.c:
	(gst_baseaudiosink_base_init), (gst_baseaudiosink_class_init),
	(gst_baseaudiosink_init), (gst_baseaudiosink_set_property),
	(gst_baseaudiosink_get_property), (gst_baseaudiosink_setcaps),
	(gst_baseaudiosink_get_times), (gst_baseaudiosink_event),
	(gst_baseaudiosink_preroll), (gst_baseaudiosink_render),
	(gst_baseaudiosink_create_ringbuffer),
	(gst_baseaudiosink_callback), (gst_baseaudiosink_change_state):
	* gst-libs/gst/audio/gstbaseaudiosink.h:
	* gst-libs/gst/audio/gstringbuffer.c: (gst_ringbuffer_get_type),
	(gst_ringbuffer_class_init), (gst_ringbuffer_init),
	(gst_ringbuffer_dispose), (gst_ringbuffer_finalize),
	(gst_ringbuffer_set_callback), (gst_ringbuffer_acquire),
	(gst_ringbuffer_release), (gst_ringbuffer_play_unlocked),
	(gst_ringbuffer_play), (gst_ringbuffer_pause),
	(gst_ringbuffer_resume), (gst_ringbuffer_stop),
	(gst_ringbuffer_callback), (gst_ringbuffer_delay),
	(gst_ringbuffer_played_samples), (gst_ringbuffer_commit),
	(gst_ringbuffer_prepare_read), (gst_ringbuffer_clear):
	* gst-libs/gst/audio/gstringbuffer.h:
	An attempt at a set of audio base classes together with some
	design docs.

2005-04-20  Wim Taymans  <wim@fluendo.com>

	* gst/audioconvert/Makefile.am:
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_caps_remove_format_info),
	(gst_audio_convert_setcaps), (gst_audio_convert_fixate),
	(gst_audio_convert_channels):
	Link against audio libs.
	Fix audio convert plugin.

2005-04-20  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_factory_filter),
	(gst_ogg_demux_sink_activate):
	* ext/theora/theoraenc.c: (theora_enc_sink_setcaps),
	(theora_set_header_on_caps), (theora_enc_sink_event),
	(theora_enc_chain):
	Fix theora encoder.

2005-04-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_factory_filter):
	* gst/playback/gstdecodebin.c: (find_compatibles):
	  Work with staticpadtemplates in elementfactories.

2005-04-12  Wim Taymans  <wim@fluendo.com>

	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(compare_ranks), (print_feature), (gst_decode_bin_init),
	(dynamic_create), (dynamic_free), (find_compatibles),
	(mimetype_is_raw), (close_pad_link), (got_redirect),
	(try_to_link_1), (get_our_ghost_pad), (remove_element_chain),
	(new_pad), (no_more_pads), (unlinked), (close_link), (type_found),
	(gst_decode_bin_change_state):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_init), (group_destroy), (group_commit),
	(check_queue), (queue_overrun), (queue_threshold_reached),
	(queue_out_of_data), (gen_preroll_element), (unknown_type),
	(new_decoded_pad), (setup_subtitle), (gen_source_element),
	(got_redirect), (setup_source), (play_base_eos),
	(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_init), (gst_play_bin_dispose),
	(gst_play_bin_set_property), (gen_video_element),
	(gen_text_element), (gen_audio_element), (remove_sinks),
	(gst_play_bin_send_event):
	* gst/playback/gststreaminfo.c: (gst_stream_info_dispose),
	(stream_info_change_state), (gst_stream_info_set_mute):
	* gst/playback/gststreamselector.c: (gst_stream_selector_init),
	(gst_stream_selector_get_caps), (gst_stream_selector_setcaps),
	(gst_stream_selector_request_new_pad), (gst_stream_selector_event),
	(gst_stream_selector_chain):
	* gst/playback/test.c: (gen_video_element), (gen_audio_element),
	(main):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_getcaps),
	(gst_xvimagesink_setcaps), (gst_xvimagesink_get_times),
	(gst_xvimagesink_show_frame), (gst_xvimagesink_chain),
	(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_class_init):
	Raw and crude port of decodebin. 
	Make playbin compile.

2005-04-06  Wim Taymans  <wim@fluendo.com>

	* ext/gnomevfs/Makefile.am:
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get_type),
	(gst_gnomevfssrc_class_init), (gst_gnomevfssrc_init),
	(gst_gnomevfssrc_set_property), (gst_gnomevfssrc_get_property),
	(gst_gnomevfssrc_create), (gst_gnomevfssrc_is_seekable),
	(gst_gnomevfssrc_get_size), (gst_gnomevfssrc_start),
	(gst_gnomevfssrc_stop):
	* ext/ogg/Makefile.am:
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_get_data),
	(gst_ogg_demux_find_chains), (gst_ogg_demux_sink_activate):
	* ext/theora/Makefile.am:
	* ext/theora/theoradec.c: (_inc_granulepos),
	(theora_dec_sink_event), (theora_dec_chain):
	* ext/vorbis/Makefile.am:
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
	(vorbis_dec_sink_event), (vorbis_dec_chain):
	* gst-libs/gst/audio/Makefile.am:
	* sys/xvimage/Makefile.am:
	Make gnomevfssrc extend the source base class.
	Fix linking against libs in various plugins.

2005-04-06  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/video/Makefile.am (libgstvideo_la_LDFLAGS): Use
	GST_BASE_LIBS.

	* configure.ac: Add check and AC_SUBST for libgstbase.

2005-03-31  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/Makefile.am:
	* examples/seeking/cdparanoia.c: (main):
	* examples/seeking/cdplayer.c: (update_scale), (stop_seek),
	(play_cb), (pause_cb), (stop_cb), (main):
	* examples/seeking/playbin.c:
	* examples/seeking/seek.c: (dynamic_link), (make_mod_pipeline),
	(make_dv_pipeline), (make_wav_pipeline), (make_flac_pipeline),
	(make_sid_pipeline), (make_vorbis_pipeline),
	(make_theora_pipeline), (make_vorbis_theora_pipeline),
	(make_avi_msmpeg4v3_mp3_pipeline), (make_mp3_pipeline),
	(make_avi_pipeline), (make_mpeg_pipeline), (make_mpegnt_pipeline),
	(make_playerbin_pipeline), (update_scale), (end_scrub), (do_seek),
	(seek_cb), (start_seek), (stop_seek), (play_cb), (pause_cb),
	(stop_cb), (main):
	* examples/seeking/spider_seek.c:
	* examples/seeking/vorbisfile.c:
	* ext/gnomevfs/Makefile.am:
	* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_base_init),
	(gst_gnomevfssrc_class_init), (gst_gnomevfssrc_init),
	(gst_gnomevfssrc_get_property), (gst_gnomevfssrc_get),
	(gst_gnomevfssrc_open_file), (gst_gnomevfssrc_close_file),
	(gst_gnomevfssrc_getrange), (gst_gnomevfssrc_loop),
	(gst_gnomevfssrc_activate), (gst_gnomevfssrc_change_state),
	(gst_gnomevfssrc_srcpad_query), (gst_gnomevfssrc_srcpad_event):
	* ext/ogg/README:
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_get_type),
	(gst_ogg_pad_class_init), (gst_ogg_pad_init),
	(gst_ogg_pad_dispose), (gst_ogg_pad_finalize),
	(gst_ogg_pad_formats), (gst_ogg_pad_event_masks),
	(gst_ogg_pad_query_types), (gst_ogg_pad_getcaps),
	(gst_ogg_pad_src_convert), (gst_ogg_pad_src_query),
	(gst_ogg_pad_event), (gst_ogg_pad_reset),
	(gst_ogg_demux_factory_filter), (compare_ranks),
	(gst_ogg_pad_internal_chain), (gst_ogg_pad_typefind),
	(gst_ogg_pad_submit_packet), (gst_ogg_pad_submit_page),
	(gst_ogg_chain_new), (gst_ogg_chain_free),
	(gst_ogg_chain_new_stream), (gst_ogg_chain_get_stream),
	(gst_ogg_chain_has_stream), (gst_ogg_demux_base_init),
	(gst_ogg_demux_class_init), (gst_ogg_demux_init),
	(gst_ogg_demux_finalize), (gst_ogg_demux_handle_event),
	(gst_ogg_demux_submit_buffer), (gst_ogg_demux_seek),
	(gst_ogg_demux_get_data), (gst_ogg_demux_get_next_page),
	(gst_ogg_demux_get_prev_page),
	(gst_ogg_demux_deactivate_current_chain),
	(gst_ogg_demux_activate_chain), (gst_ogg_demux_perform_seek),
	(gst_ogg_demux_bisect_forward_serialno),
	(gst_ogg_demux_read_chain), (gst_ogg_demux_read_end_chain),
	(gst_ogg_demux_find_pad), (gst_ogg_demux_find_chain),
	(gst_ogg_demux_find_chains), (gst_ogg_demux_chain_unlocked),
	(gst_ogg_demux_chain), (gst_ogg_demux_send_eos),
	(gst_ogg_demux_loop), (gst_ogg_demux_sink_activate),
	(gst_ogg_demux_change_state), (gst_ogg_print):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init),
	(gst_ogg_mux_init), (gst_ogg_mux_sinkconnect),
	(gst_ogg_mux_next_buffer), (gst_ogg_mux_buffer_from_page),
	(gst_ogg_mux_push_page), (gst_ogg_mux_send_headers),
	(gst_ogg_mux_loop):
	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	* ext/theora/theoradec.c: (gst_theora_dec_init), (_inc_granulepos),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event),
	(theora_dec_sink_event), (theora_dec_chain),
	(theora_dec_change_state):
	* ext/theora/theoraenc.c: (gst_theora_enc_init),
	(theora_enc_sink_setcaps), (theora_buffer_from_packet),
	(theora_push_buffer), (theora_enc_sink_event), (theora_enc_chain),
	(theora_enc_change_state):
	* ext/vorbis/Makefile.am:
	* ext/vorbis/oggvorbisenc.c:
	* ext/vorbis/oggvorbisenc.h:
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init),
	(vorbis_dec_src_query), (vorbis_dec_src_event),
	(vorbis_dec_sink_event), (vorbis_dec_chain),
	(vorbis_dec_change_state):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_class_init),
	(gst_vorbisenc_sink_setcaps), (gst_vorbisenc_init),
	(gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_push_buffer),
	(gst_vorbisenc_sink_event), (gst_vorbisenc_chain),
	(gst_vorbisenc_change_state):
	* ext/vorbis/vorbisenc.h:
	* ext/vorbis/vorbisparse.c: (vorbis_parse_chain):
	* gst-libs/gst/audio/audioclock.c:
	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link),
	(gst_audiofilter_init), (gst_audiofilter_chain):
	* gst-libs/gst/audio/testchannels.c: (main):
	* gst-libs/gst/gconf/gconf.c: (gst_bin_find_unconnected_pad):
	* gst-libs/gst/media-info/media-info-priv.c: (gmip_reset),
	(gmip_find_type), (gmip_find_stream), (gmip_find_track_metadata),
	(gmip_find_track_streaminfo), (gmip_find_track_format):
	* gst-libs/gst/media-info/media-info.c:
	(gst_media_info_read_idler):
	* gst-libs/gst/play/play.c: (gst_play_get_sink_element),
	(gst_play_get_all_by_interface):
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk),
	(gst_riff_parse_chunk), (gst_riff_parse_file_header),
	(gst_riff_parse_strh), (gst_riff_parse_strf_vids),
	(gst_riff_parse_strf_auds), (gst_riff_parse_strf_iavs),
	(gst_riff_parse_info):
	* gst-libs/gst/riff/riff-read.h:
	* gst-libs/gst/riff/riff.c: (plugin_init):
	* gst-libs/gst/video/Makefile.am:
	* gst-libs/gst/video/gstvideosink.c: (gst_videosink_init),
	(gst_videosink_class_init), (gst_videosink_get_type):
	* gst-libs/gst/video/videosink.h:
	* gst/audioconvert/bufferframesconvert.c:
	(buffer_frames_convert_init), (buffer_frames_convert_fixate),
	(buffer_frames_convert_setcaps), (buffer_frames_convert_chain):
	* gst/audioconvert/channelmixtest.c: (main):
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init),
	(gst_audio_convert_chain),
	(gst_audio_convert_caps_remove_format_info),
	(gst_audio_convert_getcaps), (gst_audio_convert_parse_caps),
	(gst_audio_convert_setcaps), (_fixate_caps_to_int),
	(gst_audio_convert_fixate), (gst_audio_convert_get_buffer),
	(gst_audio_convert_buffer_to_default_format),
	(gst_audio_convert_buffer_from_default_format),
	(gst_audio_convert_channels):
	* gst/audioconvert/gstchannelmix.h:
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info), (gst_ffmpegcsp_getcaps),
	(gst_ffmpegcsp_configure_context), (gst_ffmpegcsp_setcaps),
	(gst_ffmpegcsp_init), (gst_ffmpegcsp_chain):
	* gst/tags/gstid3tag.c: (gst_tag_extract_id3v1_string):
	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain):
	* gst/typefind/gsttypefindfunctions.c: (aac_type_find),
	(mp3_type_find), (mpeg2_sys_type_find), (mpeg1_sys_type_find),
	(mpeg_video_type_find), (mpeg_video_stream_type_find),
	(dv_type_find):
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_class_init), (gst_videotestsrc_src_negotiate),
	(gst_videotestsrc_src_link), (gst_videotestsrc_parse_caps),
	(gst_videotestsrc_src_accept_caps), (gst_videotestsrc_setcaps),
	(gst_videotestsrc_src_unlink), (gst_videotestsrc_activate),
	(gst_videotestsrc_change_state), (gst_videotestsrc_getcaps),
	(gst_videotestsrc_init), (gst_videotestsrc_src_query),
	(gst_videotestsrc_handle_src_event), (gst_videotestsrc_loop):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_xcontext_clear), (gst_xvimagesink_fixate),
	(gst_xvimagesink_getcaps), (gst_xvimagesink_setcaps),
	(gst_xvimagesink_change_state), (gst_xvimagesink_get_times),
	(gst_xvimagesink_show_frame), (gst_xvimagesink_chain),
	(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_navigation_send_event),
	(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_expose),
	(gst_xvimagesink_set_property), (gst_xvimagesink_finalize),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h:
	Plugin port to 0.9, ogg/theora playback should work in the seek
	example now.
	Removed old examples.
	Removed old oggvorbisenc, renamed rawvorbisenc to vorbisenc as
	explained in 0.9 TODO doc.


2005-02-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* autogen.sh:
	* configure.ac:
	* ext/Makefile.am:
	* gst/Makefile.am:
	* po/POTFILES.in:
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	* po/vi.po:
	* sys/Makefile.am:
	* testsuite/Makefile.am:
	  remove a whole bunch of plugins.  This module now contains a set
	  of free reference plugins/elements as agreed.

2005-02-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  hunting season on 0.9 is now OPEN

2005-02-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
	  Kick the hell out of gcc for not warning me about a symbol conflict.

2005-02-22  Luca Ognibene  <luogni@tin.it>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_link):
	  Don't leak caps string (fixes #168134)

	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init),
	(gst_jpegenc_init), (gst_jpegenc_finalize),
	(gst_jpegenc_change_state):
	  Don't leak line buffers and context struct (fixes #168133).

2005-02-21  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/dirac/gstdiracdec.cc:
	(gst_diracdec_chain):
	  Since dirac 0.5.0 the framerate in dirac is expressed as a
	  rational number. Fix build and up requirement to 0.5.0, and
	  also pass parameters to gst_diracdec_link in the right order
	  (fixes #167959).

2005-02-21  Maciej Katafiasz  <mathrick@freedesktop.org>

	* ext/faad/gstfaad.c: (gst_faad_sinkconnect), (gst_faad_chain):
	* ext/faad/gstfaad.h:
	TEH LONGEST DEBUGGING SESSION EVAR is over. Fix interaction with 
	certain invalid muxed streams, where some packets will contain 
	junk after decoder data. Partially fixes #149158.

2005-02-21  Jan Schmidt <thaytan@mad.scientist.com>
	* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain):
	  Make sure we only write to writable buffers

2005-02-20  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data):
	  Do actually fix invalid RIFF fmt header values for alaw
	  and mulaw audio instead of just saying so.

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
	  Give gst_riff_create_audio_caps_with_data() a chance to
	  fix up broken format header fields before extracting any
	  parameters from the header. (fixes #167633)

2005-02-19  Martin Holters  <martin.holters@gmx.de>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/audioconvert/bufferframesconvert.c:
	(buffer_frames_convert_link):
	  Don't leak othercaps. (fixes #167878)

2005-02-19  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* configure.ac:
	* ext/libvisual/visual.c: (gst_visual_srclink),
	(gst_visual_change_state):
	  Support libvisual 0.2.0.

2005-02-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_chain):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_resync), (gst_jpegenc_chain):
	  Use same rowstrides for I420 as used everywhere else.

2005-02-17  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_invert):
	  Declare variables at beginning of block and make gcc-2.95 happy
	  (fixes # 167482, patch by Gergely Nagy).
	  
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpclientsrc.h:
	  Move some includes into the header, so that struct sockaddr_in is
	  defined when it should be defined on FreeBSD as well (fixes
	  #167483).
	  
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive):
	  Don't pass uninitialised values to setsockopt() here either.

2005-02-17  Luca Ognibene  <luogni at tin dot it>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init_send):
	  Don't pass uninitialised values to setsockopt(). (fixes #167704)

2005-02-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (add_sink):
	  Invert bin_add/link order to workaround deadlock in opt.

2005-02-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/modplug/gstmodplug.cc:
	  Add missing break causing position queries to fail.

2005-02-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_populate):
	  Granpos can apparently be -1, which screws up calculations...

2005-02-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
	(gst_ximagesink_send_pending_navigation),
	(gst_ximagesink_navigation_send_event), (gst_ximagesink_finalize),
	(gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
	(gst_xvimagesink_send_pending_navigation),
	(gst_xvimagesink_navigation_send_event),
	(gst_xvimagesink_finalize), (gst_xvimagesink_init):
	* sys/xvimage/xvimagesink.h:
	  Use a mutex protected list to marshal navigation
	  events into the stream thread from whichever thread
	  sends them.

2005-02-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/speed/demo-mp3.c: (time_tick_cb), (main):
	  Display current position and track length; misc. clean-ups.
	  
	* gst/speed/gstspeed.c: (speed_get_query_types), (speed_src_query),
	(speed_init), (speed_chain):
	  Add query function, so that the stream length and current position
	  get adjusted when queried (note that current position queries may
	  still be wrong if the audio sink returns values based on buffer
	  timestamps instead of passing on the query).

2005-02-13  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link),
	(gst_audio_convert_channels):
	  create channel conversion matrix when linking
	* gst/audioconvert/.cvsignore:
	* gst/audioconvert/Makefile.am:
	* gst/audioconvert/channelmixtest.c: (main):
	  add (ugly) test that ensures stereo <=> mono conversion works
	  correctly

2005-02-13  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstchannelmix.h:
	  include missing header file
	* gst/audioconvert/gstchannelmix.c:
	(gst_audio_convert_fill_compatible):
	  use same sign for both channels when converting to/from compatible
	  channel. Previously used different signs made the signals cancel
	  each other out and appear like silence. (fixes #167269)

2005-02-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c:
	  Convert to and from YV12 (fixes #156379).

2005-02-12  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new),
	(gst_ximagesink_sink_link), (gst_ximagesink_change_state),
	(gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id),
	(gst_ximagesink_expose), (gst_ximagesink_set_property),
	(gst_ximagesink_finalize), (gst_ximagesink_init): Protect interface
	methods from chain and negotiation and vice versa (Fixes #166142).
	* sys/ximage/ximagesink.h: Add stream_lock.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
	(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_expose): Check for xcontext before trying to link.

2005-02-12  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_open):
	  Don't send "Hey! You gave me a NULL pointer you naughty person" as
	  error message when we can't open the DVD device (when dvdnav_open()
	  fails, src->dvdnav is NULL, so dvdnav_err_to_string() will return
	  the above). Send something more useful instead (fixes #167117).

2005-02-11  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
	(gst_xvimagesink_sink_link), (gst_xvimagesink_change_state),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
	(gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id),
	(gst_xvimagesink_expose), (gst_xvimagesink_set_property),
	(gst_xvimagesink_finalize), (gst_xvimagesink_init): Protect interface
	methods from chain and negotiation and vice versa (Fixes #166142).
	Fix a possible bug of images in the buffer pool being discarded because
	we are looking at the wrong geometry.
	* sys/xvimage/xvimagesink.h: Add stream_lock.

2005-02-11  David Schleef  <ds@schleef.org>

	* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer): Change uint to
	unsigned int. (fixes #167128)

2005-02-11  David Schleef  <ds@schleef.org>

	* gst/librfb/Makefile.am: Testing stuff before committing is
	  for wimps... and people with fast machines.  Fix stupid
	  mistake.

2005-02-11  David Schleef  <ds@schleef.org>

	* configure.ac: Pull in librfb from my CVS tree, because it is
	  too small and annoying to be separate.  Move rfbsrc plugin
	  to gst/.
	* ext/Makefile.am:
	* ext/librfb/Makefile.am:
	* ext/librfb/gstrfbsrc.c:
	* gst/librfb/Makefile.am:
	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfb.c:
	* gst/librfb/rfb.h:
	* gst/librfb/rfbbuffer.c:
	* gst/librfb/rfbbuffer.h:
	* gst/librfb/rfbbytestream.c:
	* gst/librfb/rfbbytestream.h:
	* gst/librfb/rfbcontext.h:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	* gst/librfb/rfbutil.h:

2005-02-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/speed/Makefile.am:
	* gst/speed/demo-mp3.c: (main):
	* gst/speed/filter.func:
	* gst/speed/gstspeed.c: (speed_link), (speed_parse_caps),
	(speed_class_init), (speed_init), (speed_chain_int16),
	(speed_chain_float32), (speed_chain), (speed_set_property),
	(speed_get_property), (speed_change_state):
	* gst/speed/gstspeed.h:
	  Fix speed element and make it chain-based (fixes #156467),
	  and make it handle more than one channel.

2005-02-10  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dts/gstdtsdec.c: (gst_dtsdec_init), (gst_dtsdec_channels),
	(gst_dtsdec_handle_event), (gst_dtsdec_handle_frame),
	(gst_dtsdec_chain), (gst_dtsdec_change_state):
	* ext/dts/gstdtsdec.h:
	  Don't clobber the stack constructing the channels array.
	  Make the element chain-based. DTS tracks can now be played.
	  
2005-02-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-libs/gst/audio/multichannel.h:
	* gst-libs/gst/gconf/gconf.h:
	* gst-libs/gst/idct/idct.h:
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/play/play.h:
	* gst-libs/gst/resample/private.h:
	* gst-libs/gst/resample/resample.h:
	* gst-libs/gst/riff/riff-ids.h:
	* gst-libs/gst/video/video.h:
	* gst-libs/gst/video/videosink.h:
	  Add G_BEGIN_DECLS and G_END_DECLS around headers where
	  missing, so that they work when included from C++ code.

2005-02-09  David Schleef  <ds@schleef.org>

	* testsuite/gst-lint: Check for non-statically scoped
	  parent_class variables.  This won't be a problem once
	  plugins are loaded with RTLD_LOCAL.

2005-02-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mplex/gstmplexibitstream.cc:
	  gcc madness.

2005-02-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstogmparse.c:
	* gst/debug/gstnavigationtest.c:
	  Die, thou faulty symbol pollutors (non-static parent_class).

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mplex/gstmplexibitstream.cc:
	  Fix event handling (#165525).

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mikmod/gstmikmod.c:
	* gst/modplug/gstmodplug.cc:
	  Add missing endianness to template (fixes #165509).

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_data):
	  Fix wrong order of reading of optional bytes (#165290).

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  Implement FILLER event awareness.

2005-02-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_convert):
	  Fix track calculations (#166208).

2005-02-08  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_init), (gst_pngdec_chain):
	* ext/libpng/gstpngenc.c:
	  Fix byte-order, use proper fixed caps. Fixes #164197.

2005-02-08  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Add dvdlpcmdec 

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_reset),
	(free_all_buffers), (gst_mpeg2dec_alloc_buffer):
	  Don't push buffers if the src pad isn't negotiated yet.
	  
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_buffer_to_default_format),
	(gst_audio_convert_buffer_from_default_format):
	  Add support for 24-bit width.

	* gst/dvdlpcmdec/.cvsignore:
	* gst/dvdlpcmdec/Makefile.am:
	* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_get_type),
	(gst_dvdlpcmdec_base_init), (gst_dvdlpcmdec_class_init),
	(gst_dvdlpcm_reset), (gst_dvdlpcmdec_init), (gst_dvdlpcmdec_link),
	(gst_dvdlpcmdec_chain), (gst_dvdlpcmdec_change_state),
	(plugin_init):
	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
	  New decoder for rearranging DVD LPCM into our audio/x-raw-int
	  format. Needs support for the channels maps if someone can find 
	  a DVD LPCM track with > 2 channels.

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_handle_dvd_event),
	(gst_dvd_demux_send_discont), (gst_dvd_demux_handle_discont),
	(gst_dvd_demux_get_audio_stream), (gst_dvd_demux_process_private):
	* gst/mpegstream/gstdvddemux.h:
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont),
	(gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_init_stream),
	(gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_handle_src_query):
	* gst/mpegstream/gstmpegdemux.h:
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_reset),
	(gst_mpeg_parse_parse_packhead), (gst_mpeg_parse_loop),
	(gst_mpeg_parse_get_rate), (gst_mpeg_parse_convert_src),
	(gst_mpeg_parse_handle_src_query),
	(gst_mpeg_parse_handle_src_event):
	  Use audio/x-dvd-lpcm for LPCM output.
	  Add DTS output.

2005-02-08  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/alpha/gstalphacolor.c: (gst_alpha_color_sink_link),
	(transform_rgb), (transform_bgr), (gst_alpha_color_chain):
	  Add BGRA handling (#165736).

2005-02-08  Francis Labonte  <francis_labonte@hotmail.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/law/alaw-decode.c: (alawdec_link):
	* gst/law/alaw-encode.c: (alawenc_link):
	* gst/law/mulaw-decode.c: (mulawdec_link):
	* gst/law/mulaw-encode.c: (mulawenc_link):
	  Fix caps memleaks (#166600).

2005-02-08  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/tarkin/mem.h:
	* ext/tarkin/wavelet.h:
	* ext/tarkin/yuv.h:
	* gst/ffmpegcolorspace/avcodec.h:
	  Include "_stdint.h" instead of <stdint.h>. Fixes build on
	  systems that don't have stdint.h, like Solaris9 (fixes #166631).

2005-02-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_change_state):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_clear),
	(gst_xvimagesink_change_state):
	  Clear window on PAUSED->READY instead of READY->PAUSED. Stop
	  Xv video (and thereby regenerate Xv colourkey) in clear() so
	  that PLAY -> READY -> PLAY works (fixes #162504).

2005-02-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_getcaps):
	  Switch to list instead of range, since MJPEG-devices really just
	  support decimations, not any size.

2005-02-05  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_open_decoder),
	(gst_mpeg2dec_reset), (free_all_buffers),
	(gst_mpeg2dec_alloc_buffer), (handle_sequence):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  The libmpeg2 user-allocated buffer management is awkward, 
	  to say the least. Hopefully this fixes things.

2005-02-04  Andy Wingo  <wingo@pobox.com>

	* gst/audioconvert/bufferframesconvert.c
	(buffer_frames_convert_fixate): New function, fixates to 256
	frames per buffer by default. (Much better than 1.)
	(buffer_frames_convert_init): Set the fixate function for both src
	and sink pad.
	(buffer_frames_convert_link): After success setting nonfixed caps,
	get the negotiated caps so we can know how many buffer-frames it
	will be. No idea how this worked at all before.

2005-02-05  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
	(gst_mpeg2dec_close_decoder), (put_buffer), (check_buffer),
	(free_buffer), (free_all_buffers), (gst_mpeg2dec_alloc_buffer),
	(handle_sequence), (handle_picture):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  Rearrange buffer tracking and refcounting and refactor
	  a little for readability. 

2005-02-04  Jan Schmidt  <thaytan@mad.scientist.com>
	* sys/v4l/gstv4l.c: (plugin_init):
	* sys/v4l/gstv4ljpegsrc.c: (gst_v4ljpegsrc_get_type),
	(gst_v4ljpegsrc_base_init), (gst_v4ljpegsrc_class_init),
	(gst_v4ljpegsrc_init), (gst_v4ljpegsrc_src_link),
	(gst_v4ljpegsrc_getcaps), (gst_v4ljpegsrc_get):
	* sys/v4l/gstv4ljpegsrc.h:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_open), (gst_v4lsrc_src_link):
	* sys/v4l/v4l_calls.h:
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_palette_name),
	(gst_v4lsrc_get_fps):
	* sys/v4l/v4lsrc_calls.h:
	  Add new v4ljpegsrc for handling the ov51x hacky "I'll give
	  you jpeg inside rgb frames" driver.
	  Don't error in the v4lsrc link function, just return 
	  REFUSED.

2005-02-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state),
	(gst_qcamsrc_open):
	  Use GST_ELEMENT_ERROR, not g_warning, if open failed.

2005-02-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Change caps on MJPEG-B so it doesn't interfere with MJPEG/JPEG.

2005-02-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_change_state):
	  Reset negotiated state on PAUSED->READY.

2005-02-02  David Schleef  <ds@schleef.org>

	* configure.ac: Put DEFAULT_AUDIOSINK in config.h and use
	whereever possible.  (Fixes #165997)
	* examples/capsfilter/capsfilter1.c: (main):
	* examples/dynparams/filter.c: (create_ui):
	* examples/seeking/cdparanoia.c: (get_track_info), (main):
	* examples/seeking/chained.c: (main):
	* examples/seeking/seek.c: (make_mod_pipeline), (make_dv_pipeline),
	(make_wav_pipeline), (make_flac_pipeline), (make_sid_pipeline),
	(make_vorbis_pipeline), (make_mp3_pipeline), (make_avi_pipeline),
	(make_mpeg_pipeline), (make_mpegnt_pipeline):
	* examples/seeking/spider_seek.c: (make_spider_pipeline):
	* examples/switch/switcher.c: (main):
	* ext/dv/demo-play.c: (main):
	* ext/faad/gstfaad.c: (gst_faad_change_state):
	* ext/mad/gstmad.c: (gst_mad_chain):
	* ext/smoothwave/demo-osssrc.c: (main):
	* gst-libs/gst/gconf/gconf.c: (gst_gconf_set_string),
	(gst_gconf_render_bin_from_description),
	(gst_gconf_get_default_audio_sink),
	(gst_gconf_get_default_video_sink),
	(gst_gconf_get_default_audio_src),
	(gst_gconf_get_default_video_src),
	(gst_gconf_get_default_visualization_element):
	* gst/level/demo.c: (main):
	* gst/level/plot.c: (main):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	* gst/playback/test.c: (gen_video_element), (gen_audio_element):
	* gst/playondemand/demo-mp3.c: (setup_pipeline):
	* gst/sine/demo-dparams.c: (main):
	* gst/spectrum/demo-osssrc.c: (main):
	* gst/speed/demo-mp3.c: (main):
	* gst/volume/demo.c: (main):
	* testsuite/embed/embed.c: (main):

2005-02-02  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_class_init),
	(gst_tcpclientsink_finalize):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init),
	(gst_tcpclientsrc_finalize):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_init), (gst_tcpserversink_finalize):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init),
	(gst_tcpserversrc_init), (gst_tcpserversrc_finalize):
	  Don't leak the hostname when shutting down.
	  In tcpserversrc, take a copy of the default hostname.

2005-02-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_iso_receive):
	  Set caps to systemstream=TRUE.

2005-02-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* testsuite/Makefile.am:
	  Fix more OSX buildbots.

2005-02-02  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/mpeg2dec/gstmpeg2dec.c:
	  Don't send things to NULL PAD_PEERs

	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_chain):
	  Copy-on-write the incoming buffer.

	* gst/mpegstream/gstdvddemux.h:
	* gst/mpegstream/gstmpegclock.h:
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead),
	(normal_seek), (gst_mpeg_demux_handle_src_event):
	* gst/mpegstream/gstmpegdemux.h:
	* gst/mpegstream/gstmpegpacketize.h:
	* gst/mpegstream/gstmpegparse.c:
	(gst_mpeg_parse_update_streaminfo), (gst_mpeg_parse_reset),
	(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead),
	(gst_mpeg_parse_loop), (gst_mpeg_parse_get_rate),
	(gst_mpeg_parse_convert_src), (gst_mpeg_parse_handle_src_query),
	(gst_mpeg_parse_handle_src_event), (gst_mpeg_parse_change_state):
	* gst/mpegstream/gstmpegparse.h:
	* gst/mpegstream/gstrfc2250enc.h:
	  Various changes to the way time is computed that make seeking and
	  total time estimation much better here.
	  Use G_BEGIN/END_DECLS instead of __cplusplus

	* gst/videocrop/gstvideocrop.c: (gst_video_crop_chain):
	  Use gst_buffer_stamp instead of only copying the TIMESTAMP

2005-02-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/subparse/gstsubparse.c:
	  Fix OSX buildbot.

2005-01-31  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/theora/theoraenc.c: (theora_buffer_from_packet),
	(theora_enc_chain), (theora_enc_change_state):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_init),
	(gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_chain),
	(gst_vorbisenc_change_state):
	* ext/vorbis/vorbisenc.h:
	  Set granulepos and timestamp correctly for streams not
	  starting at 0, taking into account the initial delay.

2005-01-31  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/mpegstream/gstdvddemux.c:
	  Add audio/x-dts to audio pad template caps

2005-01-30  David Schleef  <ds@schleef.org>

	* ext/polyp/polypsink.c: (gst_polypsink_base_init),
	(create_context), (gst_polypsink_link): Fix silly endianness
	bug.  Add some debugging.  Remove float from caps; it doesn't
	work.  Attempt to get remote audio working.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add 3IV2 fourcc.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream), (swap_line),
	(gst_avi_demux_invert), (gst_avi_demux_process_next_entry),
	(gst_avi_demux_stream_data):
	* gst/avi/gstavidemux.h:
	  Invert DIB images. Fixes #132341.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_chain):
	  D'oh, reference the palette data, not the palette structure.
	  Fixes color distortion in #132341.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_link):
	  PAR can be non-fixed when not provided as argument (#162626).

2005-01-29  David Moore  <dcm@acm.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header):
	  Re-apply patch from #142272 that allows non-seekable sources,
	  re-proposed by Daniel Drake <dsd@gentoo.org>.

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/rtp/gstrtpgsmenc.c: (gst_rtpgsmenc_init):
	  Use the src template for creating the src pad (#162330).

2005-01-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/musepack/Makefile.am:
	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_class_init),
	(gst_musepackdec_init), (gst_musepackdec_dispose),
	(gst_musepackdec_src_query), (gst_musepackdec_src_convert),
	(gst_musepack_stream_init), (gst_musepackdec_loop),
	(gst_musepackdec_change_state):
	* ext/musepack/gstmusepackdec.cpp:
	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek),
	(gst_musepack_reader_read), (gst_musepack_reader_seek),
	(gst_musepack_reader_tell), (gst_musepack_reader_get_size),
	(gst_musepack_reader_canseek), (gst_musepack_init_reader):
	* ext/musepack/gstmusepackreader.cpp:
	* ext/musepack/gstmusepackreader.h:
	  Update to 1.1 API (#165446).

2005-01-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/Makefile.am:
	  Unbreak buildbot.

2005-01-28  Andy Wingo  <wingo@pobox.com>

	* ext/dv/gstdvdec.c: Change the pixel aspect ratio of dvdec output
	to reflect a different dubious internet source. Add a reference
	and some commentary.

2005-01-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gststreamselector.c: (gst_stream_selector_init),
	(gst_stream_selector_get_caps), (gst_stream_selector_chain):
	* gst/playback/gststreamselector.h:
	  Be more selective when we're redoing caps negotiation from
	  within the chain function on a stream change.

2005-01-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/amrnb/Makefile.am:
	* ext/amrnb/amrnb.c: (plugin_init):
	* ext/amrnb/amrnbdec.c: (gst_amrnbdec_get_type),
	(gst_amrnbdec_base_init), (gst_amrnbdec_class_init),
	(gst_amrnbdec_init), (gst_amrnbdec_link), (gst_amrnbdec_chain),
	(gst_amrnbdec_state_change):
	* ext/amrnb/amrnbdec.h:
	* ext/amrnb/amrnbparse.c: (gst_amrnbparse_get_type),
	(gst_amrnbparse_base_init), (gst_amrnbparse_class_init),
	(gst_amrnbparse_init), (gst_amrnbparse_formats),
	(gst_amrnbparse_querytypes), (gst_amrnbparse_query),
	(gst_amrnbparse_handle_event), (gst_amrnbparse_reserve),
	(gst_amrnbparse_loop), (gst_amrnbparse_state_change):
	* ext/amrnb/amrnbparse.h:
	  Add support for AMR-NB (mobile phone audio format; #155163, #163286).
	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Add AMR-NB/-WB raw formats.
	* ext/alsa/gstalsa.c: (gst_alsa_link):
	  Keep valid time when changing format.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse_trak):
	  Add some more format-specific options (#140141, #143555, #155163).

2005-01-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup):
	  Fix logic error in timing of subtitle stream synchronization.
	* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
	  Add skip-chunk, which is found in kodak-camera streams.

2005-01-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/vi.po:
	  Adding Vietnamese translation (submitted by Clytie Siddall)

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (try_to_link_1):
	  Use realpad for signal.

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstid3demuxbin.c: (gst_id3demux_bin_base_init):
	  Fix category so decodebin picks it up.

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/Makefile.am:
	* ext/mad/gstid3demuxbin.c: (gst_id3demux_bin_get_type),
	(gst_id3demux_bin_base_init), (gst_id3demux_bin_class_init),
	(gst_id3demux_bin_init), (gst_id3demux_bin_remove_pad),
	(found_type), (gst_id3demux_bin_change_state):
	* ext/mad/gstid3tag.c: (gst_id3_tag_add_src_pad),
	(gst_id3_tag_init), (gst_id3_tag_handle_event),
	(gst_id3_tag_src_link), (gst_id3_tag_chain),
	(gst_id3_tag_change_state), (plugin_init):
	* ext/mad/gstmad.h:
	  Add id3demuxbin (which is a simple bin consisting of id3demux
	  and typefind), take over rank from id3demux, remove typefind
	  code from id3demux. Makes all broken mp3s that I know of work,
	  and thereby fixes #152688.

2005-01-27  Edward Hervey  <bilboed@bilboed.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_src_event):
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event):
	  Allow seeks on audio pad, make mad forward those (#164826).
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
	  Set duration (#165335).

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
	(gst_asf_demux_commit_taglist), (gst_asf_demux_process_comment),
	(gst_asf_demux_process_ext_content_desc),
	(gst_asf_demux_change_state), (gst_asf_demux_add_audio_stream),
	(gst_asf_demux_add_video_stream), (gst_asf_demux_setup_pad):
	* gst/asfdemux/gstasfdemux.h:
	  Improve metadata display, e.g. if the metadata comes before the
	  streams are loaded (which is perfectly valid).

2005-01-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* tools/gst-launch-ext-m.m:
	  Fix AVI/ASF pipelines (#165340).

2005-01-26  Amaury Jacquot  <sxpert@esitcom.org>
	* ext/cairo/gsttextoverlay.c: include  string.h and strings.h to fix
	build failure on amd64

2005-01-26  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/mad/gstid3tag.c: (mad_id3_parse_latin1_string),
	(mad_id3_parse_comment_frame), (gst_mad_id3_to_tag_list):
	  Check environment variables GST_ID3V2_TAG_ENCODING,
	  GST_ID3_TAG_ENCODING and GST_TAG_ENCODING for a colon-separated
	  list of character encodings to force interpretation of non-unicode
	  strings stored in an ID3v2 tag to a particular encoding. If none
	  is specified, try to use current locale's encoding, then fall back
	  to ISO-8859-1 (which will always succeed). (Resolves #149274)
	* gst/tags/gstid3tag.c: (gst_tag_from_id3_tag),
	(gst_tag_extract_id3v1_string), (gst_tag_list_new_from_id3v1):
	  Check environment variables GST_ID3V1_TAG_ENCODING,
	  GST_ID3_TAG_ENCODING and GST_TAG_ENCODING for a colon-separated
	  list of character encodings to use in case a string encountered
	  in an ID3v1 tag is not valid UTF-8 already. If no encoding is
	  specified, try to use the current locale's encoding, then fall
	  back to ISO-8859-1 (which will always succeed).

2005-01-25  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain):
	  - on half framerate, compute the rate in advance so the comparisons
	    don't compare wrong values
	  - don't use mad_synth/frame_mute anymore, this mirrors mad_decoder
	    behaviour
	  - don't use mad_header_decode anymore, mad_frame_decode does that
	    automatically
	  - when getting rid of consumed bytes, reset the stream's skiplen
	  (fixes #163867)

2005-01-26  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init)
	  Use 1/2 a second for default max_discont, as PES streams from DVB
	  seem to have larger spacings in the SCR. 
	  Fix a typo.

2005-01-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (group_commit):
	  Notify delayed stream-info availability.

2005-01-26  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/a52dec/gsta52dec.c: (gst_a52dec_push),
	(gst_a52dec_handle_event), (gst_a52dec_chain):
	Add some debug output. Check that a discont has a valid
	time associated.
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
	(gst_alsa_sink_loop):
	Ignore TAG events. A little extra debug for broken timestamps.
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init), (dvdnavsrc_loop),
	(dvdnavsrc_change_state):
	Ensure we send a discont to engage the link before we send any
	other events.
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_init),
	(dvdreadsrc_finalize), (_close), (_open), (_seek_title),
	(_seek_chapter), (seek_sector), (dvdreadsrc_get),
	(dvdreadsrc_uri_get_uri), (dvdreadsrc_uri_set_uri):
	Handle URI of the form dvd://title[,chapter[,angle]]. Currently only
	dvd://title works in totem because typefinding sends a seek that ends
	up going back to chapter 1 regardless.
	* ext/mpeg2dec/gstmpeg2dec.c:
	* ext/mpeg2dec/gstmpeg2dec.h:
	Output correct timestamps and handle disconts.
	* ext/ogg/gstoggdemux.c: (get_relative):
	Small guard against a null dereference.
	* ext/pango/gsttextoverlay.c: (gst_textoverlay_finalize),
	(gst_textoverlay_set_property):
	Free memory when done. Don't call gst_event_filler_get_duration on
	EOS events. Use GST_LOG and GST_WARNING instead of g_message and
	g_warning.
	* ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init),
	(draw_line), (gst_smoothwave_dispose), (gst_sw_sinklink),
	(gst_sw_srclink), (gst_smoothwave_chain):
	Draw solid lines, prettier colours.
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
	Add a default palette that'll work for some movies.
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_init),
	(gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_send_discont),
	(gst_dvd_demux_send_subbuffer), (gst_dvd_demux_reset):
	* gst/mpegstream/gstdvddemux.h:
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont),
	(gst_mpeg_demux_parse_syshead), (gst_mpeg_demux_parse_pes):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init),
	(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead):
	* gst/mpegstream/gstmpegparse.h:
	Use PTM/NAV events when for timestamp adjustment when connected to 
	dvdnavsrc. Don't use many discont events where one suffices.
	* gst/playback/gstplaybasebin.c: (group_destroy),
	(gen_preroll_element), (gst_play_base_bin_add_element):
	* gst/playback/gstplaybasebin.h:
	Make sure we remove subtitles from the same bin we put them in.
	* gst/subparse/gstsubparse.c: (convert_encoding), (parse_subrip),
	(gst_subparse_buffer_format_autodetect),
	(gst_subparse_change_state):
	Fix some memleaks and invalid accesses.
	* gst/typefind/gsttypefindfunctions.c: (ogganx_type_find),
	(oggskel_type_find), (cmml_type_find), (plugin_init):
	Some typefind functions for Annodex v3.0 files
	* gst/wavparse/gstwavparse.h:
	GstRiffReadClass is the correct parent class.

2005-01-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  Add extradata to huffyuv (fixes #165013).
	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data):
	  Fix extradata extraction if it is in the chunk size.

2005-01-25  Edward Hervey  <bilboed@bilboed.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/effectv/gstquark.c: (gst_quarktv_class_init),
	(gst_quarktv_change_state), (gst_quarktv_dispose):
	  Memory free'ing location fix (#164708).

2005-01-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (group_commit),
	(gen_preroll_element), (probe_triggered), (gen_source_element),
	(setup_source), (gst_play_base_bin_change_state),
	(gst_play_base_bin_add_element):
	  Don't block for streams.
	* gst/playback/gststreaminfo.c: (stream_info_change_state),
	(gst_stream_info_set_mute):
	  Use gst_pad_set_active_recursive.

2005-01-25  Andy Wingo  <wingo@pobox.com>

	* sys/v4l/gstv4lelement.c (gst_v4l_iface_supported): Fix compile
	for #ifndef HAVE_XVIDEO.

2005-01-24  Jeffrey C. Ollie

	reviewed by: Maciej Katafiasz  <mathrick@freedesktop.org>

	* ext/gsm/gstgsmdec.c: (gst_gsmdec_init), (gst_gsmdec_chain):
	* ext/gsm/gstgsmdec.h:
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_init), (gst_gsmenc_chain):
	* ext/gsm/gstgsmenc.h:
	Fix rate to 8kHz as per spec, removes obscure errors when no rate
	was given by property. Add proper buffer timestamps and offsets.

2005-01-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data):
	  Audio can be <8000Hz.

2005-01-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	  Explicit state change to workaround refcount bugs.

2005-01-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_write_tag),
	(gst_avimux_riff_get_avi_header):
	  Fix...

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_element_data),
	(gst_riff_read_element_data):
	* gst-libs/gst/riff/riff-read.h:
	  Add _peek version (req'ed in CDXA).
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_init),
	(gst_cdxaparse_loop):
	  Fix parsing in playbin.
	* gst/playback/gstdecodebin.c: (close_pad_link):
	  Ignore current_ pads, they cause major annoyance.

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  Safety guard.

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_write_tag):
	  Fix padding...

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/ebml-read.c: (gst_ebml_read_buffer):
	  Allow for 0-sized buffers. Fixes length query problems in
	  starwars.mkv from the testsuite.

2005-01-19  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/videobox/gstvideobox.c: (gst_video_box_copy_plane_i420),
	(gst_video_box_i420), (gst_video_box_chain):
	  Fix row strides for I420 (fixes #163159)
	  
2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
	  MPEG2 has a useful rate property, so we can actually use that.
	  For MPEG-1, continue using the bytes/time properties.

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add intel-h263.

2005-01-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain):
	  Fail if caps negotiation fails. Should fix #162184, and should
	  definately be in there regardless of it fixing the actual bug.
	* gst/avi/gstavimux.c: (gst_avimux_get_type), (gst_avimux_init),
	(gst_avimux_write_tag), (gst_avimux_riff_get_avi_header),
	(gst_avimux_riff_get_avix_header),
	(gst_avimux_riff_get_video_header),
	(gst_avimux_riff_get_audio_header), (gst_avimux_write_index),
	(gst_avimux_start_file), (gst_avimux_handle_event),
	(gst_avimux_change_state):
	* gst/avi/gstavimux.h:
	  Refactor structure writing to use GST_WRITE_UINT macros, add
	  metadata writing support.

2005-01-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gststreaminfo.c: (gst_stream_info_dispose):
	  Elements may already be destroyed when this function is called.

2005-01-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header), (gst_qtdemux_handle_esds):
	  More memory leak fixes (#149162).

2005-01-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_add_stream):
	  Fix two memleaks.

2005-01-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
	  Argh...

2005-01-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
	  Fix off-by-one bug. Fixes warnings during playback of sincity.mp4
	  when fixating to six channels in Totem.

2005-01-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dvdread/dvdreadsrc.c: (get_next_cell_for):
	  Fix compile warnings on Solaris 10 buildbot

2005-01-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dvdread/dvdreadsrc.c: (_read):
	  Don't read beyond the last cell in a chapter (fixes 
	  invalid memory access)

2005-01-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/dvdread/stream_labels.c:
	(dvdreadsrc_get_audio_stream_labels):
	  Use NULL for an empty GList instead of g_list_alloc(); fix 
	  memory leaks; s/LCPM/LPCM/; use g_strdup_printf() instead 
	  of GString (easier to bulk free later)

2005-01-17  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps):
	  Fix BGRA32 caps (#164209).

2005-01-17  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pixfmt):
	  alpha_mask can be RGBA/ABGR. Fixes #164265.

2005-01-17  Francis Labonte  <francis_labonte@hotmail.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer),
	(gst_mpeg2dec_alloc_buffer):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  Crop if decoding size is not the actual image size (#163676).

2005-01-17  Steve Baker  <steve@stevebaker.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (aiff_type_find),
	(svx_type_find), (sds_type_find), (ircam_type_find), (plugin_init):
	  Add libsndfile typefind functions (#163309).

2005-01-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* tools/gst-launch-ext-m.m:
	  Add .aac, fix .m1v/.m2v (#163891).

2005-01-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsaclock.c: (gst_alsa_clock_wait):
	  Sanity check, don't wait endlessly since the clock might not
	  actually run at this point (which is a deadlock). Fixes #164069.

2005-01-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (probe_triggered):
	  Of course, only pause if group is done...

2005-01-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (probe_triggered):
	  Thread safety.

2005-01-16  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/swfdec/gstswfdec.c: (gst_swfdec_change_state):
	  Don't return state change success when the parent
	  failed.

2005-01-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_handle_event):
	  Free events (fix memleak in #162905).

2005-01-15  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pixfmt):
	  Fix for depth = 15. Fixes #161675.

2005-01-14  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps):
	  Set FPS correctly, even for webcams and the like.
	* sys/v4l/v4l_calls.c: (gst_v4l_set_chan_norm):
	  Don error on setting while capturing.

2005-01-14  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	* gst/subparse/gstsubparse.c: (parse_mdvdsub):
	* gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect):
	  I'm a bad boy. using /1001. to force C to do float division
	  and not integer division (as it did in my last commit)
	  Thanks to David I. Lehn for pointing this mistake.

2005-01-14  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported):
	  Revert Johan's 1.35->1.36 since it breaks compat.

2005-01-14  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	* ext/libfame/gstlibfame.c:
	* gst/subparse/gstsubparse.c: (parse_mdvdsub):
	* gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect):
	  replace framerate aproximations by their real value
	  (24000/1001, 30000/1001, 60000/1001)
	  Finish fixing bug #164049

2005-01-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggmux.c:
	  eos/bos debugging
	* gst/tcp/gstmultifdsink.c:
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	  improve reusability of elements after state changes and errors
	  make multifdsink throw away streamheaders when receiving new ones

2005-01-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_rates_probe):
	  Fix for if items are already in list...

2005-01-12  Benjamin Otte  <otte@gnome.org>

	* gst/adder/gstadder.c: (gst_adder_loop):
	  fix adder a bit so it doesn't screw up with events as much anymore

2005-01-12  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_link),
	(pixbufscale_scale), (gst_pixbufscale_chain):
	* ext/gdk_pixbuf/pixbufscale.h:
	  Incorporate changes from Tim-Philipp Mueller <t.i.m@orange.net>
	  to ensure rowstrides are calculated the same way as 
	  ffmpegcolorspace
	  Use gst_buffer_stamp instead of copying TIMESTAMP manually, so
	  that we pick up duration and offset also.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_class_init),
	(gst_avimux_pad_unlink), (gst_avimux_release_pad):
	  Reusability fixes.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_update),
	(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
	(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record),
	(gst_alsa_mixer_set_option), (gst_alsa_mixer_get_option):
	  Update flags when requested.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_rates_probe):
	  Fix dmix.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_init), (gst_play_base_bin_dispose),
	(probe_triggered), (new_decoded_pad), (gen_source_element),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_init), (group_switch), (remove_sinks), (setup_sinks),
	(gst_play_bin_change_state):
	  Implement group-switch signal for use in apps to clear metadata
	  cache, clean up subtitle, add suburi property instead of # hack,
	  some error-out fixes.

2005-01-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  Debug.
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_grab_frame):
	  If we got a state change in the _get handler, don't return success.

2005-01-10  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_my_output_message),
	(gst_jpegdec_my_emit_message), (gst_jpegdec_init):
	  Make jpegdec quiet on MJPEG decoding
	* gst/asfdemux/README:
	  Fix mimetypes for MJPEG and H263

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/theora/theoradec.c: (theora_dec_chain):
	  Fix broken code generation by gcc by swapping arguments.
	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
	  Fix \n in debug.

2005-01-10  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* TODO:
	  delete this file, it is by far outdated
	* ext/alsa/gstalsa.1: remove
	* ext/alsa/gstalsa.c: (add_rates), (add_channels), (gst_alsa_caps),
	(gst_alsa_check_sample_rates), (gst_alsa_rates_probe),
	(gst_alsa_get_caps):
	  Add HW probing for supported sample rates. Fixes #161704

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
	  Don't crash, biatch! :).

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musepack/gstmusepackreader.cpp:
	* gst/apetag/apedemux.c: (gst_ape_demux_stream_data):
	  Some work on tags - still doesn't work in playbin...
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
	  Handle events...

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_tree):
	  Also shove tags on kid pads.

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event):
	  Don't bail on unknown events.
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_chain):
	  Don't crash on events before negotiation.
	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
	  Send tags on pads, too.
	* gst/playback/gststreamselector.c:
	(gst_stream_selector_request_new_pad):
	  Forward events on first pad if no input was selected yet.

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (setup_substreams):
	  Don't disable streamtype if the stream doesn't exist, since
	  then playing a video after audio will disable both and nothing
	  will happen. Fixes the testsuite.

2005-01-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lxoverlay.c: (gst_v4l_xoverlay_interface_init),
	(gst_v4l_xoverlay_set_xwindow_id):
	* sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_interface_init),
	(gst_v4l2_xoverlay_set_xwindow_id):
	  Add debug categories, fix overlay disabling.

2005-01-10  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/alsa/gstalsa.c: (gst_alsa_class_init), (gst_alsa_get_caps):
	* ext/alsa/gstalsa.h:
	  Add HW probing for period_count/size and buffer_size MIX/MAX
	  Adjust default/user defined value if out of bounds
	  Should fix bug #162024

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event):
	  Fix warning (#161191).

2005-01-09  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dvdread/stream_labels.c:
	(dvdreadsrc_get_audio_stream_labels):
	  Fix warning (init the good variable in switch default)

2005-01-09  Koop Mast  <kwm@rainbow-runner.nl>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/tta/gstttaparse.c: (gst_tta_src_event):
	  Fix gcc-2.95 compile (#163485).

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/flac/gstflacenc.c: (gst_flacenc_init),
	(gst_flacenc_seek_callback), (gst_flacenc_write_callback),
	(gst_flacenc_tell_callback), (gst_flacenc_chain),
	(gst_flacenc_change_state):
	* ext/flac/gstflacenc.h:
	  Update for API change in flac-1.1.1. Update requirement in
	  configure.ac. Fixes #162974.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (group_destroy):
	  Remove hack to get rid of assert and get rid of unlinked
	  signals properly.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (setup_source):
	  Set source to NULL so that resources are free'ed. Fixes issues
	  with playback of CDDA and similar device-accessing things.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* testsuite/embed/Makefile.am:
	  test->noinst, fix make test in buildbot.

2005-01-09  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dvdread/stream_labels.c: new file
	* ext/dvdread/stream_labels.h: new file
	* ext/dvdread/Makefile.am:
	* ext/dvdread/dvdreadsrc.c: (_seek_title):
	  Extract audio stream label from DVD IFO files.
	  It only dump them on the console for now, still have to
	  make playbin aware of them.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (setup_source):
	  Fix hanging subs.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(gen_preroll_element), (remove_groups), (setup_subtitle),
	(gen_source_element), (setup_source):
	* gst/playback/gstplaybasebin.h:
	  Multiple .sub files is just a stupid idea... Fix some threading
	  mistakes. Interestingly, external .sub files cause playbin to
	  hang, I don't know why... Parsing fixes contributed by Fran??ois
	  Kooman <fkooman@tuxed.net>.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* testsuite/embed/Makefile.am:
	  Fix buildbot.

2005-01-09  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init),
	(gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property),
	(gst_pngenc_set_property):
	* ext/libpng/gstpngenc.h:
	  Add compression level property (#163323).

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* examples/capsfilter/capsfilter1.c: (main):
	* examples/seeking/spider_seek.c: (make_spider_pipeline):
	* ext/dvdread/Makefile.am:
	* ext/dvdread/demo-play:
	* ext/dvdread/demo-play.c:
	* gconf/gstreamer.schemas.in:
	* gst-libs/gst/gconf/gconf.c:
	* sys/v4l/TODO:
	* testsuite/Makefile.am:
	* testsuite/embed/Makefile.am:
	* testsuite/embed/embed.c: (cb_expose), (main):
	  Remove all references to xvideosink, fix examples (#140845).
	* gst/playback/gstplaybasebin.c: (group_destroy):
	  Apparently, disposal does not unlink - so do explicitely.
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  Add debug.

2005-01-09  Maciej Katafiasz <mathrick@freedesktop.org>

	* README: fix PKG_CONFIG_PATH instructions, what was there
	previously was breaking default search path, not nice. 
	Fixes #163358

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioscale/gstaudioscale.c: (gst_audioscale_init),
	(gst_audioscale_chain):
	  %#^@^#@^@#^#@^#@^@#^@#^@#^@#^#@^#@^#@^@#^#@ fix seeking
	  when resampling - how the ^@$^!@^! is this possible?!?

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state):
	  Reset variables on READY.
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_request_new_pad),
	(gst_matroska_mux_loop):
	  Require data before writing header.

2005-01-09  Francis Labonte  <francis_labonte@hotmail.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_chain):
	  Don't call mad_stream_sync() directly after recovering sync.
	  Fixes #151661.

2005-01-09  Martin Eikermann  <meiker@upb.de>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init),
	(snapshot_handler), (gst_snapshot_sinkconnect),
	(gst_snapshot_chain):
	  Allocate resources when required, fix recursive signal emission
	  and fix caps. Fixes #161667.

2005-01-09  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/gstpngdec.c: (gst_pngdec_src_getcaps),
	(gst_pngdec_chain):
	  Handle only 8-bppc (bits-per-pixel-component) images, better
	  error handling and correct strides. Fixes #163177.
	* ext/libpng/gstpngenc.c: (gst_pngenc_sinklink),
	(gst_pngenc_chain):
	  Better error handling. Fixes #163348.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_get_type),
	(dvdnavsrc_uri_get_type), (dvdnavsrc_uri_get_protocols),
	(dvdnavsrc_uri_get_uri), (dvdnavsrc_uri_set_uri),
	(dvdnavsrc_uri_handler_init):
	  Add DVD-nav URI (dvdnav://) for Totem testing purposes.
	* gst/playback/gstplaybasebin.c: (gen_source_element):
	  Add MMS to streaming URIs.

2005-01-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event):
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_navigation_send_event):
	  Check for pad availability before sending event.

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-plugins.spec.in:
	  Add subparse.

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Since we use functions from CVS, up requirement.

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/Makefile.am:
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(group_destroy), (group_commit), (group_is_muted),
	(gen_preroll_element), (add_stream), (unknown_type),
	(probe_triggered), (preroll_unlinked), (mute_stream),
	(silence_stream), (new_decoded_pad), (setup_substreams),
	(setup_source), (get_active_source), (mute_group_type),
	(muted_group_change_state), (set_active_source),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
	(play_base_eos), (gst_play_base_bin_change_state):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (add_sink), (setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
	(gst_stream_info_dispose), (stream_info_mute_pad),
	(stream_info_change_state), (gst_stream_info_set_mute):
	* gst/playback/gststreamselector.c: (gst_stream_selector_get_type),
	(gst_stream_selector_base_init), (gst_stream_selector_class_init),
	(gst_stream_selector_init), (gst_stream_selector_dispose),
	(gst_stream_selector_get_linked_pad),
	(gst_stream_selector_get_caps), (gst_stream_selector_link),
	(gst_stream_selector_get_linked_pads),
	(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
	* gst/playback/gststreamselector.h:
	  Adding stream selection support plus required properties for
	  applications to use this. Fully fixes #100931.

2005-01-08  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (nav_event_handler):
	  - handle nav events differently: forward every event no matter if it
	    was handled or not.
	  - translate events
	  You can now cheat by using navigationtest ! puzzle and moving the
	  mouse close to the edge of a tile. ;)

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_new):
	* ext/ogg/gstogmparse.c: (gst_ogm_text_parse_get_type),
	(gst_ogm_text_parse_base_init), (gst_ogm_text_parse_init),
	(gst_ogm_parse_get_sink_querytypes), (gst_ogm_parse_sink_convert),
	(gst_ogm_parse_sink_query), (gst_ogm_parse_chain),
	(gst_ogm_parse_plugin_init):
	* ext/pango/gsttextoverlay.c: (gst_textoverlay_linkedpads),
	(gst_textoverlay_link), (gst_textoverlay_getcaps),
	(gst_textoverlay_event), (gst_textoverlay_video_chain),
	(gst_textoverlay_loop), (gst_textoverlay_init), (plugin_init):
	* ext/pango/gsttextoverlay.h:
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
	(gst_matroska_demux_handle_seek_event),
	(gst_matroska_demux_sync_streams),
	(gst_matroska_demux_parse_blockgroup),
	(gst_matroska_demux_subtitle_caps),
	(gst_matroska_demux_plugin_init):
	* gst/matroska/matroska-ids.h:
	* gst/playback/gstdecodebin.c: (close_pad_link):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(gen_preroll_element), (remove_groups), (add_stream),
	(new_decoded_pad), (setup_subtitles), (gen_source_element),
	(setup_source):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gen_text_element), (setup_sinks):
	* gst/subparse/Makefile.am:
	* gst/subparse/gstsubparse.c: (gst_subparse_get_type),
	(gst_subparse_base_init), (gst_subparse_class_init),
	(gst_subparse_init), (gst_subparse_formats),
	(gst_subparse_eventmask), (gst_subparse_event),
	(gst_subparse_handle_event), (convert_encoding), (get_next_line),
	(parse_mdvdsub), (parse_mdvdsub_init), (parse_subrip),
	(parse_subrip_deinit), (parse_subrip_init), (parse_mpsub),
	(parse_mpsub_deinit), (parse_mpsub_init),
	(gst_subparse_buffer_format_autodetect),
	(gst_subparse_format_autodetect), (gst_subparse_loop),
	(gst_subparse_change_state), (gst_subparse_type_find),
	(plugin_init):
	* gst/subparse/gstsubparse.h:
	* gst/typefind/gsttypefindfunctions.c: (ogmtext_type_find),
	(plugin_init):
	  Add subtitle support, .sub parser (supports SRT and MPsub),
	  OGM text support, Matroska UTF-8 text support, deadlock fixes
	  all over the place, subtitle awareness in decodebin/playbin
	  and some fixes to textoverlay to handle subtitles in a stream
	  correctly. Fixes #100931.

2005-01-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
	  Check for pad availability before doing a query on it.

2005-01-08  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	  really fix bpp24/32 dvdec caps (classic rgba indeed)
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	  don't send text tags if they are empty (bis repetita)

2005-01-08  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	 remove unneeded comment from dvdec
	  (related to DV 4CC codes in AVI files)
	  moved them in gstreamer/docs/random/mimetypes
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	 don't send text tags if they are empty
	 fix mem leak on error path
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c: (img_get_alpha_info):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	 adds BGR32 and BGRA32 to ffmpegcolorspace
	  (still bad colors, fixing it on next commit)
	  helps with dvdec outputing BGR32

2005-01-08  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/gstdvdec.c:
	 Fix audio caps i just broke (missing ',')
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_get_type),
	(gst_matroska_mux_reset):
	 Fix typo + add FIXME about old "x-gst-metadata" crap

2005-01-07  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* ext/dv/demo-play.c: (main):
	 xvideosink -> xvimagesink
	* ext/dv/gstdvdec.c:
	 change rgb 32/32 caps to 24/32 (no alpha)
	 change nb of channels to be a list (2 or 4, not 2)
	 change sample rate to be a list (32, 44.1, 48 kHz) not a range
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	 Add 'date/year' to extracted metadata list

2005-01-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
	  The return value of fixate_to does not imply that the requested
	  value was set, so don't assume.

2005-01-07  Gergely Nagy  <algernon@bonehunter.rulez.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/libpng/gstpngdec.c:
	* ext/libpng/gstpngenc.c: (gst_pngenc_base_init),
	(gst_pngenc_sinklink), (gst_pngenc_init), (gst_pngenc_chain):
	* ext/libpng/gstpngenc.h:
	  Alpha support (encoder; #163161), mime fixage.

2005-01-07  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faac/gstfaac.c: (gst_faac_outputformat_get_type),
	(gst_faac_class_init), (gst_faac_init), (gst_faac_srcconnect),
	(gst_faac_set_property), (gst_faac_get_property):
	* ext/faac/gstfaac.h:
	  Allow for ADTS output (#153434).

2005-01-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps):
	  Fix against template (#150576).

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (draw_puzzle):
	  don't draw a puzzle if either width or height of tiles would be 0.

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (gst_puzzle_get_type),
	(gst_puzzle_class_init), (gst_puzzle_finalize):
	  no memleaks, please
	(gst_puzzle_create), (gst_puzzle_init),
	(gst_puzzle_set_property), (gst_puzzle_setup):
	  change initialization code around so we don't reshuffle on resize
	(draw_puzzle):
	  fix another stupid typo

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstvideoimage.c: (copy_hline_YUY2):
	  fix stupid typo that borked copying on YUY2

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (draw_puzzle):
	  fix edges when image sizes aren't multiples of tile sizes

2005-01-06  Benjamin Otte  <otte@gnome.org>

	* gst/games/gstpuzzle.c: (gst_puzzle_base_init):
	  make RGB endianness work correctly
	(gst_puzzle_show), (gst_puzzle_swap), (gst_puzzle_move):
	  refactor and fix race with initial shuffling
	(nav_event_handler):
	  allow using the mouse to puzzle
	(draw_puzzle):
	  insist on tiles having width and height as multiples of 4 to get
	  clean YUV image handling
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_handle_xevents), (gst_xvimagesink_buffer_alloc):
	  s/DEBUG/LOG/ for common messages
	(gst_xvimagesink_navigation_send_event):
	  fix mouse event translation to not include screen PAR
	* sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event):
	  fix mouse event translation to actually work

2005-01-06  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	 Extract TrackNumber metadata + clean up code
	* gst/games/gstvideoimage.c: (gst_video_image_draw_rectangle):
	 Hope this is the good fix (var used unitialised)

2005-01-06  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_chain):
	  Only increment timestamp if it's valid. Fixes raw AAC streams.

2005-01-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	* gst/games/Makefile.am:
	* gst/games/gstpuzzle.c:
	  add a puzzle game with...
	* gst/games/gstvideoimage.c:
	* gst/games/gstvideoimage.h:
	  ... full colorspace support (that includes YUV9 and RGB16)) stolen
	  from videotestsrc and made into something that would be a nice
	  library for a lot of other plugins.

2005-01-06  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* configure.ac:
	 don't compile faad plugin if a RC of 2.0 is found
	 Fixes #155346 (and FC1 buildbot)
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc):
	 try to make Solaris compiler happier

2005-01-06  Paul Jack  <pjack@sfaf.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init):
	  Fix segfault (#161667).

2005-01-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps):
	  Fix framerate reporting.

2005-01-05  Stephane LOEUILLET  <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/riff/riff-ids.h:
	* gst/wavenc/riff.h:
	 Add AMR (VBR and CBR) ids to riff.h audio codec list
	* gst/asfdemux/gstasfdemux.c:
	(gst_asf_demux_process_ext_content_desc),
	(gst_asf_demux_process_object):
	  Retrieve more tags from ASF files (Genre, AlbumTitle, Artist)

2005-01-05  Martin Eikermann  <meiker@upb.de>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init),
	(gst_dvd_demux_handle_discont):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
	(gst_mpeg_demux_handle_discont):
	  Recreate pads on new-media (#160730).
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_new_pad):
	  Send discont even if manager changes timestamps (#161929).

2005-01-05  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/resample/resample.c: (gst_resample_sinc_ft_s16):
	  Fix invalid memory access (#159211).

2005-01-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* examples/gstplay/player.c: (main):
	  Don't iterate.
	* examples/seeking/seek.c: (fixate), (make_playerbin_pipeline):
	  Add visualizations.
	* ext/a52dec/gsta52dec.c: (gst_a52dec_push),
	(gst_a52dec_handle_frame):
	  Set duration.
	* ext/dvdnav/gst-dvd:
	  Add audioconvert. Fixes #161325.
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_get):
	  Explicitely case to gint64. Possible valgrind error.
	* gst-libs/gst/play/play.c: (caps_set), (setup_size),
	(gst_play_tick_callback), (gst_play_change_state),
	(gst_play_dispose), (gst_play_init), (gst_play_class_init),
	(gst_play_set_location), (gst_play_get_location),
	(gst_play_seek_to_time), (gst_play_set_data_src),
	(gst_play_set_video_sink), (gst_play_set_audio_sink),
	(gst_play_set_visualization), (gst_play_connect_visualization),
	(gst_play_get_framerate), (gst_play_get_all_by_interface),
	(gst_play_new):
	  Use playbin. Fixes #139749 and #147744.
	* gst/apetag/apedemux.c: (gst_ape_demux_parse_tags):
	  Add genre tag.
	* gst/audioscale/gstaudioscale.c: (gst_audioscale_method_get_type),
	(audioscale_get_type), (gst_audioscale_base_init),
	(gst_audioscale_class_init), (gst_audioscale_expand_caps),
	(gst_audioscale_getcaps), (gst_audioscale_fixate),
	(gst_audioscale_link), (gst_audioscale_get_buffer),
	(gst_audioscale_decrease_rate), (gst_audioscale_increase_rate),
	(gst_audioscale_init), (gst_audioscale_dispose),
	(gst_audioscale_chain), (gst_audioscale_set_property),
	(gst_audioscale_get_property), (plugin_init):
	  Indent properly.
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private):
	  Fix LPCM.
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_udta),
	(qtdemux_tag_add_str), (qtdemux_tag_add_num),
	(qtdemux_tag_add_gnre), (qtdemux_video_caps):
	  Add more metadata (fixes #162656).

2005-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to cvs

=== release 0.8.7 ===

2005-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	  releasing 0.8.7, "Hyperspace"

2005-01-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Tim-Philipp Müller  <t.i.m@zen.co.uk>

	* gst/playback/gstplaybasebin.c:
	 Fix for #162924 - free caps after use, not before

2005-01-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c:
	* gst/wavparse/gstwavparse.c:
	  Fix for #154773 - fixes playback of small .wav files

2005-01-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* gst/audioscale/gstaudioscale.c:
	  Fix for #162819 - make audioscale reusable
	  Fixes playback of more than one file with playbin/totem

2004-12-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	* gst/ffmpegcolorspace/imgconvert.c:
	  clean up the mess that made me cry and avoid needless duplication

2004-12-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/imgconvert.c:
	  give some indication of why we're segfaulting

2004-12-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Fix indentation, fix v4l2 plugin detection.
	* ext/Makefile.am:
	  Fix libmms location (Maciej, use diff -u!).
	* ext/alsa/gstalsa.c: (gst_alsa_init):
	  Initialize caps cache to NULL.
	* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
	  Only change state on audiosink if it exists.

2004-12-28  Maciej Katafiasz  <mathrick@mathrick.org>

	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-demux.h:
	Fix Vorbis streams failing to decode in some files, where cluster_time
	isn't 0, because then it doesn't send codec_priv before actual data.
	Remove time-based test and replace it with marker set on beginning of
	new stream

2004-12-28  David Schleef  <ds@schleef.org>

	Merge patch from Ronald fixing problems with streaming
	text.
	* ext/cairo/gstcairo.c: (plugin_init):
	* ext/cairo/gsttextoverlay.c: (gst_textoverlay_render_text),
	(gst_text_overlay_blit_1), (gst_text_overlay_blit_sub2x2),
	(gst_textoverlay_video_chain), (gst_textoverlay_loop),
	(gst_textoverlay_font_init), (gst_textoverlay_init),
	(gst_textoverlay_set_property):
	* ext/cairo/gsttextoverlay.h:

2004-12-27  David Schleef  <ds@schleef.org>

	* ext/cairo/gsttextoverlay.c: (gst_textoverlay_render_text),
	(gst_text_overlay_blit_1), (gst_text_overlay_blit_sub2x2),
	(gst_textoverlay_video_chain), (gst_textoverlay_loop),
	(gst_textoverlay_font_init), (gst_textoverlay_init),
	(gst_textoverlay_set_property): Improvements to actually
	render text as white on black outline on video, including
	font selection and horizontal/vertical alignment.  (Ronald's
	christmas present)
	* ext/cairo/gsttextoverlay.h:

2004-12-26  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* ext/ogg/gstogg.c:
	* ext/ogg/gstogmparse.c:
	  fix ogm[audio/video]parse plugin registration
	  (riff won't load if bytestream is already loaded)

2004-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstchannelmix.c:
	  fix for GLIB < 2.4

2004-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	  disable docs again until it actually passes make distcheck.

2004-12-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_type_get), (qtdemux_audio_caps):
	* gst/typefind/gsttypefindfunctions.c: (q3gp_type_find),
	(plugin_init):
	  Add 3GP (variables name Q3GP because they can't start with a
	  number). Add samr audio fourcc (used in .3gp files), decoder
	  is work in progress. Also do a GST_WARNING instead of ERROR
	  in case of unknown nodes, to decrease output.

2004-12-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	  really fix dist

2004-12-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/speex/gstspeexdec.h:
	* ext/speex/gstspeexenc.h:
	  Fixes #158382.  Make speex plugin compatible with both 1.0 and 1.1.
	  Fix detection code in configure.ac

2004-12-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup):
	  Save position, so that queries give proper return values. Don't
	  know how this could ever have worked before...

2004-12-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Put additional LAME check inside the conditional.  Fixes #152339

2004-12-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_scan):
	  Add some more debug. Fix logic error when setting movi offset
	  while reading index.

2004-12-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_scan), (gst_avi_demux_handle_seek),
	(gst_avi_demux_process_next_entry):
	  Add some debugging. Better detection of broken indexes and the
	  accompanying index recovery. No infinite loops on state changes
	  when we're still in our loopfunction.

2004-12-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Fix up.

2004-12-22  Archana Shah  <archana.shah@wipro.com>

	Reviewed by:  Ronald S. Bultje <rbultje@ronald.bitfreak.net>

	* sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_volume):
	  Normalizing the value before setting
	(gst_sunaudiomixer_get_volume):
	  Normalizing the value after getting. Fixes bug# 161980

2004-12-22  Christian Fredrik Kalager Schaller  <uraeus@gnome.org>

	* Makefile.am: Make sure docs gets disted
	* docs/Makefile.am: Make sure all needed files get disted
	* gst-plugins.spec.in: latest updates

2004-12-22  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
	Revert patch 1.38 as clock distribution over schedulers does
	not work correcly in the core yet.

2004-12-21  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* sys/oss/README: remove this file, which predates my birth
	  (and which content is by far outdated)

2004-12-20  Stefan Kost  <ensonic@users.sf.net>

	* Makefile.am:
	* configure.ac:
	* docs/Makefile.am:
	* docs/libs/Makefile.am:
	* docs/libs/gst-plugins-libs-docs.sgml:
	* docs/libs/gst-plugins-libs-sections.txt:
	* docs/libs/tmpl/gstgconf.sgml:
	* docs/upload.mak:
	* docs/version.entities.in:
	  Added boilerplate gtk-doc files for plugin-libs documentation.

2004-12-19  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/auparse/gstauparse.c: fix int and float audio caps

2004-12-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported):
	* sys/v4l2/gstv4l2element.c: (gst_v4l2_iface_supported):
	  g_assert() can be a macro, don't use #ifdef inside it.

2004-12-19  Edward Hervey  <bilboed@bilboed.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videorate/gstvideorate.c: (gst_videorate_blank_data),
	(gst_videorate_init), (gst_videorate_chain),
	(gst_videorate_change_state):
	  Event handling (fixes #159986).

2004-12-19  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  Add BLZ0 (Blizzard's version of DivX) fourcc.

2004-12-18  David Schleef  <ds@schleef.org>

	* gst/tta/gstttadec.c: (gst_tta_dec_link): And yet another
	portability fix.

2004-12-18  David Schleef  <ds@schleef.org>

	* gst/tta/ttadec.h: Disable some header code that isn't used
	and clearly isn't portable.

2004-12-18  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/imgconvert.c: (get_pix_fmt_info),
	(avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name),
	(avcodec_get_pix_fmt), (avpicture_layout),
	(avcodec_get_pix_fmt_loss), (avg_bits_per_pixel), (img_copy),
	(get_convert_table_entry), (img_convert), (img_get_alpha_info):
	Fix code to not use GCC extensions (and c99 extensions that
	Forte does not like.)

2004-12-19  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_link),
	(gst_deinterlace_chain):
	  Rowstride fixes. Fixes #161039.
	* gst/videocrop/gstvideocrop.c: (gst_video_crop_init),
	(gst_video_crop_get_property), (gst_video_crop_add_to_struct_val),
	(gst_video_crop_getcaps), (gst_video_crop_link),
	(gst_video_crop_i420), (gst_video_crop_chain),
	(gst_video_crop_change_state):
	  Rework of negotiation. Actually works now. Fixes #158650.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_ebmlnum_sint):
	  That was very stupid.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_blockgroup):
	  Fix possible crasher.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_ebmlnum_uint),
	(gst_matroska_ebmlnum_sint), (gst_matroska_demux_parse_blockgroup):
	  Lace sizes can be zero.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musepack/gstmusepackdec.cpp:
	  Fetch error return values. Fixes #161624.
	* gst/apetag/apedemux.c: (gst_ape_demux_stream_data):
	  Really EOS.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index):
	  Work for truncated (unfinished download etc.) files. Fixes #160514.

2004-12-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  Fix for integer overflow. Makes #156001 not crash. Probably masks
	  the real bug.

2004-12-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ac3parse/gstac3parse.c: (plugin_init):
	  Parsers never have ranks. Fixes #159651.

2004-12-17  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/playback/gstdecodebin.c: (compare_ranks):
	  make sure the facotries are ordered the same every time even if they
	  have the same rank by using the name
	* gst/playback/gstdecodebin.c: (find_compatibles):
	  make sure we don't add factories to the list twice

2004-12-16  David Schleef  <ds@schleef.org>

	* configure.ac: look for musepack headers as musepack/*.h
	(fixes #159847)
	* ext/musepack/gstmusepackdec.h: use <musepack/*.h>
	* ext/musepack/gstmusepackreader.h: same

2004-12-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_auds_with_data):
	  Read extradata correctly (fixes #155879).

2004-12-16  David Schleef  <ds@schleef.org>

	* gst/audioscale/gstaudioscale.c: allow passthru of >2 channel
	audio.  does _not_ attempt or allow conversion unless channels
	is 1 or 2.

2004-12-16  Christian Fredrik Kalager Schaller  <uraeus@gnome.org>

	* tools/gst-launch-ext-m.m: fix mpeg and vob pipelines

2004-12-16  David Schleef  <ds@schleef.org>

	* gst/audioscale/gstaudioscale.c: the resample library only
	handles 1 or 2 channels.  Change caps to compensate.

2004-12-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (aac_rate_idx), (aac_profile_idx),
	(gst_matroska_demux_audio_caps):
	  Some MPEG-AAC hacks, because else it doesn't work...

2004-12-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add h264.

2004-12-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/audio/Makefile.am:
	  Try to fix buildbot.

2004-12-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gstmultifdsink.c:
	  Clean up and uniformize debugging.

2004-12-16  Edward Hervey  <bilboed@bilboed.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init),
	(gst_dvd_demux_reset), (gst_dvd_demux_change_state):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_reset),
	(gst_mpeg_demux_change_state):
	  Reset on ready. Fixes 160276.

2004-12-16  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_pad_link):
	  Fix memleak (#154815).

2004-12-16  James Bowes  <bowes@cs.dal.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init),
	(gst_musicbrainz_init), (gst_musicbrainz_chain),
	(gst_musicbrainz_set_property), (gst_musicbrainz_get_property):
	* ext/musicbrainz/gsttrm.h:
	  Add support for using a proxy server when getting a trm id from
	  the MusicBrainz database (#149613).

2004-12-16  Christophe Fergeau  <teuf@gnome.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (new_pad), (close_link):
	* gst/playback/gstplaybasebin.c: (new_decoded_pad):
	  Fix memleaks (#157233).

2004-12-16  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/resample/resample.c: (gst_resample_close):
	* gst-libs/gst/resample/resample.h:
	* gst/audioscale/gstaudioscale.c:
	  Fix memleak (#159215).

2004-12-16  Toni Willberg  <toniw@iki.fi>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosselement.c: (gst_osselement_probe_caps):
	* sys/oss/oss_probe.c: (main):
	  Check for mono/stereo support (similar to samplerate probing),
	  fixes #159433. Also add missing copyright header to oss_probe.c.

2004-12-15  David Schleef  <ds@schleef.org>

	* configure.ac: add audioresample and cairo plugins.  Remove
	HAVE_MMX stuff, because it's not used.
	* ext/Makefile.am: same
	* ext/audioresample/Makefile.am: You are not ready for an
	audio resampling element based on audioresample.
	* ext/audioresample/gstaudioresample.c:
	* ext/audioresample/gstaudioresample.h:
	* ext/cairo/Makefile.am: You are not ready for overlay elements
	based on cairo.  Don't look too closely, these elements kinda
	suck right now.
	* ext/cairo/gstcairo.c: new
	* ext/cairo/gsttextoverlay.c: new
	* ext/cairo/gsttextoverlay.h: new
	* ext/cairo/gsttimeoverlay.c: new
	* ext/cairo/gsttimeoverlay.h: new
	* gst-libs/gst/media-info/media-info-priv.h: fix compile
	problem with compilers that don't support variadic macros.

2004-12-15  Balamurali Viswanathan  <balamurali.viswanathan@wipro.com>

	Reviewed by:  David Schleef  <ds@schleef.org>

	* sys/sunaudio/gstsunaudio.c: (plugin_init):  Apply patch from
	Bala, registering sunaudiosrc (oops!), and cleaning up code a
	bit.  Also ran indent-gst.
	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_init),
	(gst_sunaudiosrc_change_state), (gst_sunaudiosrc_get),
	(gst_sunaudiosrc_setparams):

2004-12-14  David Schleef  <ds@schleef.org>

	* gst/festival/gstfestival.c: (gst_festival_chain): Set the
	output rate to 16000.  Should fix #160235.

2004-12-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
	Add typefinding for mpeg2 pes streams

2004-12-13  David Schleef  <ds@schleef.org>

	* configure.ac:  Applied patch from bug #143659, making default
	sources and sinks OS-dependent (for Solaris), and added code
	for OS/X.
	* gconf/gstreamer.schemas.in: use OS-dependent sinks in gconf.

2004-12-13  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/riff/riff-media.c:
	  forgot to add h2.64 to avidemux template caps

2004-12-13  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/wavenc/riff.h:
	* gst-libs/gst/riff/riff-media.c:
	* gst-libs/gst/riff/riff-ids.h:
	* gst/avi/gstavimux.c
	add 4CC code for VideoSoft h264 in AVI (VSSH)
	  fixes bug #160655
	remove s323 from riff, it's quicktime specific :(

2004-12-13  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/README
	* gst/wavenc/riff.h
	* gst-libs/gst/riff/riff-ids.h
	* gst-libs/gst/riff/riff-media.c
	* gst/qtdemux/qtdemux.c:
	  add new 4CC codes for h263 related codecs
	  fixes partially bug #155163

2004-12-12  Christian Fredrik Kalager Schaller  <christian at fluendo dot com>

	* configure.ac: Update polyaudio requirement to 0.7
	* ext/polyp/polypsink.c: (create_stream): add patch from iain (158258)

2004-12-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/interleave/deinterleave.c:
	fix my name's spelling! :)

2004-12-11  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* AUTHORS ChangeLog
	* gst/auparse/gstauparse.c
	* gst/interleave/deinterleave.c
	* gst/law/:
		alaw-decode.c alaw-encode.c
		mulaw-decode.c mulaw-encode.c
	* gst/oneton/gstoneton.c
	* sys/osxaudio/:
		gstosxaudioelement.c gstosxaudiosink.c gstosxaudiosrc.c
	* sys/osxvideo/:
		cocoawindow.h cocoawindow.m
		osxvideosink.h osxvideosink.m

	put the same mail address for Zaheer Abbas Merali everywhere

2004-12-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_loop):
	  Align by packetsize, and assert that we a packet available before
	  playing. The first makes webstreams work (they often include
	  trailing padding data in a packet), the second allows pausing a
	  ASF stream in totem without getting demux errors afterwards.

2004-12-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (get_relative):
	  Check for non-NULL before accessing member (end-of-chain).

2004-12-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
	(cdparanoia_set_property), (cdparanoia_get_property):
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init),
	(dvdnavsrc_set_property), (dvdnavsrc_get_property):
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
	(dvdreadsrc_init), (dvdreadsrc_set_property),
	(dvdreadsrc_get_property):
	* sys/vcd/vcdsrc.c: (gst_vcdsrc_class_init),
	(gst_vcdsrc_set_property), (gst_vcdsrc_get_property):
	  Synchronize property names where not yet the case. Devices are
	  now device=X, other versions are deprecated (but still exist).
	  Also use g_free() unconditionally.
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(setup_source), (gst_play_base_bin_get_property):
	  Expose source.

2004-12-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: move GCONF macro outside conditional for the am
	  conditional. Fixes #160439

2004-12-08  David Schleef  <ds@schleef.org>

	* tools/gst-visualise-m.m: Switch to elements that currently
	exist.

2004-12-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
	  We love wrong commas.

2004-12-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_src_query):
	  Don't set DEFAULT, unsupported - makes length display incorrectly
	  in some cases.

2004-12-07  Christian Fredrik Kalager Schaller  <uraeus@gnome.org>

	* gst/monoscope/README: remove blurb about files being GPL
	* gst/monoscope/gstmonoscope.c: Change license field to LGPL
	* gst/monoscope/monoscope.c: Change license to BSD with explanation
	  monoscope is now effectively LGPL licensed

2004-12-07  Christian Fredrik Kalager Schaller  <uraeus@gnome.org>

	* gst/monoscope/README: Update information to be more correct
	* gst/monoscope/convolve.c: Relicense to LGPL
	* gst/monoscope/convolve.h: Relicense to LGPL

2004-12-06  Arwed v. Merkatz <v.merkatz@gmx.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	  set BUFFER_DURATION to correct values (mpeg1 audio frame length is fixed)
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_audio_pad_link):
	  set default_duration for mpeg1 audio

2004-12-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_get_caps), (gst_alsa_close_audio):
	* ext/alsa/gstalsa.h:
	  refactor big chunks of the core caps negotiation code to make it
	  a lot faster, because people claim it's really slow
	  (actually, just cache the getcaps when the device is opened)

2004-12-06  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_init),
	(gst_a52dec_handle_event), (gst_a52dec_update_streaminfo),
	(gst_a52dec_handle_frame), (gst_a52dec_chain),
	(gst_a52dec_change_state), (plugin_init):
	* ext/a52dec/gsta52dec.h:
	  Do something useful with timestamps. Make chain-based (since
	  there's really no reason to be loopbased).
	* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
	  Update current_byte/frame correctly.

2004-12-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/apetag/apedemux.c: (gst_ape_demux_parse_tags),
	(gst_ape_demux_stream_init):
	  Forward tags, too.

2004-12-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/apetag/apedemux.c: (gst_ape_demux_stream_init):
	  Let's make sure we're done typefinding when detecting tags.

2004-12-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/ebml-read.c: (gst_ebml_read_class_init),
	(gst_ebml_read_init), (gst_ebml_read_use_event),
	(gst_ebml_read_element_id), (gst_ebml_peek_id),
	(gst_ebml_read_seek), (gst_ebml_read_skip),
	(gst_ebml_read_reserve), (gst_ebml_read_buffer),
	(gst_ebml_read_master):
	* gst/matroska/ebml-read.h:
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_contents),
	(gst_matroska_demux_loop_stream), (gst_matroska_demux_audio_caps):
	  Disgustingly evil hack for working around INTERRUPT events and
	  their extremely annoying habit of being a pain in the ass. We
	  simply peek a cluster before reading any of it.

2004-12-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musepack/gstmusepackdec.cpp:
	  There's also floating point libmusepacks.

2004-12-03  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_chanpos_from_gst),
	(gst_faad_chanpos_to_gst), (gst_faad_chain):
	  Set DURATION even if source buffer didn't. Also use increasing
	  timestamps.
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data):
	  Block_align can have larger values than 8192.

2004-12-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_link):
	* gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_link):
	* gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_link):
	* gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_link):
	  Fix caps.

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/v4l_calls.c: (gst_v4l_get_chan_names):
	  Fix logic bug.

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_type_find):
	  Yay, another one.

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/esd/esdsink.c: (gst_esdsink_chain):
	  Make error actually say something useful (fixes #156798).
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add Intel Video 5.0 fourcc (IV50).

2004-12-01  Christophe Fergeau  <teuf@gnome.org>

	* ext/mad/gstmad.c: (mpg123_parse_xing_header): fix xing header
	detection on mono and stereo mp3 files.

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	  Don't crash on EMPTY caps (e.g. when the demuxer didn't recognize
	  the contained stream).

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_srcconnect), (gst_faad_chain):
	  Oops, remove debug.

2004-12-01  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/law/alaw-decode.c: (alawdec_getcaps):
	* gst/law/mulaw-decode.c: (mulawdec_getcaps):
	  Prevent warnings when negotiating caps (fixes #159338).

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_chain):
	  Remove old leftover that shouldn't be there...

2004-12-01  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event):
	  Don't forward DISCONT events (fixes #159684).

2004-12-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (remove_sinks), (setup_sinks):
	  Unlink manually since sometimes bin disposal (and therefore
	  pad unlinking) is delayed, which will cause a new media file
	  to not be able to start playing instantly.

2004-11-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gststreaminfo.c: (stream_info_mute_pad):
	  On mute of an unlinked stream, check for pad availability so
	  we don't crash on unlinked pad.

2004-11-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_massage_index):
	  Fix quite humiliating bug in omitting 0-sized index chunks but
	  forgetting to count them for timestamps.

2004-11-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_loop):
	  Actually leave the loop if we failed to sync. Don't crash.

2004-11-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream),
	(gst_dvd_demux_process_private):
	* gst/mpegstream/gstdvddemux.h:
	  Fix crash (#159759). Doesn't work, though. :-(.

2004-11-28  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
	  more overwriting protection due to modifying channels one by one
	  instead of all at once

2004-11-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/gstchannelmix.c:
	(gst_audio_convert_fill_normalize):
	  Normalize using absolute values.

2004-11-28  Julien MOUTTE  <julien@moutte.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/directfb/Makefile.am:
	* ext/directfb/directfbvideosink.c: (gst_directfbvideosink_create),
	(gst_directfbvideosink_get_pixel_format),
	(gst_directfbvideosink_get_format_from_fourcc),
	(gst_directfbvideosink_fixate), (gst_directfbvideosink_getcaps),
	(gst_directfbvideosink_sink_link),
	(gst_directfbvideosink_change_state),
	(gst_directfbvideosink_chain), (gst_directfbvideosink_buffer_free),
	(gst_directfbvideosink_buffer_alloc),
	(gst_directfbvideosink_interface_supported),
	(gst_directfbvideosink_interface_init),
	(gst_directfbvideosink_navigation_send_event),
	(gst_directfbvideosink_navigation_init),
	(gst_directfbvideosink_set_property),
	(gst_directfbvideosink_get_property),
	(gst_directfbvideosink_finalize), (gst_directfbvideosink_init),
	(gst_directfbvideosink_base_init),
	(gst_directfbvideosink_class_init),
	(gst_directfbvideosink_get_type), (plugin_init):
	* ext/directfb/directfbvideosink.h: Adding a first version of
	directfbvideosink.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_init): Initializing some
	more.

2004-11-28  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
	  walk the samples backwards if out_channels > in_channels so we don't
	  overwrite data

2004-11-28  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/Makefile.am:
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init),
	(gst_audio_convert_link), (gst_audio_convert_change_state),
	(gst_audio_convert_channels):
	* gst/audioconvert/gstchannelmix.c:
	(gst_audio_convert_unset_matrix),
	(gst_audio_convert_fill_identical),
	(gst_audio_convert_fill_compatible),
	(gst_audio_convert_detect_pos), (gst_audio_convert_fill_one_other),
	(gst_audio_convert_fill_others),
	(gst_audio_convert_fill_normalize),
	(gst_audio_convert_fill_matrix), (gst_audio_convert_setup_matrix),
	(gst_audio_convert_passthrough), (gst_audio_convert_mix):
	* gst/audioconvert/gstchannelmix.h:
	  Implement a channel mixer.

2004-11-28  Martin Soto  <martinsoto@users.sourceforge.net>

	* ext/alsa/gstalsasink.c (gst_alsa_sink_loop):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsa.c (gst_alsa_set_clock):
	Make alsasink actually honor gst_element_set_clock and use that
	clock instead of its internal one.

2004-11-27  Christophe Fergeau  <teuf@gnome.org>

	* gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak
	(gst_play_base_bin_change_state): nullify source and decoder when
	going from READY to NULL so that we don't try to do weird stuff with
	them when going from NULL to READY
	* gst/playback/gstplaybin.c: (gst_play_bin_init): use gst_object_unref
	instead of g_object_unref
	(gen_video_element), (gen_audio_element): more refcounting fixes, now
	it should be correct
	(gst_play_bin_change_state): don't call remove_sinks if we are
	currently disposing the object

2004-11-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_loop):
	  Don't forget bass if it's there. Else left channel is silent...

2004-11-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_loop),
	(gst_a52dec_change_state):
	  Don't do sample adjusting anymore, we use float audio now.
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
	  Don't fixate to non-existing properties.

2004-11-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_channels),
	(gst_a52dec_change_state):
	  Advertise that we can do surround sound.

2004-11-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_reneg):
	  Add buffer-frames=0.
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_get_type),
	(dvdreadsrc_init), (dvdreadsrc_get_event_mask),
	(dvdreadsrc_get_query_types), (dvdreadsrc_get_formats),
	(dvdreadsrc_srcpad_event), (dvdreadsrc_srcpad_query),
	(_seek_title), (_seek_chapter), (get_next_cell_for), (_read),
	(seek_sector), (dvdreadsrc_get), (dvdreadsrc_open_file),
	(dvdreadsrc_change_state), (dvdreadsrc_uri_get_type),
	(dvdreadsrc_uri_get_protocols), (dvdreadsrc_uri_get_uri),
	(dvdreadsrc_uri_set_uri), (dvdreadsrc_uri_handler_init):
	* ext/dvdread/dvdreadsrc.h:
	  Add seeking, querying for bytes, sectors, title, angle and
	  chapter. Handle multiple chapters. Relicense to LGPL because
	  Billy agreed on that (thanks Billy!).

2004-11-27  Christophe Fergeau  <teuf@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_dispose):
	call parent dispose method

2004-11-27  Martin Soto  <martinsoto@users.sourceforge.net>

	* gst-libs/gst/audio/audioclock.c (gst_audio_clock_set_active)
	(gst_audio_clock_get_internal_time):
	Fix active <-> inactive transitions: ensure time value always
	grows and avoid abrupt value changes.

2004-11-27  Arwed v. Merkatz <v.merkatz@gmx.net>

	* configure.ac:
	* gst/tta/Makefile.am:
	* gst/tta/crc32.h:
	* gst/tta/filters.h:
	* gst/tta/gsttta.c:
	* gst/tta/gstttadec.c:
	* gst/tta/gstttadec.h:
	* gst/tta/gstttaparse.c:
	* gst/tta/gstttaparse.h:
	* gst/tta/ttadec.h:
	  added TTA parser and decoder

2004-11-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(probe_triggered), (check_queue), (buffer_underrun),
	(buffer_running), (buffer_overrun), (gen_source_element),
	(setup_source):
	* gst/playback/gstplaybasebin.h:
	  Implement buffering. Needs some more work.

2004-11-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/theora/theoradec.c: (theora_dec_chain):
	  Fix ilog mask range overflow.

2004-11-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_get_caps):
	  Don't omit the last (which in case of dmix is the only :) )
	  channel count. Don't set channels if <= 2.

2004-11-26  Christophe Fergeau  <teuf@gnome.org>

	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element): Removed 2 obsolete comments

2004-11-26  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/vorbis/oggvorbisenc.c
	* ext/vorbis/vorbisenc.c :
	  change description fields of those plugins to differentiate them
	  (pitivi show Encoders by description, they had the same one)

2004-11-25  Christophe Fergeau  <teuf@gnome.org>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gst_play_bin_dispose),
	(gst_play_bin_set_property), (gen_video_element),
	(gen_audio_element):
	  Refcounting fixes for provided audio-/videosinks.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element), (setup_sinks), (gst_play_bin_change_state):
	  Don't reference all sinks, but only the video- and audiosinks.
	  The vis. element should be disposed when we're done with it.
	  We don't have any reason to keep it around. This fixes warnings
	  when reusing playbin for playing multiple audio files with
	  vis. enabled. Also release audio device on pause - idea stolen
	  from Rhythmbox.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (gst_a52dec_push),
	(gst_a52dec_reneg), (gst_a52dec_loop), (plugin_init):
	* ext/alsa/gstalsa.c: (gst_alsa_get_caps):
	* ext/alsa/gstalsaplugin.c: (plugin_init):
	* ext/dts/gstdtsdec.c: (gst_dtsdec_channels),
	(gst_dtsdec_renegotiate), (gst_dtsdec_loop), (plugin_init):
	* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_chanpos_from_gst),
	(gst_faad_chanpos_to_gst), (gst_faad_sinkconnect),
	(gst_faad_srcgetcaps), (gst_faad_srcconnect), (gst_faad_chain),
	(gst_faad_change_state), (plugin_init):
	* ext/faad/gstfaad.h:
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	* gst-libs/gst/audio/Makefile.am:
	* gst-libs/gst/audio/audio.c: (plugin_init):
	* gst-libs/gst/audio/multichannel.c:
	(gst_audio_check_channel_positions),
	(gst_audio_get_channel_positions),
	(gst_audio_set_channel_positions),
	(gst_audio_set_structure_channel_positions_list),
	(add_list_to_struct), (gst_audio_set_caps_channel_positions_list),
	(gst_audio_fixate_channel_positions):
	* gst-libs/gst/audio/multichannel.h:
	* gst-libs/gst/audio/testchannels.c: (main):
	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_class_init), (gst_audio_convert_init),
	(gst_audio_convert_dispose), (gst_audio_convert_getcaps),
	(gst_audio_convert_parse_caps), (gst_audio_convert_link),
	(gst_audio_convert_fixate), (gst_audio_convert_channels):
	* gst/audioconvert/plugin.c: (plugin_init):
	  Surround sound support.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
	  Fix position for discont if we're close as well. Nitpicking, but
	  saves a few milliseconds of extra waiting or skipping.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter):
	  We sometimes need parsers for playback, so add those too.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* gst/apetag/Makefile.am:
	* gst/apetag/apedemux.c: (gst_ape_demux_get_type),
	(gst_ape_demux_base_init), (gst_ape_demux_class_init),
	(gst_ape_demux_init), (gst_ape_demux_get_src_formats),
	(gst_ape_demux_get_src_query_types),
	(gst_ape_demux_handle_src_query), (gst_ape_demux_get_event_mask),
	(gst_ape_demux_handle_src_event), (gst_ape_demux_handle_event),
	(gst_ape_demux_typefind_peek), (gst_ape_demux_typefind_get_length),
	(gst_ape_demux_typefind_suggest), (gst_ape_demux_typefind),
	(gst_ape_demux_parse_tags), (gst_ape_demux_stream_init),
	(gst_ape_demux_stream_data), (gst_ape_demux_loop),
	(gst_ape_demux_change_state):
	* gst/apetag/apedemux.h:
	* gst/apetag/apetag.c: (plugin_init):
	* gst/typefind/gsttypefindfunctions.c: (apetag_type_find),
	(plugin_init):
	  APE v1/2 tag reader plus typefind function.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
	  Remove hacks for older core. Require newer core version
	  accordingly.

2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/cdxaparse/Makefile.am:
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_get_type),
	(gst_cdxaparse_class_init), (gst_cdxaparse_init),
	(gst_cdxaparse_loop), (gst_cdxaparse_change_state), (plugin_init):
	* gst/cdxaparse/gstcdxaparse.h:
	* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_get_type),
	(gst_cdxastrip_base_init), (gst_cdxastrip_class_init),
	(gst_cdxastrip_init), (gst_cdxastrip_get_src_formats),
	(gst_cdxastrip_get_src_query_types),
	(gst_cdxastrip_handle_src_query), (gst_cdxastrip_get_event_mask),
	(gst_cdxastrip_handle_src_event), (gst_cdxastrip_strip),
	(gst_cdxastrip_sync), (gst_cdxastrip_handle_event),
	(gst_cdxastrip_chain), (gst_cdxastrip_change_state):
	* gst/cdxaparse/gstcdxastrip.h:
	  SVCD/VCD header stripping separated from CDXA image parsing.
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find),
	(plugin_init):
	  Add VCD/SVCD header typefinding for VCD/SVCD.
	* sys/vcd/vcdsrc.c: (gst_vcdsrc_get_type), (gst_vcdsrc_base_init),
	(gst_vcdsrc_class_init), (gst_vcdsrc_init),
	(gst_vcdsrc_set_property), (gst_vcdsrc_get_property),
	(gst_vcdsrc_get_event_mask), (gst_vcdsrc_get_query_types),
	(gst_vcdsrc_get_formats), (gst_vcdsrc_srcpad_event),
	(gst_vcdsrc_srcpad_query), (gst_vcdsrc_get),
	(gst_vcdsrc_open_file), (gst_vcdsrc_close_file),
	(gst_vcdsrc_change_state), (gst_vcdsrc_msf),
	(gst_vcdsrc_recalculate), (gst_vcdsrc_uri_get_type),
	(gst_vcdsrc_uri_get_protocols), (gst_vcdsrc_uri_get_uri),
	(gst_vcdsrc_uri_set_uri), (gst_vcdsrc_uri_handler_init):
	* sys/vcd/vcdsrc.h:
	  Fix up, add seeking, querying, URI interface. Works in totem now.

2004-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to CVS

=== release 0.8.6 ===

2004-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/it.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	  releasing 0.8.6, "IOU Love"

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c:
	  Fix unplayable files error handling.  Fixes #158365

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c:
	  Fix broken mp3 typefinding.  Fixes #158375

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c:
	  Fix sync on broken files.  Fixes #158976

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Edward Hervey <bilboed@bilboed.com>

	* ext/libpng/gstpngenc.c:
	  Copy over buffer properties.  Fixes #158832

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Tim-Philipp Müller <t.i.m@zen.co.uk>

	* ext/dvdread/dvdreadsrc.c:
	  Fixes invalid reads (#158462)

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4lsrc_calls.c:
	  Probe less and cache it.  Fixes #159187.

2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videorate/gstvideorate.c:
	  Handle all video formats. Fixes #159186.

2004-11-16  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/synaesthesia/gstsynaesthesia.c:
	(gst_synaesthesia_class_init), (gst_synaesthesia_init),
	(gst_synaesthesia_dispose), (gst_synaesthesia_finalize),
	(gst_synaesthesia_sink_link), (gst_synaesthesia_src_getcaps),
	(gst_synaesthesia_src_link), (gst_synaesthesia_chain),
	(gst_synaesthesia_change_state), (plugin_init):
	Fix up synaesthesia to work under different samplerates/ buffer sizes.
	Force 320x200 output, as that's the only thing the underlying
	synaesthesia implementation supports. Still needs to be made
	re-entrant.

2004-11-14  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	  Fix mpeg2enc configure check (similar to mplex check below).

2004-11-14  Koop Mast  <kwm@rainbow-runner.nl>

	reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	  Fix for gcc-2.95 (fixes #158221).

2004-11-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
	  Re-add clock distribution hack (until new core is released).
	  Fixes #158125.

2004-11-13  Arwed v. Merkatz  <v.merkatz@gmx.net>
	* configure.ac:
	  fix mplex configure check segfaulting on some systems (bug #140994)

2004-11-13  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_pcm_wait):
	  add debugging
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  do a wait when we enter the loop func with no data available to
	  write instead of getting into an 100% CPU loop by just returning and
	  being called again by the scheduler

2004-11-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* ext/libvisual/visual.c: (gst_visual_get_type),
	(libvisual_log_handler), (gst_visual_getcaps),
	(gst_visual_srclink), (gst_visual_change_state), (make_valid_name),
	(plugin_init):
	  Update libvisual to 0.1.7. Link in the debug handling to gstreamer
	* ext/smoothwave/Makefile.am:
	* ext/smoothwave/demo-osssrc.c: (main):
	* ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_class_init),
	(gst_smoothwave_init), (gst_smoothwave_dispose), (gst_sw_sinklink),
	(gst_sw_srclink), (gst_smoothwave_chain), (gst_sw_change_state),
	(plugin_init):
	* ext/smoothwave/gstsmoothwave.h:
	  Make gstsmoothwave a working element in the 20th century.

	* gst/chart/gstchart.c: (gst_chart_init), (gst_chart_srcconnect):
	  Fix incorrect link function

2004-11-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/volume/gstvolume.c:
	  Allow buffer-frames=0.

2004-11-12 Iain <iaingnome@gmail.com>

	* configure.ac: Check for polypaudio

	* ext/Makefile.am: Build the polyp dir

	* ext/polyp: The polypsink sources.

2004-10-30 Iain <iaingnome@gmail.com>

	* gst/interleave/interleave.c (interleave_unlink): Change the src pads
	caps to reflect the new number of channels.

2004-11-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  Fix for negotiation order problem. This would show when the
	  ALSA loopfuction was called before any other function. ALSA
	  wouldn't do anything because we're not negotiated yet, leading
	  to an infinite loop. Showed in e.g. Rhythmbox. Fixes #158006.

2004-11-11  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
	  No warnings (#157986).

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  Prefer apev1/2 and id3v1 (at end of file) over musepack.

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_loop_stream):
	  Signal no-more-pads (so it works in playbin).

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/musepack/gstmusepackreader.cpp:
	  Workaround for older core.

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/imgconvert.c: (yuv420p_to_yuv422):
	  Actually test for odd width/height rather than testing whether
	  a temporary variable that was 0 before we subtracted 1 is now
	  not equal to zero (which it always is).

2004-11-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l2/gstv4l2element.c: (gst_v4l2_iface_supported):
	Fix compilation if HAVE_XVIDEO is not defined

2004-11-11  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported):
	Fix compilation if HAVE_XVIDEO is not defined

2004-11-11  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/goom/gstgoom.c: (gst_goom_class_init), (gst_goom_init),
	(gst_goom_dispose), (gst_goom_sinkconnect), (gst_goom_chain),
	(gst_goom_change_state), (plugin_init):
	Use the bytestream adapter so goom doesn't depend on the input
	buffer size.
	Add a debug category

2004-11-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state):
	  Only set hardware parameters *after* negotiation. Before
	  negotiation, it will set ANY and that seems to cause crashes
	  (see e.g. #151288, #153227).

2004-11-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time):
	  This seems to be antique leftover. It needs to pass error
	  checking.
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init),
	(gst_sdlvideosink_deinitsdl), (gst_sdlvideosink_initsdl),
	(gst_sdlvideosink_destroy), (gst_sdlvideosink_create),
	(gst_sdlvideosink_sinkconnect), (gst_sdlvideosink_chain):
	  Fix GstXOverlay implementation (#151059).

2004-11-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	  Don't assert (#157853).

2004-11-10  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
	  Fix bytes/samples confustion.
	(gst_alsa_sink_mmap), (gst_alsa_sink_loop):
	  Fix for underrun (#144389).

2004-11-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
	  Disable halfway-seek for pending release (since it needs a new
	  core release).

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4lsrc_calls.c:
	  add autoprobe-fps property so we can separate autoprobing parts

2004-11-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/v4lsrc_calls.c:
	initialise fourcc to catch unset fourcc's, and debug

2004-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (close_pad_link), (try_to_link_1):
	* gst/playback/gstplaybin.c: (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_property),
	(remove_sinks), (setup_sinks), (gst_play_bin_change_state),
	(gst_play_bin_get_event_masks), (gst_play_bin_send_event),
	(gst_play_bin_get_formats), (gst_play_bin_convert),
	(gst_play_bin_get_query_types), (gst_play_bin_query):
	Cleanups and some more documentation.

2004-11-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/libcaca/gstcacasink.c: (gst_cacasink_class_init),
	(gst_cacasink_init), (gst_cacasink_chain):
	* ext/libcaca/gstcacasink.h:
	Cacasink inherits from VideoSink, so let that store the clock.

2004-11-09  Wim Taymans  <wim@fluendo.com>

	* gst/playback/README:
	* gst/playback/gstplaybasebin.c: (group_destroy), (group_is_muted),
	(add_stream), (unknown_type), (add_element_stream), (no_more_pads),
	(probe_triggered), (preroll_unlinked), (new_decoded_pad),
	(gst_play_base_bin_change_state), (gst_play_base_bin_found_tag):
	* gst/playback/gstplaybin.c: (gen_vis_element), (remove_sinks),
	(setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute),
	(gst_stream_info_is_mute), (gst_stream_info_set_property):
	* gst/playback/gststreaminfo.h:
	Updated README.
	Only switch groups if all streams have muted (EOSed).
	Send Tags in sync with the stream playback instead of in
	the playback/preroll phase.
	Some cleanups, free the fakesrc elements.

2004-11-09  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/alsa/gstalsa.c: (gst_alsa_get_caps_internal):
	  buffer-frames property was missing
	* ext/arts/gst_arts.c:
	  rate missing from sinkcaps
	* ext/audiofile/gstafparse.c:
	* ext/audiofile/gstafsink.c:
	* ext/audiofile/gstafsrc.c:
	* ext/swfdec/gstswfdec.c:
	  int audio doesn't know buffer-frames
	* ext/cdparanoia/gstcdparanoia.c:
	  int audio doesn't know chunksize either
	* ext/nas/nassink.c:
	  it's endianness, not endianess
	* gst-libs/gst/audio/audio.h:
	  make float standard pad template caps really describe float
	* gst/law/mulaw.c: (linear_factory):
	  signed only, please
	* gst/mpegstream/gstdvddemux.c:
	  widths of 20 are not valid

2004-11-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	Submitted by: Luca Ferretti <elle.uca@infinito.it>

	* po/LINGUAS:
	* po/it.po:
	  Add Italian

2004-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (close_pad_link), (try_to_link_1):
	* gst/playback/gstplaybasebin.c: (probe_triggered),
	(gst_play_base_bin_change_state):
	Updated README, added more comments for fixmes etc..

2004-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
	We can remove this hack now.

2004-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_ayuv),
	(gst_videomixer_fill_checker), (gst_videomixer_fill_color),
	(gst_videomixer_blend_buffers), (gst_videomixer_loop):
	Only mix AYUV for maximum quality.

2004-11-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (get_relative), (gst_ogg_demux_src_query),
	(gst_ogg_demux_push), (gst_ogg_pad_push):
	  Let's act as if we're synchronized now! :).
	* ext/theora/theoradec.c: (theora_dec_chain):
	  Add some debug.

2004-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type),
	(gst_alpha_set_property), (gst_alpha_sink_link),
	(gst_alpha_set_ayuv), (gst_alpha_set_i420),
	(gst_alpha_chroma_key_ayuv), (gst_alpha_chroma_key_i420),
	(gst_alpha_init_params), (gst_alpha_chain):
	Implement alpha functions for AYUV too, this increases
	accuracy quite a bit.

2004-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info):
	* gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size),
	(shrink12), (img_get_alpha_info), (deinterlace_line),
	(deinterlace_line_inplace):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	Added AYUV colorspace and handle RGBA a bit more respectful.

2004-11-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  Actually always send a discont (cornercase when resending the
	  same serial-tagged chain twice).

2004-11-08  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_clear),
	(gst_ximagesink_finalize):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_clear),
	(gst_xvimagesink_finalize): Some more cleanups, leaks fixed and checks.

2004-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (aac_type_find):
	Don't segfault on NULL data.

2004-11-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (unlinked):
	* gst/playback/gstplay-marshal.list:
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(gst_play_base_bin_init), (group_create), (get_active_group),
	(get_building_group), (group_destroy), (group_commit),
	(queue_overrun), (remove_groups), (add_stream), (unknown_type),
	(add_element_stream), (no_more_pads), (probe_triggered),
	(preroll_unlinked), (new_decoded_pad), (removed_decoded_pad),
	(state_change), (setup_source), (gst_play_base_bin_get_property),
	(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
	(gst_play_base_bin_link_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(remove_sinks), (setup_sinks), (gst_play_bin_change_state):
	Add support for chained ogg files. Prepare for playlist
	support. This patch introduces the concept of pad groups, which
	together compose one playable media file.

2004-11-07  David Schleef  <ds@schleef.org>

	* testsuite/gst-lint: Check for pad templates that aren't statically
	scoped.

2004-11-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/musepack/Makefile.am:
	* ext/musepack/gstmusepackdec.cpp:
	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.cpp:
	* ext/musepack/gstmusepackreader.h:
	  Add musepack decoder.
	* ext/faad/gstfaad.c: (gst_faad_base_init):
	  Make pad templates static.
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find),
	(plugin_init):
	  Add musepack typefinder, make mp3 typefinding work halfway stream,
	  which doesn't actually work yet because id3demux doesn't implement
	  _get_length().

2004-11-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_queue_pads), (gst_ogg_mux_loop):
	  Fix interrupt event handling (#144436).

2004-11-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstid3tag.c: (gst_id3_tag_do_typefind):
	  Hide unused glory.

2004-11-06  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/vorbis/vorbisenc.c: (raw_caps_factory):
	  Fix weird caps (#157548).

2004-11-06  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/rtp/gstrtpgsmparse.c: (gst_rtpgsm_caps_nego):
	  Add missing NULL terminator (#157543).

2004-11-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	  ports can go up to 65535.  Move common defines to gsttcp.h

2004-11-05  Wim Taymans  <wim@fluendo.com>

	* gst/videotestsrc/videotestsrc.c: (paint_setup_Y41B),
	(paint_hline_Y41B), (paint_setup_Y42B), (paint_hline_Y42B):
	Added two more colorspaces.

2004-11-05  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size),
	(yuv422p_to_yuv422), (yuv420p_to_yuv422), (shrink12),
	(img_convert), (deinterlace_line), (deinterlace_line_inplace):
	More stride fixes.

2004-11-05  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/gstalpha.c: (gst_alpha_set_property), (gst_alpha_add),
	(gst_alpha_chroma_key), (gst_alpha_init_params), (gst_alpha_chain):
	* gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_i420),
	(gst_videomixer_fill_checker), (gst_videomixer_blend_buffers),
	(gst_videomixer_loop):
	More stride fixes.

2004-11-05  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstmad.c: (gst_mad_chain):
	  don't overflow data buffer. Flush not needed sync data when syncing
	  failed.

2004-11-04  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type),
	(gst_alpha_class_init), (gst_alpha_init), (gst_alpha_set_property),
	(gst_alpha_get_property), (gst_alpha_add), (gst_alpha_chroma_key),
	(gst_alpha_init_params), (gst_alpha_chain),
	(gst_alpha_change_state):
	Updated the chroma keying algorithm with something more
	sophisticated.

2004-11-03  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_i420),
	(gst_videomixer_fill_checker), (gst_videomixer_fill_color),
	(gst_videomixer_blend_buffers), (gst_videomixer_loop):
	Fix stride issues. Does not completely work for odd
	heights.

2004-11-03  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type),
	(gst_alpha_chroma_key), (gst_alpha_chain):
	Fix stride issues. Does not completely work for odd
	heights.

2004-11-03  Christophe Fergeau  <teuf@gnome.org>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps):
	* gst/videoscale/videoscale.c: (videoscale_find_by_structure):
	leak fixes

2004-11-03  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size),
	(avpicture_alloc):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	Use correct _fill function to get correct strides.

2004-11-02  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_parse_tree),
	(qtdemux_parse_udta), (qtdemux_tag_add), (gst_qtdemux_handle_esds):
	Change all g_print()s to debugging.  Add a bunch of consistency
	checks.

2004-11-02  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(try_to_link_1), (get_our_ghost_pad), (remove_element_chain),
	(unlinked), (no_more_pads), (close_link):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
	(unknown_type), (add_element_stream), (new_decoded_pad),
	(removed_decoded_pad), (setup_source):
	* gst/playback/gststreaminfo.c: (gst_stream_info_get_type),
	(gst_stream_info_class_init), (gst_stream_info_init),
	(gst_stream_info_new), (gst_stream_info_dispose),
	(stream_info_mute_pad), (gst_stream_info_set_property),
	(gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	Fix playback of multiple files.
	a slightly different approach to handling dynamic pad removals.
	This one only looks at pads that we have linked.

2004-11-01  Christophe Fergeau  <teuf@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_finalize): fix an "invalid
	free" warning from libc.

2004-11-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(get_unconnected_element), (remove_starting_from), (pad_removed),
	(close_link):
	  Implement support for dynamic pad changing. We listen to "live"
	  pad removals (i.e. while playing) and re-setup autoplugging
	  after that. Playbasebin/playbin need some more work for this
	  to finally work, but decodebin supports (and replugs) chained
	  ogg now.

2004-11-02  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/alsa/gstalsa.c: (gst_alsa_class_init), (gst_alsa_dispose),
	(gst_alsa_finalize):
	* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init),
	(gst_cdaudio_finalize):
	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
	(cdparanoia_finalize):
	* ext/divx/gstdivxdec.c: (gst_divxdec_dispose):
	* ext/divx/gstdivxenc.c: (gst_divxenc_dispose):
	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
	(dvdreadsrc_finalize):
	* ext/flac/gstflacdec.c: (gst_flacdec_class_init),
	(gst_flacdec_finalize):
	* ext/flac/gstflacenc.c: (gst_flacenc_class_init),
	(gst_flacenc_finalize):
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_class_init),
	(gst_gnomevfssink_finalize):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_class_init),
	(gst_gnomevfssrc_finalize):
	* ext/libfame/gstlibfame.c: (gst_fameenc_class_init),
	(gst_fameenc_finalize):
	* ext/nas/nassink.c: (gst_nassink_class_init),
	(gst_nassink_finalize):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_finalize),
	(gst_sdlvideosink_class_init):
	* ext/sndfile/gstsf.c: (gst_sf_dispose):
	* gst-libs/gst/mixer/mixertrack.c: (gst_mixer_track_dispose):
	* gst-libs/gst/tuner/tunerchannel.c: (gst_tuner_channel_dispose):
	* gst-libs/gst/tuner/tunernorm.c: (gst_tuner_norm_dispose):
	* gst-libs/gst/xwindowlistener/xwindowlistener.c:
	(gst_x_window_listener_dispose):
	* gst/audioscale/gstaudioscale.c:
	* gst/playondemand/gstplayondemand.c: (play_on_demand_class_init),
	(play_on_demand_finalize):
	* gst/videofilter/gstvideobalance.c: (gst_videobalance_dispose):
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain):
	* sys/cdrom/gstcdplayer.c: (cdplayer_class_init),
	(cdplayer_finalize):
	* sys/glsink/glimagesink.c: (gst_glimagesink_finalize),
	(gst_glimagesink_class_init):
	* sys/oss/gstosselement.c: (gst_osselement_class_init),
	(gst_osselement_finalize):
	* sys/oss/gstosssink.c: (gst_osssink_dispose):
	* sys/oss/gstosssrc.c: (gst_osssrc_dispose):
	* sys/v4l/gstv4lelement.c: (gst_v4lelement_dispose):
	  Fixes a bunch of problems with finalize and dispose functions,
	  either assumptions that dispose is only called once, or not calling
	  the parent class dispose/finalize function

2004-11-01  Stefan Kost  <ensonic@users.sf.net>

	* ext/esd/esdsink.c: (gst_esdsink_init), (gst_esdsink_link):
	  added two api precondition guards
	  use g_strdup with getenv to fix crash when using ENVVAR

2004-11-01  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/esd/esdsink.c: (gst_esdsink_class_init),
	(gst_esdsink_finalize):
	Use a finalize function, not dispose, and more importantly,
	call the parent class finalize function too

2004-11-01  Johan Dahlin  <johan@gnome.org>

	* ext/ogg/gstoggdemux.c:
	* gst/tags/gstvorbistag.c:
	Plug leaks.

2004-10-31  Benjamin Otte  <otte@gnome.org>

	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain):
	  lotsa memleaks today. But they're all small...

2004-10-31  Benjamin Otte  <otte@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  another memleak crushed

2004-10-31  Benjamin Otte  <otte@gnome.org>

	* gst/tags/gstvorbistag.c: (gst_tag_to_vorbis_comments):
	  fix memleak

2004-10-31  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  Hack to prevent crash when going to READY inside signal handler
	  while this function is active.

2004-10-31  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/ffmpegcolorspace/Makefile.am:
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/common.h:
	* gst/ffmpegcolorspace/dsputil.c: (dsputil_static_init):
	* gst/ffmpegcolorspace/dsputil.h:
	* gst/ffmpegcolorspace/gstffmpeg.c: (plugin_init):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_get_palette), (gst_ffmpeg_set_palette),
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_smpfmt_to_caps),
	(gst_ffmpegcsp_codectype_to_caps), (gst_ffmpeg_caps_to_smpfmt),
	(gst_ffmpeg_caps_to_pixfmt), (gst_ffmpegcsp_caps_with_codectype),
	(gst_ffmpegcsp_avpicture_fill):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcsp_caps_remove_format_info), (gst_ffmpegcsp_getcaps),
	(gst_ffmpegcsp_pad_link), (gst_ffmpegcsp_get_type),
	(gst_ffmpegcsp_base_init), (gst_ffmpegcsp_class_init),
	(gst_ffmpegcsp_init), (gst_ffmpegcsp_chain),
	(gst_ffmpegcsp_change_state), (gst_ffmpegcsp_set_property),
	(gst_ffmpegcsp_get_property), (gst_ffmpegcolorspace_register):
	* gst/ffmpegcolorspace/imgconvert.c:
	(avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name),
	(avcodec_get_pix_fmt), (avpicture_fill), (avpicture_layout),
	(avpicture_get_size), (avcodec_get_pix_fmt_loss),
	(avg_bits_per_pixel), (avcodec_find_best_pix_fmt1),
	(avcodec_find_best_pix_fmt), (img_copy_plane), (img_copy),
	(yuv422_to_yuv420p), (uyvy422_to_yuv420p), (uyvy422_to_yuv422p),
	(yuv422_to_yuv422p), (yuv422p_to_yuv422), (yuv422p_to_uyvy422),
	(uyvy411_to_yuv411p), (yuv420p_to_yuv422), (C_JPEG_TO_CCIR),
	(img_convert_init), (img_apply_table), (shrink41), (shrink21),
	(shrink12), (shrink22), (shrink44), (grow21_line), (grow41_line),
	(grow21), (grow22), (grow41), (grow44), (conv411),
	(gif_clut_index), (build_rgb_palette), (bitcopy_n), (mono_to_gray),
	(monowhite_to_gray), (monoblack_to_gray), (gray_to_mono),
	(gray_to_monowhite), (gray_to_monoblack), (avpicture_alloc),
	(avpicture_free), (is_yuv_planar), (img_convert),
	(get_alpha_info_pal8), (img_get_alpha_info), (deinterlace_line),
	(deinterlace_line_inplace), (deinterlace_bottom_field),
	(deinterlace_bottom_field_inplace), (avpicture_deinterlace):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	* gst/ffmpegcolorspace/mem.c: (av_malloc), (av_realloc), (av_free):
	* gst/ffmpegcolorspace/mmx.h:
	* gst/ffmpegcolorspace/utils.c: (av_mallocz), (av_strdup),
	(av_fast_realloc), (av_mallocz_static), (av_free_static),
	(av_freep), (avcodec_get_context_defaults),
	(avcodec_alloc_context), (avcodec_init):
	  Sync back from gst-ffmpeg. Deprecates ffcolorspace. Adds palette
	  handling plus update from ffmpeg CVS. Large clean-up.

2004-10-31  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/Makefile.am:
	  We need the marshallers for decodebin, too.

2004-10-30  David Schleef  <ds@schleef.org>

	* gst/typefind/gsttypefindfunctions.c: (qt_type_find): Make
	  quicktime typefinding work with 64-bit offsets.

2004-10-30  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event):
	  Set EOS on the element when processing an EOS event.
	* ext/speex/gstspeexdec.h:
	* ext/speex/gstspeexenc.h:
	  Only keep a const ptr to the mode
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data),
	(gst_riff_create_audio_template_caps):
	  Allow WMAV3, with up to 6 channels.
	* gst/asfdemux/gstasfmux.c: (gst_asfmux_request_new_pad):
	  Don't call gst_pad_set_event_function on a sink pad.
	* gst/mpegstream/gstdvddemux.c:
	(gst_dvd_demux_get_subpicture_stream),
	(gst_dvd_demux_set_cur_audio), (gst_dvd_demux_set_cur_subpicture):
	  Copy the explicit caps that were set across to the cur_* pads,
	  instead of trying to use a possibly non-existent negotiated caps.
	  Reset the type of subpicture pads to UNKNOWN after calling
	  init_stream, so that the caps get set.

2004-10-29  Martin Pitt  <martin.pitt@canonical.com>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
	  Don't touch buffer if it is of size 0 (fixes #151064).

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push), (gst_ogg_pad_push):
	  Synchronized discont handling.

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event),
	(gst_ogg_demux_push):
	  Make seeking sort-of exact again (fixes #156387).

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (unknown_type),
	(add_element_stream), (new_decoded_pad),
	(gst_play_base_bin_change_state):
	* gst/playback/gststreaminfo.c: (gst_stream_info_class_init),
	(gst_stream_info_init), (gst_stream_info_new),
	(gst_stream_info_dispose), (gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	  Make caps explicitely available. Makes testing for unsupported
	  types possible. Improves error reporting.

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_buffer_to_default_format):
	  Really don't touch read-only buffers (#156563).

2004-10-29  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewd by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
	  Fix memleak (#155223).

2004-10-29  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/.cvsignore:
	* gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type),
	(gst_multifdsink_class_init), (gst_multifdsink_init),
	(gst_multifdsink_add), (gst_multifdsink_remove),
	(gst_multifdsink_remove_client_link), (is_sync_frame),
	(gst_multifdsink_new_client),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property):
	* gst/tcp/gstmultifdsink.h:
	Added burst on connect sync_method, deprecated sync_clients,
	streamlined the sync code some more.

2004-10-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (thread_error), (setup_source),
	(gst_play_base_bin_change_state):
	  Improve error reporting.

2004-10-28  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/Makefile.am:
	* gst/tcp/fdsetstress.c: (mess_some_more), (run_test), (main):
	* gst/tcp/gstfdset.c: (nearest_pow), (resize), (ensure_size),
	(gst_fdset_new), (gst_fdset_free), (gst_fdset_set_mode),
	(gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read),
	(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
	(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
	(gst_fdset_wait):
	Added more locks around fdset structures. Fixed/reworked
	the poll array resizing code.
	Added stress test for fdset.

2004-10-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link):
	fix build

2004-10-28  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link):
	  fix link function to always query channels and query width for
	  floats
	* configure.ac:
	  add equalizer dir
	* gst/equalizer/Makefile.am:
	* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_get_type),
	(gst_iir_equalizer_base_init), (gst_iir_equalizer_class_init),
	(gst_iir_equalizer_init), (gst_iir_equalizer_finalize),
	(arg_to_scale), (setup_filter),
	(gst_iir_equalizer_compute_frequencies),
	(gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property),
	(gst_iir_equalizer_filter_inplace), (gst_iir_equalizer_setup),
	(plugin_init):
	  add an equalizer

2004-10-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	Submitted by: Kjartan Maraas <kmaraas@broadpark.no>

	* po/LINGUAS:
	* po/nb.po:
	  Added Norwegian Bokmaal translation

2004-10-27  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	  Don't break on options (fixes #156488).

2004-10-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/cdaudio/Makefile.am:
	* sys/Makefile.am:
	  fix build on older automake

2004-10-26  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_video_getcaps),
	(gst_dvdec_video_link), (gst_dvdec_push), (gst_dvdec_loop):
	Allow a little margin when negotiating the framerate.

2004-10-26  Stefan Kost  <ensonic@users.sf.net>

	* gst/level/gstlevel.c:
	  synchonised naming of pads and pad-templates

2004-10-26  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event),
	(gst_ogg_demux_handle_event), (_find_chain_get_unknown_part),
	(_find_streams_check), (gst_ogg_demux_push):
	Fix EOS again. Needs to be done in a better way. We should not
	remove the pad if there is no new chained stream.

2004-10-26 Iain <iaingnome@gmail.com>

	* ext/ogg/gstoggdemux.c (gst_ogg_pad_new): Free the tag list.
	* gst/audioscale/gstaudioscale.c (gst_audioscale_link): Free the copy
	of the caps.
	* gst/interleave/interleave.c (interleave_class_init): Hook up release
	pad.
	(interleave_release_pad): Remove the pad.
	* gst/level/gstlevel.c: Allow the level to take 1 or 2 channels.
	* sys/sunaudio/gstsunaudio.c (gst_sunaudio_setparams): Pay attention to
	the set device.
	* sys/xvimage/xvimagesink.c (gst_xvimagesink_get_xv_support): Free the
	attrs
	(gst_xvimagesink_xcontext_clear): Free the xcontext.
	(gst_xvimagesink_finalize): Free the par.

2004-10-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavimux.c: (gst_avimux_audsinkconnect),
	(gst_avimux_stop_file):
	  First calculate the rate, and only then use it. Hdr.rate is a
	  multiple and not a derivative of hdr.scale. Scale is not the
	  same as blockalign but is solely related to rate.

2004-10-26  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_init),
	(gst_gnomevfssink_handle_event), (gst_gnomevfssink_chain):
	  Implement seeking.

2004-10-25  James Henstridge  <james@jamesh.id.au>

	Reviewed by:  David Schleef  <ds@schleef.org>

	* examples/gstplay/player.c: (got_stream_length), (main):
	* examples/seeking/cdplayer.c: (update_scale):
	* examples/seeking/seek.c: (format_value), (update_scale):
	* examples/seeking/spider_seek.c: (format_value), (update_scale),
	(stop_seek):
	Build fixes on AMD64.

2004-10-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by: Ronald Bultje <rbultje at gnome dot org>

	* sys/v4l/v4l_calls.c: (gst_v4l_get_chan_names):
	Fix for some v4l cards which hang in v4lsrc

2004-10-25  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_remove),
	(gst_ogg_demux_push), (gst_ogg_chains_clear):
	Make sure to remove the pad when a new chain is
	encountered. Set some vars to NULL so we don't try
	to reference freed memory.

2004-10-25  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/Makefile.am:
	* examples/seeking/cdplayer.c: (update_scale):
	* examples/seeking/chained.c: (unlinked), (new_pad), (main):
	* examples/seeking/playbin.c: (make_playerbin_pipeline),
	(format_value), (update_scale), (iterate), (start_seek),
	(stop_seek), (print_media_info), (play_cb), (pause_cb), (stop_cb),
	(print_usage), (main):
	Added some more examples, update others.

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/flac/gstflacdec.c: (gst_flacdec_update_metadata):
	* ext/speex/gstspeexdec.c: (speex_dec_chain):
	* ext/theora/theoradec.c: (theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  Add codec-name metadata.

2004-10-25  Takao Fujiwara  <Takao.Fujiwara@Sun.COM>

	Reviewd by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	* ext/alsa/gstalsamixertrack.h:
	* po/POTFILES.in:
	  ALSA mixer track label internationalization (#154054).

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/theora/theoradec.c: (theora_dec_chain):
	  Export bitrate as metadata.

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	* ext/alsa/gstalsamixertrack.h:
	  Fix names, fix loop.

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/speex/gstspeexdec.c: (gst_speex_dec_init),
	(speex_dec_convert):
	  sinkconvert function so oggdemux can get the file length (totem).

2004-10-25  James Morrison  <ja2morri@csclub.uwaterloo.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
	  Don't push incomplete packets.
	* gst/typefind/gsttypefindfunctions.c: (m4a_type_find):
	  Fix MPEG-4 audio typefinding.

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/Makefile.am:
	* sys/v4l/gstv4l.c: (plugin_init):
	* sys/v4l/gstv4lelement.c: (gst_v4lelement_get_type),
	(gst_v4lelement_init), (gst_v4lelement_dispose),
	(gst_v4lelement_change_state):
	* sys/v4l/gstv4lelement.h:
	* sys/v4l/gstv4lxoverlay.c: (gst_v4l_xoverlay_open),
	(gst_v4l_xoverlay_close), (idle_refresh),
	(gst_v4l_xoverlay_set_xwindow_id):
	* sys/v4l/gstv4lxoverlay.h:
	* sys/v4l/v4l-overlay_calls.c:
	* sys/v4l/v4l_calls.h:
	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2.c: (plugin_init):
	* sys/v4l2/gstv4l2element.c: (gst_v4l2element_get_type),
	(gst_v4l2element_init), (gst_v4l2element_dispose),
	(gst_v4l2element_change_state):
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open),
	(gst_v4l2_xoverlay_close), (idle_refresh),
	(gst_v4l2_xoverlay_set_xwindow_id):
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2-overlay_calls.c:
	* sys/v4l2/v4l2_calls.h:
	  Remove client-side overlay handling, use the X-server v4l plugin
	  for that. Nicer overlay, less code. Also make the plugin
	  compileable without X (but then without overlay, obviously).
	  Makes xwindowlistener obsolete, should we remove that?

2004-10-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssrc.c: (gst_osssrc_get_time), (gst_osssrc_get),
	(gst_osssrc_src_query):
	* sys/oss/gstosssrc.h:
	  OK, so people want offset in DEFAULT. This time, actually fix all
	  cases.
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps):
	  Add FPS properly.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfmux.c:
	* gst/avi/gstavimux.c:
	  Framerate.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2element.c: (gst_v4l2element_set_property):
	  Fix properties (channel, norm, frequency).

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2element.c: (gst_v4l2element_get_property):
	  Flag typo.
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_set_defaults):
	  No warnings.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_clear_format_list):
	  Fix hang.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2element.h:
	  Yet Another Hack (tm) for kernel header borkedness.
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_init),
	(gst_v4l2src_v4l2fourcc_to_caps), (gst_v4l2_fourcc_from_structure),
	(gst_v4l2src_link), (gst_v4l2src_getcaps),
	(gst_v4l2src_change_state):
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_init),
	(gst_v4l2src_capture_start), (gst_v4l2src_capture_stop):
	  Fix caps, keep track of state, work.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps):
	  Quiet.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssrc.c: (gst_osssrc_get):
	  Don't mix bytes and samples.

2004-10-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggmux.c:
	  Basic pad template which accepts OGM tracks, speex, flac, vorbis
	  and theora. Any is incorrect.
	* gst/asfdemux/gstasfmux.c: (gst_asfmux_vidsink_link):
	  Fix caps.
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_base_init):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_base_init),
	(gst_v4lmjpegsrc_init), (gst_v4lmjpegsrc_srcconnect),
	(gst_v4lmjpegsrc_getcaps), (gst_v4lmjpegsrc_change_state):
	* sys/v4l/gstv4lmjpegsrc.h:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps),
	(gst_v4lsrc_change_state):
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_start),
	(gst_v4lmjpegsrc_capture_stop):
	  Fix caps. Keep track of internal state. Work.

2004-10-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/Makefile.am:
	  Fix the build fixes.

2004-10-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (_find_chain_seek),
	(gst_ogg_pad_push):
	  Check for pad availability before using it.
	* ext/ogg/gstoggdemux.c: (_find_chain_process):
	  Fix parsing of chained ogg. Needs more work on the decoder side.

2004-10-22  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/spectrum/Makefile.am:
	* gst/spectrum/demo-osssrc.c: (spectrum_chain), (main),
	(idle_func):
	  Fix demo and reenable it. Yes, I'm currently playing with audio
	  analysis tools

2004-10-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  We love it if files that start at zero work too...

2004-10-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate):
	  Handle files with missing EOS headers.

2004-10-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/tcp/gsttcpserversink.c:
	(gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_init_send):
	Zero some variables first (need for accept not to return EINVAL)

2004-10-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_pad_push):
	* ext/theora/theoradec.c: (theora_dec_sink_convert),
	(theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
	(gst_vorbis_dec_init), (vorbis_dec_convert), (vorbis_dec_chain):
	  Seeking and querying finetune.

2004-10-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/raw1394/Makefile.am:
	  fix the build

2004-10-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate):
	  Wrong return.
	* gst/playback/Makefile.am:
	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init):
	* gst/playback/gstplay-marshal.list:
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init):
	  Fix marshallers.

2004-10-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event):
	  Silence.

2004-10-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_pad_populate),
	(gst_ogg_pad_push):
	  Yay for non-lineair granulepos in theora.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_video_getcaps),
	(gst_dvdec_video_link), (gst_dvdec_push), (gst_dvdec_loop):
	* ext/dv/gstdvdec.h:
	Make sure we renegotiate aspect ratio when the camera switches.

2004-10-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_pad_push):
	  Start at zero.
	* ext/theora/theoradec.c: (theora_dec_chain):
	  Skip headers. Bad idea for chained ogg, but fixes seeking.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	I swear, this is the last time I touch this.

2004-10-18  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_pad_populate),
	(_read_bos_process), (gst_ogg_demux_iterate), (gst_ogg_pad_new):
	  Faster seeking.
	* ext/theora/theoradec.c: (theora_dec_sink_convert):
	  Time-to-default conversion.
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  Don't error on unknown packets, just skip. We should probably
	  read them if we want to support chained ogg.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	Added cdaudio to wrong list.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	Revive cdaudio.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_video_getcaps),
	(gst_dvdec_video_link), (gst_dvdec_push):
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init),
	(gst_smokeenc_resync), (gst_smokeenc_chain):
	Fix mimetype on smoke encoder.
	Add aspect ratio to dvdec. Not sure if these
	values are correct though....

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_class_init):
	Fix vorbis property descriptions and ranges.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate):
	Really do nothing when no data is available.
	Go to the playing state when the stream is not seekable
	instead of failing.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* ext/cdaudio/gstcdaudio.c: (_do_init), (gst_cdaudio_base_init),
	(gst_cdaudio_get_event_masks), (gst_cdaudio_send_event),
	(gst_cdaudio_query), (plugin_init), (cdaudio_uri_get_type),
	(cdaudio_uri_get_protocols), (cdaudio_uri_get_uri),
	(cdaudio_uri_set_uri), (cdaudio_uri_handler_init):
	Added uri handler for cd://
	Port to new API.

2004-10-18  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(gst_decode_bin_init), (find_compatibles), (close_pad_link),
	(try_to_link_1), (no_more_pads), (close_link), (type_found):
	* gst/playback/gstplaybasebin.c: (gen_preroll_element),
	(remove_prerolls), (unknown_type), (add_element_stream),
	(new_decoded_pad), (setup_source), (gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_link_stream):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_vis_element), (remove_sinks), (setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
	(gst_stream_info_get_type), (gst_stream_info_class_init),
	(gst_stream_info_init), (gst_stream_info_new),
	(gst_stream_info_dispose), (stream_info_mute_pad),
	(gst_stream_info_set_property), (gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	Add sink padtemplate to decodebin.
	Added some more comments.
	Make queue size configurable in playbasebin.
	Added possibility to use elements as sinks (ex cdaudio).

2004-10-15  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeexenc.c: (gst_speexenc_class_init),
	(gst_speexenc_chain):
	Fix speex timestamps so that it gets muxed properly.

2004-10-15  Wim Taymans  <wim@fluendo.com>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_get_type),
	(gst_dv1394src_base_init), (gst_dv1394src_class_init),
	(gst_dv1394src_init), (gst_dv1394src_dispose),
	(gst_dv1394src_iso_receive), (gst_dv1394src_discover_avc_node),
	(gst_dv1394src_change_state), (gst_dv1394src_get_event_mask),
	(gst_dv1394src_event), (gst_dv1394src_get_formats),
	(gst_dv1394src_convert), (gst_dv1394src_get_query_types),
	(gst_dv1394src_query), (gst_dv1394src_uri_get_type),
	(gst_dv1394src_uri_get_protocols), (gst_dv1394src_uri_get_uri),
	(gst_dv1394src_uri_set_uri), (gst_dv1394src_uri_handler_init):
	* ext/raw1394/gstdv1394src.h:
	Added conversion/query functions.
	Update buffer timestamps,
	Added signals.
	Added uri dv:// so it might play from the firewire in playbin.
	Fix a possible leak.
	Added debugging.

2004-10-15  Wim Taymans  <wim@fluendo.com>

	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_class_init),
	(gst_dv1394src_init), (gst_dv1394src_set_property),
	(gst_dv1394src_get_property), (gst_dv1394src_iso_receive),
	(gst_dv1394src_discover_avc_node), (gst_dv1394src_change_state):
	* ext/raw1394/gstdv1394src.h:
	Added AV/C VTR control support needed for some cameras.
	Added automatic port detection.
	Added properties for selecting the channel.
	The configure.ac script is not yet updated to reflect the
	new libavc1394 and librom1394 dependencies.

2004-10-15  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse), (gst_qtdemux_handle_esds):
	An esds box is not a container.
	Fix parsing of mp4v boxes.
	Do not try to renegotiate fps for each frame. Need to
	find a better method. This should fix mp4 playback.

2004-10-14  David Schleef  <ds@schleef.org>

	* configure.ac: update for swfdec-0.3 and liboil-0.2
	* ext/swfdec/gstswfdec.c: update for swfdec-0.3
	* ext/swfdec/gstswfdec.h: same
	* gst/videofilter/gstvideobalance.c: update for liboil-0.2
	* gst/videotestsrc/videotestsrc.c: same

2004-10-14  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_remove_client_link),
	(is_sync_frame), (gst_multifdsink_new_client),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_change_state):
	Turn warnings into info.
	Don't allow a state change in the streaming thread.

2004-10-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/oggvorbisenc.c:
	* ext/vorbis/vorbisdec.c:
	  fix template sample rate

2004-10-13  Wim Taymans  <wim@fluendo.com>

	* ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain):
	Decoding the header first fixes some problems in resyncing
	in more mp3s.

2004-10-12  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_vis_element), (remove_sinks), (setup_sinks):
	Added vis plugin support, need to configure the vis
	element to activate it.

2004-10-12  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get),
	(gst_gnomevfssrc_srcpad_query), (gst_gnomevfssrc_srcpad_event):
	  Some debug.
	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_handle_src_event), (gst_avi_demux_read_superindex),
	(gst_avi_demux_read_subindexes), (gst_avi_demux_add_stream),
	(gst_avi_demux_stream_index), (gst_avi_demux_skip),
	(gst_avi_demux_sync), (gst_avi_demux_stream_scan),
	(gst_avi_demux_massage_index), (gst_avi_demux_stream_header):
	* gst/avi/gstavidemux.h:
	  Support for openDML-2.0 indx/ix## chunks. Support for broken index
	  recovery (where, if part of the index is broken, we will still read
	  the rest of the index and recover the broken part by stream
	  scanning). More broken media support. EOS workarounds. General AVI
	  braindamage headache recovery. Aspirin included.

2004-10-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_open),
	(cdparanoia_event), (cdparanoia_query):
	  Get rid of hideous lead-in.

2004-10-11  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (setup_source):
	Wrong var used to get g_list_next.

2004-10-11  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init),
	(cdparanoia_get), (cdparanoia_open):
	  Report discid as metadata, add duration.

2004-10-11  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (setup_source):
	Cleanup the previous pipeline a little earlier for the
	case that a source element provides raw data.

2004-10-11  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  reset v1 tag offset when there is no v1 tag. Fixes id3demux always
	  consuming the last 128 bytes, even though it was valid mp3 data.

2004-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps),
	(gst_v4lsrc_getcaps), (gst_v4lsrc_get):
	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay):
	Change g_warnings to GST_WARNING_OBJECT and fix colourspace issue

2004-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps):
	Fix for webcams that support only specific width or height

2004-10-09  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_stop_file):
	  Fix wrong discont event setup (fixes #154967).

2004-10-09  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	  Error out on invalid data (fixes #154807).

2004-10-09  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dvdread/dvdreadsrc.c: (_read):
	  Make titles > 0 work again (fixes #154834).

2004-10-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_template_caps):
	  WMV3 missing in template caps.

2004-10-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	  OK, so the original code was too strict. It makes random AVI files
	  hang for seconds upon opening, which is unacceptable and is far
	  beyond the original goal of getting multiple chunks for one-chunk
	  sounc stream files. So now do just that.

2004-10-09  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (setup_source),
	(gst_play_base_bin_change_state):
	  Actually clean up streaminfo if output fails. This would trigger
	  if, for example, there was no CD in the drive. No preroll, so
	  a streaminfo structure is created, but the subsequent state change
	  of the thread fails.
	* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
	  Don't change state if parent failed.

2004-10-08  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
	(gst_play_bin_init), (gst_play_bin_get_property), (handoff),
	(gen_video_element), (remove_sinks):
	  Add small bits of code for screenshot handling.

2004-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybin.c: (gst_play_bin_set_property),
	(gen_video_element), (gen_audio_element), (setup_sinks):
	Don't assume the user provided sinks are named "sink"...

2004-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (gen_preroll_element),
	(unknown_type), (setup_source), (gst_play_base_bin_remove_element),
	(gst_play_base_bin_link_stream):
	Do not try to autoplug sources that generate raw streams like
	cdparanoia.
	disconnect the preroll overrun signal when we don't need it anymore.

2004-10-08  Milosz Derezynski  <internalerror.rez@fhtw-berlin.de>

	* ext/cdparanoia/gstcdparanoia.c: (_do_init),
	Added reworked patch from #154903 from milosz derezynski (deadchip).

2004-10-08  Wim Taymans  <wim@fluendo.com>

	* ext/cdparanoia/gstcdparanoia.c: (_do_init),
	(cdparanoia_base_init), (cdparanoia_class_init), (cdparanoia_init),
	(cdparanoia_dispose), (cdparanoia_get), (cdparanoia_change_state),
	(cdparanoia_convert), (cdparanoia_uri_get_type),
	(cdparanoia_uri_get_protocols), (cdparanoia_uri_get_uri),
	(cdparanoia_uri_set_uri), (cdparanoia_uri_handler_init):
	* ext/cdparanoia/gstcdparanoia.h:
	This adds the cdda://<tracknum> uri.

2004-10-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
	(gst_decode_bin_init), (find_compatibles), (close_pad_link),
	(try_to_link_1), (no_more_pads), (close_link), (type_found):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
	(unknown_type), (gst_play_base_bin_remove_element),
	(gst_play_base_bin_link_stream):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_init),
	(gst_play_bin_set_property), (gen_video_element),
	(gen_audio_element), (setup_sinks):
	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
	(gst_stream_info_get_type), (gst_stream_info_class_init),
	(gst_stream_info_init), (gst_stream_info_new),
	(gst_stream_info_dispose), (stream_info_mute_pad),
	(gst_stream_info_set_property), (gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	Reuse the audio and video bins.
	Some internal cleanups in the stream selection code.

2004-10-08  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
	(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init):
	* sys/xvimage/xvimagesink.h: Reverting Ronald's changes as the issue is
	not coming from those elements. Moreover these elements should not keep
	the xid they have been given when in NULL state.

2004-10-07  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
	(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init):
	* sys/xvimage/xvimagesink.h:
	  Actually only create a new toplevel window if we're not gonna
	  embed it right after.

2004-10-07  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (play_base_bin_mute_pad),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream):
	* gst/playback/gstplaybin.c: (setup_sinks):
	Implement muting/unmuting of streams, mute streams that are not
	used.

2004-10-07  Wim Taymans  <wim@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c: (ac3_type_find),
	(plugin_init):
	Added lame audio/x-ac3 typefind function.

2004-10-06  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	  bump nano to cvs

=== release 0.8.5 ===

2004-10-06  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	  releasing 0.8.5, "Take You On"

2004-10-06  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(no_more_pads), (close_link), (type_found):
	* gst/playback/gstplaybasebin.c: (new_decoded_pad):
	* gst/playback/gstplaybin.c: (gen_video_element):
	Do not signal the no_more_pads after the first pad when
	we are plugging a non dynamic element with multiple
	output pads (like swfdec, dvdec, ...).

2004-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump for prerelease

2004-10-06  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/wavparse/gstwavparse.c:
	  add ATRAC3 to STATIC CAPS to fix a warning

	* gst/matroska/ebml-read.c:
	* gst-libs/gst/riff/riff-read.c:
	  fix typos

2004-10-06  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/riff/riff-media.c:
	  generate caps for ATRAC3 audio streams

	* gst/realmedia/rmdemux.c:
	  generate caps for ATRAC3 audio streams

2004-10-06  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/wavparse/Makefile.am
	* gst/wavparse/riff.h
	* gst/wavparse/wavparse.vcproj
	  riff.h removal (unused and duplication with riff-ids.h)

2004-10-06  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/wavparse/gstwavparse.h
	  remove duplicated defines for audio codec codes

	* gst-libs/gst/riff/riff-ids.h
	* gst/wavenc/riff.h:
	  add "4CC" code for ATRAC3 audio streams
	  add "4CC" code for ITU_G721_ADPCM (unused for now)

2004-10-06  Wim Taymans  <wim@fluendo.com>

	* gst/flx/gstflxdec.c: (gst_flxdec_init), (gst_flxdec_loop):
	Actually _do_ negotiation. Pass gdouble as arg instead
	of guint64 for the framerate.

2004-10-06  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
	(find_compatibles), (close_pad_link), (try_to_link_1),
	(no_more_pads), (close_link), (type_found):
	* gst/playback/gstplaybasebin.c: (new_decoded_pad):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	Set state on newly added element to READY so that negotiation
	can happen ASAP.
	Addes some more debug info.
	Do not try to plug pads with multiple caps structures or ANY
	because it is too dangerous since we do not do dynamic
	replugging.

2004-10-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	written by: Gora Mohanty <gora_mohanty@yahoo.co.in>

	* po/LINGUAS:
	* po/or.po:
	  add Oriya translation

2004-10-05  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	  Prevent overwrite of size member. Makes audio sound crappy.

2004-10-05  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	Add rmvb to the list of known RealMedia extensions

2004-10-05  Wim Taymans  <wim@fluendo.com>

	* ext/libmng/gstmngdec.c: (gst_mngdec_loop), (mngdec_error),
	(mngdec_openstream), (mngdec_closestream),
	(mngdec_handle_sink_event), (mngdec_readdata),
	(mngdec_gettickcount), (mngdec_settimer), (mngdec_processheader),
	(mngdec_getcanvasline), (mngdec_refresh),
	(gst_mngdec_change_state):
	Set the framerate correctly.

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	  There was something wrong with the index massaging.

2004-10-04  Wim Taymans  <wim@fluendo.com>

	* ext/jpeg/gstjpeg.c: (smoke_type_find), (plugin_init):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_init),
	(gst_smokedec_chain):
	* ext/jpeg/gstsmokedec.h:
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init),
	(gst_smokeenc_init), (gst_smokeenc_resync), (gst_smokeenc_chain):
	* ext/jpeg/gstsmokeenc.h:
	* ext/jpeg/smokecodec.c: (smokecodec_encode_new),
	(smokecodec_decode_new), (smokecodec_info_free),
	(smokecodec_set_quality), (smokecodec_get_quality),
	(smokecodec_set_threshold), (smokecodec_get_threshold),
	(smokecodec_set_bitrate), (smokecodec_get_bitrate),
	(find_best_size), (abs_diff), (put), (smokecodec_encode_id),
	(smokecodec_encode), (smokecodec_parse_id),
	(smokecodec_parse_header), (smokecodec_decode):
	* ext/jpeg/smokecodec.h:
	* ext/jpeg/smokeformat.h:
	Updated smoke, new bitstream, allows embedding in ogg.

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event):
	  Fix seeking in some files. All this code is no longer needed (and
	  actually breaks stuff) because we now synchronize the full index
	  right when reading the header.

2004-10-04  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	configure update for libmng.

2004-10-04  Wim Taymans  <wim@fluendo.com>

	* ext/libmng/Makefile.am:
	* ext/libmng/gstmng.c: (plugin_init):
	* ext/libmng/gstmng.h:
	* ext/libmng/gstmngdec.c: (gst_mngdec_get_type),
	(gst_mngdec_base_init), (gst_mngdec_class_init),
	(gst_mngdec_sinklink), (gst_mngdec_init), (gst_mngdec_src_getcaps),
	(gst_mngdec_loop), (gst_mngdec_get_property),
	(gst_mngdec_set_property), (mngdec_error), (mngdec_openstream),
	(mngdec_closestream), (mngdec_handle_sink_event),
	(mngdec_readdata), (mngdec_gettickcount), (mngdec_settimer),
	(mngdec_processheader), (mngdec_getcanvasline), (mngdec_refresh),
	(gst_mngdec_change_state):
	* ext/libmng/gstmngdec.h:
	* ext/libmng/gstmngenc.c: (gst_mngenc_get_type),
	(mng_caps_factory), (raw_caps_factory), (gst_mngenc_base_init),
	(gst_mngenc_class_init), (gst_mngenc_sinklink), (gst_mngenc_init),
	(gst_mngenc_chain), (gst_mngenc_get_property),
	(gst_mngenc_set_property):
	* ext/libmng/gstmngenc.h:
	Added basic MNG decoder. Needs more work. The encoder does
	not work yet.

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/realmedia/rmdemux.c: (gst_rmdemux_handle_sink_event),
	(gst_rmdemux_loop), (gst_rmdemux_add_stream),
	(gst_rmdemux_parse_mdpr), (gst_rmdemux_dump_mdpr):
	  Don't hang on length=0 chunks. Some negotiation fixes. Signal
	  no-more-pads.

2004-10-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  you need at least 1.0.4 of speex

2004-10-04 Iain <iaingnome@gmail.com>

	* ext/speex/gstspeexdec.h: Revert the includes changes.

	* ext/speex/gstspeexenc.[ch]: Revert the includes changes.

2004-09-30 Iain <iaingnome@gmail.com>

	* sys/sunaudio/gstsunaudio.c (gst_sunaudiosink_open): Use the device
	found during init or set as a property instead of hardcoding /dev/audio

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/realmedia/rmdemux.c: (gst_rmdemux_class_init),
	(gst_rmdemux_init), (gst_rmdemux_handle_sink_event),
	(gst_rmdemux_loop), (gst_rmdemux_add_stream), (re_hexdump_bytes),
	(re_dump_pascal_string), (gst_rmdemux_dump__rmf),
	(gst_rmdemux_dump_prop), (gst_rmdemux_parse_mdpr),
	(gst_rmdemux_dump_mdpr), (gst_rmdemux_dump_indx),
	(gst_rmdemux_dump_data):
	  Use debug category, fix EOS handling. filesrc ! rmdemux now
	  works.

2004-10-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_scan), (sort), (gst_avi_demux_massage_index),
	(gst_avi_demux_stream_header), (gst_avi_demux_stream_data):
	  Improve allocation, cutting and sorting of the index. How takes a
	  few seconds instead of minutes.

2004-10-03  Christophe Fergeau  <teuf@gnome.org>

	* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr):
	  fixed compilation

2004-10-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add wing commander format mimetype/fourccs.
	* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
	  Don't crash if some value is 0.

2004-10-02  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_template_caps):
	  Add DIB fourcc (raw, palettized 8-bit RGB).
	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data):
	  Oops, fix strf_data reading bug.
	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
	  Use a non-NULL tag.
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Time for hacks. Sorry Dave. At least one quicktime movie (a
	  trailer) that I've encountered contains multiple video tracks.
	  One of those is the actual video track, the other are one-frame
	  tracks (images). Unfortunately, the number of frames according
	  to the trak header is 1 for each, so that doesn't help. So
	  instead, I look at the duration and discard tracks with a
	  duration shorter than 20% of the length of the stream. Better
	  than nothing.

2004-10-01  Christian Schaller <christian@fluendo.com>

	* ext/ivorbis/vorbis.c:
	  Patch from Phil Blundell (Bug 152341)

2004-10-01  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeexdec.c: (gst_speex_dec_class_init),
	(speex_dec_get_formats), (speex_dec_convert),
	(speex_dec_src_query), (speex_dec_src_event), (speex_dec_event),
	(speex_dec_chain), (gst_speexdec_get_property),
	(gst_speexdec_set_property):
	Small cleanups.

2004-10-01  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_class_init),
	(gst_wavparse_stream_init), (gst_wavparse_fmt),
	(gst_wavparse_other), (gst_wavparse_loop),
	(gst_wavparse_pad_convert), (gst_wavparse_pad_query),
	(gst_wavparse_srcpad_event):
	* gst/wavparse/gstwavparse.h:
	Added some more debugging info.
	Fix the case where the length of the file is 0.
	Make sure we seek to sample borders.

2004-10-01  Wim Taymans  <wim@fluendo.com>

	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),
	(gst_decode_bin_init), (find_compatibles), (close_pad_link),
	(try_to_link_1), (no_more_pads), (close_link), (type_found):
	Add some debug info to decodebin, update README

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dvdnav/dvdnavsrc.c: (dvdnav_handle_navigation_event):
	  Don't use g_print(); use GST_DEBUG().

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_queue_pads):
	  Handle EOS properly.

2004-10-01  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_sinkconnect),
	(gst_faad_chain), (gst_faad_change_state):
	* ext/faad/gstfaad.h:
	  Allow playback of raw (unframed) MPEG AAC files (#148993).

2004-10-01  Sebastien Cote  <sc5@hermes.usherb.ca>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
	  Throw error if we didn't recognize the stream. Fixes #152289.

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/videoscale/gstvideoscale.c: (gst_videoscale_link):
	  Fix negotiation.

2004-10-01  Francis Labonte  <francis_labonte@hotmail.com>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
	  Fix memleak.

2004-10-01  Balamurali Viswanathan  <balamurali.viswanathan@wipro.com>

	Reviewed by: Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_setparams):
	  Solve #152805.
	* sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_mute):
	  Solve 152806.

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_audio_caps_with_data):
	  Add codec_data handling (like asfdemux used to do).
	* gst/asfdemux/gstasf.c: (plugin_init):
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
	(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream):
	  Use riff-media for caps creation instead of our own (mostly
	  broken) copy of its functions.

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_try_capture):
	  Don't actually error out if we get another return value than
	  -EINVAL. Opposite to what I first thought, drivers have random
	  return values for this, although -EINVAL is the expected return
	  value. Since this is not fatal, we shouldn't use
	  GST_ELEMENT_ERROR() but just GST_ERROR_OBJECT().

2004-10-01  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init),
	(dvdreadsrc_init), (dvdreadsrc_dispose), (dvdreadsrc_set_property),
	(dvdreadsrc_get_property), (_open), (_seek), (_read),
	(dvdreadsrc_get), (dvdreadsrc_open_file),
	(dvdreadsrc_change_state):
	  Fix. Don't do one big huge loop around the whole DVD, that will
	  cache all data and thus eat sizeof(dvd) (several GB) before we
	  see something.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek):
	  Actually NULL'ify event after using it.
	* gst/matroska/ebml-read.c: (gst_ebml_read_use_event),
	(gst_ebml_read_handle_event), (gst_ebml_read_element_id),
	(gst_ebml_read_element_length), (gst_ebml_read_element_data),
	(gst_ebml_read_seek), (gst_ebml_read_skip):
	  Handle events.
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init),
	(gst_dvd_demux_init), (gst_dvd_demux_get_audio_stream),
	(gst_dvd_demux_get_subpicture_stream), (gst_dvd_demux_plugin_init):
	  Fix timing (this will probably break if I seek using menus, but
	  I didn't get there yet). VOBs and normal DVDs should now work.
	  Add a mpeg2-only pad with high rank so this get autoplugged for
	  MPEG-2 movies.
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_base_init),
	(gst_mpeg_demux_class_init), (gst_mpeg_demux_init),
	(gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_get_video_stream),
	(gst_mpeg_demux_get_audio_stream),
	(gst_mpeg_demux_get_private_stream), (gst_mpeg_demux_parse_packet),
	(gst_mpeg_demux_parse_pes), (gst_mpeg_demux_plugin_init):
	  Use this as second rank for MPEG-1 and MPEG-2. Still use this for
	  MPEG-1 but use dvddemux for MPEG-2.
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init),
	(gst_mpeg_parse_init), (gst_mpeg_parse_new_pad),
	(gst_mpeg_parse_parse_packhead):
	  Timing. Only add pad template if it exists. Add sink template from
	  class and not from ourselves. This means we will always use the
	  correct sink template even if it is not the one defined in this
	  file.

2004-09-29  Wim Taymans  <wim@fluendo.com>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_packet),
	(gst_mpeg_demux_parse_pes):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
	Fix playback of mpeg again, timestamps where screwed up by
	patch 1.61.

2004-09-29  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/flac/gstflacdec.c: (gst_flacdec_src_query):
	  Only return true if we actually filled something in. Prevents
	  player applications from showing a random length for flac files.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init),
	(gst_riff_read_use_event), (gst_riff_read_handle_event),
	(gst_riff_read_seek), (gst_riff_read_skip), (gst_riff_read_strh),
	(gst_riff_read_strf_vids_with_data),
	(gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_iavs):
	  OK, ok, so I implemented event handling. Apparently it's normal
	  that we receive random events at random points without asking
	  for it.
	* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
	(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
	(gst_avi_demux_handle_src_event), (gst_avi_demux_stream_index),
	(gst_avi_demux_sync), (gst_avi_demux_stream_scan),
	(gst_avi_demux_massage_index), (gst_avi_demux_stream_header),
	(gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry),
	(gst_avi_demux_stream_data), (gst_avi_demux_loop):
	* gst/avi/gstavidemux.h:
	  Implement non-lineair chunk handling and subchunk processing.
	  The first solves playback of AVI files where the audio and video
	  data of individual buffers that we read are not synchronized.
	  This should not happen according to the wonderful AVI specs, but
	  of course it does happen in reality. It is also a prerequisite for
	  the second. Subchunk processing allows us to cut chunks in small
	  pieces and process each of these pieces separately. This is
	  required because I've seen several AVI files with incredibly large
	  audio chunks, even some files with only one audio chunk for the
	  whole file. This allows for proper playback including seeking.
	  This patch is supposed to fix all AVI A/V sync issues.
	* gst/flx/gstflxdec.c: (gst_flxdec_class_init),
	(flx_decode_chunks), (flx_decode_color), (gst_flxdec_loop):
	  Work.
	* gst/modplug/gstmodplug.cc:
	  Proper return value setting for the query() function.
	* gst/playback/gstplaybasebin.c: (setup_source):
	  Being in non-playing state (after, e.g., EOS) is not necessarily
	  a bad thing. Allow for that. This fixes playback of short files.
	  They don't actually playback fully now, because the clock already
	  runs. This means that small files (<500kB) with a small length
	  (<2sec) will still not or barely play. Other files, such as mod
	  or flx, will work correctly, however.

2004-09-28  Wim Taymans  <wim@fluendo.com>

	* ext/speex/gstspeex.c: (plugin_init):
	* ext/speex/gstspeexdec.c: (gst_speex_dec_base_init),
	(gst_speex_dec_class_init), (speex_dec_get_formats),
	(speex_get_event_masks), (speex_get_query_types),
	(gst_speex_dec_init), (speex_dec_convert), (speex_dec_src_query),
	(speex_dec_src_event), (speex_dec_event), (speex_dec_chain),
	(gst_speexdec_get_property), (gst_speexdec_set_property),
	(speex_dec_change_state):
	* ext/speex/gstspeexdec.h:
	* ext/speex/gstspeexenc.c: (gst_speexenc_get_formats),
	(gst_speexenc_get_type), (speex_caps_factory), (raw_caps_factory),
	(gst_speexenc_base_init), (gst_speexenc_class_init),
	(gst_speexenc_sinkconnect), (gst_speexenc_convert_src),
	(gst_speexenc_convert_sink), (gst_speexenc_get_query_types),
	(gst_speexenc_src_query), (gst_speexenc_init),
	(gst_speexenc_get_tag_value), (comment_init), (comment_add),
	(gst_speexenc_metadata_set1), (gst_speexenc_set_metadata),
	(gst_speexenc_setup), (gst_speexenc_buffer_from_data),
	(gst_speexenc_push_buffer), (gst_speexenc_set_header_on_caps),
	(gst_speexenc_chain), (gst_speexenc_get_property),
	(gst_speexenc_set_property), (gst_speexenc_change_state):
	* ext/speex/gstspeexenc.h:
	Rewrote speex encoder, make sure it can be embedded in ogg.
	Implemented speex decoder.

2004-09-28  Christian Schaller <christian@fluendo.com>

	* configure.ac:
	Remove kioslave plugin. Markey is brewing a new working one
	* ext/Makefile.am: Remove kioslave plugin
	* ext/kio: remove
	* gst-plugins.spec.in: remove kio plugin from spec

2004-09-27  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_remove_client_link),
	(is_sync_frame), (gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_new_client),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients):
	* gst/tcp/gstmultifdsink.h:
	Make syncing to keyframes actually work for new clients and lagging
	clients.

2004-09-26  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/debug/gstnavigationtest.c: (gst_navigationtest_class_init),
	(gst_navigationtest_handle_src_event), (draw_box_planar411),
	(gst_navigationtest_planar411), (gst_navigationtest_change_state):
	* gst/debug/gstnavigationtest.h:
	  make navigationtest display button-press and button-release events

2004-09-26 Iain <iaingnome@gmail.com>

	* gst/interleave/interleave.c (all_channels_new_media): Checks if all
	the channels have received a new media event.
	(interleave_buffered_loop): Compresses a new media event on all
	channels into one.

2004-09-26 Iain <iaingnome@gmail.com>

	* gst/wavenc/gstwavenc.c (gst_wavenc_chain): Company says we need to
	call the sinkpad's default event handler and not the srcpads. He also
	says this is confusing :)
	(gst_wavenc_stop_file): Company says that seek events only go upstream
	we should send a discontinuous downstream instead.

2004-09-25  Christian Schaller <christian@fluendo.com>

	* Update SPEC file to be usable in conjunction with Fedora Core,
	  Fedora.us and freshrpms packages
	* Fix typo in multifilesrc test Makefile

2004-09-24  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (new_decoded_pad):
	Only signal the no_more_pads signal when we have
	added the stream to our list.

2004-09-24  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (remove_prerolls),
	(new_decoded_pad):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (setup_sinks):
	Don't try to preroll or decode more than one audio/video
	track.

2004-09-24  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	  Throw error if we failed to find a suitable output. This should
	  throw an error if we successfully set up a pipeline (e.g. because
	  we recognized a media file) but found no decodable streams in it
	  (e.g. because it contains only media stream types for which we
	  have no decoders, or because it's not a media type).

2004-09-23  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/dirac/Makefile.am:
	* ext/dirac/gstdirac.cc:
	* ext/dirac/gstdiracdec.cc:
	* ext/dirac/gstdiracdec.h:
	  Do something. Don't actually know if this works because I don't
	  have a demuxer yet.
	* ext/gsm/gstgsmdec.c: (gst_gsmdec_getcaps):
	  Add channels=1 to caps returned from _getcaps().
	* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_get_type),
	(gst_ogm_video_parse_get_type), (gst_ogm_audio_parse_base_init),
	(gst_ogm_video_parse_base_init), (gst_ogm_parse_init),
	(gst_ogm_audio_parse_init), (gst_ogm_video_parse_init),
	(gst_ogm_parse_sink_convert), (gst_ogm_parse_chain),
	(gst_ogm_parse_change_state):
	  Separate between audio/video so ogmaudioparse actually uses the
	  audio pad templates. Both audio and video work now, including
	  autoplugging. Also use sometimes-srcpad hack.
	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek):
	  Handle events better. Don't hang on infinite loops.
	* gst/avi/gstavidemux.c: (gst_avi_demux_class_init),
	(gst_avi_demux_init), (gst_avi_demux_reset),
	(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
	(gst_avi_demux_stream_header), (gst_avi_demux_stream_data),
	(gst_avi_demux_change_state):
	* gst/avi/gstavidemux.h:
	  Improve A/V sync. Still not perfect.
	* gst/matroska/ebml-read.c: (gst_ebml_read_seek),
	(gst_ebml_read_skip):
	  Handle events better.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	(gst_qtdemux_loop_header), (qtdemux_parse_trak),
	(qtdemux_audio_caps):
	  Add IMA4. Improve event handling. Save offset after a seek when
	  the headers are at the end of the file so that we don't end up in
	  an infinite loop.
	* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
	  Add low-priority typefind support for files with no length.

2004-09-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* testsuite/multifilesink/Makefile.am:
	fix typo

2004-09-22  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls): Fix
	mistakes from thaytan's patches.

2004-09-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy):
	  For completeness, XSync in the destroy function as xvimage does.

2004-09-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_getcaps):
	   Correct caps negotiation
	* gst/volume/gstvolume.c: (volume_chain_float),
	(volume_chain_int16):
	   Modify debug output to be little more informative
	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_destroy):
	  Add XSync calls after detaching from the shared memory segment to
	  avoid a crash.

2004-09-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_next_buffer), (gst_ogg_mux_loop):
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_init),
	(gst_vorbisenc_chain):
	* ext/vorbis/vorbisenc.h:
	remove explicit newmedia support from oggmux and vorbisenc
	add debug category to vorbisenc
	* gst/multifilesink/gstmultifilesink.c:
	(gst_multifilesink_class_init), (gst_multifilesink_init),
	(gst_multifilesink_dispose), (gst_multifilesink_set_location),
	(gst_multifilesink_set_property), (gst_multifilesink_next_file),
	(gst_multifilesink_handle_event), (gst_multifilesink_chain),
	(plugin_init):
	* gst/multifilesink/gstmultifilesink.h:
	add support for streamheader in multifilesink

2004-09-22  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (_read_var_length), (_read_guid),
	(gst_asf_demux_process_segment), (gst_asf_demux_handle_data),
	(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event):
	  Prevent infinite loops. More correct error reporting.
	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	  Error out if negotiation fails.
	* gst/playback/gstplaybasebin.c: (setup_source),
	(gst_play_base_bin_change_state), (gst_play_base_bin_error),
	(gst_play_base_bin_found_tag):
	  Error/tag forwarding. Pre-roll fixes for source errors on state
	  changes (e.g. "file does not exist") to prevent hangs.

2004-09-21  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* testsuite/multifilesink/Makefile.am:
	* testsuite/multifilesink/lame_test.c: (gst_newmedia_base_init),
	(gst_newmedia_class_init), (gst_newmedia_init),
	(gst_newmedia_chain), (gst_newmedia_trigger), (test_format),
	(newfile_signal), (test_signal), (main):
	* testsuite/multifilesink/multifilesrc_test.c: (main):
	* testsuite/multifilesink/oggtheora_test.c:
	(gst_newmedia_base_init), (gst_newmedia_class_init),
	(gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger),
	(test_format), (newfile_signal), (test_signal), (main):
	* testsuite/multifilesink/oggvorbis_test.c:
	(gst_newmedia_base_init), (gst_newmedia_class_init),
	(gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger),
	(test_format), (newfile_signal), (test_signal), (main):
	* testsuite/multifilesink/wavenc_test.c: (gst_newmedia_base_init),
	(gst_newmedia_class_init), (gst_newmedia_init),
	(gst_newmedia_chain), (gst_newmedia_trigger), (test_format),
	(newfile_signal), (test_signal), (main):
	New media tests

2004-09-20  Christian Schaller <christian@fluendo.com>

	* Fix mikmod license to LGPL as they have relicensed
	* Move Dirac and Effectv into LGPL section of README_license

2004-09-20  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_check_caps_reset),
	(gst_mad_change_state):
	  Allow for mp3 rate/channels changes. However, only very
	  conservatively. Reason that we *have* to enable this is smiply
	  because the mad find_sync() function is not good enough, it will
	  regularly sync on random data as valid frames and therefore make
	  us provide random caps as *final* caps of the stream. The best fix
	  I could think of is to simply require several of the same stream
	  changes in a row before we change caps.
	  The actual testcase that works now is #
	* ext/ogg/Makefile.am:
	* ext/ogg/gstogg.c: (plugin_init):
	* ext/ogg/gstogmparse.c:
	  OGM support (video only for now; I need an audio sample file).
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
	(gst_asf_demux_process_stream), (gst_asf_demux_video_caps),
	(gst_asf_demux_add_video_stream):
	  WMV extradata.
	* gst/playback/gstplaybasebin.c: (unknown_type):
	  Don't error out on single unknown-types after all. It's wrong.
	  If we found type of video and audio but not of a subtitle stream,
	  it will still error out (which is unwanted). Will find a better fix
	  later on.
	* gst/typefind/gsttypefindfunctions.c: (ogmvideo_type_find),
	(ogmaudio_type_find), (plugin_init):
	  OGM support.

2004-09-20  Johan Dahlin  <johan@gnome.org>

	* ext/jpeg/gstjpegdec.c (gst_jpegdec_chain): Allocate the buffer
	after setting caps.

2004-09-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_init), (gst_wavenc_chain):
	* gst/wavenc/gstwavenc.h:
	Added newmedia support to wavenc

2004-09-17  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_fd_has_closed),
	(gst_fdset_fd_has_error), (gst_fdset_fd_can_read),
	(gst_fdset_fd_can_write), (gst_fdset_wait):
	* gst/tcp/gstmultifdsink.c: (gst_client_status_get_type),
	(gst_multifdsink_init), (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_get_stats),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_handle_clients),
	(gst_multifdsink_close), (gst_multifdsink_change_state):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_removed):
	Small cleanups in fdset.c
	Use a hastable to map fd to the client structure for faster
	lookup in _remove and get_stats.
	Added virtual function to close the fds.
	Handle clients even when the select/poll call was unblocked because
	of a command.
	Implement syncing to keyframe in the recovery procedure.

2004-09-16 Iain <iaingnome@gmail.com>

	* gst/audioconvert/gstaudioconvert.c (_fixate_caps_to_int): Free the
	try caps.

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream):
	  Caps are only set if the type of the stream is unknown, but this
	  is initialized in ->init_stream(), so set to UNKNOWN after calling
	  ->init_stream() so that capsnego starts.

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_stream_data):
	  Just hardcode for raw audio then. AVI audio sucks.

2004-09-15  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps):
	* gst/matroska/matroska-mux.c: (audiosink_templ),
	(gst_matroska_mux_audio_pad_link):
	* gst/typefind/gsttypefindfunctions.c: (tta_caps), (plugin_init):
	Use audio/x-ttafile for tta files and audio/x-tta for raw tta frames.

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_stream_data):
	  Try to fix a/v sync issues.

2004-09-15  David Schleef  <ds@schleef.org>

	* configure.ac: remove NASM check, since we don't use it.  Update
	dirac check to 0.4
	* ext/dirac/gstdiracdec.cc: update to current 0.4 API
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	Initialized variables.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header), (qtdemux_parse), (qtdemux_parse_trak),
	(gst_qtdemux_handle_esds), (qtdemux_audio_caps): Fix seeking, add
	SVQ3 format

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_add_stream), (gst_avi_demux_stream_data):
	* gst/avi/gstavidemux.h:
	  Fix for compressed audio (mp3) timestamp generation. How did this
	  ever work?

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
	  Volume is a double not a float.

2004-09-15  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_remove_client_link),
	(gst_multifdsink_handle_clients), (gst_multifdsink_change_state):
	Don't close the fd in multifdsink as we didn't open it in the
	first place. Some cleanups.

2004-09-15  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop):
	Fix the case where the muxer would mark pages as delta
	frames when they are not (vorbis only ogg).

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c: (state_change), (setup_source),
	(gst_play_base_bin_change_state):
	  Handle the case where we failed to setup a clear pipeline. This
	  will throw an error (or EOS, another nice case) and if you don't
	  catch that, the app will wait for the signal forever (and thus
	  hang).

2004-09-15  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c:
	(gst_gnomevfssink_uri_get_protocols):
	* ext/gnomevfs/gstgnomevfssrc.c:
	(gst_gnomevfssrc_uri_get_protocols):
	* ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris):
	* ext/gnomevfs/gstgnomevfsuri.h:
	  Use _uri_new() instead of _open(), so it doesn't take as long and
	  Christophe's computer won't hang.
	* gst/playback/gstplaybasebin.c: (unknown_type):
	  Throw error on unknown media type, so apps actually display it.

2004-09-14  Brian Cameron  <brian.cameron@sun.com

	* tools/gst-launch-ext-m.m:  Changed ~ to $ENV{HOME} to allow
	  this script to work on Solaris since bash shell handles echo
	  differenly than bash.

2004-09-17  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstplaybasebin.c: (queue_overrun), (no_more_pads),
	(setup_source), (gst_play_base_bin_set_property),
	(gst_play_base_bin_add_element):
	* gst/playback/gstplaybin.c: (gst_play_bin_send_event):
	Some more work on making sure seeking pauses the pipeline and
	that changing the uri actually does something.

2004-09-17  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_wait):
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_close):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init_send),
	(gst_tcpserversink_close):
	Be a bit more paranoid when freeing memory.

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
	(qtdemux_parse_trak):
	  Don't crash by dividing by zero (see sample movie in #126922).

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
	  Don't touch non-existing data (fixes crash on file in #140147).

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* gst/playback/gstplaybasebin.c:
	(gst_play_base_bin_dispose), (gst_play_base_bin_set_property):
	  Handle double disposals, and proper change of URIs.

2004-09-13  Martin Eikermann <meiker@upb.de>

	* gst/mpegstream/gstmpegparse.c:
	  fix synchronistation for streams recorded from digital PCR
	  fixes bug #119376

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/Makefile.am:
	* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_get_type),
	(gst_gnomevfssink_dispose), (gst_gnomevfssink_init),
	(gst_gnomevfssink_uri_get_type),
	(gst_gnomevfssink_uri_get_protocols),
	(gst_gnomevfssink_uri_get_uri), (gst_gnomevfssink_uri_set_uri),
	(gst_gnomevfssink_uri_handler_init),
	(gst_gnomevfssink_set_property), (gst_gnomevfssink_get_property),
	(gst_gnomevfssink_open_file), (gst_gnomevfssink_close_file):
	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get_type),
	(gst_gnomevfssrc_init), (gst_gnomevfssrc_dispose),
	(gst_gnomevfssrc_uri_get_type),
	(gst_gnomevfssrc_uri_get_protocols), (gst_gnomevfssrc_uri_get_uri),
	(gst_gnomevfssrc_uri_set_uri), (gst_gnomevfssrc_uri_handler_init),
	(gst_gnomevfssrc_set_property), (gst_gnomevfssrc_get_property),
	(gst_gnomevfssrc_open_file), (gst_gnomevfssrc_close_file):
	* ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris):
	* ext/gnomevfs/gstgnomevfsuri.h:
	  Add URI support to Gnome-VFS plugins. Tries to load a fixed list
	  of fake URIs to see which this version of Gnome-VFS likes, and
	  uses that for the Gst-URI interface. Makes playbin support http://
	  streams. Also fix up some stupid behaviour in gnomevfssrc.

2004-09-13  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_update),
	(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
	(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record),
	(gst_alsa_mixer_set_option), (gst_alsa_mixer_get_option):
	  Update mixer (to sync with other sessions) if we try to obtain
	  a new value. This makes alsamixer work accross applications.
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time):
	  Only call sync functions if we're running, else alsalib asserts.
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query):
	  Sometimes fails to compile. Possibly a gcc bug.
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	  Add a reference to an application-provided object, because we lose
	  this same reference if we add it to the bin. If we don't do this,
	  we can only use this object once and thus crash if we go from
	  ready to playing, back to ready and back to playing again.
	  Also add an audioscale element because several cheap soundcards -
	  like mine - don't support all samplerates.
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
	(gst_ximagesink_xcontext_clear), (gst_ximagesink_change_state):
	  Fix wrong order or PAR calls. Makes automatically obtained PAR
	  from the X server atually being used.

2004-09-12  David Schleef  <ds@schleef.org>

	Fixes: #151879, #151881, #151882, #151883, #151884, #151886,
	#151887, #152102, #152247.
	* examples/indexing/indexmpeg.c: 64-bit warning fixes.
	* examples/seeking/cdparanoia.c: same
	* examples/seeking/cdplayer.c: same
	* examples/seeking/seek.c: same
	* examples/seeking/spider_seek.c: same
	* examples/seeking/vorbisfile.c: same
	* examples/stats/mp2ogg.c: same
	* ext/esd/esdsink.c: (gst_esdsink_class_init),
	(gst_esdsink_dispose): Dispose of element properly.
	* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_seek): 64-bit warning
	fixes.
	* ext/nas/nassink.c: (gst_nassink_class_init),
	(gst_nassink_dispose): Dispose of element correctly.
	* gst/wavenc/gstwavenc.c: (gst_wavenc_chain): Fix leak.
	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy):
	Fix 64-bit warning.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy):
	Fix 64-bit warning.

2004-09-12  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* configure.ac : change speex detection as 1.1.6 now uses
	  .pc/pkg-config and they changed their headers location.

2004-09-09  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* gst/matroska/matroska-mux.h:
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_reset),
	(gst_matroska_mux_start), (gst_matroska_mux_finish),
	(gst_matroska_mux_write_data):
	  Write multiple blocks/frames per cluster.
		Write meta-seek information (seek heads).

2004-09-09  Scott Wheeler <wheeler@kde.org>

	* gst/gstplaybin.c: (gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_set_property), (gst_play_bin_get_property),
	(gen_audio_element), (gen_audio_element):
	  Add a volume element / property to the pipeline.

2004-09-07  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_blend_buffers):
	Copy timestamps from the master pad to the output buffers.

2004-09-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/raw1394/gstdv1394src.c:
	  throw errors when applicable

2004-09-01  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* gst/matroska/ebml-ids.h:
	* gst/matroska/ebml-read.c: (gst_ebml_read_date):
	* gst/matroska/ebml-write.c: (gst_ebml_write_date):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_finish):
	  automatically convert unix time <-> ebml time when reading/writing
	  a date, use gst_ebml_write_uint to write CUETIME,
	  not gst_ebml_write_date.
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_create_uid),
	(gst_matroska_mux_reset), (gst_matroska_mux_audio_pad_link),
	(gst_matroska_mux_track_header), (gst_matroska_mux_start),
	(gst_matroska_mux_write_data):
	  Write track and segment UIDs, write muxing date, write
	  TRACKDEFAULTDURATION for TTA audio, write BLOCKDURATION if known.
	  Create cues for audio only files.

2004-08-31  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	  Re-commit ALSA switches.
	* gst/adder/gstadder.c: (gst_adder_loop):
	  64-bit fix (#151416).
	* gst/debug/progressreport.c: (gst_progressreport_report):
	  64-bit fix (#151419).
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_contents):
	  64-bit fix (#151420).
	* gst/playback/test3.c: (update_scale):
	  64-bit fix (#151421).

2004-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump nano to cvs

=== release 0.8.4 ===

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.8.4, "Alias"

2004-08-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/theora/Makefile.am:
	  fix makefile.  Fixes #151462.

2004-08-30  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_free), (gst_fdset_wait):
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write):
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init_send):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init_receive):
	Fix some memory leaks.

2004-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: David Schleef

	* configure.ac:
	* sys/Makefile.am:
	  rename our detection macro for V4L2.  Fixes #151236.

2004-08-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	Patch by: David Schleef

	* configure.ac:
	  check to define LAMEPRESET.  Fixes #151232.

2004-08-27  David Schleef  <ds@schleef.org>

	* sys/glsink/glimagesink.c: (gst_glimagesink_ximage_put),
	(gst_glimagesink_xwindow_new), (gst_glimagesink_xcontext_get),
	(gst_glimagesink_fixate):  Move local variable declarations to
	make gcc-2.95 happy.

2004-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump nano for prerelease

2004-08-27  David Schleef  <ds@schleef.org>

	* sys/sunaudio/Makefile.am: Add sunaudiosrc patch from Bala
	* sys/sunaudio/gstsunaudiosrc.c:
	* sys/sunaudio/gstsunaudiosrc.h:

2004-08-27 Arwed v. Merkatz <v.merkatz@gmx.net>

	* gst/matroska/ebml-read.c: (gst_ebml_peed_id), (gst_ebml_read_element_id),
	handle EOS correctly
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_link):
	* gst/matroska/matroska-mux.h:
	added BITMAPINFOHEADER structure, mux video/x-divx and video/x-xvid in
	VFW compatibility mode

2004-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Zaheer Abbas Merali

	* ext/ogg/gstoggmux.c:
	* ext/vorbis/vorbisenc.c:
	* ext/vorbis/vorbisenc.h:
	  handle NEWMEDIA

2004-08-26 Arwed v. Merkatz <v.merkatz@gmx.net>

	* gst/matroska/ebml-write.c: (gst_ebml_write_float),
	fix byte order reversion on little endian machines.
	* gst/matroska/matroska-mux.c: (audiosink_templ),
	(gst_matroska_mux_audio_pad_link):
	add TTA codec to the list of supported codecs.
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_init),
	(gst_matroska_mux_start), (gst_matroska_mux_finish),
	(gst_matroska_mux_write_data):
	* gst/matroska/matroska-mux.h:
	write segment duration correctly, write muxing app string, fixes bugs
	#140897 and #140898.
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_loop),
	wait for all pads to be negotiated before starting to mux.

2004-08-26  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_init), (gst_lame_chain):
	* ext/lame/gstlame.h:
	Added new media support to lame

2004-08-25 Arwed v. Merkatz <v.merkatz@gmx.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_blockgroup),
	send vorbis headers at the beginning of a stream, fixes bug #141554.
	Interpret BLOCKDURATION and set buffer duration accordingly, fixes
	bug #148950.
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps),
	(gst_matroska_demux_plugin_init):
	* gst/matroska/matroska-ids.h:
	enable demuxing of TTA audio streams, fixes bug #148951.
	* gst/typefind/gsttypefindfunctions.c: (tta_type_find), (plugin_init),
	enable typefinding for TTA audio files, fixes bug #148711.
	* ext/xvid/gstxviddec.c: (gst_xviddec_chain),
	set XVID_LOWDELAY flag for decoding so xvid always returns an image,
	fixes playback of packed bitstream and xvid with bframes, bug #135407.

2004-08-24  Sebastien Cote  <sc5@hermes.usherb.ca>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head),
	(gst_riff_read_element_data), (gst_riff_read_seek),
	(gst_riff_read_skip): fix infinite loop in wavparse, fixes bug
	#144616, patch reviewed by Ronald and committed by Christophe Fergeau
	<teuf@gnome.org>

2004-08-23 Iain <iaingnome@gmail.com>

	* ext/mad/gstid3tag.c (gst_mad_id3_to_tag_list): Special case COMM
	tags. They appear to be handled differently to normal.
	(tag_list_to_id3_tag_foreach): Ditto.

2004-08-22  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop):
	Make sure we never send -1 granulepos.

2004-08-20  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_loop):
	I will accept bitchslappings with non sharp objects.

2004-08-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Clean up the test for lame presets

2004-08-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	* ext/lame/Makefile.am:
	* ext/lame/gstlame.c: (gst_lame_class_init),
	(gst_lame_set_property), (gst_lame_get_property), (gst_lame_setup):
	Only enable lame presets if version of lame has presets in API

2004-08-19  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/udp/gstudpsrc.c: (gst_udpsrc_init), (gst_udpsrc_get):
	* gst/udp/gstudpsrc.h:
	  Don't call gst_pad_push in a get function. Fixes #150449

2004-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_free), (gst_fdset_set_mode),
	(gst_fdset_get_mode), (gst_fdset_add_fd), (gst_fdset_remove_fd),
	(gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read),
	(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
	(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
	(gst_fdset_wait):
	* gst/tcp/gstfdset.h:
	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write):
	* gst/tcp/gstmultifdsink.h:
	Some extra checks in gstfdset.
	Only use send() when the fd is a socket. Don't try to
	read from write only fds.

2004-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (gst_fdset_add_fd), (gst_fdset_remove_fd),
	(gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read),
	(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
	(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
	(gst_fdset_wait):
	Add more locking and bounds checking.

2004-08-18  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (ensure_size), (gst_fdset_wait):
	Realloc test fdset in the lock and right before starting
	the poll call. Bump the limit to 4096.

2004-08-17  David Schleef  <ds@schleef.org>

	* sys/sunaudio/Makefile.am:
	* sys/sunaudio/gstsunaudio.c: Fix caps to handle full range
	of rates and channels.  Make debugging less obnoxious.

	Patch from Balamurali Viswanathan implementing a mixer for
	Sun audio.  (bug #144091):
	* sys/sunaudio/gstsunelement.c:
	* sys/sunaudio/gstsunelement.h:
	* sys/sunaudio/gstsunmixer.c:
	* sys/sunaudio/gstsunmixer.h:

2004-08-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/audioscale/gstaudioscale.c:
	* gst/audioscale/gstaudioscale.h:
	made audioscale resample from any sample rate to any sample rate

2004-08-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/libpng/gstpngdec.c:
	  error out on unsupported types

2004-08-17  Iain <iaingnome@gmail.com>

	* ext/flac/gstflacenc.c (gst_flacenc_update_quality): Only set the
	mid_side and loose_mid_side properties if its a stereo stream.

2004-08-17  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(theora_get_formats), (theora_dec_src_convert),
	(theora_dec_sink_convert), (theora_dec_src_query),
	(theora_dec_src_event), (theora_dec_event), (theora_dec_chain):
	Add a debug line.

2004-08-17  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate),
	(gst_ogg_pad_push):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_request_new_pad), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_buffer_from_page), (gst_ogg_mux_push_page),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop):
	Mark delta units in the muxer.
	Try to decode the packet after an out-of-sync error from
	libogg.

2004-08-17  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_init), (gst_multifdsink_add),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_set_property), (gst_multifdsink_get_property):
	* gst/tcp/gstmultifdsink.h:
	Added option to send a keyframe to clients as the first buffer.
	Make timeout property writable.

2004-08-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch by: Wim Taymans

	* gst/tcp/gstfdset.c:
	* gst/tcp/gstmultifdsink.c:
	  fix index comparison, should include 0

2004-08-16  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstfdset.c: (ensure_size), (gst_fdset_new),
	(gst_fdset_add_fd), (gst_fdset_remove_fd),
	(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
	(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
	(gst_fdset_wait):
	  copy when reallocing for poll so the select arguments don't get
	  changed during the call

2004-08-16  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_border_mode_get_type),
	(gst_theora_enc_class_init), (theora_enc_sink_link),
	(theora_buffer_from_packet), (theora_enc_chain):
	Fix bug where buffers were not marked as keyframes
	correctly.

2004-08-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_vbrmode_get_type),
	(gst_lame_preset_get_type), (gst_lame_class_init):
	describe the enum values for vbr mode and presets more verbosely

2004-08-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_mode_get_type),
	(gst_lame_quality_get_type), (gst_lame_padding_get_type),
	(gst_lame_preset_get_type), (gst_lame_class_init), (gst_lame_init),
	(gst_lame_set_property), (gst_lame_get_property), (gst_lame_setup):
	* ext/lame/gstlame.h:
	add preset property to lame so it can use lame presets

2004-08-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_get_property):
	whoops forgot break, thanks teuf

2004-08-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_vbrmode_get_type),
	(gst_lame_class_init), (gst_lame_src_getcaps),
	(gst_lame_sink_link), (gst_lame_init), (gst_lame_set_property),
	(gst_lame_get_property), (gst_lame_setup):
	* ext/lame/gstlame.h:
	fix lame's broken vbr stuff, allow it to resample if need be, and also
	make xing header optional

2004-08-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_src_getcaps), (gst_lame_init):
	added getcaps function so samplerate doesnt get fixated to silly values

2004-08-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_src_link):
	revert previous fix

2004-08-12  Johan Dahlin  <johan@gnome.org>

	* sys/v4l/gstv4lelement.c (gst_v4l_iface_supported): Remove bogus
	checks. Doesn't matter what state we are in. Interfaces are a
	compile time thing, not runtime. It also broke the python bindings.

2004-08-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_src_link):
	made source pad link function check if sinkpad is ok..fixes the problem
	where core fixates the output rate of lame stupidly

2004-08-12  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_fixate):
	* sys/v4l/v4l_calls.c:
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_set_capture):
	  fix fixate function to handle nonsimple caps.
	  remove bogus check in _link
	  cleanups

2004-08-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init):
	set default compression ratio parameter to 0.0 so bitrate parameter
	works :)

2004-08-11  David Schleef  <ds@schleef.org>

	* gst/tcp/gstfdset.c: Fix compile problem on OS/X.

2004-08-11  David Schleef  <ds@schleef.org>

	* gst/mpeg1sys/gstmpeg1systemencode.c: Oops, this was correct
	before.

2004-08-11  David Schleef  <ds@schleef.org>

	* gst-libs/gst/video/videosink.h: Change copyright block to LGPL.

2004-08-11  David Schleef  <ds@schleef.org>

	* ext/pango/gsttextoverlay.c: Add copyright block and fix plugin
	  license field
	* gst-libs/gst/idct/Makefile.am: Remove mmx/sse code
	* gst-libs/gst/video/gstvideosink.c: Change copyright block to
	  LGPL.
	* gst/auparse/gstauparse.c: Fix plugin license field.
	* gst/monoscope/gstmonoscope.c: Fix plugin license field.
	* gst/mpeg1sys/gstmpeg1systemencode.c: Fix plugin license field.
	* gst/rtp/gstrtp.c: Fix plugin license field.

2004-08-11  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/Makefile.am:
	* gst/tcp/gstfdset.c: (gst_fdset_mode_get_type), (nearest_pow),
	(ensure_size), (gst_fdset_new), (gst_fdset_free),
	(gst_fdset_set_mode), (gst_fdset_get_mode), (gst_fdset_add_fd),
	(gst_fdset_remove_fd), (gst_fdset_fd_ctl_write),
	(gst_fdset_fd_ctl_read), (gst_fdset_fd_has_closed),
	(gst_fdset_fd_has_error), (gst_fdset_fd_can_read),
	(gst_fdset_fd_can_write), (gst_fdset_wait):
	* gst/tcp/gstfdset.h:
	* gst/tcp/gstmultifdsink.c: (gst_unit_type_get_type),
	(gst_multifdsink_class_init), (gst_multifdsink_init),
	(gst_multifdsink_add), (gst_multifdsink_remove),
	(gst_multifdsink_clear), (gst_multifdsink_get_stats),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property), (gst_multifdsink_init_send),
	(gst_multifdsink_close):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_init), (gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_handle_wait), (gst_tcpserversink_init_send),
	(gst_tcpserversink_close):
	* gst/tcp/gsttcpserversink.h:
	Abstracted away the select call, implemented poll (yes we ran into
	the 1024 limit in production).

2004-08-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcpplugin.c:
	  improve debuggging, remove assert

2004-08-10  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_unit_type_get_type),
	(gst_client_status_get_type), (gst_multifdsink_class_init),
	(gst_multifdsink_init), (gst_multifdsink_remove_client_link),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp-marshal.list:
	Starting to prepare for specifying buffer time in other units
	than buffers. Expose remove reason in signal.

2004-08-10  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_clear),
	(gst_multifdsink_remove_client_link),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients),
	(gst_multifdsink_chain), (gst_multifdsink_close):
	* gst/tcp/gstmultifdsink.h:
	Added more debugging info. Changed the way clients are
	removed from the lists. Fixed a bug where a bad file descriptor
	could cause many clients to be removed.

2004-08-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/videotestsrc/gstvideotestsrc.c: (generate_capslist):
	  allow all pixel-aspect-ratios, not just 1:1

2004-08-09  David Schleef  <ds@schleef.org>

	* sys/glsink/ARB_multitexture.h:  Remove old files.
	* sys/glsink/EXT_paletted_texture.h:
	* sys/glsink/NV_register_combiners.h:
	* sys/glsink/gstgl_nvimage.c:
	* sys/glsink/gstgl_pdrimage.c:
	* sys/glsink/gstgl_rgbimage.c:
	* sys/glsink/gstglsink.c:
	* sys/glsink/gstglsink.h:
	* sys/glsink/gstglxwindow.c:
	* sys/glsink/regcomb_yuvrgb.c:

2004-08-09  David Schleef  <ds@schleef.org>

	Patch from Gernot Ziegler <gz@lysator.liu.se> rewriting the
	GL sink plugin.  (Bug #147302)

	* configure.ac: Test for OpenGL
	* sys/Makefile.am: Use test for OpenGL
	* sys/glsink/Makefile.am:
	* sys/glsink/glimagesink.c: rewrite
	* sys/glsink/glimagesink.h: rewrite

2004-08-09  David Schleef  <ds@schleef.org>

	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init):  Only allow
	sane framerates.
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): same
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): same
	* testsuite/gst-lint: Test for G_GUINT64_FORMAT usage near gettext.

2004-08-09  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
	Do a bit more logging, make the client_read code more robust.

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_init_source),
	(gst_jpegdec_fill_input_buffer), (gst_jpegdec_skip_input_data),
	(gst_jpegdec_resync_to_restart), (gst_jpegdec_term_source),
	(gst_jpegdec_init), (gst_jpegdec_chain):
	* gst/multipart/multipartdemux.c: (gst_multipart_demux_init),
	(gst_multipart_demux_chain), (gst_multipart_demux_change_state):
	  cleanups, debugging fixes and memleak plugging

2004-08-09  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(theora_get_formats), (theora_dec_src_convert),
	(theora_dec_sink_convert), (theora_dec_src_query),
	(theora_dec_src_event), (theora_dec_event), (theora_dec_chain),
	(theora_dec_change_state):
	Don't crash on missing header packets.

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/sq.po:
	  Added Albanian translation (Laurent Dhima)
	* po/cs.po:
	  updated

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/lame/gstlame.c:
	  fix/add debugging

2004-08-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c:
	* sys/xvimage/xvimagesink.c:
	  assign all TOO_LAZY's to a real category.  Thanks to Warthy Warthog.

2004-08-06  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
	Make sure we don't try to read more from a client that what
	ioctl says us or we deadlock.

2004-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_src_link),
	(gst_videotestsrc_change_state), (gst_videotestsrc_src_query),
	(gst_videotestsrc_handle_src_event), (gst_videotestsrc_get):
	  decouple running_time and n_frames so it can handle changing
	  framerate while running

2004-08-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/nl.po:
	* po/sv.po:
	  updated translations

2004-08-04  Benjamin Otte  <otte@gnome.org>

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_get_capslist), (generate_capslist),
	(plugin_init):
	  generate the list of supported caps at startup and reuse it instead
	  of always generating it

2004-07-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_pad_link):
	  whoops, last checkin broke normal build

2004-08-03  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_get_volume),
	(gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute),
	(gst_alsa_mixer_set_record), (gst_alsa_mixer_set_option),
	(gst_alsa_mixer_get_option):
	* ext/dvdnav/dvdnavsrc.c: (dvdnav_get_event_name),
	(dvdnavsrc_print_event):
	* ext/ogg/gstoggdemux.c: (_find_chain_process), (gst_ogg_print):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_pad_link),
	(gst_ogg_mux_pad_unlink):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_pad_link),
	(gst_multipart_mux_pad_unlink):
	* gst/videofilter/gstvideobalance.c:
	(gst_videobalance_colorbalance_set_value):
	* gst/videomixer/videomixer.c: (gst_videomixer_pad_link),
	(gst_videomixer_pad_unlink):
	* po/uk.po:
	* sys/oss/gstossmixer.c:
	* sys/v4l/gstv4lcolorbalance.c:
	* sys/v4l/gstv4ltuner.c:
	* sys/v4l/v4lsrc_calls.c:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2tuner.c:
	  compile fixes for --disable-gst-debug, G_DISABLE_ASSERT and friends

2004-08-03  Benjamin Otte  <otte@gnome.org>

	* examples/dynparams/filter.c: (ui_control_create):
	* examples/gstplay/player.c: (print_tag):
	* ext/alsa/gstalsa.c: (gst_alsa_request_new_pad):
	* ext/gdk_pixbuf/gstgdkanimation.c:
	(gst_gdk_animation_iter_may_advance):
	* ext/jack/gstjack.c: (gst_jack_request_new_pad):
	* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list),
	(tag_list_to_id3_tag_foreach), (gst_id3_tag_handle_event):
	* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_get_tag_value):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_tag_value):
	* ext/xine/xineaudiodec.c: (gst_xine_audio_dec_chain):
	* gst-libs/gst/media-info/media-info-test.c: (print_tag):
	* gst/sine/demo-dparams.c: (main):
	* gst/tags/gstvorbistag.c: (gst_tag_to_vorbis_comments):
	* testsuite/alsa/formats.c: (create_pipeline):
	* testsuite/alsa/sinesrc.c: (sinesrc_force_caps), (sinesrc_get):
	  fixes for G_DISABLE_ASSERT and friends
	* gst/typefind/gsttypefindfunctions.c: (aac_type_find),
	(mp3_type_frame_length_from_header), (mp3_type_find),
	(plugin_init):
	  require mp3 typefinding to have at least MIN_HEADERS valid headers
	  add typefinding for AAC adts files

2004-08-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/ximage/ximagesink.c:
	(gst_ximagesink_calculate_pixel_aspect_ratio):
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_calculate_pixel_aspect_ratio):
	Make sure we calculate pixel-aspect-ratio using floating point maths

2004-08-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/uk.po:
	  updated translation

2004-08-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get):
	  add debugging for display PAR calculation

2004-08-02  David Schleef  <ds@schleef.org>

	* configure.ac: Fix mikmod CFLAGS.

2004-07-27  Benjamin Otte  <otte@gnome.org>

	* gst/audioscale/gstaudioscale.c:
	- fix templates to only support S16, it's the only format that works
	- make caps nego code use try_set_caps_nonfixed and fixation instead
	of try_set_caps twice, which is not nice for autopluggers
	- change rank to secondary, so autopluggers can pick it up after
	audioconvert

2004-08-02  Iain <iain@prettypeople.org>

	* gst/interleave/interleave.c (interleave_init),
	(interleave_request_new_pad),
	(interleave_pad_removed),
	(interleave_buffered_loop): Use the real pad count, not the artificial
	one.

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano back to development

=== release 0.8.3 ===

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.8.3, "Water"

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_calculate_pixel_aspect_ratio),
	(gst_xvimagesink_xcontext_clear), (gst_xvimagesink_sink_link),
	(gst_xvimagesink_change_state), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h:
	  apply similar PAR fixes as to ximagesink

2004-08-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch from: Benjamin Otte

	* ext/lame/gstlame.c: (gst_lame_src_link), (gst_lame_init):
	  add link function to lame.  Fixes #148986.

2004-08-02  Johan Dahlin  <johan@gnome.org>

	* gst/multipart/multipartmux.c (gst_multipart_mux_next_buffer):
	fix debugging log

2004-07-30  David Schleef  <ds@schleef.org>

	* gst/videomixer/Makefile.am: Fix things that should have been
	fixed in the last checkin.

2004-07-30  David Schleef  <ds@schleef.org>

	* gst/multipart/Makefile.am: Fix things that should have been
	fixed in the last checkin.

2004-07-30  David Schleef  <ds@schleef.org>

	* testsuite/multifilesink/Makefile.am: Fix unused variable.

2004-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  bump nano for prerelease
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/nl.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	  updates

2004-07-30  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_remove),
	(gst_multifdsink_clear), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
	* gst/tcp/gstmultifdsink.h:
	Recover from a select with a bad file descriptor by removing
	the client.

2004-07-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  fix requirement of core
	* gst-libs/gst/play/play.c: (gst_play_error_plugin),
	(gst_play_pipeline_setup):
	  don't use colorspace element.  do use hermescolorspace element.
	  make macro to get a colorspace element.
	  mark strings for translation.
	* po/POTFILES.in:
	  add play.c
	* po/af.po:
	* po/az.po:
	* po/cs.po:
	* po/en_GB.po:
	* po/hu.po:
	* po/nl.po:
	* po/sr.po:
	* po/sv.po:
	* po/uk.po:
	  update translations

2004-07-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init):
	fix default for newmedia flag

2004-07-30  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(gst_theora_dec_init), (theora_get_formats),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain), (theora_dec_set_property),
	(theora_dec_get_property):
	* ext/theora/theoraenc.c: (gst_border_mode_get_type),
	(gst_theora_enc_class_init), (gst_theora_enc_init),
	(theora_enc_sink_link), (theora_enc_chain),
	(theora_enc_set_property), (theora_enc_get_property):
	Added cropping option to theora decoder.
	Added border option to theora encoder.

2004-07-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init),
	(gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property),
	(gst_pngenc_set_property):
	* ext/libpng/gstpngenc.h:
	Added newmedia support to pngenc so now gst-launch-0.8 videotestsrc ! ffmpegcolorspace ! pngenc snapshot=false newmedia=true ! multifilesink location=blah%d.png works as expected

2004-07-30  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_enc_chain),
	(theora_enc_set_property), (theora_enc_get_property):
	Fix encoding of non-multiple-of-16 video.

2004-07-29  David Schleef  <ds@schleef.org>

	* configure.ac: make test for audiofile more strict

2004-07-25  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	  give different names to typefind functions

2004-07-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_calculate_pixel_aspect_ratio),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_getcaps),
	(gst_ximagesink_sink_link), (gst_ximagesink_change_state),
	(gst_ximagesink_set_xwindow_id), (gst_ximagesink_set_property),
	(gst_ximagesink_get_property), (gst_ximagesink_init):
	* sys/ximage/ximagesink.h:
	  allocate PAR's dynamically.
	  use autodetected PAR if no object-set PAR is given.
	  add workaround for directfb's X not setting physical size.
	  fix to xvimagesink will follow tomorrow.

2004-07-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/lame/gstlame.c: (gst_lame_chain): send tag events downstream
	* ext/shout2/gstshout2.c: (gst_shout2send_protocol_get_type),
	(gst_shout2send_get_type), (gst_shout2send_set_clock),
	(gst_shout2send_class_init), (gst_shout2send_init),
	(set_shout_metadata), (gst_shout2send_set_metadata),
	(gst_shout2send_chain), (gst_shout2send_set_property),
	(gst_shout2send_get_property), (gst_shout2send_connect),
	(gst_shout2send_change_state):
	* ext/shout2/gstshout2.h:
	- fix for sending mp3 audio to icecast2 server, if pad link function not
	called before PAUSED state
	- added option to use GStreamer clock sync (as opposed to libshout's own sync)
	- added tagging support for mp3 audio broadcasted
	* gst/monoscope/gstmonoscope.c: (gst_monoscope_class_init):
	debug info

2004-07-28  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
	(gst_ogg_demux_push):
	Return query failure when we don't know the length of
	an ogg stream insteda of returning TRUE with a bogus value.

2004-07-28  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_get_formats),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain):
	Don't screw up the 1 Chroma for 1 luma sample situation when we
	have an odd offset/width by adding a black border in those cases.

2004-07-28  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_get_formats),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain):
	* ext/theora/theoraenc.c: (theora_enc_sink_link):
	Added first attempt at cropping of the image as required by the
	theora spec. We need more properties in the caps (offset_x,
	offset_y,stride) to implement this correctly.

2004-07-28  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dvdnav/README:
	  Update the README to use dvddemux
	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_getcaps):
	  Ensure getcaps returns a subset of the template caps
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_base_init),
	(gst_mpeg2subt_init):
	  Ensure getcaps returns a subset of the template caps
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init),
	(gst_dvd_demux_init), (gst_dvd_demux_get_video_stream),
	(gst_dvd_demux_get_subpicture_stream),
	(gst_dvd_demux_send_subbuffer), (gst_dvd_demux_set_cur_subpicture):
	* gst/mpegstream/gstdvddemux.h:
	  Set the explicit caps on the current_video pad before pushing
	  anything
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
	(gst_mpeg_demux_get_audio_stream):
	  Free caps used to gst_pad_set_explicit_caps, which takes a const
	  GstCaps *

2004-07-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: update GStreamer requirement to 0.8.4 because of
	  GstFraction.

2004-07-28  Wim Taymans  <wim@fluendo.com>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt),
	(gst_wavparse_handle_seek), (gst_wavparse_srcpad_event):
	Add the pad to the element after setting up the caps. This
	makes it a lot easier to autoplug.

2004-07-27  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/median/gstmedian.c:
	* gst/mpeg2subt/gstmpeg2subt.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegpacketize.c:
	* gst/rtjpeg/gstrtjpeg.c:
	* gst/rtjpeg/gstrtjpegdec.c:
	* gst/rtjpeg/gstrtjpegenc.c:
	* gst/sine/gstsinesrc.c:
	* gst/smooth/gstsmooth.c:
	* gst/smpte/gstsmpte.c:
	* gst/smpte/gstsmpte.h:
	* gst/stereo/gststereo.c:
	* gst/videofilter/gstgamma.c:
	* gst/videofilter/gstvideobalance.c:
	* gst/videofilter/gstvideofilter.c:
	* gst/videofilter/gstvideoflip.c:
	* gst/videoscale/gstvideoscale.c:
	* gst/videoscale/videoscale.c:
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/videotestsrc.c:
	* gst/wavenc/gstwavenc.c:
	* gst/wavparse/gstwavparse.c:
	  fix local includes and 64 bits constants

2004-07-27  Steve Lhomme  <steve.lhomme@free.fr>

	* win32/gst.sln:
	* gst-libs/gst/*/*.vcproj:
	* gst/*/*.vcproj:
	  more working plugins

2004-07-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* testsuite/alsa/Makefile.am:
	* testsuite/alsa/srcstate.c:
	add test for alsasrc changing state

2004-07-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/silence/gstsilence.c: (gst_silence_init), (gst_silence_link),
	(gst_silence_get):
	* gst/silence/gstsilence.h:
	fix silence generation for 16bit raw audio

2004-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_metadata),
	(gst_matroska_demux_video_caps), (gst_matroska_demux_plugin_init):
	* gst/mpegaudio/common.c:
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init),
	(gst_videoscale_getcaps), (gst_videoscale_link),
	(gst_videoscale_src_fixate), (gst_videoscale_init),
	(gst_videoscale_finalize):
	* gst/videoscale/gstvideoscale.h:
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_get_capslist):
	* gst/wavenc/gstwavenc.c:
	* sys/oss/gstossmixer.c: (fill_labels):
	* sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_handle_xevents),
	(gst_ximagesink_calculate_pixel_aspect_ratio),
	(gst_ximagesink_xcontext_get), (gst_ximagesink_fixate),
	(gst_ximagesink_getcaps), (gst_ximagesink_sink_link),
	(gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id),
	(gst_ximagesink_set_property), (gst_ximagesink_get_property),
	(gst_ximagesink_init), (gst_ximagesink_class_init):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c:
	(gst_xvimagesink_calculate_pixel_aspect_ratio),
	(gst_xvimagesink_xcontext_get), (gst_xvimagesink_sink_link),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
	(gst_xvimagesink_init), (gst_xvimagesink_class_init):
	* sys/xvimage/xvimagesink.h:
	  first batch of pixel aspect ratio commits.

2004-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_class_init), (gst_ffmpegcolorspace_chain):
	* gst/ffmpegcolorspace/imgconvert.c: (avpicture_fill):
	  handle stride, needs work if we want to move stride handling
	  upstream, but works correctly for our purposes.

2004-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/README:
	  add testing examples
	* gst/videoscale/gstvideoscale.c: (gst_videoscale_link),
	(gst_videoscale_chain):
	* gst/videoscale/videoscale.c: (gst_videoscale_setup),
	(gst_videoscale_get_size):
	  add get_size function that handles stride like videotestsrc.
	  fixes conversion for YUV formats for as much as I can test them.

2004-07-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy),
	(gst_xvimagesink_xvimage_put):
	  further cleanups, logging, error handling and synchronizing

2004-07-27  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type),
	(gst_videomixer_pad_class_init), (gst_videomixer_pad_get_property),
	(gst_videomixer_pad_set_property),
	(gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_init),
	(gst_video_mixer_background_get_type), (gst_videomixer_get_type),
	(gst_videomixer_class_init), (gst_videomixer_init),
	(gst_videomixer_getcaps), (gst_videomixer_request_new_pad),
	(gst_videomixer_blend_ayuv_i420), (pad_zorder_compare),
	(gst_videomixer_sort_pads), (gst_videomixer_fill_checker),
	(gst_videomixer_fill_color), (gst_videomixer_fill_queues),
	(gst_videomixer_blend_buffers), (gst_videomixer_update_queues),
	(gst_videomixer_loop), (plugin_init):
	Be a nicer negotiation citizen and provide a getcaps function on
	the srcpad. This also fixes a crash when resizing.

2004-07-27  Julien MOUTTE  <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new): Some fixes to image size calculation.

2004-07-27  Wim Taymans  <wim@fluendo.com>

	* ext/libpng/gstpngdec.c: (gst_pngdec_src_getcaps):
	* ext/libpng/gstpngenc.c: (gst_pngenc_class_init),
	(gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property),
	(gst_pngenc_set_property):
	* ext/libpng/gstpngenc.h:
	Added snapshot property to pngenc.
	removed g_print from pngdec

2004-07-27  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/ac3parse/ac3parse.vcproj
	* gst/adder/adder.vcproj
	* gst/alpha/alpha.vcproj
	* gst/alpha/alphacolor.vcproj
	* gst/asfdemux/asf.vcproj
	* gst/audioconvert/audioconvert.vcproj
	* gst/audiorate/audiorate.vcproj
	* gst/audioscale/audioscale.vcproj
	* gst/auparse/auparse.vcproj
	* gst/avi/avi.vcproj
	* gst/cdxaparse/cdxaparse.vcproj
	* gst/chart/chart.vcproj
	* gst/colorspace/colorspace.vcproj
	* gst/cutter/cutter.vcproj
	* gst/debug/debug.vcproj
	* gst/debug/efence.vcproj
	* gst/debug/navigationtest.vcproj
	* gst/deinterlace/deinterlace.vcproj
	* gst/effectv/effectv.vcproj
	* gst/ffmpegcolorspace/ffmpegcolorspace.vcproj
	* gst/filter/filter.vcproj
	* gst/flx/flxdec.vcproj
	* gst/goom/goom.vcproj
	* gst/interleave/interleave.vcproj
	* gst/law/alaw.vcproj
	* gst/law/mulaw.vcproj
	* gst/matroska/matroska.vcproj
	* gst/median/median.vcproj
	* gst/mixmatrix/mixmatrix.vcproj
	* gst/mpeg1sys/mpeg1systemencode.vcproj
	* gst/mpeg1videoparse/mp1videoparse.vcproj
	* gst/mpeg2sub/mpeg2subt.vcproj
	* gst/mpegaudio/mpegaudio.vcproj
	* gst/mpegaudioparse/mpegaudioparse.vcproj
	* gst/mpegstream/mpegstream.vcproj
	* gst/multifilesink/multifilesink.vcproj
	* gst/multipart/multipart.vcproj
	* gst/oneton/oneton.vcproj
	* gst/overlay/overlay.vcproj
	* gst/passthrough/passthrough.vcproj
	* gst/qtdemux/qtdemux.vcproj
	* gst/realmedia/rmdemux.vcproj
	* gst/rtjpeg/rtjpeg.vcproj
	* gst/rtp/rtp.vcproj
	* gst/silence/silence.vcproj
	* gst/sine/sinesrc.vcproj
	* gst/smooth/smooth.vcproj
	* gst/smpte/smpte.vcproj
	* gst/spectrum/spectrum.vcproj
	* gst/speed/speed.vcproj
	* gst/stereo/stereo.vcproj
	* gst/switch/switch.vcproj
	* gst/tags/tagedit.vcproj
	* gst/tcp/tcp.vcproj
	* gst/typefind/typefindfunctions.vcproj
	* gst/udp/udp.vcproj
	* gst/videobox/videobox.vcproj
	* gst/videocrop/videocrop.vcproj
	* gst/videodrop/videodrop.vcproj
	* gst/videofilter/gamma.vcproj
	* gst/videofilter/videobalance.vcproj
	* gst/videofilter/videofilter.vcproj
	* gst/videofilter/videoflip.vcproj
	* gst/videoflip/videoflip.vcproj
	* gst/videomixer/videomixer.vcproj
	* gst/videorate/videorate.vcproj
	* gst/videoscale/videoscale.vcproj
	* gst/videotestsrc/videotestsrc.vcproj
	* gst/virtualdub/virtualdub.vcproj
	* gst/volenv/volenv.vcproj
	* gst/volume/volume.vcproj
	* gst/wavenc/wavenc.vcproj
	* gst/wavparse/wavparse.vcproj
	* gst/y4m/y4menc.vcproj
	* gst-libs/gst/audio/audio.vcproj
	* gst-libs/gst/audio/audiofilter.vcproj
	* gst-libs/gst/colorbalance/colorbalance.vcproj
	* gst-libs/gst/idct/idtc.vcproj
	* gst-libs/gst/media-info/media-info.vcproj
	* gst-libs/gst/mixer/mixer.vcproj
	* gst-libs/gst/navigation/navigation.vcproj
	* gst-libs/gst/play/play.vcproj
	* gst-libs/gst/propertyprobe/propertyprobe.vcproj
	* gst-libs/gst/resample/resample.vcproj
	* gst-libs/gst/riff/riff.vcproj
	* gst-libs/gst/tuner/tuner.vcproj
	* gst-libs/gst/video/video.vcproj
	* gst-libs/gst/xoverlay/xoverlay.vcproj
	  avoid problems with math.h, fix release dependancy
	  rename GStreamer-0.8.lib to libgstreamer.lib

2004-07-27  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate): When
	the atom is not available we have to unlock the mutex. Fixes #148023

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst-libs/gst/media-info/media-info.h:
	  issue for a vararg macro with MSVC

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/effectv/effectv.vcproj
	* gst-libs/gst/idct/idct.vcproj:
	* gst-libs/gst/media-info/media-info.vcproj:
	* gst-libs/gst/navigation/navigation.vcproj:
	* gst-libs/gst/propertyprobe/propertyprobe.vcproj:
	* gst-libs/gst/video/video.vcproj:
	* gst-libs/gst/xoverlay/xoverlay.vcproj:
	  fixes for build problems

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst-libs/gst/audio/audio.def:
	* gst-libs/gst/audio/riff.def:
	  add some definitions needed by plugins

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/asfdemux/gstasfmux.c
	  Fix some 64 bits constants to be glib friendly

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/ac3parse/gstac3parse.c
	* gst/audioscale/gstaudioscale.c
	* gst/auparse/gstauparse.c
	* gst/colorspace/gstcolorspace.c
	* gst/colorspace/yuv2rgb.h
	  local include fixes

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* win32/gst.sln
	  add more plugins to the build

2004-07-26  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
	(gst_ximagesink_ximage_new): Some more fixes to image size calculation.

2004-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/level/gstlevel.c: (gst_level_link), (gst_level_chain),
	(gst_level_set_property), (gst_level_get_property),
	(gst_level_base_init), (gst_level_class_init):
	  add debugging categories.  cleanups.

2004-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/videoscale.c: (gst_videoscale_setup),
	(gst_videoscale_planar411), (gst_videoscale_planar400),
	(gst_videoscale_packed422), (gst_videoscale_packed422rev),
	(gst_videoscale_scale_nearest_str1),
	(gst_videoscale_scale_nearest_str2),
	(gst_videoscale_scale_nearest_str4),
	(gst_videoscale_scale_nearest_16bit),
	(gst_videoscale_scale_nearest_24bit):
	  fixed stride issues
	  tested with 320x240 -> 321, 322, 324 x240
	  tested with YV12, I420, YUY2, UYVY
	  fixed packed422rev (don't think it could have worked before)
	  by testing with UYVY

2004-07-26  Benjamin Otte  <otte@gnome.org>

	* ext/lame/gstlame.c: (gst_lame_sink_link), (gst_lame_init),
	(gst_lame_chain), (gst_lame_setup), (gst_lame_change_state),
	(plugin_init):
	  add debugging category, add error checks like checking return values
	  of setup calls, make sure it still works after
	  PLAYING=>NULL=>PLAYING, fix encoding of mono streams

2004-07-26  Wim Taymans  <wim@fluendo.com>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
	(gst_mpeg_demux_get_audio_stream),
	(gst_mpeg_demux_process_private):
	* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_data):
	Check for error codes from the negotiation functions. Make sure
	we really set the pad caps when a new pad is created.

2004-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_caps_to_pix_fmt):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_pad_link):
	  don't make function do two things at the same time without reason.

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/ac3parse/ac3parse.vcproj
	* gst/adder/adder.vcproj
	* gst/alpha/alpha.vcproj
	* gst/alpha/alphacolor.vcproj
	* gst/asfdemux/asf.vcproj
	* gst/audioconvert/audioconvert.vcproj
	* gst/audiorate/audiorate.vcproj
	* gst/audioscale/audioscale.vcproj
	* gst/auparse/auparse.vcproj
	* gst/avi/avi.vcproj
	* gst/cdxaparse/cdxaparse.vcproj
	* gst/chart/chart.vcproj
	* gst/colorspace/colorspace.vcproj
	* gst/cutter/cutter.vcproj
	* gst/debug/debug.vcproj
	* gst/debug/efence.vcproj
	* gst/debug/navigationtest.vcproj
	* gst/deinterlace/deinterlace.vcproj
	* gst/effectv/effectv.vcproj
	* gst/ffmpegcolorspace/ffmpegcolorspace.vcproj
	* gst/filter/filter.vcproj
	* gst/flx/flxdec.vcproj
	* gst/goom/goom.vcproj
	* gst/interleave/interleave.vcproj
	* gst/law/alaw.vcproj
	* gst/law/mulaw.vcproj
	* gst/matroska/matroska.vcproj
	* gst/median/median.vcproj
	* gst/mixmatrix/mixmatrix.vcproj
	* gst/mpeg1sys/mpeg1systemencode.vcproj
	* gst/mpeg1videoparse/mp1videoparse.vcproj
	* gst/mpeg2sub/mpeg2subt.vcproj
	* gst/mpegaudio/mpegaudio.vcproj
	* gst/mpegaudioparse/mpegaudioparse.vcproj
	* gst/mpegstream/mpegstream.vcproj
	* gst/multifilesink/multifilesink.vcproj
	* gst/multipart/multipart.vcproj
	* gst/oneton/oneton.vcproj
	* gst/overlay/overlay.vcproj
	* gst/passthrough/passthrough.vcproj
	* gst/qtdemux/qtdemux.vcproj
	* gst/realmedia/rmdemux.vcproj
	* gst/rtjpeg/rtjpeg.vcproj
	* gst/rtp/rtp.vcproj
	* gst/silence/silence.vcproj
	* gst/sine/sinesrc.vcproj
	* gst/smooth/smooth.vcproj
	* gst/smpte/smpte.vcproj
	* gst/spectrum/spectrum.vcproj
	* gst/speed/speed.vcproj
	* gst/stereo/stereo.vcproj
	* gst/switch/switch.vcproj
	* gst/tags/tagedit.vcproj
	* gst/tcp/tcp.vcproj
	* gst/typefind/typefindfunctions.vcproj
	* gst/udp/udp.vcproj
	* gst/videobox/videobox.vcproj
	* gst/videocrop/videocrop.vcproj
	* gst/videodrop/videodrop.vcproj
	* gst/videofilter/gamma.vcproj
	* gst/videofilter/videobalance.vcproj
	* gst/videofilter/videofilter.vcproj
	* gst/videofilter/videoflip.vcproj
	* gst/videoflip/videoflip.vcproj
	* gst/videomixer/videomixer.vcproj
	* gst/videorate/videorate.vcproj
	* gst/videoscale/videoscale.vcproj
	* gst/videotestsrc/videotestsrc.vcproj
	* gst/virtualdub/virtualdub.vcproj
	* gst/volenv/volenv.vcproj
	* gst/volume/volume.vcproj
	* gst/wavenc/wavenc.vcproj
	* gst/wavparse/wavparse.vcproj
	* gst/y4m/y4menc.vcproj
	  more plugins supported under windows

2004-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_ximage_put), (gst_ximagesink_renegotiate_size),
	(gst_ximagesink_chain), (gst_ximagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc):
	  Add debugging statements.  Use the sizes as returned by the
	  *CreateImage calls.

2004-07-26  Johan Dahlin  <johan@gnome.org>

	* gst/tcp/gsttcpclientsrc.c (gst_tcpclientsrc_get): Make sure that
	the pad is negotiated.

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c (gst_ffmpegcolorspace_chain): Ditto

2004-07-26  Steve Lhomme  <steve.lhomme@free.fr>

	* gst-libs/gst/colorbalance/colorbalance.vcproj:
	* gst-libs/gst/idct/idct.vcproj:
	* gst-libs/gst/media-info/media-info.vcproj:
	* gst-libs/gst/mixer/mixer.vcproj:
	* gst-libs/gst/navigation/navigation.vcproj:
	* gst-libs/gst/play/play.vcproj:
	* gst-libs/gst/propertyprobe/propertyprobe.vcproj:
	* gst-libs/gst/resample/resample.vcproj:
	* gst-libs/gst/tuner/tuner.vcproj:
	* gst-libs/gst/video/video.vcproj:
	* gst-libs/gst/xoverlay/xoverlay.vcproj:
	  more plugins supported under windows

2004-07-25 Iain <iain@prettypeople.org>

	* gst/wavparse/gstwavparse.c (gst_wavparse_fmt): Set the caps on the
	pad now rather than when the pad is created because state changes wipe
	explicit caps (fixes #148043).

2004-07-25  Sebastien Cote  <sc5@hermes.usherb.ca>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstmad.c:
	  fix mad plugin crashing on Sun (fixes #148289)

2004-07-25  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/avi/avi.def:
	* gst/avi/avi.vcproj:
	* gst/matroska/matroska.def:
	* gst/matroska/matroska.vcproj:
	  remove unused .def files

2004-07-25  Steve Lhomme  <steve.lhomme@free.fr>

	* gst-libs/gst/audio/gstaudiofilter.c:
	  Clean the local include

2004-07-25  Steve Lhomme  <steve.lhomme@free.fr>

	* win32/gst.sln:
	* gst-libs/gst/audio/audio.def:
	* gst-libs/gst/audio/audio.vcproj:
	* gst-libs/gst/audio/audiofilter.vcproj:
	* gst-libs/gst/audio/riff.def:
	* gst-libs/gst/audio/riff.vcproj:
	* gst-libs/gst/gst-libs.def:
	* gst-libs/gst/gst-libs.vcproj:
	* gst/avi/avi.vcproj:
	* gst/avi/avi.vcproj:
	  Copy the files where needed after building, cleaner projects

2004-07-25  Steve Lhomme  <steve.lhomme@free.fr>

	* gst/matroska/ebml-write.c:
	  Fix some 64 bits constants to be glib friendly

2004-07-24  Steve Lhomme  <steve.lhomme@free.fr>

	* win32/gst.sln:
	* gst-libs/gst/gst-libs.def:
	* gst-libs/gst/gst-libs.vcproj:
	* gst/matroska/matroska.def:
	* gst/matroska/matroska.vcproj:
	  Add the preliminary canvas to build plugins on Win32

2004-07-23  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	  don't enfore negotiation from source side, it breaks
	  sinesrc ! audioconvert ! osssink

2004-07-22  David Schleef  <ds@schleef.org>

	* gst/typefind/gsttypefindfunctions.c: (plugin_init): Add typefind
	for ELF files, since they can easily be recognized as audio/mpeg.
	(bug #147441)

2004-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/videoscale.c: (gst_videoscale_setup),
	(gst_videoscale_planar411), (gst_videoscale_scale_nearest_32bit),
	(gst_videoscale_scale_nearest_24bit),
	(gst_videoscale_scale_nearest_16bit):
	  fix 16bit and 24bit for stride (24bit might need testing)
	  don't pretend we do more than one algorithm

2004-07-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	* gst/Makefile.am:
	* gst/multifilesink/Makefile.am:
	* gst/multifilesink/gstmultifilesink.c:
	(gst_multifilesink_get_formats),
	(gst_multifilesink_get_query_types), (_do_init),
	(gst_multifilesink_base_init), (gst_multifilesink_class_init),
	(gst_multifilesink_init), (gst_multifilesink_dispose),
	(gst_multifilesink_set_location), (gst_multifilesink_set_property),
	(gst_multifilesink_get_property), (gst_multifilesink_open_file),
	(gst_multifilesink_close_file), (gst_multifilesink_next_file),
	(gst_multifilesink_pad_query), (gst_multifilesink_handle_event),
	(gst_multifilesink_chain), (gst_multifilesink_change_state),
	(gst_multifilesink_uri_get_type),
	(gst_multifilesink_uri_get_protocols),
	(gst_multifilesink_uri_get_uri), (gst_multifilesink_uri_set_uri),
	(gst_multifilesink_uri_handler_init), (plugin_init):
	* gst/multifilesink/gstmultifilesink.h:
	* testsuite/Makefile.am:
	* testsuite/multifilesink/Makefile.am:
	* testsuite/multifilesink/fakesrc_test.c: (gst_newmedia_base_init),
	(gst_newmedia_class_init), (gst_newmedia_init),
	(gst_newmedia_chain), (gst_newmedia_trigger), (test_format),
	(newfile_signal), (test_signal), (main):
	multifilesink plugin for creating new files every time a new media
	discontinuity event occurs

2004-07-22  Wim Taymans  <wim@fluendo.com>

	* gst/alpha/Makefile.am:
	* gst/alpha/gstalphacolor.c: (gst_alpha_color_get_type),
	(gst_alpha_color_base_init), (gst_alpha_color_class_init),
	(gst_alpha_color_init), (gst_alpha_color_set_property),
	(gst_alpha_color_get_property), (gst_alpha_color_sink_link),
	(transform), (gst_alpha_color_chain),
	(gst_alpha_color_change_state), (plugin_init):
	Stupid plugin to to RGBA to AYUV conversion because none of
	the colorspace plugins can handle that yet.

2004-07-22  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (update_scale), (main):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_is_dynamic),
	(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
	(gst_decode_bin_init), (gst_decode_bin_dispose),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(no_more_pads), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (queue_overrun),
	(gen_preroll_element), (remove_prerolls), (unknown_type),
	(no_more_pads), (new_stream), (setup_source),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
	(play_base_eos), (gst_play_base_bin_change_state),
	(gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybin.c: (gen_video_element),
	(gen_audio_element):
	* gst/playback/gststreaminfo.h:
	More playback updates, attempt to fix things after the state change
	breakage.

2004-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videoscale/videoscale.c: (gst_videoscale_planar411),
	(gst_videoscale_scale_nearest_16bit):
	  comment algorithm

2004-07-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_class_init), (gst_videotestsrc_src_link),
	(gst_videotestsrc_init), (gst_videotestsrc_get),
	(gst_videotestsrc_set_pattern), (gst_videotestsrc_set_property),
	(gst_videotestsrc_get_property):
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.c:
	* gst/videotestsrc/videotestsrc.h:
	  cleanup and commenting

2004-07-21  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init),
	(gst_ogg_demux_get_formats), (gst_ogg_demux_src_query),
	(gst_ogg_demux_src_event), (gst_ogg_demux_src_convert),
	(gst_ogg_demux_handle_event), (gst_ogg_demux_seek_before),
	(_find_chain_get_unknown_part), (_find_streams_check),
	(gst_ogg_demux_push), (gst_ogg_pad_push):
	* ext/theora/theoradec.c: (theora_get_formats),
	(theora_dec_src_convert), (theora_dec_sink_convert),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
	(theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
	(vorbis_dec_convert), (vorbis_dec_src_query),
	(vorbis_dec_src_event), (vorbis_dec_event):
	More seeking fixes, oggdemux now supports seeking to time and
	uses the downstream element to convert granulepos to time.
	Seeking in theora-only ogg files now works.

2004-07-21  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (gst_theora_dec_init),
	(theora_get_formats), (theora_get_event_masks),
	(theora_get_query_types), (theora_dec_src_convert),
	(theora_dec_sink_convert), (theora_dec_src_query),
	(theora_dec_src_event), (theora_dec_event), (theora_dec_chain):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
	(vorbis_get_event_masks), (vorbis_get_query_types),
	(gst_vorbis_dec_init), (vorbis_dec_convert),
	(vorbis_dec_src_query), (vorbis_dec_src_event), (vorbis_dec_event):
	Added query/convert/formats functions to vorbis and theora decoders
	so that the outside world can use them too. Fixed seeking on an
	ogg/theora/vorbis file by disabling the seeking seeking on the
	theora srcpad.

2004-07-21  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
	(gst_ximagesink_renegotiate_size), (gst_ximagesink_sink_link),
	(gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id): Optimize
	images creation for both elements. We don't create the image on caps
	nego or renego, we just destroy the internal one if present if it does
	not match the needs. The chain function takes care of creating a new
	image when needed.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
	(gst_xvimagesink_xwindow_decorate), (gst_xvimagesink_sink_link),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc),
	(gst_xvimagesink_set_xwindow_id): Additionally xvimage now contains
	the image format information. The buffer pool checks for the context
	image format and discard images with different formats.
	* sys/xvimage/xvimagesink.h: Adding im_format in the xvimage structure.

2004-07-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_chain):
	  no point in doing any chaining if the pad we want to push from
	  isn't usable.

2004-07-20  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data):
	  Fix double end-to-native symbol conversion (#148021).

2004-07-20  David Schleef  <ds@schleef.org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate):
	Don't use an Atom that doesn't exist.

2004-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer):
	* gst/tcp/gstmultifdsink.h:
	More multifdsink stats. Avoid deadlock by releasing locks
	before sending out a signal.

2004-07-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/hu.po:
	  added Hungarian translation (Laszlo Dvornik)

2004-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer):
	* gst/tcp/gsttcp-marshal.list:
	Fixed the stupid marshal definition.

2004-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_init), (gst_multifdsink_add),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_queue_buffer), (gst_multifdsink_chain),
	(gst_multifdsink_set_property), (gst_multifdsink_get_property),
	(gst_multifdsink_init_send):
	* gst/tcp/gstmultifdsink.h:
	Added more stats, added timeout for a client, fixed some typos
	and added some comments.

2004-07-20  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
	(gst_multifdsink_add), (gst_multifdsink_get_stats),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_write):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcp-marshal.list:
	Added get_stats method that returns a GValueArray of
	stats values.

2004-07-19  Benjamin Otte  <otte@gnome.org>

	* ext/ladspa/gstladspa.c: (gst_ladspa_base_init):
	  make sure longname, description and author are valid UTF-8

2004-07-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_change_state),
	(gst_ximagesink_set_property):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state),
	(gst_xvimagesink_set_property):
	  make sure SYNCHRONOUS is respected after getting the X context

2004-07-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_src_event),
	(gst_matroska_demux_parse_blockgroup):
	* gst/matroska/matroska-ids.h:
	  add BlockReference tag and ignore it to clear out log.
	  ignore NAVIGATION events to clear out log.

2004-07-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init),
	(gst_matroska_demux_add_stream):
	* gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init):
	  add debug categories

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* ext/libpng/Makefile.am:
	* ext/libpng/gstpng.c: (plugin_init):
	* ext/libpng/gstpngdec.c: (user_error_fn), (user_warning_fn),
	(gst_pngdec_get_type), (gst_pngdec_base_init),
	(gst_pngdec_class_init), (gst_pngdec_sinklink), (gst_pngdec_init),
	(gst_pngdec_src_getcaps), (user_read_data), (gst_pngdec_chain):
	* ext/libpng/gstpngdec.h:
	Added png decoder.

2004-07-16  Julien MOUTTE  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xerror),
	(gst_ximagesink_check_xshm_calls), (gst_ximagesink_ximage_new),
	(gst_ximagesink_ximage_destroy), (gst_ximagesink_sink_link),
	(gst_ximagesink_chain), (gst_ximagesink_buffer_free),
	(gst_ximagesink_buffer_alloc):
	* sys/ximage/ximagesink.h:
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy),
	(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
	(gst_xvimagesink_buffer_alloc):
	* sys/xvimage/xvimagesink.h: Getting the 2 video sinks synchronized
	again. Using internal data pointer of the x(v)image to store image's
	data to be coherent with the buffer alloc mechanism. Investigated the
	image destruction code to be sure that everything gets freed correctly.

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data),
	(gst_riff_read_strf_auds_with_data):
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_add_stream), (gst_avi_demux_stream_header):
	Make sure we don't create 0 sized subbuffers in riff-read.
	Signal the no more pads signal after reading the avi header.

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_is_dynamic),
	(gst_decode_bin_factory_filter), (compare_ranks), (print_feature),
	(gst_decode_bin_init), (gst_decode_bin_dispose),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(no_more_pads), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(gst_decode_bin_change_state), (plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (queue_overrun),
	(gen_preroll_element), (remove_prerolls), (unknown_type),
	(no_more_pads), (new_stream), (setup_source),
	(gst_play_base_bin_set_property), (gst_play_base_bin_get_property),
	(play_base_eos), (gst_play_base_bin_change_state),
	(gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	Better error recovery. Added configurable preroll queue size. Faster
	detection of no-more-pads.

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/video/video.h:
	Added 32 bits RGBA. Not sure if we should use another mime-type
	for alpha rgb. Currently the presence of the alpha_mask property
	signals an alpha channel.

2004-07-16  Wim Taymans  <wim@fluendo.com>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	FPS seems to be 0.0 to MAX everywhere else.

2004-07-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  mp42/mp43 (no caps) exist too.
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps):
	  Set pixel_width/height; we've got them in-caps.
	* gst/typefind/gsttypefindfunctions.c: (plugin_init):
	* gst/wavparse/gstwavparse.c: (plugin_init):
	  Both are valid primary.
	* sys/oss/gstossmixer.c:
	  Remove i18n hack and enable translations.

2004-07-15  Benjamin Otte  <otte@gnome.org>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
	(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy):
	  fix for non-shm xv. Original patch by Tim Ringenbach (fixes #147248)

2004-07-15  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
	(gst_alsa_sw_params_dump), (gst_alsa_hw_params_dump),
	(gst_alsa_close_audio):
	  disable some of the debugging code for now. Writing debugging to a
	  buffer is broken in current alsalib releases.

2004-07-12  Benjamin Otte  <otte@gnome.org>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer):
	  use bufferpools

2004-07-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/theora/theoradec.c: (gst_theora_dec_class_init),
	(theora_dec_src_query), (theora_dec_event):
	* ext/theora/theoraenc.c: (gst_theora_enc_class_init):
	  add debugging categories.  Remove \n's.

2004-07-13  Johan Dahlin  <johan@gnome.org>

	* gst/playback/gstplaybin.c (gst_play_bin_set_property)
	(gst_play_bin_get_property): Impl.

2004-07-13  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_seek_before):
	When trying to find the stream length, seek back N pages
	instead of just one, where N is the number of streams in
	the current chain.

2004-07-13  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_audio_caps_with_data),
	(gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	* gst-libs/gst/riff/riff-media.h:
	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data),
	(gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_auds):
	* gst-libs/gst/riff/riff-read.h:
	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
	(gst_avi_demux_add_stream):
	Set codec_data on caps for avidemuxer.

2004-07-12  David Schleef  <ds@schleef.org>

	* configure.ac: Fix test for Objective C

2004-07-12  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_get_capslist),
	(gst_gdk_pixbuf_chain):
	  Add svg and pcx to template caps, and ensure that getcaps returns a
	  subset of the template caps.
	  Copy each row manually for output, as gdkpixbuf may pad the
	  rowstride to a 32-bit word boundary.

2004-07-12  Wim Taymans  <wim@fluendo.com>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps),
	(gst_riff_create_video_template_caps):
	Fix the template caps to include some more media types.

2004-07-12  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (print_feature), (gst_decode_bin_init),
	(gst_decode_bin_dispose), (find_compatibles), (close_pad_link),
	(try_to_link_1), (new_pad), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(gst_decode_bin_change_state), (plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (queue_overrun),
	(gen_preroll_element), (remove_prerolls), (no_more_pads),
	(new_stream), (setup_source), (gst_play_base_bin_set_property),
	(gst_play_base_bin_get_property), (play_base_eos),
	(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gen_video_element),
	(gen_audio_element), (remove_sinks), (setup_sinks),
	(gst_play_bin_change_state), (gst_play_bin_get_event_masks),
	(gst_play_bin_send_event), (gst_play_bin_get_formats),
	(gst_play_bin_convert), (gst_play_bin_get_query_types),
	(gst_play_bin_query), (plugin_init):
	* gst/playback/test4.c: (main):
	More fixes on reusing of the element.

2004-07-11  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstmad.c: (normal_seek):
	  allow seeking for other methods than just SET

2004-07-11  Andy Wingo  <wingo@pobox.com>

	* gst/audioconvert/gstaudioconvert.c (gst_audio_convert_link): For
	float, "any" caps -> buffer_frames=[0,MAX].

	* gst/interleave/interleave.c (interleave_getcaps): Seems the core
	doesn't intersect our caps with the template any more. Do it
	ourselves.
	(interleave_buffered_loop): Use g_newa instead of malloc/free.

2004-07-09  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (print_feature), (gst_decode_bin_init),
	(gst_decode_bin_dispose), (find_compatibles), (close_pad_link),
	(try_to_link_1), (new_pad), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(gst_decode_bin_change_state), (plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (queue_overrun),
	(gen_preroll_element), (remove_prerolls), (no_more_pads),
	(new_stream), (setup_source), (gst_play_base_bin_set_property),
	(gst_play_base_bin_get_property), (play_base_eos),
	(gst_play_base_bin_change_state), (gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gen_video_element),
	(gen_audio_element), (remove_sinks), (setup_sinks),
	(gst_play_bin_change_state), (gst_play_bin_get_event_masks),
	(gst_play_bin_send_event), (gst_play_bin_get_formats),
	(gst_play_bin_convert), (gst_play_bin_get_query_types),
	(gst_play_bin_query), (plugin_init):
	* gst/playback/test4.c: (main):
	Work on object reuse and seeking.

2004-07-09  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (iterate):
	Don't consume all CPU in the idle loop.

2004-07-09  Wim Taymans  <wim@fluendo.com>

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_new_output_pad),
	(gst_mpeg_demux_parse_packet), (gst_mpeg_demux_process_private):
	Add pad to element *after* setting the pad functions so that
	the scheduler can use the correct ones.

2004-07-09  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_from_granulepos),
	(theora_dec_src_query), (theora_dec_src_event), (theora_dec_chain):
	Sync to keyframe after seek

2004-07-09  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
	(gst_alsa_sink_loop), (gst_alsa_sink_change_state):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_change_state):
	* ext/libvisual/visual.c: (gst_visual_change_state):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_change_state):
	* ext/theora/theoradec.c: (theora_dec_change_state):
	* ext/theora/theoraenc.c: (theora_enc_change_state):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_change_state):
	* gst-libs/gst/navigation/navigation.c:
	* gst/adder/gstadder.c: (gst_adder_change_state):
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
	(gst_audio_convert_get_buffer):
	* gst/multipart/multipartdemux.c:
	(gst_multipart_demux_change_state):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_change_state):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
	* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
	* gst/videoscale/gstvideoscale.c:
	(gst_videoscale_handle_src_event):
	* gst/volume/gstvolume.c: (volume_chain_int16):
	  don't assert in state change, this should be done by the base
	  GstElement class.
	  various debugging fixes.

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup),
	(gst_play_dispose), (gst_play_set_location),
	(gst_play_set_data_src), (gst_play_set_video_sink),
	(gst_play_set_audio_sink), (gst_play_set_visualization),
	(gst_play_connect_visualization), (gst_play_get_sink_element),
	(gst_play_get_all_by_interface):
	* gst-libs/gst/play/play.h:
	  add new method to get elements implementing an interface.
	  add various error logging

2004-07-08  Wim Taymans  <wim@fluendo.com>

	* examples/seeking/seek.c: (make_dv_pipeline), (make_avi_pipeline),
	(make_mpeg_pipeline), (make_mpegnt_pipeline),
	(make_playerbin_pipeline), (query_durations_elems),
	(query_durations_pads), (query_positions_elems),
	(query_positions_pads), (update_scale), (iterate), (stop_seek),
	(main):
	Added playbin seeking example.

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst-libs/gst/play/play.c: (gst_play_set_location),
	(gst_play_set_data_src), (gst_play_set_video_sink),
	(gst_play_set_audio_sink), (gst_play_set_visualization),
	(gst_play_connect_visualization), (gst_play_get_framerate):
	  use a macro to look up elements from hash table

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup),
	(gst_play_get_length_callback), (gst_play_set_location),
	(gst_play_seek_to_time), (gst_play_set_data_src),
	(gst_play_set_video_sink), (gst_play_set_audio_sink),
	(gst_play_set_visualization), (gst_play_connect_visualization),
	(gst_play_get_sink_element):
	- add debugging info
	- fix looking up sink elements by iterating over complete caps
	- put everything except for source and autoplugger in a complete bin

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/alsa/gstalsa.c: (gst_alsa_drain_audio):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_flush_one_pad),
	(gst_alsa_sink_check_event), (gst_alsa_sink_mmap),
	(gst_alsa_sink_write), (gst_alsa_sink_loop):
	* ext/alsa/gstalsasink.h:
	- add debugging info
	- clean up schizophrenia of data/buffer/event
	- fix double event unref error

2004-07-08  Wim Taymans  <wim@fluendo.com>

	* gst/playback/Makefile.am:
	Add headers to noinst

2004-07-08  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* tools/gst-launch-ext-m.m:
	* tools/gst-launch-ext.1.in:
	  convert to the third millenium

2004-07-07  David Schleef  <ds@schleef.org>

	* sys/dxr3/Makefile.am: noinst_SOURCES should be nodist_SOURCES

2004-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/playback/Makefile.am:
	* gst/playback/README:
	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (print_feature), (gst_decode_bin_init),
	(gst_decode_bin_dispose), (find_compatibles), (close_pad_link),
	(try_to_link_1), (new_pad), (close_link), (type_found),
	(gst_decode_bin_set_property), (gst_decode_bin_get_property),
	(plugin_init):
	* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type),
	(gst_play_base_bin_class_init), (gst_play_base_bin_init),
	(gst_play_base_bin_dispose), (rebuild_pipeline), (queue_overrun),
	(gen_preroll_element), (no_more_pads), (new_stream),
	(setup_source), (gst_play_base_bin_set_property),
	(gst_play_base_bin_get_property), (gst_play_base_bin_change_state),
	(gst_play_base_bin_add_element),
	(gst_play_base_bin_remove_element),
	(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream),
	(gst_play_base_bin_unlink_stream),
	(gst_play_base_bin_get_streaminfo):
	* gst/playback/gstplaybasebin.h:
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gen_video_element),
	(gen_audio_element), (setup_sinks), (gst_play_bin_change_state),
	(gst_play_bin_get_event_masks), (gst_play_bin_send_event),
	(gst_play_bin_get_formats), (gst_play_bin_convert),
	(gst_play_bin_get_query_types), (gst_play_bin_query),
	(plugin_init):
	* gst/playback/gststreaminfo.c: (gst_stream_type_get_type),
	(gst_stream_info_get_type), (gst_stream_info_class_init),
	(gst_stream_info_init), (gst_stream_info_new),
	(gst_stream_info_dispose), (gst_stream_info_set_property),
	(gst_stream_info_get_property):
	* gst/playback/gststreaminfo.h:
	* gst/playback/test.c: (gen_video_element), (gen_audio_element),
	(main):
	* gst/playback/test2.c: (main):
	* gst/playback/test3.c: (update_scale), (main):
	More playbin fixes. Added README. Do better element filtering.
	Added base class to preroll media. Added test apps.

2004-07-07  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_flush_decoder):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  various debugging improvements.  Reset stream to next picture
	  instead of sequence header, otherwise seeks cannot work.

2004-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/videobox/gstvideobox.c: (gst_video_box_fill_get_type),
	(gst_video_box_class_init), (gst_video_box_set_property),
	(gst_video_box_i420), (gst_video_box_ayuv), (gst_video_box_chain):
	Use pad_alloc where possible.

2004-07-07  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstosselement.c: (gst_osselement_reset),
	(gst_osselement_parse_caps):
	* sys/oss/gstosselement.h:
	* sys/oss/gstosssrc.c: (gst_osssrc_get):
	Fix offset on osssrc.

2004-07-07  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theora.c: (plugin_init):
	* ext/theora/theoradec.c: (theora_dec_from_granulepos),
	(theora_dec_src_query), (theora_dec_chain):
	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_buffer_from_packet),
	(theora_push_packet), (theora_enc_chain):
	Fix theora granulepos calculation.
	Fix overflow in duration/position calculation.
	Bump rank to PRIMARY for theoradec.
	Use granulepos of last packet to calculate position.
	Set keyframe flag on buffers when needed.

2004-07-06  David Schleef  <ds@schleef.org>

	* gst/playback/Makefile.am: 'test' in bin_PROGRAMS?  Are you
	serious?  (Fixed, obviously.)

2004-07-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/cs.po:
	  added Czech translation (Miloslav Trmac)

2004-07-05  Wim Taymans  <wim@fluendo.com>

	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (gst_decode_bin_init), (gst_decode_bin_dispose),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(close_link), (type_found), (gst_decode_bin_set_property),
	(gst_decode_bin_get_property), (gst_decode_bin_get_event_masks),
	(gst_decode_bin_send_event), (gst_decode_bin_get_formats),
	(gst_decode_bin_convert), (gst_decode_bin_get_query_types),
	(gst_decode_bin_query), (plugin_init):
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (rebuild_pipeline), (get_audio_element),
	(get_video_element), (new_pad), (setup_source),
	(gst_play_bin_set_property), (gst_play_bin_get_property),
	(gst_play_bin_change_state), (gst_play_bin_add_element),
	(gst_play_bin_remove_element), (gst_play_bin_get_event_masks),
	(gst_play_bin_send_event), (gst_play_bin_get_formats),
	(gst_play_bin_convert), (gst_play_bin_get_query_types),
	(gst_play_bin_query), (gst_play_bin_get_clock), (plugin_init):
	* gst/playback/test.c: (main):
	More fixes, cleaned up playbin, make it use decodebin. Added
	threaded property to playbin.

2004-07-05  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/playback/Makefile.am:
	* gst/playback/decodetest.c: (main):
	* gst/playback/gstdecodebin.c: (gst_decode_bin_get_type),
	(gst_decode_bin_class_init), (gst_decode_bin_factory_filter),
	(compare_ranks), (gst_decode_bin_init), (gst_decode_bin_dispose),
	(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
	(close_link), (type_found), (gst_decode_bin_set_property),
	(gst_decode_bin_get_property), (gst_decode_bin_change_state),
	(gst_decode_bin_get_event_masks), (gst_decode_bin_send_event),
	(gst_decode_bin_get_formats), (gst_decode_bin_convert),
	(gst_decode_bin_get_query_types), (gst_decode_bin_query),
	(plugin_init):
	* gst/playback/gstplaybin.c: (gst_play_bin_get_type),
	(gst_play_bin_class_init), (gst_play_bin_init),
	(gst_play_bin_dispose), (gen_default_output), (rebuild_pipeline),
	(collect_sink_pads), (find_compatibles), (close_pad_link),
	(try_to_link_1), (new_pad), (close_link), (type_found),
	(setup_source), (gst_play_bin_set_property),
	(gst_play_bin_get_property), (gst_play_bin_factory_filter),
	(compare_ranks), (gst_play_bin_collect_factories),
	(gst_play_bin_change_state), (gst_play_bin_add_element),
	(gst_play_bin_remove_element), (gst_play_bin_get_event_masks),
	(gst_play_bin_send_event), (gst_play_bin_get_formats),
	(gst_play_bin_convert), (gst_play_bin_get_query_types),
	(gst_play_bin_query), (gst_play_bin_get_clock), (plugin_init):
	* gst/playback/test.c: (main):
	Added some playback helper elements and some test apps, very alpha
	still.

2004-07-04  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_xrun_recovery):
	  only restart audio when we indeed have an xrun to fix repeated
	  xruns. Fix suggested by Giuliano Pochini.

2004-07-03  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsaplugin.c: (gst_alsa_error_wrapper): Disable
	call to gst_debug_log() if debugging is disabled (bug #145118)

2004-07-03  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_xrun_recovery):
	  use our own functions for restarting the alsa device.
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  I should apply patches myself - use MIN for the third argument, not
	  the second, this fixes seeking

2004-07-02  David Schleef  <ds@schleef.org>

	* ext/flac/gstflacdec.c: (gst_flacdec_class_init),
	(gst_flacdec_write):  Actually, GST_PAD_CAPS() has nothing to
	do with the logic.

2004-07-02  David Schleef  <ds@schleef.org>

	* ext/flac/gstflacdec.c: (gst_flacdec_write):  Set duration on
	output buffers.  Fix logic mistake.  (bug #144866)

2004-07-02  David Schleef  <ds@schleef.org>

	* gst-libs/gst/xoverlay/Makefile.am: xoverlay no longer depends
	on X.  (bug #144753)

2004-07-02  David Schleef  <ds@schleef.org>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_setup),
	(gst_wavenc_stop_file): Switch to GST_WRITE_UINT32_LE macros
	(bug #144624)
	* sys/oss/gstosselement.c: (gst_osselement_probe_caps),
	(gst_osselement_rate_probe_check): Add another workaround for
	buggy drivers (bug #145336)

2004-07-02  David Schleef  <ds@schleef.org>

	* gst/tcp/gstmultifdsink.c: (gst_multifdsink_handle_client_write):
	Most systems don't have MSG_NOSIGNAL.

2004-07-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/tuner/Makefile.am:
	  (hopefully) fix both install and dist and make error message useful.
	  needs testing across automakes.

2004-07-02  Benjamin Otte  <otte@gnome.org>

	* ext/ogg/gstogg.c: (plugin_init):
	  we require bytestream now
	* ext/ogg/gstoggdemux.c:
	  huge diff to implement chain setup in a fast and generic way. This
	  improves tag reading and startup of huge files (read: Theora videos)
	  quite a bit. It probably contains bugs, too, so please test.
	  Seeking is not improved to the fast method.

2004-06-29  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	* ext/ogg/gstoggmux.c:
	Fix memleak in oggdemux when running unconnected pads.
	doc update in mux, start working on keyframe mode.

2004-06-29  Benjamin Otte  <otte@gnome.org>

	* sys/oss/gstosssink.c:
	* sys/oss/gstosssrc.c:
	  advertise correct template caps - we indeed do non-native endianness
	  and 8bit audio has no endianness
	* sys/ximage/ximagesink.c: (gst_ximagesink_getcaps):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_getcaps):
	  avoid (wrong) duplications in getcaps function and return
	  template caps

2004-06-29  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_multifdsink_class_init), (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_clear),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_thread),
	(gst_multifdsink_init_send), (gst_multifdsink_close):
	Fix wrong GList iteration that could crash the server when
	more then 2 clients disconnect at the same time. Read all the
	pending commands in one batch to recover from command storms under
	very heavy load.

2004-06-28  Wim Taymans  <wim@fluendo.com>

	* gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type),
	(gst_videomixer_pad_class_init), (gst_videomixer_pad_get_property),
	(gst_videomixer_pad_set_property),
	(gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_init),
	(gst_video_mixer_background_get_type), (gst_videomixer_get_type),
	(gst_videomixer_class_init), (gst_videomixer_init),
	(gst_videomixer_request_new_pad), (gst_videomixer_blend_ayuv_i420),
	(pad_zorder_compare), (gst_videomixer_sort_pads),
	(gst_videomixer_fill_checker), (gst_videomixer_fill_color),
	(gst_videomixer_fill_queues), (gst_videomixer_blend_buffers),
	(gst_videomixer_update_queues), (gst_videomixer_loop),
	(plugin_init):
	Avoid divide by zero, choose masterpad as the pad with the highest
	framerate.

2004-06-27  Julien Moutte  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate),
	(gst_ximagesink_xwindow_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate),
	(gst_xvimagesink_xwindow_new): I prefer locking the mutex in the
	function directly. We might want to call it from somewhere else one day.

2004-06-27  Julien Moutte  <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate),
	(gst_ximagesink_xwindow_new):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate),
	(gst_xvimagesink_xwindow_new): Trying to fix the random behaviour of
	window decorations.

2004-06-27  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_class_init), (gst_dvdec_init),
	(gst_dvdec_video_getcaps), (gst_dvdec_video_link),
	(gst_dvdec_push), (gst_dvdec_loop), (gst_dvdec_change_state),
	(gst_dvdec_set_property), (gst_dvdec_get_property):
	* ext/dv/gstdvdec.h:
	Implement drop_factor property to lower the framerate with
	a factor.

2004-06-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/tuner/Makefile.am:
	  unbreak Company's fix that didn't install the -enum.h files

2004-06-27  Wim Taymans  <wim@fluendo.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_push), (gst_dvdec_loop),
	(gst_dvdec_change_state):
	* ext/dv/gstdvdec.h:
	Fix timestamp, duration and offset of the buffers.

2004-06-27  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_multifdsink_class_init), (gst_multifdsink_add),
	(gst_multifdsink_remove), (gst_multifdsink_clear),
	(gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_thread),
	(gst_multifdsink_init_send), (gst_multifdsink_close):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpserversink.c:
	(gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_handle_select), (gst_tcpserversink_close):
	More multifdsink fixes, more recovery policy fixes.
	Removed stupid g_print

2004-06-26  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/Makefile.am:
	* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
	(gst_multifdsink_get_type), (gst_multifdsink_base_init),
	(gst_multifdsink_class_init), (gst_multifdsink_init),
	(gst_multifdsink_debug_fdset), (gst_multifdsink_client_remove),
	(gst_multifdsink_handle_client_read),
	(gst_multifdsink_client_queue_data),
	(gst_multifdsink_client_queue_caps),
	(gst_multifdsink_client_queue_buffer),
	(gst_multifdsink_handle_client_write),
	(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
	(gst_multifdsink_handle_clients), (gst_multifdsink_thread),
	(gst_multifdsink_chain), (gst_multifdsink_set_property),
	(gst_multifdsink_get_property), (gst_multifdsink_init_send),
	(gst_multifdsink_close), (gst_multifdsink_change_state):
	* gst/tcp/gstmultifdsink.h:
	* gst/tcp/gsttcpplugin.c: (plugin_init):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_get_type),
	(gst_tcpserversink_class_init), (gst_tcpserversink_init),
	(gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_handle_select),
	(gst_tcpserversink_set_property), (gst_tcpserversink_get_property),
	(gst_tcpserversink_init_send), (gst_tcpserversink_close):
	* gst/tcp/gsttcpserversink.h:
	Added multifdsink, made tcpserversink a subclass of fdsink, removed
	one of the locks, added recovery policy to multifdsink.

2004-06-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videorate/gstvideorate.c: (gst_videorate_chain):
	  fix decision for when getting frames with same timestamp
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init),
	(gst_v4lsrc_get), (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	* sys/v4l/gstv4lsrc.h:
	  add latency offset property

2004-06-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videorate/gstvideorate.c: (gst_videorate_chain),
	(plugin_init):
	  fix debugging. add category.

2004-06-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
	  fix wrong offsets

2004-06-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsasrc.c: (gst_alsa_src_init),
	(gst_alsa_src_get_time), (gst_alsa_src_loop),
	(gst_alsa_src_change_state):
	  return a time that is in sync with the element's processing

2004-06-25  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_init), (gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_client_remove),
	(gst_tcpserversink_handle_client_read),
	(gst_tcpserversink_client_queue_data),
	(gst_tcpserversink_client_queue_caps),
	(gst_tcpserversink_client_queue_buffer),
	(gst_tcpserversink_handle_client_write),
	(gst_tcpserversink_queue_buffer),
	(gst_tcpserversink_handle_clients), (gst_tcpserversink_thread),
	(gst_tcpserversink_chain), (gst_tcpserversink_set_property),
	(gst_tcpserversink_get_property), (gst_tcpserversink_init_send),
	(gst_tcpserversink_close):
	* gst/tcp/gsttcpserversink.h:
	Serversink rewrite. Really do non blocking writes to clients and
	maintain an internal queue to handle slower clients while not
	disturbing fast clients.

2004-06-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get):
	  better debug, don't override OFFSET and OFFSET_END

2004-06-25  Iain <iain@prettypeople.org>

	* gst-libs/gst/media-info/media-info-priv.c (gmi_set_mime): Add
	name=source for the wavparse pipeline.

2004-06-24  Johan Dahlin  <johan@gnome.org>

	* ext/theora/theoraenc.c (theora_enc_chain): Call
	gst_pad_try_set_caps instead of gst_pad_set_explicit_caps so the
	streamheader caps are set correctly.

2004-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (raw_caps_factory),
	(gst_vorbisenc_setup), (gst_vorbisenc_set_property):
	  respect minimum bitrate; same could be done for max bitrate

2004-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (raw_caps_factory),
	(gst_vorbisenc_setup):
	  fix sample rate range

2004-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_class_init),
	(gst_oggvorbisenc_setup):
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_class_init),
	(gst_vorbisenc_setup):
	  resolve ambiguities in code and description

2004-06-24  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsa.c: (gst_alsa_start), (gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_init),
	(gst_alsa_src_update_avail), (gst_alsa_src_loop):
	Use alsa trigger_tstamp to get the timestamp of the first
	sample in the buffer for more precise sync. Some cleanups.

2004-06-24  Wim Taymans  <wim@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audiorate_link),
	(gst_audiorate_init), (gst_audiorate_chain),
	(gst_audiorate_set_property), (gst_audiorate_get_property):
	* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
	(gst_videorate_chain):
	Added some logging, fixed an overflow bug in videorate.

2004-06-24  Benjamin Otte  <otte@gnome.org>

	* ext/kio/Makefile.am:
	  fix for builddir != srcdir and distcheck

2004-06-24  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/colorbalance/Makefile.am:
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/play/Makefile.am:
	* gst-libs/gst/tuner/Makefile.am:
	* gst/tcp/Makefile.am:
	* sys/dxr3/Makefile.am:
	  don't include -enumtypes.[ch] or -marshal.[ch] files in the disted
	  tarball.
	  Also add all *.list files that were missing.
	* Makefile.am:
	  add a distcheck hook to ensure the above doesn't happen again.

2004-06-23  David I. Lehn  <dlehn@users.sourceforge.net>

	* ext/Makefile.am: s/DTS_DIR=dvdread/DTS_DIR=dts/

2004-06-23  Colin Walters  <walters@redhat.com>

	* m4/Makefile.am: Distribute gst-fionread.m4.

2004-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: back to dev

2004-06-23  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start),
	(gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
	(gst_alsa_sink_loop), (gst_alsa_sink_get_time):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_init),
	(gst_alsa_src_get_time), (gst_alsa_src_update_avail),
	(gst_alsa_src_loop):
	Add clock to alsasrc. Take new capture timestamp when
	restarting after an overrun. Split up some functions between
	alsasrc and alsasink.

=== release 0.8.2 ===

2004-06-23  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_dispose),
	(gst_alsa_change_state), (gst_alsa_update_avail),
	(gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  merge back changes from release

2004-06-23  Wim Taymans  <wim@fluendo.com>

	* gst/audiorate/gstaudiorate.c: (gst_audiorate_class_init),
	(gst_audiorate_init), (gst_audiorate_chain),
	(gst_audiorate_set_property), (gst_audiorate_get_property):
	Implement sample dropping and notify

2004-06-22  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_buffer_from_packet),
	(theora_push_packet), (theora_enc_chain):
	Some cleanups, make sure the timestamps are correct.

2004-06-22  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsa.c: (gst_alsa_get_time), (gst_alsa_clock_update),
	(gst_alsa_change_state), (gst_alsa_update_avail),
	(gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
	Cleanups, take queued samples into account when reporting
	the time.

2004-06-22  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
	(gst_videorate_init):
	Initialize the property as well.

2004-06-22  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
	(gst_videorate_init), (gst_videorate_chain),
	(gst_videorate_set_property), (gst_videorate_get_property):
	Add property to make videorate silent.
	Add property to prefer new frames over old ones.

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/osxvideo/Makefile.am:
	Workaround so that the osxvideo .so file gets linked with the
	Cocoa, OpenGL and QuickTime frameworks

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/osxaudio/Makefile.am:
	Workaround so that the osxaudio .so file gets linked with the
	CoreAudio framework

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Whoops, my fault...fixed build issues

2004-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Add objective-c support if running in Darwin/Mac OS X
	* sys/Makefile.am:
	* sys/osxvideo:
	* sys/osxvideo/Makefile.am:
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	* sys/osxvideo/cocoawindow.h:
	* sys/osxvideo/cocoawindow.m:
	Add osxvideosink, a cocoa-based osx video sink


2004-06-19  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/dvdnav/gst-dvd:
	Grab the gconf key from the right spot
	* gst/debug/gstnavseek.c: (gst_navseek_init),
	(gst_navseek_segseek), (gst_navseek_handle_src_event),
	(gst_navseek_chain):
	* gst/debug/gstnavseek.h:
	  Add 's', 'e' and 'l' keypresses to navseek to define the start,end
	  and loop parameters of a segment seek.
	* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_init),
	(gst_videotestsrc_get_event_masks),
	(gst_videotestsrc_handle_src_event), (gst_videotestsrc_get):
	* gst/videotestsrc/gstvideotestsrc.h:
	  Add seeking support to videotestsrc
	  Initialise the timestamp_offset variable.

2004-06-18  Wim Taymans  <wim@fluendo.com>

	* ext/sidplay/gstsiddec.cc:
	Fix negotiation and set correct end offset.

2004-06-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: branch and prerelease

2004-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init),
	(gst_tcpclientsrc_getcaps), (gst_tcpclientsrc_get),
	(gst_tcpclientsrc_init_receive):
	* gst/tcp/gsttcpclientsrc.h:
	  read caps when connecting to server for GDP so we set them correctly

2004-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/videorate/gstvideorate.c: (gst_videorate_chain):
	  notify drops and duplicates
	* gst/videoscale/videoscale.c: (videoscale_get_structure):
	  no good reason to limit ourselves to 100x100

2004-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init),
	(gst_v4lsrc_open), (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps),
	(gst_v4lsrc_get), (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties),
	(gst_v4l_open), (gst_v4l_get_picture), (gst_v4l_get_audio),
	(gst_v4l_set_audio):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_grab_frame),
	(gst_v4lsrc_try_capture):
	* sys/v4l/v4lsrc_calls.h:
	  change try_palette to more general try_capture
	  add autoprobe option so we can turn off autoprobing
	  various fixes

2004-06-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  add videorate
	* sys/ximage/ximagesink.c: (gst_ximagesink_finalize),
	(gst_ximagesink_class_init):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_finalize),
	(gst_xvimagesink_class_init):
	  run them as finalize, not dispose, since dispose can be invoked
	  multiple times

2004-06-17  Wim Taymans  <wim@fluendo.com>

	* ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_dispose),
	(gst_alsa_get_time), (gst_alsa_xrun_recovery):
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsaclock.c: (gst_alsa_clock_get_type):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_init), (gst_alsa_src_loop),
	(gst_alsa_src_change_state):
	* ext/alsa/gstalsasrc.h:
	Make the xrun code timestamp and offset the buffers correctly.
	moved the clock to the base class, use alsa methods to get time.
	Do correct timestamping on outgoing buffers.

2004-06-17  Wim Taymans  <wim@fluendo.com>

	* gst/audiorate/Makefile.am:
	* gst/audiorate/gstaudiorate.c: (gst_audiorate_get_type),
	(gst_audiorate_base_init), (gst_audiorate_class_init),
	(gst_audiorate_link), (gst_audiorate_init), (gst_audiorate_chain),
	(gst_audiorate_set_property), (gst_audiorate_get_property),
	(gst_audiorate_change_state), (plugin_init):
	Added an audiorate converter that fills in gaps.

2004-06-17  Johan Dahlin  <johan@gnome.org>

	* ext/tcp/*: Revert Zaheer changes, to make things actually work again.

2004-06-16  Wim Taymans  <wim@fluendo.com>

	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_sync_mode_get_type),
	(gst_v4lsrc_class_init), (gst_v4lsrc_init), (gst_v4lsrc_get_fps),
	(gst_v4lsrc_get), (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	* sys/v4l/gstv4lsrc.h:
	Added a copy mode to v4lsrc where it will output a copied version
	of its internal hardware buffer.
	Fix the wrong FLAG_SET usage. The flags are integers, not bits, you
	can't | them.

2004-06-16  Wim Taymans  <wim@fluendo.com>

	* sys/oss/gstosssrc.c: (gst_osssrc_get):
	Timestamp fixes.

2004-06-16  Wim Taymans  <wim@fluendo.com>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_sync_mode_get_type),
	(gst_v4lsrc_class_init), (gst_v4lsrc_init), (gst_v4lsrc_get_fps),
	(gst_v4lsrc_get), (gst_v4lsrc_set_property),
	(gst_v4lsrc_get_property):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay):
	Added a sync mode enum property to control v4lsrc timestamp method
	Removed the use-fixed-fps property and moved functionality in
	the enum.
	Don't error on an error value from v4l-conf, it might not always
	be a real error.

2004-06-16  Wim Taymans  <wim@fluendo.com>

	* gst/videorate/Makefile.am:
	* gst/videorate/gstvideorate.c: (gst_videorate_get_type),
	(gst_videorate_base_init), (gst_videorate_class_init),
	(gst_videorate_getcaps), (gst_videorate_link),
	(gst_videorate_init), (gst_videorate_chain),
	(gst_videorate_set_property), (gst_videorate_get_property),
	(gst_videorate_change_state), (plugin_init):
	Added a video timestamp corrector.

2004-06-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	fixed a potential leak with previous commit

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head):

2004-06-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head):
	Added missing refcount, fixes bug #144425
	Cheers Tim for finding the bug

2004-06-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4l.c: (plugin_init):
	* sys/v4l/gstv4lcolorbalance.c:
	* sys/v4l/gstv4lcolorbalance.h:
	* sys/v4l/gstv4lelement.c:
	* sys/v4l/gstv4lelement.h:
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
	* sys/v4l/gstv4lmjpegsink.h:
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
	* sys/v4l/gstv4lmjpegsrc.h:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps_list),
	(gst_v4lsrc_get_fps), (gst_v4lsrc_srcconnect),
	(gst_v4lsrc_getcaps), (gst_v4lsrc_get):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/gstv4ltuner.c:
	* sys/v4l/gstv4ltuner.h:
	* sys/v4l/gstv4lxoverlay.c:
	* sys/v4l/gstv4lxoverlay.h:
	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay),
	(gst_v4l_set_window), (gst_v4l_enable_overlay):
	* sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties),
	(gst_v4l_open), (gst_v4l_get_picture), (gst_v4l_get_audio),
	(gst_v4l_set_audio):
	* sys/v4l/v4l_calls.h:
	* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_sync_thread),
	(gst_v4lmjpegsink_queue_frame), (gst_v4lmjpegsink_sync_frame),
	(gst_v4lmjpegsink_set_buffer), (gst_v4lmjpegsink_set_playback),
	(gst_v4lmjpegsink_playback_init),
	(gst_v4lmjpegsink_playback_start), (gst_v4lmjpegsink_get_buffer),
	(gst_v4lmjpegsink_play_frame), (gst_v4lmjpegsink_wait_frame),
	(gst_v4lmjpegsink_playback_stop),
	(gst_v4lmjpegsink_playback_deinit):
	* sys/v4l/v4lmjpegsink_calls.h:
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_queue_frame),
	(gst_v4lmjpegsrc_sync_next_frame), (gst_v4lmjpegsrc_set_buffer),
	(gst_v4lmjpegsrc_set_capture), (gst_v4lmjpegsrc_set_capture_m),
	(gst_v4lmjpegsrc_capture_init), (gst_v4lmjpegsrc_capture_start),
	(gst_v4lmjpegsrc_grab_frame), (gst_v4lmjpegsrc_requeue_frame),
	(gst_v4lmjpegsrc_capture_stop), (gst_v4lmjpegsrc_capture_deinit):
	* sys/v4l/v4lmjpegsrc_calls.h:
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame),
	(gst_v4lsrc_sync_frame), (gst_v4lsrc_set_capture),
	(gst_v4lsrc_capture_init), (gst_v4lsrc_capture_start),
	(gst_v4lsrc_grab_frame), (gst_v4lsrc_requeue_frame),
	(gst_v4lsrc_capture_stop), (gst_v4lsrc_capture_deinit),
	(gst_v4lsrc_try_palette):
	* sys/v4l/v4lsrc_calls.h:
	  bunch of paranoia cleanups

2004-06-14  David Schleef  <ds@schleef.org>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_init),
	(cdparanoia_get), (cdparanoia_open), (cdparanoia_change_state):
	Send discont events and change timestamps appropriately when
	we get a seek event.  (bug #144240)
	* ext/cdparanoia/gstcdparanoia.h:

2004-06-14  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: Use snd_pcm_hw_params_set_rate _near instead of
	  snd_pcm_hw_params_set_rate  since the latter fails for no good
	  reason on some setups.

2004-06-14  David Schleef  <ds@schleef.org>

	* gst/volume/demo.c: (value_changed_callback): exp10() is not
	standard.  Thank you for playing.

2004-06-14  Wim Taymans  <wim@fluendo.com>

	* gst/ffmpegcolorspace/imgconvert.c: (img_convert):
	Patch 1.3 broke the ordering of the colorspace info and
	made the plugin basically work by coincidence, reordered
	the info.

2004-06-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/lame/gstlame.c:
	* ext/mad/gstmad.c:
	  sync caps.  Make sure mad can only output a list of rates, not
	  a full range.  In the future, have three caps lists for each of the
	  mpeg versions.  Change mpegversion to a double as well.

2004-06-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/volume/.cvsignore:
	* gst/volume/Makefile.am:
	* gst/volume/demo.c: (value_changed_callback), (idler),
	(setup_gui), (main):
	  added small demo app

2004-06-13  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/esd/esdsink.c: (gst_esdsink_change_state):
	* ext/esd/esdsink.h:
	Close the esd connection on pause, because esd will just wait -
	blocking all other esd clients indefinitely.

2004-06-12  Christophe Fergeau  <teuf@gnome.org>

	* gst/tags/gstvorbistag.c: replaced a g_warning which I added in my
	  previous commit with GST_DEBUG

2004-06-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  add a header check for a dvdread header in dvdnav.  Fixes #133002

2004-06-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init_send):
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init_receive):
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init),
	(gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_init_send):
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive):
	* gst/tcp/gsttcpserversrc.h:
	Modified the tcp plugins so they are portable (IPv4,IPv6, any future
	version of IP)

2004-06-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	Added ogg library so that OSX detects libtheora properly

2004-06-11  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_chain),
	(theora_dec_change_state):
	Don't try to decode frames before we received a keyframe.

2004-06-11  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init),
	(gst_ogg_mux_init), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop),
	(gst_ogg_mux_get_property), (gst_ogg_mux_set_property):
	Added property to set the maximum delay of a page.

2004-06-10  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init),
	(gst_ogg_mux_init), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop),
	(gst_ogg_mux_get_property), (gst_ogg_mux_set_property):
	Added max-delay property to control the maximum amount
	of data to put in one page.

2004-06-10  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(gst_theora_enc_init), (theora_enc_sink_link),
	(theora_buffer_from_packet), (theora_enc_set_property),
	(theora_enc_get_property):
	Set duration on encoded buffer, added some more properties

2004-06-10  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps),
	(gst_ogg_mux_send_headers), (gst_ogg_mux_loop):
	* ext/theora/theoraenc.c: (theora_enc_chain):
	Fix refcounting bugs

2004-06-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
	(gst_asf_demux_loop), (gst_asf_demux_process_file),
	(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
	(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
	(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
	(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
	(gst_asf_demux_change_state):
	* gst/asfdemux/gstasfdemux.h:
	  You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
	  feels like. I think we should set a new requirement for demuxers
	  from now on to implement sane loop functions, data loops, query
	  and seek functions before first commit into CVS. And this commit
	  fixes all of the above.

2004-06-10  Christophe Fergeau  <teuf@gnome.org>

	* gst/tags/gstvorbistag.c: (gst_vorbis_tag_add): make sure parsed
	  vorbis comments are properly encoded in UTF-8 before adding them
	  to a GstTagList

2004-06-09  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (add_channels):
	  handle min <= max correctly
	* ext/alsa/gstalsa.c: (gst_alsa_fixate_to_mimetype),
	(gst_alsa_fixate_field_nearest_int), (gst_alsa_fixate):
	  add fixation functions so we fixate correctly. No preferring of alaw
	  anymore because it's the first structure.
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsa.c: (gst_alsa_sw_params_dump),
	(gst_alsa_hw_params_dump):
	  add functions to ease debugging in alsalib
	* ext/alsa/gstalsa.c: (gst_alsa_probe_hw_params),
	(gst_alsa_set_hw_params), (gst_alsa_set_sw_params),
	(gst_alsa_start_audio):
	  only specify hw params if we really setup a format (fixes #134007 -
	  or at least works around it)

2004-06-09  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_init),
	(gst_ogg_mux_next_buffer), (gst_ogg_mux_buffer_from_page),
	(gst_ogg_mux_push_page), (gst_ogg_mux_get_headers),
	(gst_ogg_mux_set_header_on_caps), (gst_ogg_mux_send_headers),
	(gst_ogg_mux_loop):
	Use stream caps to setup the initial pages in the ogg stream.
	Correctly set the streamheader caps on the srcpad.

2004-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps_list),
	(gst_v4lsrc_get_fps), (gst_v4lsrc_srcconnect),
	(gst_v4lsrc_getcaps):
	* sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties),
	(gst_v4l_get_picture), (gst_v4l_get_audio), (gst_v4l_set_audio):
	  add querying of fps lists for webcams.  Negotiating to a framerate
	  now works.

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/theora/theoraenc.c: (theora_buffer_from_packet),
	(theora_push_buffer), (theora_push_packet),
	(theora_set_header_on_caps), (theora_enc_chain):
	  mark buffers and put on streamheader, raw theora streaming
	  now works too, whee

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcp.c: (gst_tcp_gdp_read_header),
	(gst_tcp_gdp_read_caps):
	  do a looping read for caps and GDP headers too

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_get):
	  return EOS instead of NULL in _get

2004-06-08  Wim Taymans  <wim@fluendo.com>

	* gst/tcp/gsttcp.c: (gst_tcp_gdp_read_header),
	(gst_tcp_gdp_read_caps), (gst_tcp_gdp_write_header),
	(gst_tcp_gdp_write_caps):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_gdp_read_caps),
	(gst_tcpserversrc_gdp_read_header), (gst_tcpserversrc_get):
	Memory leak fixes

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/Makefile.am:
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisparse.c: (gst_vorbis_parse_base_init),
	(gst_vorbis_parse_class_init), (gst_vorbis_parse_init),
	(vorbis_parse_set_header_on_caps), (vorbis_parse_chain),
	(vorbis_parse_change_state):
	* ext/vorbis/vorbisparse.h:
	  adding a vorbisparse element that marks the buffers, streaming
	  raw vorbis using GDP now works, whee

2004-06-08  Wim Taymans  <wim@fluendo.com>

	* ext/jpeg/Makefile.am:
	* ext/jpeg/README:
	* ext/jpeg/gstjpeg.c: (plugin_init):
	* ext/jpeg/gstsmokedec.c: (gst_smokedec_get_type),
	(gst_smokedec_base_init), (gst_smokedec_class_init),
	(gst_smokedec_init), (gst_smokedec_link), (gst_smokedec_chain):
	* ext/jpeg/gstsmokedec.h:
	* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_get_type),
	(gst_smokeenc_base_init), (gst_smokeenc_class_init),
	(gst_smokeenc_init), (gst_smokeenc_getcaps), (gst_smokeenc_link),
	(gst_smokeenc_resync), (gst_smokeenc_chain),
	(gst_smokeenc_set_property), (gst_smokeenc_get_property):
	* ext/jpeg/gstsmokeenc.h:
	* ext/jpeg/smokecodec.c: (smokecodec_init_destination),
	(smokecodec_flush_destination), (smokecodec_term_destination),
	(smokecodec_init_source), (smokecodec_fill_input_buffer),
	(smokecodec_skip_input_data), (smokecodec_resync_to_restart),
	(smokecodec_term_source), (smokecodec_encode_new),
	(smokecodec_decode_new), (smokecodec_info_free),
	(smokecodec_set_quality), (smokecodec_get_quality),
	(smokecodec_set_threshold), (smokecodec_get_threshold),
	(smokecodec_set_bitrate), (smokecodec_get_bitrate),
	(find_best_size), (abs_diff), (put), (smokecodec_encode),
	(smokecodec_parse_header), (smokecodec_decode):
	* ext/jpeg/smokecodec.h:
	Added a new simple jpeg based codec

2004-06-08  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_loop):
	Fix memory leak

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_client_remove),
	(gst_tcpserversink_handle_client_read), (gst_tcp_buffer_write),
	(gst_tcpserversink_handle_client_write), (gst_tcpserversink_chain),
	(gst_tcpserversink_init_send), (gst_tcpserversink_close):
	* gst/tcp/gsttcpserversink.h:
	  take streamheader into account

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/level/Makefile.am:
	* gst/level/gstlevel.c: (gst_level_class_init):
	  clean up marshal generation

2004-06-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/Makefile.am:
	* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_get_type),
	(gst_tcpclientsink_class_init), (gst_tcpclientsink_init),
	(gst_tcpclientsink_set_property), (gst_tcpclientsink_get_property):
	* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init),
	(gst_tcpclientsrc_init), (gst_tcpclientsrc_set_property),
	(gst_tcpclientsrc_get_property):
	* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
	(gst_tcpserversink_init), (gst_tcpserversink_handle_server_read),
	(gst_tcpserversink_handle_client_read),
	(gst_tcpserversink_handle_client_write),
	(gst_tcpserversink_set_property), (gst_tcpserversink_get_property):
	* gst/tcp/gsttcpserversink.h:
	  add signals client-added and client-removed
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init),
	(gst_tcpserversrc_init), (gst_tcpserversrc_set_property),
	(gst_tcpserversrc_get_property):
	uniformized, change default protocol to NONE
	* gst/tcp/gsttcp-marshal.list: added
2004-06-07  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  handle discont events if they happen before caps nego

2004-06-07  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init),
	(gst_multipart_find_pad_by_mime), (gst_multipart_demux_chain),
	(gst_multipart_demux_plugin_init):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_init), (gst_multipart_mux_loop),
	(gst_multipart_mux_change_state):
	Small updates, fix a memleak

2004-06-07  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* configure.ac: OSS portability
	* ext/arts/gst_arts.c: idem
	* sys/oss/gstosselement.c: idem
	* sys/oss/gstossmixer.c: idem
	* sys/oss/gstosssink.c: idem
	* sys/oss/gstosssrc.c: idem
	* sys/oss/oss_probe.c: idem
	  - check for soundcard.h in different places for some BSD

2004-06-07  Jan Schmidt <thaytan@mad.scientist.com>

	* AUTHORS:
	Add me to the authors file
	* configure.ac:
	Increase the libdv requirement to >= version 0.100
	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_src_convert),
	(gst_dvdec_src_query), (gst_dvdec_handle_sink_event),
	(gst_dvdec_push), (gst_dvdec_loop), (gst_dvdec_change_state):
	* ext/dv/gstdvdec.h:
	Add support for the new_media flag when sending DISCONT events
	Make the querying work when video pad is not linked

2004-06-07  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_init):
	  create a NULL-initialized array of pads, so we don't think they
	  exist already. (fixes #143130)

2004-06-07  Benjamin Otte  <otte@gnome.org>

	* gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_init),
	(mixmatrix_resize), (gst_mixmatrix_set_all_caps),
	(gst_mixmatrix_request_new_pad), (gst_mixmatrix_loop):
	  don't use // coments

2004-06-07  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_samples_to_timestamp):
	  cast to GstClockTime to get higher granularity
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  use gst_element_set_time_delay to get the exact time
	* ext/mad/gstmad.c: (gst_mad_chain):
	  use the negotiated rate instead of the current frame's rate which
	  might be wrong because of bit errors. This avoids emitting totally
	  bogus timestamps and screwing sync.
	(fixes #143454)

2004-06-07  Tim-Philipp Müller  <t.i.m@zen.co.uk>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* gst/adder/gstadder.c: (gst_adder_loop):
	  properly error out when no negotiation has happened yet. (fixes
	  #143032)

2004-06-06  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event):
	  forward correctly transformed offset in discont events. Based on
	  patch by Arwed v. Merkatz. (fixes #142851)

2004-06-06  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/gstffmpegcodecmap.c: that's
	G_HAVE_GNUC_VARARGS, not G_HAVE_GNU_VARARGS.  Should fix compile
	problems on several systems.

2004-06-06  Benjamin Otte  <otte@gnome.org>

	* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init):
	  use explicit caps on the srcpad
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  properly error out if caps couldn't be set (fixes #142764)

2004-06-06  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_probe_hw_params),
	(gst_alsa_set_hw_params), (gst_alsa_set_sw_params),
	(gst_alsa_start_audio):
	  - don't call set_periods_integer anymore, it breaks the
	  configuration randomly
	  - call snd_pcm_hw_params_set_access directly instead of using masks
	  - don't fail if the sw_params can't be set, just use the default
	  params and hope it works. Alsalib has weird issues when you touch
	  sw_params and does no proper error reporting about what failed.
	* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
	(gst_alsa_close_audio):
	  make our alsa debugging go via gst debugging and not conditionally
	  defined
	* ext/alsa/gstalsa.h:
	  add ALSA_DEBUG_FLUSH macro
	* ext/alsa/gstalsaplugin.c: (gst_alsa_error_wrapper),
	(plugin_init):
	  wrap alsa errors to be printed via the gst debugging system and not
	  spammed to stderr

2004-06-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	(gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event),
	(gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header), (qtdemux_dump_mvhd),
	(qtdemux_parse_trak):
	* gst/qtdemux/qtdemux.h:
	  Bitch. Also known as seeking, querying & co.
	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain),
	(gst_osssink_change_state):
	* sys/oss/gstosssink.h:
	  Resyncing is for weenies, this hack is no longer needed and was
	  broken anyway (since it - unintendedly - always leaves resync to
	  TRUE).

2004-06-05  Andrew Turner <zxombie@hotpop.com>

	* gst/tcp/gsttcp.c: portability (Solaris 10/FreeBSD)
	* gst/tcp/gsttcpclientsrc.h: idem
	  - define MSG_NOSIGNAL if not done
	  - include unistd.h for off_t
	  (fixes #143749)

2004-06-05  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	* ext/kio/Makefile.am:
	  check for qt's moc preprocessor explicitly and use it

2004-06-03  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* gst/tcp/gsttcp.c: (gst_tcp_socket_write):
	  don't get a signal for EPIPE on socket writes
	  (somebody check if this works on other platforms)

2004-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsaclock.c: (gst_alsa_clock_get_type):
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
	  check error condition on available samples correctly

2004-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsasrc.c: (gst_alsa_src_get_time):
	  avoid a segfault
	* gst/tcp/gsttcp.c: (gst_tcp_socket_write), (gst_tcp_socket_read),
	(gst_tcp_gdp_read_header), (gst_tcp_gdp_read_caps):
	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_gdp_read_caps),
	(gst_tcpserversrc_gdp_read_header):
	 use ssize_t over size_t since the former is signed and thus the
	 check for error codes can work

2004-06-02  Wim Taymans  <wim@fluendo.com>

	reviewed by: Johan

	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_loop):
	Oops

2004-06-02  Wim Taymans  <wim@fluendo.com>

	* gst/multipart/multipartmux.c: (gst_multipart_mux_class_init),
	(gst_multipart_mux_init), (gst_multipart_mux_loop),
	(gst_multipart_mux_get_property), (gst_multipart_mux_set_property),
	(gst_multipart_mux_change_state):
	Added configurable boundary specifier, added the value as a
	caps field as well.

2004-06-02  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpserversrc.c:
	  - portability fix, to compile on OSX
	    (fixes #143146)

	* sys/osxaudio/gstosxaudioelement.c:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosrc.c:
	  - compilation warnings on OSX
	    (fixes #143153)

2004-06-02  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/vorbis/vorbisdec.c : sign warning fixes

	* gst-libs/gst/mixer/mixertrack.c :
	  do no use defines which are glib 2.4 specific

2004-06-01  Christophe Fergeau  <teuf@gnome.org>

	* ext/flac/gstflactag.c: strip ending framing bit from vorbiscomment
	  buffer since libflac doesn't expect it (reports a sync error when
	  it encounters that)


2004-06-01  Owen Fraser-Green  <owen@discobabe.net>

	* gst-libs/gst/mixer/mixertrack.h: Changed struct syntax
	* gst-libs/gst/mixer/mixertrack.c:
	(gst_mixer_track_get_property), (get_mixer_track_init),
	(get_mixer_track_get_property): Added property accessors
	* gst-libs/gst/mixer/mixeroptions.h: Changed struct syntax
	* gst-libs/gst/mixer/mixeroptions.c:
	(gst_mixer_options_get_values): Added
	* gst-libs/gst/mixer/mixer.h: Changed GstMixerClass syntax
	* gst-libs/gst/mixer/mixer.c: Fixed comment


2004-06-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* ext/alsa/gstalsa.c: (gst_alsa_open_audio):
	  improve error messages on open


2004-06-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay):
	  check if v4l-conf is in path

2004-06-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/media-info/media-info-priv.c: (gmi_set_mime):
	  change assert to a more readable error message

2004-05-31  Stephane Loeuillet  <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/tuner/tunerchannel.h:
	  - add a freq_multiplicator field to make the conversion
	    between internal frequency unit and Hz
	* sys/v4l/gstv4lelement.c:
	* sys/v4l2/gstv4l2element.c:
	  - change default video device to /dev/video0
	* sys/v4l/v4l_calls.c:
	* sys/v4l2/v4l2_calls.c:
	  - we only expose frequency to the user in Hz instead of
	    bastard v4lX unit (either 62.5kHz or 62.5Hz)

2004-05-31  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
	  Initialise b_o_s and e_o_s variables
	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  Add some unusual fourcc's from mplayer avi's
	* gst/multipart/multipartmux.c: (gst_multipart_mux_plugin_init):
	  Make the muxer have rank GST_RANK_NONE, so it doesn't mess up
	  autoplugging.

2004-05-28  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/alpha/Makefile.am:
	* gst/alpha/gstalpha.c: (gst_alpha_method_get_type),
	(gst_alpha_get_type), (gst_alpha_base_init),
	(gst_alpha_class_init), (gst_alpha_init), (gst_alpha_set_property),
	(gst_alpha_get_property), (gst_alpha_sink_link), (gst_alpha_add),
	(gst_alpha_chroma_key), (gst_alpha_chain),
	(gst_alpha_change_state), (plugin_init):
	A plugin to add an alpha channel to I420 video. Can optionally do
	chroma keying.
	* gst/multipart/Makefile.am:
	* gst/multipart/multipart.c: (plugin_init):
	* gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init),
	(gst_multipart_demux_class_init), (gst_multipart_demux_init),
	(gst_multipart_demux_finalize), (gst_multipart_demux_handle_event),
	(gst_multipart_find_pad_by_mime), (gst_multipart_demux_chain),
	(gst_multipart_demux_change_state),
	(gst_multipart_demux_plugin_init):
	* gst/multipart/multipartmux.c: (gst_multipart_mux_get_type),
	(gst_multipart_mux_base_init), (gst_multipart_mux_class_init),
	(gst_multipart_mux_get_sink_event_masks), (gst_multipart_mux_init),
	(gst_multipart_mux_sinkconnect), (gst_multipart_mux_pad_link),
	(gst_multipart_mux_pad_unlink),
	(gst_multipart_mux_request_new_pad),
	(gst_multipart_mux_handle_src_event),
	(gst_multipart_mux_next_buffer), (gst_multipart_mux_compare_pads),
	(gst_multipart_mux_queue_pads), (gst_multipart_mux_loop),
	(gst_multipart_mux_get_property), (gst_multipart_mux_set_property),
	(gst_multipart_mux_change_state), (gst_multipart_mux_plugin_init):
	A Multipart demuxer/muxer. Not sure if it violates specs. Used to
	send multipart jpeg images to a browser.
	* gst/videobox/Makefile.am:
	* gst/videobox/README:
	* gst/videobox/gstvideobox.c: (gst_video_box_fill_get_type),
	(gst_video_box_get_type), (gst_video_box_base_init),
	(gst_video_box_class_init), (gst_video_box_init),
	(gst_video_box_set_property), (gst_video_box_get_property),
	(gst_video_box_sink_link), (gst_video_box_i420),
	(gst_video_box_ayuv), (gst_video_box_chain),
	(gst_video_box_change_state), (plugin_init):
	Crops or adds borders around an image. can do alpha channel
	borders as well.
	* gst/videomixer/Makefile.am:
	* gst/videomixer/README:
	* gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type),
	(gst_videomixer_pad_base_init), (gst_videomixer_pad_class_init),
	(gst_videomixer_pad_get_sink_event_masks),
	(gst_videomixer_pad_get_property),
	(gst_videomixer_pad_set_property),
	(gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_link),
	(gst_videomixer_pad_unlink), (gst_videomixer_pad_init),
	(gst_video_mixer_background_get_type), (gst_videomixer_get_type),
	(gst_videomixer_base_init), (gst_videomixer_class_init),
	(gst_videomixer_init), (gst_videomixer_request_new_pad),
	(gst_videomixer_handle_src_event),
	(gst_videomixer_blend_ayuv_i420), (gst_videomixer_fill_checker),
	(gst_videomixer_fill_color), (gst_videomixer_fill_queues),
	(gst_videomixer_blend_buffers), (gst_videomixer_update_queues),
	(gst_videomixer_loop), (gst_videomixer_get_property),
	(gst_videomixer_set_property), (gst_videomixer_change_state),
	(plugin_init):
	Generic video mixer plugin, can handle multiple inputs all with
	different framerates and video sizes. Is fully alpha channel
	aware.

2004-05-27  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	  Select first track as master track. Not sure how else to handle
	  that...
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer):
	  Discard discont events. Should fix #142962.

2004-05-26  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/Makefile.am:
	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_interface_init),
	(gst_alsa_mixer_build_list), (gst_alsa_mixer_get_volume),
	(gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute),
	(gst_alsa_mixer_set_record), (gst_alsa_mixer_set_option),
	(gst_alsa_mixer_get_option):
	* ext/alsa/gstalsamixer.h:
	* ext/alsa/gstalsamixeroptions.c:
	(gst_alsa_mixer_options_get_type),
	(gst_alsa_mixer_options_class_init), (gst_alsa_mixer_options_init),
	(gst_alsa_mixer_options_new):
	* ext/alsa/gstalsamixeroptions.h:
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
	* ext/alsa/gstalsamixertrack.h:
	  Add enumerations (as GstMixerOptions). Make correct distinction
	  between input/output tracks. Add capture/playback private flag.
	  Use flag to decide on whether to set capture or playback volumes
	  or switches. Use playback and record switches.
	* gst-libs/gst/mixer/Makefile.am:
	* gst-libs/gst/mixer/mixer-marshal.list:
	* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init),
	(gst_mixer_set_option), (gst_mixer_get_option),
	(gst_mixer_mute_toggled), (gst_mixer_record_toggled),
	(gst_mixer_volume_changed), (gst_mixer_option_changed):
	* gst-libs/gst/mixer/mixer.h:
	* gst-libs/gst/mixer/mixeroptions.c: (gst_mixer_options_get_type),
	(gst_mixer_options_class_init), (gst_mixer_options_init),
	(gst_mixer_options_dispose):
	* gst-libs/gst/mixer/mixeroptions.h:
	  Add GstMixerOptions.
	* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
	  Rename Audio Mixer to OSS Mixer (similar to Alsa Mixer). Fix
	  broken device detection on computers with multiple OSS sound
	  cards.

2004-05-26  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
	  fixate nicely even when the peer is not negotiating

2004-05-25  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_parse_caps):
	  make sure we don't allow depth > width
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
	  fixate endianness to G_BYTE_ORDER as default
	* gst/audioscale/gstaudioscale.c:
	  we don't handle another endianness as host-endianness

2004-05-25  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/mem.c:  malloc() is in stdlib.h, not malloc.h

2004-05-24  Benjamin Otte  <otte@gnome.org>

	* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_sinkconnect),
	(gst_oggvorbisenc_setup):
	  properly fail when we can't setup the vorbis encoder due to
	  unsupported settings
	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_sinkconnect),
	(gst_vorbisenc_setup):
	  same
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	  fix case where warnings occured when one pad was unlinked while the
	  other's link function was called

2004-05-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/Makefile.am:
	  use GST_ENABLE_NEW

2004-05-24  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/resample/private.h:
	  don't use optimizations that are #if 0'ed

2004-05-24  Wim Taymans  <wim@fluendo.com>

	* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
	Fix potential division by zero error and hopefully get
	the position query right to get correct timestamps on avi
	audio.

2004-05-24  Wim Taymans  <wim@fluendo.com>

	* gst/videoscale/videoscale.c: (gst_videoscale_scale_nearest),
	(gst_videoscale_scale_nearest_str2),
	(gst_videoscale_scale_nearest_str4),
	(gst_videoscale_scale_nearest_32bit),
	(gst_videoscale_scale_nearest_24bit),
	(gst_videoscale_scale_nearest_16bit):
	Fix the scaling algorithm and avoid a buffer overflow.
	removed the while loop in the scaling function as it
	was used for point sampling only.

2004-05-24  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_get_type),
	(gst_id3_tag_class_init), (gst_id3_tag_init),
	(gst_id3_tag_set_property), (gst_id3_tag_get_tag_to_render),
	(gst_id3_tag_handle_event), (gst_id3_tag_do_caps_nego),
	(gst_id3_tag_send_tag_event):
	  lots of fixes to make id3mux work and id3demux work correctly

2004-05-24  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/Makefile.am:
	  add rules to build shout2send (was removed by accident
	  when this module was no more marked experimental/broken)

2004-05-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/shout2/gstshout2.c:
	* ext/shout2/gstshout2.h:
	  adding a "connection problem" signal to shout2send
	  (fixes #142954)

2004-05-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/kio/kioreceiver.cpp:
	* ext/kio/kioreceiver.h:
	  fix sign comparison issues

2004-05-21  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/cdxaparse/gstcdxaparse.c:
	* gst/cdxaparse/gstcdxaparse.h:
	  some renaming
	  add some checks/sanity
	  prepare for seek addition

	* sys/sunaudio/gstsunaudio.c:
	  remove exported dupe init function

2004-05-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_get_formats),
	(gst_dvdec_src_convert), (gst_dvdec_sink_convert):
	  Fix format conversion and position querying.
	* gst/debug/progressreport.c: (gst_progressreport_report):
	  Don't output a bogus total value that we didn't query.
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
	  Always set XV_AUTOPAINT_COLORKEY to true. Fixes xvimagesink showing
	  only a blank window after xine has been used.

2004-05-21  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* m4/as-arts.m4:
	  sync with upstream version to fix test on FC2
	  readd with -ko to preserve Id header

2004-05-20  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* configure.ac:
	  test for FIONREAD ioctl in sys/filio.h for Solaris compat.
	* gst/tcp/gsttcpclientsrc.c: idem
	* gst/tcp/gsttcpserversink.c: idem
	* gst/tcp/gsttcpserversrc.c: idem
	* m4/gst-fionread.m4: idem

	* sys/sunaudio/gstsunaudio.c: change category to Sink/Audio

	* configure.ac: enable speex plugin for speex 1.1.5+
	* ext/speex/gstspeexenc.c: fix cast warning

	* ext/esd/README: fix typo

2004-05-20  David Schleef  <ds@schleef.org>

	* configure.ac: Minor cosmetic change to convince the buildbot to
	reautogen.
	* sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_class_init),
	(gst_sunaudiosink_init), (gst_sunaudiosink_getcaps),
	(gst_sunaudiosink_pad_link), (gst_sunaudiosink_chain),
	(gst_sunaudiosink_setparams), (gst_sunaudiosink_open),
	(gst_sunaudiosink_close), (gst_sunaudiosink_change_state),
	(gst_sunaudiosink_set_property), (gst_sunaudiosink_get_property):
	More hacking.  Plays audio now.

2004-05-20  David Schleef  <ds@schleef.org>

	* configure.ac:
	* sys/Makefile.am:

2004-05-20  David Schleef  <ds@schleef.org>

	* sys/osxaudio/Makefile.am:  New OS X audio plugin by Zaheer Abbas Merali
	* sys/osxaudio/gstosxaudio.c:
	* sys/osxaudio/gstosxaudioelement.c:
	* sys/osxaudio/gstosxaudioelement.h:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosink.h:
	* sys/osxaudio/gstosxaudiosrc.c:
	* sys/osxaudio/gstosxaudiosrc.h:

2004-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (gst_vorbisenc_set_header_on_caps),
	(gst_vorbisenc_chain):
	  put the codec headers on the caps as streamheader as well as
	  pushing them out

2004-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (vorbis_granule_time_copy),
	(gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_push_buffer),
	(gst_vorbisenc_push_packet), (gst_vorbisenc_chain):
	split up push_packet into two functions

2004-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/.cvsignore:
	  ignore enums
	* gst/tcp/Makefile.am:
	* gst/tcp/README:
	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsink.h:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpclientsrc.h:
	* gst/tcp/gsttcpplugin.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversink.h:
	* gst/tcp/gsttcpserversrc.c:
	* gst/tcp/gsttcpserversrc.h:
	  add new tcp elements

2004-05-19  Wim Taymans  <wim@fluendo.com>

	* gst/law/mulaw-conversion.c: (mulaw_encode):
	Fix overflow bug in ulaw encoding.

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstmad.c: (gst_mad_handle_event):
	  don't unref the event twice

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  remove -Wno-sign-compare

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  remove -DG_DISABLE_DEPRECATED. It's not usable without workarounds
	  if you want to work against glib 2.2 and 2.4

2004-05-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/tcp/Makefile.am:
	* gst/tcp/gsttcp.c:
	* gst/tcp/gsttcp.h:
	* gst/tcp/gsttcpsink.h:
	* gst/tcp/gsttcpsrc.h:
	  gsttcp -> gsttcpplugin + CVS surgery in preparation for tcp merge

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/debug/tests.c: (md5_get_value):
	  fix segfault on gst-inspect

2004-05-19  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/debug/testplugin.c:
	* gst/debug/tests.c:
	* gst/debug/tests.h:
	  add new extensible and configurable testing element. Current tests
	  include buffer count, stream length, timestamp/duration matching and
	  md5.
	* gst/debug/Makefile.am:
	* gst/debug/gstdebug.c: (plugin_init):
	  add infrastructure for new element

2004-05-19  Johan Dahlin  <johan@gnome.org>

	* ext/dv/gstdvdec.c (gst_dvdec_quality_get_type): Add proper
	ending of the array. Fixes gst-inspect segfault on ppc.

2004-05-19  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/dirac/gstdiracdec.cc : change category to Codec/Decoder/Video

	* m4/a52.m4 : don't fix a test that should fail with current a52dec lib

2004-05-18  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/imgconvert.c: (img_convert): Fixes for
	warnings (bugs, actually) noticed by gcc but not forte.

2004-05-18  David Schleef  <ds@schleef.org>

	* sys/sunaudio/Makefile.am:
	* sys/sunaudio/gstsunaudio.c: New sunaudiosink

2004-05-18  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_header):  Patch from dcm@acm.org (David Moore)
	to allow qtdemux to use non-seekable streams. (bug #142272)

2004-05-18  David Schleef  <ds@schleef.org>

	* gst-libs/gst/resample/resample.c: (gst_resample_sinc_ft_s16),
	(gst_resample_sinc_ft_float): Remove use of static temporary
	buffer.  This code was obviously not supposed to last long, but
	it's stuck in our ABI, so it required a little hack to make it
	ABI-compatible.  Fixes #142585.
	* gst-libs/gst/resample/resample.h: same.

2004-05-18  David Schleef  <ds@schleef.org>

	* configure.ac: Add sunaudio
	* examples/Makefile.am: make gstplay depend on gconf
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c: Remove c99-isms
	* gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette),
	(convert_table_lookup), (img_convert): remove c99-isms
	* gst/ffmpegcolorspace/imgconvert_template.h: make a constant
	  unsigned, to fix a warning on Solaris
	* gst/mpeg1sys/systems.c: bcopy->memcpy
	* gst/rtjpeg/RTjpeg.c: (RTjpeg_yuvrgb8): bcopy->memcpy
	* sys/Makefile.am: Add sunaudio

2004-05-18  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstoggmux.c: (gst_ogg_mux_get_type), (gst_ogg_mux_init),
	(gst_ogg_mux_sinkconnect), (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_next_buffer), (gst_ogg_mux_push_page),
	(gst_ogg_mux_compare_pads), (gst_ogg_mux_queue_pads),
	(gst_ogg_mux_loop):
	Fix an ugly memleak where the muxer didn't flush enough ogg
	pages. This also resulted in badly muxed ogg files.

2004-05-18  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/asfheaders.c :
	* gst/asfdemux/asfheaders.h :
	* gst/asfdemux/gstasfdemux.c :
	  - fix ASF_OBJ_PADDING guid
	  - add 3 new object guids (language list, metadata,
	    extended stream properties)
	  - add a function to parse extended header objects

2004-05-18  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/oss/gstosselement.c: (gst_osselement_sync_parms):
	  remove leftover debugging g_print

2004-05-17  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_handle_event):
	  Fix for when the first format in a discont event is not a
	  byte-based one. Should fix #137710.

2004-05-18  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* m4/a52.m4 : fix compilation with -Wall -Werror
	* m4/libfame.m4 : idem
	* m4/libmikmod.m4 : idem

2004-05-17  Benjamin Otte  <otte@gnome.org>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment):
	  signal the new tags before giving up the reference

2004-05-17  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/shout2/gstshout2.c:
	  use application/ogg instead of application/x-ogg (patch by Patrick
	  Guimond, fixes #142432)
	* sys/oss/gstosselement.c: (gst_osselement_reset),
	(gst_osselement_sync_parms):
	  don't set fragment size unless specified (fixes #142493)

2004-05-17  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* configure.ac : fix compilation of v4l2src with "-Wall -Werror"
	  fixes #142664

2004-05-17  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  compute offsets correctly for internal buffers so timestamps are set
	  correctly when we can't seek. Also handle cases where there are no
	  offsets. (based on a patch by David Moore, fixes #142507)

2004-05-17  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  use correct variable when determining amount of data to skip so we
	  don't skip into the void and segfault

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_audio_caps):
	  Hi, I'm a memleak

2004-05-16  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/gstasfdemux.c:
	  - fix a mem leak and always propagate tags
	  - add WMV3 to known video codecs (but no decoder yet)
	  - replace "surplus data" at end of audio header for what
	    it is : codec specific data
	  - fix a typo

2004-05-16  Arwed v. Merkatz  <v.merkatz@gmx.net>

	reviewed by: Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/audio/audioclock.c:
	  Fix wrong return type (#142205).

2004-05-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/mad/gstmad.c: (gst_mad_class_init), (gst_mad_init):
	  Ignore CRCs by default (fixes #142566).

2004-05-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open),
	(gst_alsa_mixer_close), (gst_alsa_mixer_supported),
	(gst_alsa_mixer_build_list), (gst_alsa_mixer_free_list),
	(gst_alsa_mixer_change_state), (gst_alsa_mixer_list_tracks),
	(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
	(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record):
	  Fix for cases where we fail to attach to a mixer.

2004-05-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek):
	  Don't touch events after not owning them anymore.
	* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
	(gst_wavparse_fmt), (gst_wavparse_other),
	(gst_wavparse_handle_seek), (gst_wavparse_loop),
	(gst_wavparse_pad_convert), (gst_wavparse_pad_query),
	(gst_wavparse_srcpad_event):
	* gst/wavparse/gstwavparse.h:
	  Add seeking, fix querying.

2004-05-16  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment):
	  - process comments even if they don't end with \0\0
	    g_convert would ignore them if present and works well without them

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_caps), (gst_alsa_get_caps):
	  simplify caps

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment):
	  don't write to memory we might not write to - g_convert does that
	  for us anyway (fixes #142613)
	(gst_asf_demux_audio_caps):
	  comment out gst_util_dump_mem

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  compute correct expected timestamps after seek (broken since
	  last commit)
	* ext/gdk_pixbuf/pixbufscale.c: (pixbufscale_init):
	  rename element and debugging category to gdkpixbufscale

2004-05-16  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
	  add error checking to snd_pcm_delay and remove duplicate call to
	  snd_pcm_delay that caused issues (see inline code comments)
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time):
	  make more readable and fix return value when snd_pcm_delay fails
	(fixes #142586)

2004-05-15  Jan Schmidt  <thaytan@mad.scientisti.com>
	* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_method_get_type),
	(gst_pixbufscale_get_type), (gst_pixbufscale_base_init),
	(gst_pixbufscale_class_init), (gst_pixbufscale_getcaps),
	(gst_pixbufscale_link), (gst_pixbufscale_init),
	(gst_pixbufscale_handle_src_event), (pixbufscale_scale),
	(gst_pixbufscale_chain), (gst_pixbufscale_set_property),
	(gst_pixbufscale_get_property), (pixbufscale_init):
	* ext/gdk_pixbuf/pixbufscale.h:
	Add these files I forgot earlier

2004-05-15  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/gdk_pixbuf/Makefile.am:
	* ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init):
	* ext/gdk_pixbuf/gstgdkpixbuf.h:
	Add new pixbufscale element to scale RGB video
	using gdk_pixbuf, because gdk_pixbuf does BILINEAR
	and HYPER interpolation correctly.
	* ext/theora/theoraenc.c: (theora_enc_chain),
	Discard buffer and return if explicit caps could not be set
	(theora_enc_get_property):
	Make _get return kbps for the bitrate consistent with
	the _set function.


2004-05-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/libvisual/visual.c: (gst_visual_chain):
	  add missing visual_audio_analyze

2004-05-14  David Schleef  <ds@schleef.org>

	* ext/esd/esdsink.c: (gst_esdsink_chain): Fix crash when ESD
	is killed while we're playing.
	* gst/qtdemux/qtdemux.c: (qtdemux_parse): call
	gst_element_no_more_pads().

2004-05-14  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst-libs/gst/riff/riff-read.c :
	  - fix INFO tag extraction in RIFF/AVI files
	    because gst_event_unref (event) also freed taglist
	  - avoid a mem leak

2004-05-13  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/mad/gstid3tag.c : move from "Codec/(Dem/M)uxer" to "Codec/(Dem/M)uxer/Audio"
	* gst/wavenc/gstwavenc.c : move from "Codec/Encoder/Audio" to "Codec/Muxer/Audio"

	* gst/auparse/gstauparse.c :
	  - add code (commented for now) to support audio/x-adpcm on src pad
	    (we have no decoder for those layout yet)

	* gst/cdxaparse/gstcdxaparse.c :
	* gst/cdxaparse/gstcdxaparse.h :
	  - partial rewrite using RiffRead (ripped iain's wavparse code)

	* gst/rtp/gstrtpL16enc.c : typo
	* gst/rtp/gstrtpgsmenc.c : typo

2004-05-13  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  check for exact version of libvisual, it's not supposed to be
	  API/ABI stable yet

2004-05-13  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
	  signal no-more-pads

2004-05-13  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_src_convert)
	Report which format was used for GST_FORMAT_DEFAULT
	* gst/debug/Makefile.am:
	* gst/debug/gstdebug.c: (plugin_init):
	* gst/debug/progressreport.c: (gst_progressreport_base_init),
	(gst_progressreport_class_init), (gst_progressreport_init),
	(gst_progressreport_report), (gst_progressreport_set_property),
	(gst_progressreport_get_property), (gst_progressreport_chain),
	(gst_progressreport_plugin_init):
	Add progressreport element for testing.

2004-05-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get), (gst_v4lsrc_change_state):
	* sys/v4l/gstv4lsrc.h:
	* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_playback_init):
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_init):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init),
	(gst_v4lsrc_grab_frame):
	  add more debugging
	  send a discont at start

2004-05-12  Colin Walters  <walters@redhat.com>

	* gst/asfdemux/gstasfdemux.c (gst_asf_demux_process_segment): Avoid
	inflooping if we can't find a chunk.  Or in other words, don't blow
	chunks if we don't have a chunk to blow.

2004-05-13  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/audiofile/gstafsrc.c: (gst_afsrc_get):
	Remove old debug output
	* ext/dv/gstdvdec.c: (gst_dvdec_quality_get_type),
	(gst_dvdec_class_init), (gst_dvdec_loop), (gst_dvdec_change_state),
	(gst_dvdec_set_property), (gst_dvdec_get_property):
	Change the quality setting to an enum, so it works from gst-launch
	Don't renegotiate a non-linked pad. Allows audio only decoding.
	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_getcaps),
	(gst_deinterlace_link), (gst_deinterlace_init):
	* gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps),
	(gst_videodrop_link):
	Some caps negotiation fixes

2004-05-12  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/tarkin/gsttarkin.c :
	  - Change RANK from NONE to PRIMARY
	* ext/gdk_pixbuf/gstgdkpixbuf.c :
	  - Change RANK from NONE to MARGINAL
	* ext/divx/gstdivxenc.c :
	  - Change RANK from PRIMARY to NONE (encoder/spider issue)

2004-05-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbisenc.c: (vorbis_granule_time_copy),
	(gst_vorbisenc_push_packet):
	  copy a function that was added between 1.0 and 1.0.1 until we
	  depend on worthwhile features of post-1.0

2004-05-12  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  enable shout2 by default
	* ext/shout2/gstshout2.c: (gst_shout2send_protocol_get_type),
	(gst_shout2send_base_init), (gst_shout2send_init),
	(gst_shout2send_connect), (gst_shout2send_change_state):
	* ext/shout2/gstshout2.h:
	  make this work again. Based on a patch by Zaheer Abbas Merali (fixes
	  #142262)
	* ext/theora/theora.c: (plugin_init):
	  don't set rank on encoders

2004-05-11  Jeremy Simon  <jesimon@libertysurf.fr>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_audio_caps):
	  Use codec_data property instead of flag1 and flag2 for wma

2004-05-11  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/cdxaparse/gstcdxaparse.c :
	  - Add mpegversion to CAPS to make it link
	  - Rank is as GST_RANK_SECONDARY instead of NONE
	* gst/auparse/gstauparse.c :
	  - Document all audio encoding we can encounter from Solaris 9
	    headers and libsndfile information.
	  - Increase max. rate from 48000 to 192000 (to match other elements)
	  - Don't try to play junk data between header and samples

2004-05-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/libvisual/visual.c: (gst_visual_getcaps):
	  use the right caps depending on endianness (I hope)
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_plugin_init):
	  use GST_RANK_NONE for all non-decoding elements or spider gets
	  mighty confused

2004-05-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment):
	  Fix some odd cases and fix BE metadata parsing of unicode16 text.

2004-05-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/switch/gstswitch.c: (gst_switch_release_pad),
	(gst_switch_request_new_pad), (gst_switch_poll_sinkpads),
	(gst_switch_loop), (gst_switch_get_type):
	  whoever that was: DO NOT IMPORT PRIVATE SYMBOLS THAT ARE NOT IN
	  HEADERS. Had to be said.

2004-05-10  David Schleef  <ds@schleef.org>

	* configure.ac: Add prototype Dirac support.
	* ext/Makefile.am:
	* ext/dirac/Makefile.am:
	* ext/dirac/gstdirac.cc:
	* ext/dirac/gstdiracdec.cc:

2004-05-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/auparse/gstauparse.c: (gst_auparse_class_init),
	(gst_auparse_init), (gst_auparse_chain),
	(gst_auparse_change_state):
	  Hack around spider. Remove me some day please.

2004-05-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/auparse/gstauparse.c: (gst_auparse_chain):
	  Fix for some uninitialized variables in previous patch, also
	  makes it work. Fixes #142286 while we're at it.

2004-05-11  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/auparse/gstauparse.c:
		fixes a-law, adds mu-law, linear pcm (8,16,24,32), ieee (32, 64)
		only unsupported formats are ADPCM/CCITT G.72x
		reviewed by Ronald
	* gst-libs/gst/audio/audio.h: adds 24bit depth to PCM (x-raw-int)

2004-05-10  Wim Taymans  <wim@fluendo.com>

	* ext/vorbis/Makefile.am:
	* ext/vorbis/README:
	* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_get_formats),
	(oggvorbisenc_get_type), (vorbis_caps_factory), (raw_caps_factory),
	(gst_oggvorbisenc_base_init), (gst_oggvorbisenc_class_init),
	(gst_oggvorbisenc_sinkconnect), (gst_oggvorbisenc_convert_src),
	(gst_oggvorbisenc_convert_sink),
	(gst_oggvorbisenc_get_query_types), (gst_oggvorbisenc_src_query),
	(gst_oggvorbisenc_init), (gst_oggvorbisenc_get_tag_value),
	(gst_oggvorbisenc_metadata_set1), (gst_oggvorbisenc_set_metadata),
	(get_constraints_string), (update_start_message),
	(gst_oggvorbisenc_setup), (gst_oggvorbisenc_write_page),
	(gst_oggvorbisenc_chain), (gst_oggvorbisenc_get_property),
	(gst_oggvorbisenc_set_property), (gst_oggvorbisenc_change_state):
	* ext/vorbis/oggvorbisenc.h:
	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisenc.c: (vorbis_caps_factory),
	(raw_caps_factory), (gst_vorbisenc_class_init),
	(gst_vorbisenc_init), (gst_vorbisenc_setup),
	(gst_vorbisenc_push_packet), (gst_vorbisenc_chain),
	(gst_vorbisenc_get_property), (gst_vorbisenc_set_property):
	* ext/vorbis/vorbisenc.h:
	Added a raw vorbis encoder to be used with the oggmuxer.
	We still need the old encoder for some gnome applications,
	read the README to find out how that works.
	The raw encoder is called "rawvorbisenc" until 0.9.

2004-05-10  Wim Taymans  <wim@fluendo.com>

	* ext/ogg/gstogg.c: (plugin_init):
	* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init),
	(gst_ogg_print):
	* ext/ogg/gstoggmux.c: (gst_ogg_mux_get_type),
	(gst_ogg_mux_base_init), (gst_ogg_mux_class_init),
	(gst_ogg_mux_get_sink_event_masks), (gst_ogg_mux_init),
	(gst_ogg_mux_sinkconnect), (gst_ogg_mux_pad_link),
	(gst_ogg_mux_pad_unlink), (gst_ogg_mux_request_new_pad),
	(gst_ogg_mux_handle_src_event), (gst_ogg_mux_next_buffer),
	(gst_ogg_mux_push_page), (gst_ogg_mux_compare_pads),
	(gst_ogg_mux_queue_pads), (gst_ogg_mux_loop),
	(gst_ogg_mux_get_property), (gst_ogg_mux_set_property),
	(gst_ogg_mux_change_state), (gst_ogg_mux_plugin_init):
	Added an ogg muxer.
	Small typo fixes in the demuxer.

2004-05-10  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_push_packet), (theora_enc_chain),
	(theora_enc_change_state), (theora_enc_set_property),
	(theora_enc_get_property):
	Mark the last packet with an EOS flag which is not really needed
	in gstreamer.
	Do some better video framerate initialisation.
	Update the buffer timestamp.

2004-05-10  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dv/gstdvdec.c: (gst_dvdec_change_state):
	Return the result of the parent state change call

2004-05-10  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* gst/law/alaw.c : alawdec should be registered with type ALAWDEC, not ALAWENC
	* gst/law/alaw-decode.c : put audio/x-alaw on pads, instead of audio/x-mulaw
	* gst/law/alaw-encode.c : (idem)
	* ext/a52dec/gsta52dec.c : mark audio/a52, audio/ac3 as deprecated in a comment
	* gst/ac3parse/gstac3parse.c : audio/ac3 => audio/x-ac3
	* gst/realmedia/rmdemux.c : audio/a52 => audio/x-ac3

2004-05-09  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
	  don't use a fixed buffer size when writing variable length data to
	  it. Fixes memory corruption and makes alsasrc work

2004-05-09  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c:
	(_gst_boolean_allow_overwrite_accumulator),
	(gst_gnomevfssink_class_init), (gst_gnomevfssink_open_file):
	  Run glib's default signal handler (??) in RUN_CLEANUP rather than
	  RUN_LAST, and don't use that to set the accumulator value because
	  then it's always FALSE.

2004-05-09  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_audio_caps),
	(gst_riff_create_audio_template_caps):
	* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head):
	  Fix for unaligned RIFF files (i.e. where all the chunks together
	  in a LIST chunk are not of the same size as the size given in
	  the LIST chunk header). Fixes several odd WAVE files. Also fix
	  ADPCM (block_align property) in audio, so that wavparse based
	  on this works now as it used to stand-alone.

2004-05-09  Edward Hervey  <bilboed@bilboed.com>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/a52dec/gsta52dec.c:
	* ext/divx/gstdivxdec.c:
	* ext/divx/gstdivxenc.c:
	* ext/dts/gstdtsdec.c: (gst_dtsdec_base_init):
	* ext/faac/gstfaac.c: (gst_faac_base_init):
	* ext/faad/gstfaad.c: (gst_faad_base_init):
	* ext/ivorbis/vorbisfile.c:
	* ext/lame/gstlame.c:
	* ext/libfame/gstlibfame.c:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
	* ext/sidplay/gstsiddec.cc:
	* ext/speex/gstspeexdec.c:
	* ext/speex/gstspeexenc.c:
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	  correct klasses. Mostly s,Codec/(Audio|Video),\1/Codec,
	  (fixes #142193)

2004-05-08  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (device_list),
	(gst_alsa_class_probe_devices):
	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open):
	  Fix alsa oddness in mixer after the combination of using mixer
	  in source/sink elements and using hw:x,y instead of just hw:x.

2004-05-09  Benjamin Otte  <otte@gnome.org>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_destroy_sourcepad),
	(gst_wavparse_create_sourcepad):
	  make PAUSED=>READY=>PAUSED=READY work by not destroying NULL
	  sourcepads

2004-05-09  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
	  allow discont events before caps nego

2004-05-08  Benjamin Otte  <otte@gnome.org>

	* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
	  don't leak events

2004-05-08  Benjamin Otte  <otte@gnome.org>

	* gst/level/gstlevel.c: (gst_level_link), (gst_level_chain),
	(gst_level_change_state), (gst_level_init):
	* gst/level/gstlevel.h:
	  figure out if we're initialized directly instead of keeping a
	  variable that's wrong in 90% of cases
	  don't initialize pads and then leak them and use a new unitialized
	  pad. (fixes #142084)
	  these were bugs so n00bish I didn't find them for an hour :/

2004-05-08 Iain <iain@prettypeople.org>

	* gst/wavparse/gstwavparse.[ch]: Rewrote to use RiffRead instead.
	* gst-libs/gst/riff/riff-read.c (gst_riff_read_peek_head): Unstatic it
	(gst_riff_read_element_data): Ditto, and added a got_bytes argument to
	return the length that was read.
	(gst_riff_read_strf_auds): Allow fmt tags as well.

2004-05-07  David Schleef  <ds@schleef.org>

	* ext/faad/gstfaad.c: (gst_faad_sinkconnect): HACK to correct
	signed char assumption in faad.h.

2004-05-07  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps):
	  Missing break, detected by Daniel Gazard <daniel.gazard@free.fr>.

2004-05-07  Colin Walters  <walters@redhat.com>

	* gst/volume/gstvolume.c (gst_volume_dispose): Unref dpman.
	* ext/flac/gstflacdec.c (gst_flacdec_dispose): Add dispose
	function.
	* gst/audioscale/gstaudioscale.c (gst_audioscale_dispose):
	Add dispose function.

2004-05-08  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/dv/gstdvdec.c: (gst_dvdec_video_link):
	  Fix caps nego and pad templates. RGB mode caps should
	  work now.
	* ext/dvdnav/gst-dvd:
	  Move mpeg2dec inside the thread because otherwise the
	  queue rejects cap changes mid-stream
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_get_type),
	(gst_mpeg2dec_flush_decoder):
	  For mpeg2dec > 0.4.0, call the flush function instead of
	  manually extracting all in-flight frames.
	* ext/raw1394/gstdv1394src.c: (gst_dv1394src_factory),
	(gst_dv1394src_init), (gst_dv1394src_iso_receive):
	  Change mime type video/dv go video/x-dv to match the
	  rest of gst-plugins

2004-05-07  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_type),
	(gst_alsa_sink_class_init):
	* ext/alsa/gstalsasink.h:
	* ext/alsa/gstalsasrc.c: (gst_alsa_src_get_type),
	(gst_alsa_src_class_init):
	* ext/alsa/gstalsasrc.h:
	  Make alsasink/src a subclass of alsamixer so that mixer stuff
	  shows up in gst-rec. Needs some finetuning.

2004-05-05  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/lame/gstlame.c: (gst_lame_chain):
	  simplify
	* ext/mad/gstmad.c: (gst_mad_handle_event):
	  fix event leak
	* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
	  be able to detect mp3 files < 4096 bytes

2004-05-06  Wim Taymans  <wim@fluendo.com>

	* ext/theora/theoraenc.c: (gst_theora_enc_class_init),
	(theora_enc_sink_link), (theora_push_packet), (theora_enc_chain),
	(theora_enc_set_property), (theora_enc_get_property):
	Also encode the first frame, cleanup some code.

2004-05-06  Wim Taymans  <wim@fluendo.com>

	* ext/mpeg2enc/gstmpeg2enc.cc:
	Forward events first before deciding that negotiation was
	not performed.

2004-05-06  Wim Taymans  <wim@fluendo.com>

	* gst/wavenc/gstwavenc.c: (gst_wavenc_chain):
	First process the events before deciding that negotiation
	was not performed.

2004-05-06  Wim Taymans  <wim@fluendo.com>

	* ext/theora/Makefile.am:
	* ext/theora/theora.c: (plugin_init):
	* ext/theora/theoradec.c: (theora_dec_change_state):
	* ext/theora/theoraenc.c: (gst_theora_enc_base_init),
	(gst_theora_enc_class_init), (gst_theora_enc_init),
	(theora_enc_sink_link), (theora_enc_event), (theora_push_packet),
	(theora_enc_chain), (theora_enc_change_state),
	(theora_enc_set_property), (theora_enc_get_property):
	Added a theora encoder, grouped the encoder and decoder into the
	same plugin.

2004-05-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type),
	(gst_jpegenc_chain):
	fix DURATION on outgoing buffers
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_sink_event):
	debug using time formats
	* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_sink_link):
	windows with width/height 0 generate X errors, so don't allow them

2004-05-05  Wim Taymans  <wim@fluendo.com>

	* ext/mpeg2dec/gstmpeg2dec.c: (src_templ),
	(gst_mpeg2dec_base_init), (gst_mpeg2dec_init),
	(gst_mpeg2dec_negotiate_format):
	* ext/mpeg2dec/gstmpeg2dec.h:
	  removed the static pad template so that we can add the
	  more accurate framerate value to the caps.


2004-05-04  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  check for kdemacros.h, too (should fix #141821)
	* ext/vorbis/vorbisdec.c: (vorbis_dec_event), (vorbis_dec_chain):
	  don't crash if no header was sent, but nicely error out (fixes part
	  of #141554)

2004-05-04  Wim Taymans  <wim@fluendo.com>

	* ext/mpeg2enc/gstmpeg2enc.cc: (gst_mpeg2enc_dispose): call the
	parent dispose function to avoid segfault on destroy.

2004-05-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
	(plugin_init):
	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
	(gst_xvimagesink_sink_link):
	clean up debugging caps
	also recreate xvimage when format has changed

2004-05-04  Benjamin Otte  <otte@gnome.org>

	* ext/libvisual/Makefile.am:
	* ext/libvisual/visual.c: (gst_visual_class_init),
	(gst_visual_init), (gst_visual_dispose), (gst_visual_getcaps),
	(gst_visual_srclink), (gst_visual_chain),
	(gst_visual_change_state), (plugin_init):
	  use a GstAdapter to correctly adapt buffer sizes - allows using a
	  framerate

2004-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l/gstv4lelement.h:
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps), (gst_v4lsrc_getcaps),
	(gst_v4lsrc_buffer_free):
	* sys/v4l/v4l_calls.c: (gst_v4l_get_capabilities):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame),
	(gst_v4lsrc_sync_frame), (gst_v4lsrc_grab_frame),
	(gst_v4lsrc_requeue_frame):
	move some debugging categories around
	query for fps index and set accordingly if found

2004-05-03  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/lame/gstlame.c:
	correct defaults that lame_init puts out of range

2004-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/divx/gstdivxenc.c: (gst_divxenc_get_type),
	(gst_divxenc_class_init):
	fix range since -1 is the default
	* gst/mpeg1sys/gstmpeg1systemencode.c:
	(gst_mpeg1_system_encode_get_type), (gst_system_encode_multiplex):
	* gst/rtjpeg/gstrtjpegdec.c: (gst_rtjpegdec_get_type),
	(gst_rtjpegdec_chain):
	* gst/rtjpeg/gstrtjpegenc.c: (gst_rtjpegenc_get_type),
	(gst_rtjpegenc_chain):
	* sys/qcam/gstqcamsrc.c: (gst_autoexp_mode_get_type),
	(gst_qcamsrc_get_type), (gst_qcamsrc_change_state):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_get_type):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get_type):
	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/v4l_calls.c: (gst_v4l_open):
	* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_playback_init):
	* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_init):
	* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init):
	* sys/vcd/vcdsrc.c: (vcdsrc_get_type), (vcdsrc_get):
	  remove gst_info calls

2004-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* po/af.po:
	* po/az.po:
	* po/en_GB.po:
	* po/nl.po:
	* po/sr.po:
	* po/sv.po:
	  Updated translations

2004-05-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int):
	  refactor/comment code

2004-05-02  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/Makefile.am:
	* gst/asfdemux/asfheaders.c:
	* gst/asfdemux/asfheaders.h:
	* gst/asfdemux/gstasf.c: (plugin_init):
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_type),
	(gst_asf_demux_base_init), (gst_asf_demux_process_comment),
	(gst_asf_demux_setup_pad):
	* gst/asfdemux/gstasfdemux.h:
	* gst/asfdemux/gstasfmux.c:
	* gst/asfdemux/gstasfmux.h:
	  Add tagging support to demuxer, split out registration in its own
	  file instead of in demux (hacky), and prevent having some tables
	  in our memory multiple times (in asfheaders.h).

2004-05-01  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_parse_metadata):
	* gst/matroska/matroska-ids.h:
	  Basic tag reading support.

2004-04-30  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps):
	  Really detect ac-3 audio.
	* gst/typefind/gsttypefindfunctions.c: (matroska_type_find):
	  really detect matroska files (off-by-1).

2004-04-30  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_type_get),
	(qtdemux_dump_stsz), (qtdemux_dump_stco), (qtdemux_dump_co64),
	(qtdemux_dump_unknown), (qtdemux_parse_tree), (qtdemux_parse_udta),
	(qtdemux_tag_add), (get_size), (gst_qtdemux_handle_esds): More qtdemux
	hackage -- parse a lot more atoms, extract a few tags.  One might even
	mistake this for tag support.  Maybe it is.
	* gst/qtdemux/qtdemux.h:

2004-04-30  Colin Walters  <walters@verbum.org>

	* ext/alsa/gstalsasink.c (gst_alsa_sink_mmap): Plug a memleak.

2004-04-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_getcaps):
	  remove broken nego fix

2004-04-30  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/libvisual/Makefile.am:
	* ext/libvisual/visual.c:
	  add initial support for libvisual (http://libvisual.sourceforge.net)
	  libvisual is still quite alpha, so expect crashes in there :)

2004-04-29  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), (qtdemux_parse),
	(qtdemux_parse_trak), (get_size), (gst_qtdemux_handle_esds): Hacked
	up qtdemux to make it spit out codec_data.  Do _not_ look at this
	code; you will no longer respect me.

2004-04-29  Stephane Loeuillet <stephane.loeuillet@tiscali.fr>

	* ext/alsa/gstalsa.c : (gst_alsa_class_probe_devices)
	* ext/alsa/gstalsa.h :
	change alsa pcm device discovery to find more than 1 device
	per card. code review by Ronald.

2004-04-29  David Schleef  <ds@schleef.org>

	* sys/oss/gstosselement.c: (gst_osselement_rate_probe_check):
	Add a check for a driver bug on FreeBSD.  (bug #140565)

2004-04-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/jpeg/gstjpegdec.c: (gst_jpegdec_get_type):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type),
	(gst_jpegenc_getcaps):
	  move format setting to inner loop
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_getcaps):
	  use GST_PAD_CAPS if available so that we use already negotiated
	  caps
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse_moov), (qtdemux_parse):
	  extra debugging
	* sys/qcam/qcam-Linux.c: (qc_lock_wait), (qc_unlock):
	* sys/qcam/qcam-os.c: (qc_lock_wait), (qc_unlock):
	  move hardcoded path to DEFINE

2004-04-28  David Schleef  <ds@schleef.org>

	* gst/speed/gstspeed.c: (speed_parse_caps):  Fix caps parsing.
	(bug #140064)

2004-04-28  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices):
	  Don't probe for playback device if we're a source element. Fixes
	  #139658.

2004-04-29  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event),
	(gst_id3_tag_chain):
	  rewrite buffer offset

2004-04-28  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/dts/Makefile.am:
	* ext/dts/gstdtsdec.c: (gst_dtsdec_get_type),
	(gst_dtsdec_base_init), (gst_dtsdec_class_init), (gst_dtsdec_init),
	(gst_dtsdec_channels), (gst_dtsdec_renegotiate),
	(gst_dtsdec_handle_event), (gst_dtsdec_update_streaminfo),
	(gst_dtsdec_loop), (gst_dtsdec_change_state),
	(gst_dtsdec_set_property), (gst_dtsdec_get_property),
	(plugin_init):
	* ext/dts/gstdtsdec.h:
	  New DTS decoder.
	* ext/faad/gstfaad.c: (gst_faad_sinkconnect),
	(gst_faad_srcconnect):
	  Add ESDS atom handling (.m4a).

2004-04-27  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c: (plugin_init):
	  Remove comment that makes no sense.
	* ext/mad/gstid3tag.c: (gst_id3_tag_set_property):
	  Fix for obvious typo that resulted in warnings during gst-register.
	* ext/xvid/gstxviddec.c: (gst_xviddec_src_link),
	(gst_xviddec_sink_link):
	  Fix caps negotiation a bit better.
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  We call this 'codec_data', not 'esds'.

2004-04-27  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst/monoscope/gstmonoscope.c:
	  make sure we only provide 256x128
	* gst/monoscope/monoscope.c: (monoscope_init):
	  assert size of 256x128

2004-04-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_init), (gst_v4lsrc_fixate),
	(gst_v4lsrc_getcaps), (gst_v4lsrc_buffer_free):
	  fixate to max width and height of device

2004-04-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* sys/v4l/gstv4l.c:
	* sys/v4l/gstv4lsrc.c:
	* sys/v4l/v4l_calls.c:
	* sys/v4l/v4lsrc_calls.c:
	  fix for qc-usb driver which fakes having more than one buffer
	  by handing the same buffer twice, which confused GStreamer's/v4lsrc
	  buffer_free override
	  add debugging

2004-04-27  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* gst/videotestsrc/gstvideotestsrc.c:
	(gst_videotestsrc_class_init), (gst_videotestsrc_change_state),
	(gst_videotestsrc_init), (gst_videotestsrc_get),
	(gst_videotestsrc_set_property), (gst_videotestsrc_get_property):
	* gst/videotestsrc/gstvideotestsrc.h:
	  add num-buffers property

	2004-04-26  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (plugin_init):
	  set id3mux rank to NONE so it doesn't confuse spider
	  require audio/mpeg,mpegversion=1 in id3mux

2004-04-26  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  detect faad correctly as non-working if it's indeed non-working

2004-04-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type),
	(gst_jpegenc_class_init), (gst_jpegenc_getcaps):
	fix _getcaps so it only negotiates to its supported format

2004-04-25  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int):
	  fix memleak

2004-04-23  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  audio/x-raw-int with height rules! not. Now it's depth.

2004-04-22  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_create_sourcepad),
	(gst_wavparse_parse_fmt), (gst_wavparse_handle_sink_event),
	(gst_wavparse_loop):
	  Missing variable initialization. Add handling of DVI ADPCM. Fix
	  mis-parsing of LIST chunks. This works around a bug where we mis-
	  parse non-aligning LIST chunks (so LIST chunks where the contents
	  don't align with the actual LIST size). The correct fix is to use
	  rifflib, I'm not going to fix wavparse - too much work. All this
	  fixes #104878.

2004-04-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/shout/gstshout.c: (gst_icecastsend_change_state):
	  fix shoutcast not working (fixes #140844)

2004-04-22  Benjamin Otte  <otte@gnome.org>

	* ext/hermes/gsthermescolorspace.c:
	(gst_hermes_colorspace_caps_remove_format_info):
	* gst/colorspace/gstcolorspace.c:
	(gst_colorspace_caps_remove_format_info):
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_caps_remove_format_info):
	  s/gst_caps_simplify/gst_caps_do_simplify/

2004-04-22  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  mpegversion is an int
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_base_init):
	  don't try to create pad templates with NULL caps, use any caps
	  instead.

2004-04-20  David Schleef  <ds@schleef.org>

	* ext/sdl/Makefile.am: Link against libgstinterfaces, not
	libgstxoverlay.  jmmv@menta.net (Julio M. Merino Vidal)
	(bug #140384)

2004-04-20  Daniel Gazard  <daniel.gazard@epita.fr>

	reviewed by David Schleef

	* ext/mad/gstid3tag.c: Add stdlib.h
	* gst/rtp/gstrtpgsmenc.c: same
	* gst/tags/gstid3tag.c: same
	* gst/udp/gstudpsrc.c: (gst_udpsrc_get): Fix GST_DISABLE_LOADSAVE
	* gst/tcp/gsttcpsink.c: (gst_tcpsink_sink_link): Adjust
	GST_DISABLE_LOADSAVE use.
	* gst/udp/gstudpsink.c: (gst_udpsink_sink_link): Likewise.
	* gst/tcp/gsttcpsrc.c: (gst_tcpsrc_get): Likewise.
	* ext/gnomevfs/gstgnomevfssrc.c: Include <stdlib.h> (needed by
	atol(3)).
	* sys/oss/gstosselement.h: Include <sys/types.h> (needed for dev_t).
	* gst/tags/gstvorbistag.c: Include <stdlib.h> (needed by
	strtoul(3)).
	* gst/rtp/gstrtpL16enc.c: Include <stdlib.h> (needed by random(3)).
	* ext/mad/Makefile.am: (libgstmad_la_CFLAGS): Add $(MAD_CFLAGS)
	$(ID3_CFLAGS).
	* ext/libfame/Makefile.am: (libgstlibfame_la_CFLAGS): Add
	$(LIBFAME_CFLAGS).

2004-04-20  David Schleef  <ds@schleef.org>

	* gst/realmedia/rmdemux.c:  This was supposed to part of the
	last checkin.  Same idea.

2004-04-20  Daniel Gazard  <daniel.gazard@epita.fr>

	reviewed by David Schleef

	* configure.ac: bump required gstreamer version to 0.8.1.1
	because of following changes [--ds]

	* gst-libs/gst/riff/riff-read.c:  Include gst/gstutils.h.
	(gst_riff_peek_head, gst_riff_peek_list, gst_riff_read_list)
	(gst_riff_read_header):  Use GST_READ_UINT*
	macros to access possibly unaligned memory.

	* gst/typefind/gsttypefindfunctions.c: Include gst/gstutils.h.
	(mp3_type_find):  Use GST_READ_UINT*
	macros to access possibly unaligned memory.
	(mp3_type_find, mpeg1_parse_header, qt_type_find)
	(speex_type_find): Likewise

	* gst/tags/gstvorbistag.c: (ADVANCE): Likewise

	* gst/qtdemux/qtdemux.c: Include stdlib.h (needed by realloc).
	(QTDEMUX_GUINT32_GET, QTDEMUX_GUINT16_GET, QTDEMUX_FP32_GET)
	(QTDEMUX_FP16_GET, QTDEMUX_FOURCC_GET)
	(gst_qtdemux_loop_header, gst_qtdemux_loop_header)
	(qtdemux_node_dump_foreach, qtdemux_tree_get_child_by_type)
	(qtdemux_tree_get_sibling_by_type):  Use GST_READ_UINT*
	macros to access possibly unaligned memory.

	* gst/mpegstream/gstmpegpacketize.c: (parse_generic, parse_chunk):
	Likewise.

	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead)
	(gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes): Likewise.

	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	Likewise.

	* gst/mpeg2sub/gstmpeg2subt.c: (GST_BUFFER_DATA)
	(gst_mpeg2subt_chain_subtitle): Likewise.

	* gst/mpeg1videoparse/gstmp1videoparse.c: (mp1videoparse_parse_seq)
	(gst_mp1videoparse_time_code, gst_mp1videoparse_real_chain):
	Likewise.

	* gst/mpeg1sys/buffer.c: (mpeg1mux_buffer_update_audio_info):
	Likewise.

	* gst/cdxaparse/gstcdxaparse.c: (gst_bytestream_peek_bytes):
	Likewise.

	* gst/asfdemux/gstasfdemux.c: (_read_var_length, _read_uint):
	Likewise.

2004-04-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  update required version of GStreamer because of GST_TIME_FORMAT

2004-04-20  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_init):
	  remove leftover g_print
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	  don't try setting only a subset of the caps. We don't want to kill
	  autoplugging on purpose

2004-04-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/ximage/ximagesink.c: (plugin_init):
	* sys/xvimage/xvimagesink.c: (plugin_init):
	  add debugging categories

2004-04-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/en_GB.po:
	* po/LINGUAS:
	  Adding en_GB translation (Gareth Owen)

2004-04-20  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	(qtdemux_parse), (qtdemux_type_get), (qtdemux_dump_mvhd),
	(qtdemux_dump_tkhd), (qtdemux_dump_stsd), (qtdemux_dump_unknown),
	(qtdemux_parse_trak), (qtdemux_video_caps), (qtdemux_audio_caps):
	A number of new features and hacks to extract the esds atom and
	put it into the caps.  (bug #137724)

2004-04-19  David Schleef  <ds@schleef.org>

	* gconf/Makefile.am: Fix for non-GNU make
	* gst-libs/gst/Makefile.am: Change directory order to handle
	GstPlay linking with gstinterfaces
	* gst-libs/gst/audio/make_filter: make use of tr portable
	* gst-libs/gst/play/Makefile.am: Add intended \
	* gst-libs/gst/xwindowlistener/xwindowlistener.c:
	(gst_xwin_set_clips): Switch to ISO variadic macro. Use a
	function prototype instead of void *.
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c: Switch to ISO variadic
	macro.
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_chain): wrap NULL in GST_ELEMENT_ERROR call
	* gst/videofilter/make_filter: make use of tr portable
	* pkgconfig/Makefile.am: Remove GNU extension in Makefile target

2004-04-19  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/uk.po:
	  Added Ukrainian translation (Maxim V. Dziumanenko)

2004-04-18  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gsm/gstgsmdec.c: (gst_gsmdec_init), (gst_gsmdec_getcaps),
	(gst_gsmdec_link), (gst_gsmdec_chain):
	  Fix capsnego, simplify chain function slightly.
	* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
	  Add GSM.

2004-04-18  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
	(gst_wavparse_destroy_sourcepad), (gst_wavparse_create_sourcepad),
	(gst_wavparse_parse_fmt), (gst_wavparse_change_state):
	  Hack to make wavparse work with spider (always -> sometimes pad).
	  Fixes #135862 && #140411.

2004-04-18  Benjamin Otte  <otte@gnome.org>

	* sys/oss/gstosselement.c: (gst_osselement_sync_parms),
	(gst_osselement_rate_probe_check),
	(gst_osselement_rate_check_rate), (gst_osselement_rate_add_rate):
	  get rid of \n in debug output

2004-04-17  Iain <iain@prettypeople.org>

	* gst/wavparse/gstwavparse.c (gst_wavparse_loop): Allow all events,
	not just EOS.

2004-04-17  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstid3tag.c: (gst_id3_tag_get_type),
	(gst_id3_tag_class_init), (gst_id3_tag_get_caps),
	(gst_id3_tag_add_src_pad), (gst_id3_tag_init),
	(gst_id3_tag_set_property), (gst_id3_tag_do_caps_nego),
	(gst_id3_tag_src_link), (gst_id3_tag_chain),
	(gst_id3_tag_change_state), (plugin_init):
	  deprecate id3tag element and replace with id3demux/id3mux.
	  great side effect: this ugly file is now even uglier, yay!
	* ext/mad/gstmad.h:
	  remove non-available function
	  update for new get_type

2004-04-17  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  require mpeg2dec >= 0.4.0

2004-04-17  Benjamin Otte  <otte@gnome.org>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
	(gst_xvimagesink_xcontext_get), (gst_xvimagesink_change_state),
	(gst_xvimagesink_set_xwindow_id):
	  call GST_ELEMENT_ERROR whenever get_xcontext fails. Includes
	  assorted cleanup fixes.

2004-04-16  David Schleef  <ds@schleef.org>

	* sys/ximage/ximagesink.h: Compile fix for FreeBSD. (bug #140268)
	* sys/xvimage/xvimagesink.h: same

2004-04-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file):
	  Fix GST_ELEMENT_ERROR with (NULL)

2004-04-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data):
	  Add div[3456] as fourccs for DivX 3 (fixes #140137).

2004-04-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c:
	(gst_riff_create_video_caps_with_data),
	(gst_riff_create_video_caps), (gst_riff_create_audio_caps),
	(gst_riff_create_video_template_caps),
	(gst_riff_create_audio_template_caps):
	* gst-libs/gst/riff/riff-media.h:
	* gst-libs/gst/riff/riff-read.c:
	(gst_riff_read_strf_vids_with_data), (gst_riff_read_strf_vids):
	* gst-libs/gst/riff/riff-read.h:
	* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
	  Add MS RLE support. I added some functions to read out strf chunks
	  into strf chunks and the data behind it. This is usually color
	  palettes (as in RLE, but also in 8-bit RGB). Also use those during
	  caps creation. Lastly, add ADPCM (similar to wavparse - which
	  should eventually be rifflib based).
	* gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init),
	(gst_matroska_demux_init), (gst_matroska_demux_reset):
	* gst/matroska/matroska-demux.h:
	  Remove placeholders for some prehistoric tagging system. Didn't add
	  support for any tag system really anyway.
	* gst/qtdemux/qtdemux.c:
	  Add support for audio/x-m4a (MPEG-4) through spider.
	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt),
	(gst_wavparse_loop):
	  ADPCM support (#135862). Increase max. buffer size because we
	  cannot split buffers for ADPCM (screws references) and I've seen
	  files with 2048 byte chunks. 4096 seems safe for now.

2004-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano to 1

=== release 0.8.1 ===

2004-04-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: releasing 0.8.1, "Comforting Sounds"

2004-04-14  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Fix typo in divxversion (3 instead of 4 for "DIVX" fourcc).
	  Fixes #140058

2004-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_plugin_init):
	  lower rank of dvddemux so that it's not used for mpeg playback.

2004-04-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	  save libs correctly when checking mad

2004-04-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstid3tag.c: (plugin_init):
	  lower rank of id3tag as proposed by Benjamin.  Fixes #139926.

2004-04-13  David Schleef  <ds@schleef.org>

	* common/m4/gst-feature.m4: Call -config scripts with
	--plugin-libs if it is supported.
	* gst/avi/gstavimux.c: (gst_avimux_vidsinkconnect): sequences of
	JPEG images are image/jpeg.
	* gst/debug/Makefile.am:
	* gst/debug/negotiation.c: (gst_negotiation_class_init),
	(gst_negotiation_getcaps), (gst_negotiation_pad_link),
	(gst_negotiation_update_caps), (gst_negotiation_get_property),
	(gst_negotiation_plugin_init): Add a property that acts like
	filter caps.
	* testsuite/gst-lint:  Move license checking to be a standard
	test.

2004-04-13  David Schleef  <ds@schleef.org>

	* gst/avi/gstavidemux.c: (gst_avi_demux_reset): Fix memleak.
	patch from Sebastien Cote (bug #139958)

2004-04-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gstplay/Makefile.am:
	* examples/gstplay/player.c: (main):
	  make the commandline player example use gconf settings

2004-04-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/libcaca/gstcacasink.c: (gst_cacasink_class_init),
	(gst_cacasink_sinkconnect), (gst_cacasink_init),
	(gst_cacasink_chain), (gst_cacasink_open), (gst_cacasink_close):
	  init/end library during state transition, not object
	  creation/disposal.  get rid of custom dispose handler.


2004-04-12  Christian Schaller <Uraeus@gnome.org>

	* sys/oss/gstosselement.c: s/lstat/stat/ from freeBSD, since it can
	be a symlink

2004-04-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_data):
	  Handle JUNK chunks inside data section. Prevents warnings.

2004-04-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
	(gst_riff_create_video_template_caps):
	  Add MS video v1.
	* gst/avi/gstavidemux.c: (gst_avi_demux_stream_index),
	(gst_avi_demux_stream_data):
	  Add support for "rec-list" chunks.

2004-04-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
	  Fix another codecname mismatch.

2004-04-11  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Fix divx caps mismatch and move from video/x-jpeg to image/jpeg
	  so that MJPEG plays back.

2004-04-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init),
	(gst_mp1videoparse_real_chain), (gst_mp1videoparse_change_state):
	* gst/mpeg1videoparse/gstmp1videoparse.h:
	  Fix for some slight mis-cuts in buffer parsing, and for some
	  potential overflows or faults-causers. Adds disconts. Also fixes
	  #139105 while we're at it.

2004-04-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* configure.ac:
	* sys/v4l2/gstv4l2element.h:
	  Workaround for missing struct v4l2_buffer declaration in Suse 9
	  and Mandrake 10 linux/videodev2.h header file (#135919).

2004-04-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file):
	  Bail out if no filename was given.

2004-04-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps),
	(gst_v4l2_fourcc_from_structure):
	  Add Y41B/Y42B YUV formats (see #125732), fix Y41P (was typo'ed to
	  Y41B somewhere).

2004-04-09  Benjamin Otte  <otte@gnome.org>

	* ext/gnomevfs/gstgnomevfssink.c:
	(_gst_boolean_allow_overwrite_accumulator),
	(gst_gnomevfssink_class_init):
	  fix erase signal - if any handler returns false the file will not be
	  overwritten. If no handler is connected, the file will not be
	  overwritten either.
	  renamed signal to "allow-overwrite"
	* ext/mad/gstid3tag.c: (tag_list_to_id3_tag_foreach):
	  free string when adding it to ID3 failed
	* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
	  unref event when done
	* gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int):
	  free caps
	* gst/typefind/gsttypefindfunctions.c:
	(mpeg_video_stream_type_find):
	  fix invalid read

2004-04-08  David Schleef  <ds@schleef.org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_register): Change rank to PRIMARY.

2004-04-08  David Schleef  <ds@schleef.org>

	* gst/colorspace/gstcolorspace.c: Don't advertise a conversion
	we don't support (bug #139532)

2004-04-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstmad.c: (gst_mad_handle_event),
	(gst_mad_check_caps_reset), (gst_mad_chain),
	(gst_mad_change_state):
	  only set explicit caps if they haven't been set before for
	  this stream.  MPEG-audio sample rate/channels aren't allowed
	  to change in-stream.
	  Fixes #139382

2004-04-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_base_init),
	(_gst_boolean_did_something_accumulator),
	(gst_gnomevfssink_class_init), (gst_gnomevfssink_dispose),
	(gst_gnomevfssink_init), (gst_gnomevfssink_set_property),
	(gst_gnomevfssink_get_property), (gst_gnomevfssink_open_file),
	(gst_gnomevfssink_close_file), (gst_gnomevfssink_chain),
	(gst_gnomevfssink_change_state):
	  Fix erase signal. Don't erase by default. Remove handoff signal.
	  Remove erase property. Don't segfault. General cleanup.

2004-04-07  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/gconf/test-gconf.c: (main):
	  add missing gst_init

2004-04-07  Benjamin Otte  <otte@gnome.org>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_dispose):
	  free the mutexes, too

2004-04-07  Benjamin Otte  <otte@gnome.org>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_dispose):
	  actually free the URI string
	* ext/mad/gstid3tag.c: (gst_id3_tag_src_event):
	  compute offset correctly when passing discont events
	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event):
	  don't leak discont events
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_video_caps):
	  add some missing breaks so caps aren't copied randomly
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream):
	  if we realloc memory, we better use it

2004-04-06  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/mad/gstmad.c: (normal_seek):
	  fix GST_FORMAT_TIME usage

2004-04-05  David Schleef  <ds@schleef.org>

	* ext/kio/kiosrc.cpp:  Undefine KDE_DEPRECATED so we can use
	a deprecated function (hack!)

2004-04-05  Benjamin Otte  <otte@gnome.org>

	* ext/esd/esdmon.c: (gst_esdmon_get):
	  fix nonterminated vararg and memleak

2004-04-05  Benjamin Otte  <otte@gnome.org>

	* ext/ladspa/gstladspa.c: (gst_ladspa_class_init),
	(gst_ladspa_init), (gst_ladspa_force_src_caps),
	(gst_ladspa_set_property), (gst_ladspa_get_property),
	(gst_ladspa_instantiate), (gst_ladspa_activate),
	(gst_ladspa_deactivate), (gst_ladspa_loop), (gst_ladspa_chain):
	  clean up debugging

2004-04-05  Stefan Kost <kost@imn.htwk-leipzig.de>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/ladspa/gstladspa.c: (gst_ladspa_class_init):
	  check for broken LADSPA parameters (fixes #138635)

2004-04-05  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_getcaps):
	  advertise buffer-frames correctly on sinkpads

2004-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstmad.c: (gst_mad_get_type), (gst_mad_layer_get_type),
	(gst_mad_mode_get_type), (gst_mad_emphasis_get_type),
	(gst_mad_get_event_masks), (gst_mad_get_query_types), (index_seek),
	(normal_seek), (gst_mad_src_event), (gst_mad_handle_event),
	(gst_mad_check_caps_reset), (gst_mad_chain):
	add more debugging, only reset caps when we're not in error state

2004-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstmad.c: add debugging category, comment + cleanups

2004-04-05  Julio M. Merino Vidal  <jmmv@menta.net>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  fix == in test(1) operator

2004-04-05  Julio M. Merino Vidal  <jmmv@menta.net>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	  fix --export-symblos-regex to a working regex.

2004-04-04  Benjamin Otte  <otte@gnome.org>

	* sys/oss/.cvsignore:
	  add for oss_probe

2004-04-03  Tim-Phillip Müller <t.i.m@zen.co.uk>

	reviewed by Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event):
	  add missing 'new_media' argument (fixes #138168)
	* gst/matroska/matroska-demux.c:
	(gst_matroska_demux_handle_seek_event):
	  add vararg terminator (fixes #138169)

2004-04-02  David Schleef  <ds@schleef.org>

	* ext/gdk_pixbuf/Makefile.am:  Make sure gstgdkanimation.h is
	disted (bug #138914)

2004-04-01  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_change_state),
	(gst_alsa_close_audio):
	  handle case better where a soundcard can't pause
	* ext/ogg/gstoggdemux.c:
	  don't crash when we get events but don't have pads yet

2004-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/oss/gstosselement.c: (gst_osselement_probe_caps):
	  throw an error if we couldn't probe any caps.

2004-04-01  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/dvdnav/gst-dvd:
	Add a really simple sample DVD player

2004-04-01  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/a52dec/gsta52dec.c: (gst_a52dec_get_type), (gst_a52dec_init),
	(gst_a52dec_push), (gst_a52dec_handle_event),
	(gst_a52dec_update_streaminfo), (gst_a52dec_loop),
	(gst_a52dec_change_state):
	* ext/a52dec/gsta52dec.h:
	  Use a debug category, Output timestamps correctly
	  Emit tag info, Handle events, tell liba52dec about cpu
	  capabilities so it can use MMX etc.
	* ext/dv/gstdvdec.c: (gst_dvdec_loop), (gst_dvdec_change_state):
	  Fix a crasher accessing invalid memory
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init),
	(dvdnavsrc_update_highlight), (dvdnavsrc_loop),
	(dvdnavsrc_get_event_mask), (dvdnav_handle_navigation_event),
	(dvdnavsrc_event), (dvdnavsrc_get_formats), (dvdnavsrc_convert),
	(dvdnavsrc_query):
	  Some support for byte-format seeking.
	  Small fixes for still frames and menu button overlays
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_get_type),
	(gst_mpeg2dec_alloc_buffer):
	  Use a debug category. Adjust the report level of several items to
	  LOG. Call mpeg2_custom_fbuf to mark our buffers as 'custom buffers'
	  so it doesn't lose the GstBuffer pointer
	* gst/debug/Makefile.am:
	* gst/debug/gstdebug.c: (plugin_init):
	* gst/debug/gstnavseek.c: (gst_navseek_get_type),
	(gst_navseek_base_init), (gst_navseek_class_init),
	(gst_navseek_init), (gst_navseek_seek),
	(gst_navseek_handle_src_event), (gst_navseek_set_property),
	(gst_navseek_get_property), (gst_navseek_chain),
	(gst_navseek_plugin_init):
	* gst/debug/gstnavseek.h:
	  Add the navseek debug element for seeking back and forth in a
	  video stream using arrow keys.
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_get_type),
	(gst_mpeg2subt_base_init), (gst_mpeg2subt_class_init),
	(gst_mpeg2subt_init), (gst_mpeg2subt_finalize),
	(gst_mpeg2subt_getcaps_video), (gst_mpeg2subt_link_video),
	(gst_mpeg2subt_handle_video), (gst_mpeg2subt_src_event),
	(gst_mpeg2subt_parse_header), (gst_get_nibble),
	(gst_setup_palette), (gst_get_rle_code), (gst_draw_rle_line),
	(gst_merge_uv_data), (gst_mpeg2subt_merge_title),
	(gst_update_still_frame), (gst_mpeg2subt_handle_subtitle),
	(gst_mpeg2subt_handle_dvd_event), (gst_mpeg2subt_loop):
	* gst/mpeg2sub/gstmpeg2subt.h:
	  Pretty much a complete rewrite. Now a loopbased element. May still
	  require work to properly synchronise subtitle buffers.
	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private),
	(gst_dvd_demux_send_subbuffer):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer):
	  Don't attempt to create subbuffers of size 0
	  Reduce a couple of error outputs to warnings.
	* gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect),
	(gst_y4mencode_chain):
	Output the y4m frame header correctly.

2004-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/adder/gstadder.c: (gst_adder_get_type), (gst_adder_loop):
	  throw errors instead of allowing SIGFPE

2004-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/gconf/gconf.c: (gst_gconf_get_string),
	(gst_gconf_render_bin_from_key):
	  leak plugging and style fixing

2004-03-31  David Schleef  <ds@schleef.org>

	* gst/audioscale/gstaudioscale.c: (gst_audioscale_expand_value),
	(gst_audioscale_getcaps): Fix getcaps to expand and union lists.
	(bug #138225)
	* gst/debug/Makefile.am:
	* gst/debug/breakmydata.c: (gst_break_my_data_plugin_init):
	* gst/debug/gstdebug.c: (plugin_init):  Merge elements into one
	plugin.
	* gst/debug/negotiation.c: (gst_gst_negotiation_get_type),
	(gst_negotiation_base_init), (gst_negotiation_class_init),
	(gst_negotiation_init), (gst_negotiation_getcaps),
	(gst_negotiation_pad_link), (gst_negotiation_chain),
	(gst_negotiation_set_property), (gst_negotiation_get_property),
	(gst_negotiation_plugin_init):  New element to talk about random
	negotiation things happening in a pipeline.

2004-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/adder/gstadder.c: (gst_adder_get_type), (gst_adder_loop):
	  fix integer addition with help of Stefan Kost

2004-03-31  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/nl.po: updated Dutch translation (Elros Cyriatan)

2004-03-30  David Schleef  <ds@schleef.org>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer),
	(gst_mpeg2dec_negotiate_format):  Handle Y42B-format MPEG
	video, patch from Matthew.Spencer@eu.sony.com (Matthew Spencer)
	(bug #137504)
	* ext/mpeg2dec/gstmpeg2dec.h:

2004-03-30  David Schleef  <ds@schleef.org>

	* ext/gdk_pixbuf/Makefile.am: Remove spurious rules. (bug #136527)

2004-03-30  David Schleef  <ds@schleef.org>

	* tools/gst-launch-ext-m.m:  Applied patch from gnome@flyn.org (W.
	Michael Petullo) to handle .mov

2004-03-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* sys/oss/gstosselement.c: (gst_osselement_probe_caps),
	(gst_osselement_rate_check_rate):
	  probe caps correctly for sound cards that only support one format

2004-03-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* ext/kio/kiosrc.cpp: (process_events):
	  update handling event processing if inside KDE - untested

2004-03-29  David Schleef  <ds@schleef.org>

	* ext/hermes/gsthermescolorspace.c: (plugin_init): decrease rank
	by 2 to not interfere with other colorspaces.
	* ext/pango/gsttextoverlay.c: (plugin_init): change rank to NONE
	* gst/colorspace/gstcolorspace.c: (plugin_init): decrease rank by
	one to not interfere with ffmpeg_colorspace.

2004-03-29  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsa.c: (gst_alsa_fixate): Don't fixate fields that
	aren't in the caps.
	* gst/sine/gstsinesrc.c: change rate caps to [1,MAX]
	* gst/videocrop/gstvideocrop.c: (plugin_init): Change rank to NONE.

2004-03-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* gst-libs/gst/riff/riff-media.c:
	  fail on error, don't try to set stuff on NULL caps

2004-03-30  Benjamin Otte  <in7y118@public.uni-hamburg.de>

	* configure.ac:
	* ext/Makefile.am:
	* ext/kio/Makefile.am:
	* ext/kio/kioreceiver.cpp:
	* ext/kio/kioreceiver.h:
	* ext/kio/kiosrc.cpp:
	* ext/kio/kiosrc.h:
	  add experimental kiosrc plugin
	* ext/alsa/gstalsaplugin.c: (plugin_init):
	  initialize debugging category only when we're sure registering the
	  plugins worked.

2004-03-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gstplay/player.c: (main):
	* gst-libs/gst/play/play.c: (gst_play_class_init),
	(gst_play_set_location), (gst_play_set_data_src),
	(gst_play_set_video_sink), (gst_play_set_audio_sink),
	(gst_play_set_visualization), (gst_play_connect_visualization):
	  check return values of element_set_state and return FALSE where
	  failed

2004-03-29  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event):
	  try harder to check if an event is really a discont

2004-03-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS: adding Azerbaijani (M??tin ??mirov)
	* po/az.po:

2004-03-28  Benjamin Otte  <otte@gnome.org>

	* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private):
	* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead),
	(gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes):
	  get rid of non-standard "..." ranges in case statements.

2004-03-27  Martin Soto  <martinsoto@users.sourceforge.net>

	* gst/mpegstream/gstmpegdemux.c:
	* gst/mpegstream/gstmpegdemux.h: Complete overhaul. All DVD
	specific functionality split to the new dvddemux element.
	* gst/mpegstream/gstdvddemux.c:
	* gst/mpegstream/gstdvddemux.h: New demultiplexer for DVD (VOB)
	streams, derived from mpegdemux.
	* gst/mpegstream/gstmpegparse.c: Discontinuity handling cleaned
	up. SCR based timestamp rewriting can be turned off (will probably
	completely disappear soon).
	* ext/dvdnav/dvdnavsrc.c: Changes resulting from a few months
	hacking. General cleanup. All printf statements replaced by
	debugging messages. Almost complete libdvdnav support.
	(dvdnavsrc_class_init): Got rid of unnecessary signals (replaced
	by events. New properties for audio and subpicture languages.
	(dvdnavsrc_update_highlight): Now uses events.
	(dvdnavsrc_user_op): Cleaned up.
	(dvdnavsrc_get): Renamed to dvdnavsrc_loop (element is now loop
	based). Lots of cleanup, and propper support for most libdvdnav
	events.
	(dvdnavsrc_make_dvd_event): New function.
	(dvdnavsrc_make_dvd_nav_packet_event): New function.
	(dvdnavsrc_make_clut_change_event): New function.

2004-03-26  Benjamin Otte  <otte@gnome.org>

	* gst/typefind/gsttypefindfunctions.c: (theora_type_find):
	  fix bug where typefinding would claim it's theora whenever less then
	  7 bytes of data were available

2004-03-25  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_link),
	(gst_alawdec_base_init), (gst_alawdec_class_init),
	(gst_alawdec_init), (gst_alawdec_chain):
	* gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_link),
	(gst_alawenc_base_init), (gst_alawenc_class_init),
	(gst_alawenc_init), (gst_alawenc_chain):
	* gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_link),
	(gst_mulawdec_base_init), (gst_mulawdec_class_init),
	(gst_mulawdec_init), (gst_mulawdec_chain):
	* gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_link),
	(gst_mulawenc_base_init), (gst_mulawenc_class_init),
	(gst_mulawenc_init), (gst_mulawenc_chain):
	  Fix capsnego in all four, remove the unused property functions and
	  simplify the chain functions slightly. I guess we could use macros
	  or something similar for those, since the code is so similar, but
	  I'm currently too lazy...

2004-03-24  David Schleef  <ds@schleef.org>

	* sys/oss/gstosselement.c: (gst_osselement_sync_parms),
	(gst_osselement_close_audio), (gst_osselement_probe_caps),
	(gst_osselement_get_format_structure),
	(gst_osselement_rate_probe_check), (gst_osselement_rate_add_range),
	(gst_osselement_rate_check_rate), (gst_osselement_rate_add_rate),
	(gst_osselement_rate_int_compare): Add code to handle rate probing
	(bug #120883)
	* sys/oss/gstosselement.h: same
	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_getcaps):
	Use rate probing provided by osselement.
	* sys/oss/gstosssrc.c: (gst_osssrc_init), (gst_osssrc_getcaps): same

2004-03-24  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/xvid/gstxvidenc.c: (gst_xvidenc_set_property),
	(gst_xvidenc_get_property):
	  ulong/int mess-up.

2004-03-24  David Schleef  <ds@schleef.org>

	* ext/speex/gstspeexdec.c: (gst_speexdec_base_init),
	(gst_speexdec_init):
	* ext/speex/gstspeexenc.c: (gst_speexenc_base_init),
	(gst_speexenc_init):  Create the pad template correctly (from
	the static pad template, not a NULL pointer.)

2004-03-25  Benjamin Otte  <otte@gnome.org>

	* gst/debug/Makefile.am:
	* gst/debug/breakmydata.c:
	  add element that quasi-randomly changes bytes in the stream.
	  Intended use is robustness checking of demuxers and decoders in
	  media tests.

2004-03-24  Benjamin Otte  <otte@gnome.org>

	* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
	(gst_alsa_probe_hw_params):
	* ext/alsa/gstalsa.h:
	  debugging output fixes

2004-03-24  Benjamin Otte  <otte@gnome.org>

	* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_set_property):
	  don't g_return_if_fail if element is PLAYING, fail silently as every
	  other element.
	* gst/effectv/gstquark.c: (gst_quarktv_chain):
	  only fix needed for cast lvalue issues in gst-plugins
	* gst/volenv/gstvolenv.c: (gst_volenv_init):
	  add proxy_getcaps

2004-03-24  Benjamin Otte  <otte@gnome.org>

	* gst/level/gstlevel.c: (gst_level_init):
	  add proxying getcaps function, so level doesn't advertise impossible
	  caps

2004-03-24  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	(gst_qtdemux_loop_header), (qtdemux_parse_moov), (qtdemux_parse),
	(qtdemux_node_dump_foreach), (qtdemux_dump_mvhd),
	(qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd),
	(qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref),
	(qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss),
	(qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco),
	(qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd),
	(qtdemux_parse_tree), (qtdemux_parse_trak):  Fix debugging
	messages.  Divide the chunk size by the compression ratio
	(needed for MACE audio)

2004-03-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	  Fix buffer overflow read error.

2004-03-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.h:
	  Remove unused entry.
	* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
	  Add cinepak.
	* gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps),
	(gst_videodrop_link), (gst_videodrop_chain):
	  Fix, sort of. Was horribly broken with new capsnego. Bah...

2004-03-23  Jeremy Simon  <jesimon@libertysurf.fr>

	* gst/typefind/gsttypefindfunctions.c: (ape_type_find),
	(plugin_init):
	Add a monkeysaudio typefind function

2004-03-23  Johan Dahlin  <johan@gnome.org>

	* gst-libs/gst/play/play.c (gst_play_audio_fixate)
	(gst_play_video_fixate): Check so the structure has the field
	before trying to fixate them, this makes it possible to have
	fakesinks for video and audio output without printing errors on
	the output console.

2004-03-22  David Schleef  <ds@schleef.org>

	* sys/oss/Makefile.am:
	* sys/oss/oss_probe.c: (main), (probe_check), (add_range),
	(check_rate), (add_rate):  Rate probing test app.

2004-03-21  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link),
	(_fixate_caps_to_int), (gst_audio_convert_fixate):
	  add a fixation function that pretty much does the right thing (fixes
	  #137556)

2004-03-20  David I. Lehn  <dlehn@users.sourceforge.net>

	* configure.ac: GST_PACKAGE default: s/GStreamer/GStreamer Plugins/

2004-03-20  Tim-Phillip Müller <t.i.m@zen.co.uk>

	reviewed by: Benjamin Otte  <otte@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_push):
	  terminate gst_event_new_discontinuous correctly (fixes parts of
	  #137711)

2004-03-19  David Schleef  <ds@schleef.org>

	* gst-libs/gst/Makefile.am:  Enable xoverlay unconditionally,
	since it doesn't depend on X, and it's part of our ABI.

2004-03-19  Iain <iain@prettypeople.org>

	* gst/interleave/deinterleave.c (deinterleave_sink_link): Use the
	is_int in the structure, not the local variable.

2004-03-19  David Schleef  <ds@schleef.org>

	* ext/librfb/gstrfbsrc.c: (gst_rfbsrc_change_state),
	(gst_rfbsrc_init), (gst_rfbsrc_getcaps), (gst_rfbsrc_fixate),
	(gst_rfbsrc_link), (gst_rfbsrc_paint_rect), (gst_rfbsrc_get):
	Improvements in caps negotiation.

2004-03-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/af.po:
	  adding Afrikaans (Petri Jooste)

2004-03-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_chain):
	throw error instead of g_critical (#137588)

2004-03-18  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* configure.ac:
	  dist common and m4 correctly
	* po/sv.po:

2004-03-17  David Schleef  <ds@schleef.org>

	* pkgconfig/gstreamer-media-info.pc.in:  Add Version.
	(bug #137348)

2004-03-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/sv.po:
	  adding Swedish translation (Christian Rose)

2004-03-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am: use release.mak

2004-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* common/ChangeLog:
	* common/gst-autogen.sh:
	  add some explanation about the version detection
	* configure.ac:
	  fix X check

2004-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano to 1

=== release 0.8.0 ===

2004-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: release 0.8.0, "Pharmaceutical Itch"

2004-03-16  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  update libtool version
	* gst-libs/gst/media-info/Makefile.am:
	  actually use libtool version

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: fix speex detection to work with 1.0 but not 1.1

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* gst-plugins.spec.in:
	* pkgconfig/Makefile.am:
	* pkgconfig/gstreamer-gconf-uninstalled.pc.in:
	* pkgconfig/gstreamer-interfaces-uninstalled.pc.in:
	* pkgconfig/gstreamer-libs-uninstalled.pc.in:
	* pkgconfig/gstreamer-libs.pc.in:
	* pkgconfig/gstreamer-media-info-uninstalled.pc.in:
	* pkgconfig/gstreamer-play-uninstalled.pc.in:
	* pkgconfig/gstreamer-plugins-uninstalled.pc.in:
	* pkgconfig/gstreamer-plugins.pc.in:
	  remove @VERSION@ from some of the pc files since core and plugins
	  are decoupled.
	  created gstreamer-plugins.pc as it's a better name, but keeping
	  -libs around for now to get fixes upstream done first.

2004-03-15  Julien MOUTTE <julien@moutte.net>

	* gst-libs/gst/play/play.c: (gst_play_get_framerate),
	(gst_play_get_sink_element): First draft of gst_play_get_framerate.
	* gst-libs/gst/play/play.h:

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* *.c, *.cc: don't mix tabs and spaces

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup):
	  use the new ffmpegcolorspace
	* gst-plugins.spec.in:
	  package new colorspace and media-info
	* configure.ac:
	* pkgconfig/Makefile.am:
	  fix some more disting issues
	* pkgconfig/gstreamer-media-info-uninstalled.pc.in:
	* pkgconfig/gstreamer-media-info.pc.in:
	  generate media-info pc files

2004-03-15  Johan Dahlin  <johan@gnome.org>

	* *.h: Revert indenting

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  adding ffmpegcolorspace element
	* gst/ffmpegcolorspace/Makefile.am:
	* gst/ffmpegcolorspace/avcodec.h:
	* gst/ffmpegcolorspace/common.h:
	* gst/ffmpegcolorspace/dsputil.c: (dsputil_static_init):
	* gst/ffmpegcolorspace/dsputil.h:
	* gst/ffmpegcolorspace/gstffmpeg.c: (plugin_init):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
	(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_pix_fmt_to_caps),
	(gst_ffmpeg_caps_to_pix_fmt):
	* gst/ffmpegcolorspace/gstffmpegcodecmap.h:
	* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
	(gst_ffmpegcolorspace_caps_remove_format_info),
	(gst_ffmpegcolorspace_getcaps), (gst_ffmpegcolorspace_pad_link),
	(gst_ffmpegcolorspace_get_type), (gst_ffmpegcolorspace_base_init),
	(gst_ffmpegcolorspace_class_init), (gst_ffmpegcolorspace_init),
	(gst_ffmpegcolorspace_chain), (gst_ffmpegcolorspace_change_state),
	(gst_ffmpegcolorspace_set_property),
	(gst_ffmpegcolorspace_get_property),
	(gst_ffmpegcolorspace_register):
	* gst/ffmpegcolorspace/imgconvert.c:
	(avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name),
	(avcodec_get_pix_fmt), (avpicture_fill), (avpicture_layout),
	(avpicture_get_size), (avcodec_get_pix_fmt_loss),
	(avg_bits_per_pixel), (avcodec_find_best_pix_fmt1),
	(avcodec_find_best_pix_fmt), (img_copy_plane), (img_copy),
	(yuv422_to_yuv420p), (yuv422_to_yuv422p), (yuv422p_to_yuv422),
	(C_JPEG_TO_CCIR), (img_convert_init), (img_apply_table),
	(shrink41), (shrink21), (shrink12), (shrink22), (shrink44),
	(grow21_line), (grow41_line), (grow21), (grow22), (grow41),
	(grow44), (conv411), (gif_clut_index), (build_rgb_palette),
	(bitcopy_n), (mono_to_gray), (monowhite_to_gray),
	(monoblack_to_gray), (gray_to_mono), (gray_to_monowhite),
	(gray_to_monoblack), (avpicture_alloc), (avpicture_free),
	(is_yuv_planar), (img_convert), (get_alpha_info_pal8),
	(img_get_alpha_info), (deinterlace_line),
	(deinterlace_line_inplace), (deinterlace_bottom_field),
	(deinterlace_bottom_field_inplace), (avpicture_deinterlace):
	* gst/ffmpegcolorspace/imgconvert_template.h:
	* gst/ffmpegcolorspace/mem.c: (av_malloc), (av_realloc), (av_free):
	* gst/ffmpegcolorspace/mmx.h:
	* gst/ffmpegcolorspace/utils.c: (avcodec_init):
	  adding ffmpegcolorspace element supplied by Ronald after cleaning
	  up and pulling in the right bits of upstream source.
	  I'm sure a better C/compiler wizard could do some cleaning up (for
	  example use GLIB's malloc stuff), but as a first pass this
	  works very well

2004-03-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/alsa/gstalsa.h:
	  I assume Ronald forgot to commit the change to have cardname
	  as a struct member.  Expect some public spanking at the next
	  opportunity.

2004-03-15  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_get_property),
	(gst_alsa_open_audio), (gst_alsa_close_audio):
	* ext/alsa/gstalsa.c:
	  Don't open the device if we're a mixer (= padless).
	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_class_init),
	(gst_alsa_mixer_init), (gst_alsa_mixer_open),
	(gst_alsa_mixer_close), (gst_alsa_mixer_change_state):
	  Open mixer during state change rather than during object
	  initialization. Also, get a device name. Currently in a somewhat
	  hackish fashion, but I didn't really find something better.

2004-03-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* *.c, *.h: run gst-indent

2004-03-14  Benjamin Otte  <otte@gnome.org>

	* gst/modplug/gstmodplug.cc:
	* gst/modplug/gstmodplug.h:
	  set correct timestamps on outgoing buffers

2004-03-14  Benjamin Otte  <otte@gnome.org>

	* gst/modplug/gstmodplug.cc:
	  handle events - don't do crap when a discont arrives that's not
	  necessary
	  This allows correct loading and playback of mods in Rhythmbox

2004-03-14  Benjamin Otte  <otte@gnome.org>

	* configure.ac:
	* gst-libs/gst/gconf/Makefile.am:
	* pkgconfig/Makefile.am:
	  move gstreamer-gconf pkgconfig files to pkgconfig/ dir. Make sure
	  they get rebuilt properly
	* configure.ac:
	  when checking for vorbis, try pkgconfig first.
	* gst/modplug/gstmodplug.cc:
	  add fixate function

2004-03-14  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Fix for obvious mistake, where we first shift the offset and then
	  read a samplesize element assuming the old offset. Note that this
	  part still has something weird, i.e. my movies containing those
	  don't actually play well, but at least there's something that looks
	  like sound now.

2004-03-14  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/typefind/gsttypefindfunctions.c: (speex_type_find),
	(plugin_init):
	Add a typefind function for speex format

2004-03-13  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_video_caps),
	(gst_asf_demux_setup_pad):
	  Use 25fps as our "fake" fps value (marked for fixage in 0.9.x)
	  instead of 0. Reason is simple: some elements have a fps range
	  of 1-max instead of 0-max. So now ASF video actually works.

2004-03-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/LINGUAS:
	* po/sr.po:
	  adding serbian as a language

2004-03-13  Benjamin Otte  <otte@gnome.org>

	* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
	  return taglist correctly from _get function, don't gst_pad_push it.
	  (fixes #137042)

2004-03-13  Jan Schmidt  <thaytan@mad.scientist.com>
	* ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices):

2004-03-13  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_free_list):
	* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_class_init),
	(gst_alsa_mixer_track_new):
	* ext/alsa/gstalsamixertrack.h:
	  Fix ancient leftovers... MixerTrack is a GObject.

2004-03-13  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices):
	* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
	  Don't block during probing...

2004-03-12  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/alsa/gstalsa.c: (gst_alsa_get_type), (gst_alsa_class_init),
	(gst_alsa_get_property), (gst_alsa_probe_get_properties),
	(gst_alsa_class_probe_devices), (gst_alsa_class_list_devices),
	(gst_alsa_probe_probe_property), (gst_alsa_probe_needs_probe),
	(gst_alsa_probe_get_values), (gst_alsa_probe_interface_init),
	(gst_alsa_open_audio), (gst_alsa_close_audio):
	* ext/alsa/gstalsa.h:
	  Add propertyprobe interface implementation, add some device-name
	  property, all this so that it looks good in gnome-volume-control.

2004-03-12  David Schleef  <ds@schleef.org>

	* configure.ac: the Hermes library controls hermescolorspace, not
	colorspace.
	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init),
	(gst_mpeg2dec_init): minor pet peeve: disable code with #ifdef,
	not /* */
	* ext/sdl/sdlvideosink.c: Change XID to unsigned long.
	* ext/sdl/sdlvideosink.h: ditto.
	* gst/colorspace/gstcolorspace.c: Fix old comments about Hermes

2004-03-12  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_set_xwindow_id),
	(gst_x_overlay_got_xwindow_id):
	* gst-libs/gst/xoverlay/xoverlay.h:
	  replace XID with unsigned long to get rid of the xlibs dependency in
	  XOverlay (fixes #137004)

2004-03-13  Jan Schmidt  <thaytan@mad.scientist.com>
	* gst/effectv/gstaging.c: (gst_agingtv_base_init),
	(gst_agingtv_setup):
	* gst/effectv/gstdice.c: (gst_dicetv_get_type),
	(gst_dicetv_base_init), (gst_dicetv_class_init),
	(gst_dicetv_setup), (gst_dicetv_init), (gst_dicetv_draw):
	* gst/effectv/gstedge.c: (gst_edgetv_get_type),
	(gst_edgetv_base_init), (gst_edgetv_class_init), (gst_edgetv_init),
	(gst_edgetv_setup), (gst_edgetv_rgb32):
	* gst/effectv/gsteffectv.c:
	* gst/effectv/gstquark.c: (gst_quarktv_link), (gst_quarktv_init),
	(gst_quarktv_set_property):
	* gst/effectv/gstrev.c: (gst_revtv_get_type),
	(gst_revtv_base_init), (gst_revtv_class_init), (gst_revtv_init),
	(gst_revtv_setup), (gst_revtv_rgb32):
	* gst/effectv/gstshagadelic.c: (gst_shagadelictv_get_type),
	(gst_shagadelictv_base_init), (gst_shagadelictv_class_init),
	(gst_shagadelictv_init), (gst_shagadelictv_setup),
	(gst_shagadelictv_rgb32):
	* gst/effectv/gstvertigo.c: (gst_vertigotv_get_type),
	(gst_vertigotv_base_init), (gst_vertigotv_class_init),
	(gst_vertigotv_setup), (gst_vertigotv_init), (gst_vertigotv_rgb32):
	* gst/effectv/gstwarp.c:
	Port everything that can be ported to videofilter and fix up the caps.
	Can someone with a big-endian machine please check these?

2004-03-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_get_time),
	(gst_osssink_chain), (gst_osssink_change_state):
	  Latest fixes for A/V sync, audio playback and such. This is about
	  all... MPEG playback issues are mostly related to the async build-
	  up of MPEG files, I cannot fix that. Use basicgthread to solve it.

2004-03-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	patch from: Stephane Loeuillet

	* configure.ac:
	  use pkg-config for some libraries, falling back to the old .m4 way
	  (fixes #131270)
	* m4/libdv.m4:
	  removed

2004-03-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* tools/Makefile.am:
	* tools/Makefile.in:
	* tools/gst-launch-ext-m.m:
	* tools/gst-launch-ext.1.in:
	* tools/gst-visualise-m.m:
	* tools/gst-visualise.1:
	* tools/gst-visualise.1.in:
	  reorganizing generation of script tools

2004-03-10  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* ext/divx/gstdivxdec.c:
	  Downgrade priority. We prefer ffdec_mpeg4.
	* ext/faad/gstfaad.c: (gst_faad_srcgetcaps), (gst_faad_srcconnect),
	(gst_faad_chain), (gst_faad_change_state):
	  Fix capsnego. Doesn't work for some sounds because we don't have
	  a 5:1 to stereo element.
	* ext/xvid/gstxvid.c: (plugin_init):
	  Add priority.
	* sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain),
	(gst_osssink_change_state):
	  Add discont handling.

2004-03-09  Colin Walters  <walters@verbum.org>

	* gst/audioconvert/gstaudioconvert.c: Fix typo in width 8
	conversion.

2004-03-09  Benjamin Otte  <otte@gnome.org>

	* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init):
	  the signals take 2 arguments

2004-03-09  David Schleef  <ds@schleef.org>

	* ext/alsa/gstalsa.c: (gst_alsa_request_new_pad),
	(gst_alsa_fixate): Add fixate function.  (bug #136686)
	* ext/alsa/gstalsa.h:
	* ext/alsa/gstalsasink.c: (gst_alsa_sink_init):

2004-03-09  Benjamin Otte  <otte@gnome.org>

	* ext/mikmod/gstmikmod.c: (gst_mikmod_init), (gst_mikmod_loop),
	(gst_mikmod_change_state):
	* ext/mikmod/gstmikmod.h:
	  make mikmod's loop function not loop infinitely and call
	  gst_element_yield anymore
	* gst/modplug/gstmodplug.cc:
	  fix pad negotiation (fixes #136590)

2004-03-09  David Schleef  <ds@schleef.org>

	* ext/lcs/Makefile.am:  Fix so that the lcs colorspace plugin
	doesn't conflict with the internal colorspace plugin.
	* gst-libs/gst/audio/make_filter:  Use `` instead of $() to
	satisfy the crappy-ass shell shipped by a certain vendor.
	* gst/videofilter/make_filter: same (bug #135299)

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac: bump nano to 1

=== release 0.7.6 ===

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.in: releasing 0.7.6, "There"

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* pkgconfig/gstreamer-play-uninstalled.pc.in:
	* pkgconfig/gstreamer-play.pc.in:
	  synchronize the two

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_base_init),
	(cdparanoia_open), (cdparanoia_event):
	  fix/add error handling
	* po/POTFILES.in:
	  add cdparanoia source
	* tools/Makefile.am:
	  make scripts executable

2004-03-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* ext/vorbis/Makefile.am:
	* sys/Makefile.am:
	  remove id3types, vorbisfile and xvideosink from the build (#133783)

2004-03-08  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst-libs/gst/riff/riff-read.c: (gst_riff_read_info):
	  Fix metadata read crash (#136537).

2004-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/media-info/media-info-priv.c: (gmi_set_mime):
	* gst-libs/gst/media-info/media-info.c: (gst_media_info_read):
	  adding mime types, fixing the one-stop function

2004-03-08  Christian Schaller <Uraeus@gnome.org>

	* ext/nas/nassink.c and /ext/nas/nassink.h:
	More NAS love from Arwed von Merkatz
	So lets all sing 'Can you feel the NAS tonight'

2004-03-08  Christian Schaller <Uraeus@gnome.org>

	* tools/gst-launch-ext.in:
	Replace vorbisfile with oggdemux/vorbisdec/audioconvert

2004-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init),
	(gst_mpeg2dec_init):
	remove the user_data pad for now, because it is being used in
	fixating causing MPEG playback to fixate on 1000 Hz for playback.
	If someone knows how to fix this properly, please do.

2004-03-08  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/oss/gstosssink.c: (gst_osssink_get_delay),
	(gst_osssink_get_time):
	add a warning, IMO this won't get triggered anymore, remove later

2004-03-07  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):  Added Cinepak
	format (bug #136470)

2004-03-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/Makefile.am:
	* gst-libs/gst/media-info/Makefile.am:
	* gst-libs/gst/media-info/media-info-priv.c: (found_tag_callback),
	(error_callback), (gst_media_info_error_create),
	(gst_media_info_error_element), (gmip_init), (gmip_reset),
	(gmi_clear_decoder), (gmip_find_type_pre), (gmip_find_type):
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/media-info/media-info-test.c: (main):
	* gst-libs/gst/media-info/media-info.c: (gst_media_info_init),
	(gst_media_info_class_init), (gst_media_info_instance_init),
	(gst_media_info_set_source), (gst_media_info_read_with_idler),
	(gst_media_info_read_idler), (gst_media_info_read):
	* gst-libs/gst/media-info/media-info.h:
	fixed, should work now

2004-03-07  Christian Schaller <Uraeus@gnome.org>

	* ext/nas/nassink.c:
	A bunch of NAS fixes from Arwed von Merkatz

2004-03-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
	(qtdemux_parse_trak):
	  Fix crash (j might be greater than n_samples, in which case we're
	  writing outside the allocated space for the array) and memleak.

2004-03-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssink.c: (gst_osssink_chain):
	  And another caller that couldn't handle delay < 0 (unsigned
	  integer overflow). Video now continues playing on an audio
	  buffer underrun, and the clock continues working. Audio still
	  stalls.

2004-03-06  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* sys/oss/gstosssink.c: (gst_osssink_get_delay),
	(gst_osssink_get_time):
	  get_delay() may return values lower than 0. In those cases, we
	  should not actually cast to *unsigned* int64, that will break
	  stuff horribly. In my case, it screwed up A/V sync in movies
	  in totem rather badly.

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	* ext/faac/gstfaac.c: (gst_faac_chain):
	* ext/flac/gstflactag.c: (gst_flac_tag_chain):
	* ext/libpng/gstpngenc.c: (user_write_data):
	* ext/mikmod/gstmikmod.c: (gst_mikmod_loop):
	* gst/ac3parse/gstac3parse.c: (gst_ac3parse_chain):
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_chain_subtitle):
	* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice):
	Fix several misuse of gst_buffer_merge (it doesn't take ownership
	of any buffer), should fix some leaks. I hope I didn't unref buffers
	that shouldn't be...

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst-libs/gst/media-info/media-info-priv.c: (have_type_callback),
	(deep_notify_callback), (tag_flag_score), (found_tag_callback),
	(error_callback), (gmi_reset), (gmi_seek_to_track),
	(gmi_get_decoder), (gmi_set_mime), (gmip_find_type_pre),
	(gmip_find_type_post), (gmip_find_stream_post),
	(gmip_find_track_streaminfo_post):
	* gst-libs/gst/media-info/media-info-priv.h:
	* gst-libs/gst/media-info/media-info-test.c: (print_tag),
	(info_print), (main):
	* gst-libs/gst/media-info/media-info.c:
	(gst_media_info_error_create), (gst_media_info_error_element),
	(gst_media_info_instance_init), (gst_media_info_get_property),
	(gst_media_info_new), (gst_media_info_set_source),
	(gst_media_info_read_idler), (gst_media_info_read):
	* gst-libs/gst/media-info/media-info.h:
	  first pass at making this work again.  This seems to work on
	  tagged ogg/vorbis and mp3 files.

2004-03-06  Benjamin Otte  <otte@gnome.org>

	* ext/mad/gstid3tag.c: (gst_id3_tag_chain):
	  fix huge leak: gst_buffer_merge doesn't unref the first argument
	  itself.

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/mad/gstmad.c: (gst_mad_class_init), (gst_mad_update_info):
	  report layer/mode/emphasis

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	* ext/mad/gstmad.c: (gst_mad_chain): fixed caps leak

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_pad_new):
	  signal serial

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/vorbis/vorbis.c: (plugin_init):
	* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
	(gst_vorbis_dec_init), (vorbis_dec_event):
	add debug category
	make vorbisdec handle _BYTE and _TIME queries

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	* ext/mad/gstmad.c: (gst_mad_chain): send the average bitrate read
	  from the xing header

2004-03-06  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_getcaps),
	(gst_audio_convert_link), (gst_audio_convert_change_state),
	(gst_audio_convert_buffer_from_default_format):
	  do conversions from/to float correctly, fix some caps nego errors,
	  export correct supported caps in template and getcaps, use correct
	  caps in try_set_caps functions

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	For some reason, I only committed a ChangeLog entry yesterday and
	not the corresponding code...
	* ext/mad/gstmad.c: Fix detection of Xing headers
	* gst/tags/gstid3tag.c: Changes to support TLEN tags

2004-03-06  Benjamin Otte  <otte@gnome.org>

	* ext/ogg/gstoggdemux.c: (gst_ogg_get_pad_by_pad),
	(gst_ogg_demux_src_query):
	  make sure to handle the case where there's no current chain
	  gracefully.

2004-03-05  David Schleef  <ds@schleef.org>

	* ext/aalib/gstaasink.c: (gst_aasink_fixate), (gst_aasink_init):
	Add fixate function. (bug #131128)
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init),
	(gst_sdlvideosink_fixate):  Add fixate function.
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
	Fix attempt to print a non-pointer using GST_PTR_FORMAT.
	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt):
	Fix missing break that was causing ulaw to be interpreted as
	raw int.

2004-03-05  David Schleef  <ds@schleef.org>

	* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice):
	Fix code that ignores return value of gst_buffer_merge().
	(bug #114560)
	* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_descramble_segment):
	* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice): same
	* testsuite/gst-lint:  Check for above.

2004-03-05  David Schleef  <ds@schleef.org>

	* gst/udp/gstudpsrc.c: (gst_udpsrc_get):  Check for unfixed
	caps and throw an element error.  (bug #136334)

2004-03-05  David Schleef  <ds@schleef.org>

	* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_srcgetcaps),
	(gst_faad_chain): Fix negotiation.
	* ext/librfb/gstrfbsrc.c: (gst_rfbsrc_handle_src_event): Add
	key and button events.
	* gst-libs/gst/floatcast/floatcast.h: Fix a minor bug in this
	dung heap of code.
	* gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc.in: gstgconf
	depends on gconf
	* gst-libs/gst/gconf/gstreamer-gconf.pc.in: same
	* gst-libs/gst/play/play.c: (gst_play_pipeline_setup),
	(gst_play_video_fixate), (gst_play_audio_fixate): Add a fixate
	function to encourage better negotiation, particularly between
	audioconvert and osssink.
	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain):
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):  Make some debugging
	more important.
	* gst/typefind/gsttypefindfunctions.c:  Fix mistake in flash
	typefinding.
	* gst/vbidec/vbiscreen.c:  Add glib header
	* pkgconfig/gstreamer-play.pc.in:  Depends on gst-interfaces.

2004-03-06  Christophe Fergeau  <teuf@users.sourceforge.net>

	* ext/mad/gstmad.c: Fix detection of Xing headers
	* gst/tags/gstid3tag.c: Changes to support TLEN tags

2004-03-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt),
	(gst_wavparse_pad_convert), (gst_wavparse_pad_query):
	  debug updates

2004-03-06  Christophe Fergeau  <teuf@gnome.org>

	* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list):
	* ext/mad/gstmad.c: (gst_mad_init), (is_xhead),
	(mpg123_parse_xing_header), (gst_mad_chain): parse Xing header in vbr
	files, and report the parsed length as a GST_TAG_DURATION tag.
	* gst/tags/gstid3tag.c: support TLEN (duration) tag

2004-03-05  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_channels):
	  convert channels correctly. convert correctly to unsigned.

2004-03-05  Julien MOUTTE <julien@moutte.net>

	* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state): Check if
	we have a window before clearing it.

2004-03-05  Julien MOUTTE <julien@moutte.net>

	* sys/ximage/ximagesink.c: (gst_ximagesink_change_state): Check if we
	have a window before clearing it.

2004-03-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gconf/gstreamer.schemas.in:
	* gst-libs/gst/gconf/Makefile.am:
	  version installation path the same way as for 0.6
	* pkgconfig/gstreamer-interfaces-uninstalled.pc.in:
	* pkgconfig/gstreamer-libs-uninstalled.pc.in:
	* pkgconfig/gstreamer-play-uninstalled.pc.in:
	  remove comment that was fixed

2004-03-05  David Schleef  <ds@schleef.org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_formats),
	(gst_qtdemux_src_convert), (gst_qtdemux_get_src_query_types),
	(gst_qtdemux_get_event_mask), (gst_qtdemux_handle_src_query),
	(gst_qtdemux_handle_src_event), (gst_qtdemux_add_stream):
	Add prototype code for handling seeking and querying.

2004-03-04  Ronald Bultje  <rbultje@ronald.bitfreak.net>

	* examples/gstplay/player.c: (main):
	  Initialize variables to NULL. Prevents a segfault because the
	  (uninitialized) variable is not NULL, resulting in a crash on
	  trying to reach error->message.

2004-03-05  Benjamin Otte  <otte@gnome.org>

	* gst/audioconvert/gstaudioconvert.c:
	(gst_audio_convert_buffer_to_default_format):
	make float=>int conversion work correctly even in cornercases.

2004-03-04  David I. Lehn  <dlehn@users.sourceforge.net>

	* debian/README.Debian:
	* debian/build-deps:
	* debian/changelog:
	* debian/control:
	* debian/control.in:
	* debian/copyright:
	* debian/gstreamer-a52dec.files:
	* debian/gstreamer-aa.files:
	* debian/gstreamer-alsa.files:
	* debian/gstreamer-alsa.manpages:
	* debian/gstreamer-arts.files:
	* debian/gstreamer-artsd.files:
	* debian/gstreamer-audiofile.files:
	* debian/gstreamer-avifile.files:
	* debian/gstreamer-cdparanoia.files:
	* debian/gstreamer-colorspace.files:
	* debian/gstreamer-doc.files:
	* debian/gstreamer-dv.files:
	* debian/gstreamer-dvd.files:
	* debian/gstreamer-esd.files:
	* debian/gstreamer-festival.files:
	* debian/gstreamer-flac.files:
	* debian/gstreamer-gconf.conffiles:
	* debian/gstreamer-gconf.files:
	* debian/gstreamer-gconf.postinst:
	* debian/gstreamer-gnomevfs.files:
	* debian/gstreamer-gsm.files:
	* debian/gstreamer-http.files:
	* debian/gstreamer-jack.files:
	* debian/gstreamer-jpeg.files:
	* debian/gstreamer-mad.files:
	* debian/gstreamer-mikmod.files:
	* debian/gstreamer-misc.files:
	* debian/gstreamer-mpeg2dec.files:
	* debian/gstreamer-oss.files:
	* debian/gstreamer-plugin-apps.files:
	* debian/gstreamer-plugin-apps.manpages:
	* debian/gstreamer-plugin-libs-dev.files:
	* debian/gstreamer-plugin-libs.files:
	* debian/gstreamer-plugin-template.postinst:
	* debian/gstreamer-plugin-template.postrm:
	* debian/gstreamer-sdl.files:
	* debian/gstreamer-sid.files:
	* debian/gstreamer-vorbis.files:
	* debian/gstreamer-x.files:
	* debian/mk.control:
	* debian/rules:
	Debian package info not maintained here.

2004-03-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/aalib/gstaasink.c: (gst_aasink_class_init):
	* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init):
	* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init):
	* ext/divx/gstdivxenc.c: (gst_divxenc_class_init):
	* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init):
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_class_init):
	* ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init):
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init):
	* ext/speex/gstspeexenc.c: (gst_speexenc_class_init):
	* ext/xvid/gstxvidenc.c: (gst_xvidenc_class_init):
	* gst-libs/gst/colorbalance/colorbalance.c:
	(gst_color_balance_class_init):
	* gst-libs/gst/colorbalance/colorbalancechannel.c:
	(gst_color_balance_channel_class_init):
	* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init):
	* gst-libs/gst/play/play.c: (gst_play_class_init):
	* gst-libs/gst/propertyprobe/propertyprobe.c:
	(gst_property_probe_iface_init):
	* gst-libs/gst/tuner/tuner.c: (gst_tuner_class_init):
	* gst-libs/gst/tuner/tunerchannel.c:
	(gst_tuner_channel_class_init):
	* gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_base_init):
	* gst/cutter/gstcutter.c: (gst_cutter_class_init):
	* gst/effectv/gstvertigo.c: (gst_vertigotv_class_init):
	* sys/cdrom/gstcdplayer.c: (cdplayer_class_init):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_class_init):
	* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
	* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
	* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init):
	  fix signals to use - instead of _
	* ext/libcaca/gstcacasink.h:
	* ext/sdl/sdlvideosink.h:
	  fix header rename

2004-03-04  David Schleef  <ds@schleef.org>

	* testsuite/gst-lint:  Add a check for bad signal names.

2004-03-04  Stefan Kost <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
