=== release 0.10.10 ===

2009-01-19  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.10, "keep them dogies rollin"

2009-01-09  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	0.10.9.3 pre-release

2009-01-09  David Schleef  <ds@schleef.org>

	* gst/mpegdemux/gstmpegtsdemux.c:
	Don't forward duration requests in BYTES, since the returned
	value doesn't mean anything.  Fixes #566959

2009-01-09  David Schleef  <ds@schleef.org>

	* gst/qtmux/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part
	to caps so schroenc/schroparse can use it.  Fixes #566958

2009-01-09  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/resindvd/resindvdsrc.c:
	Additional patch for resin fixes time-based seeking in titles
	that don't start at sector 0 in the VTS, and fixes interpretation
	of the cell elapsed time, so that it reports the correct time after
	the seek completes.
	Really fixes #566957.

2009-01-08  Wim Taymans  <wim.taymans@collabora.co.uk>

	Based on Patch by: Brian Cameron <brian dot cameron at sun dot com>

	* ext/ladspa/search.c: (LADSPAPluginSearch):
	Avoid searching (null) paths or crashing on platforms where printing a
	NULL string segfaults. Fixes #567004.

2009-01-08  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	* ext/resindvd/rsnaudiomunge.c:
	Add support for time based seeking.
	Make setting dvd:// reset to the default device.
	Make the 'audiomunge' element send any new segment start before
	the 'gap filler' buffer it generates, and any segment closes
	after.
	Fixes: #566957

2009-01-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/ladspa/gstladspa.c: (plugin_init):
	Add plugin dependency for the LADSPA plugin directories.
	Fixes bug #566878.

2009-01-06  Jan Schmidt  <jan.schmidt@sun.com>

	* tests/check/Makefile.am:
	Dist test headers for amr and aac parsers.
	Remove leftover lines mentioned speexresample tests.

2009-01-06  Michael Smith <msmith@songbirdnest.com>

	* sys/acmmp3dec/Makefile.am:
	  Fix typo in the opposite way to give the plugin a sensible name.

2009-01-06  Jan Schmidt  <jan.schmidt@sun.com>

	* sys/acmmp3dec/Makefile.am:
	Fix typo in the makefile target preventing disting.

2009-01-05  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-app.xml:
	* examples/Makefile.am:
	* examples/app/.cvsignore:
	* examples/app/Makefile.am:
	* examples/app/appsink-src.c:
	* examples/app/appsrc-ra.c:
	* examples/app/appsrc-seekable.c:
	* examples/app/appsrc-stream.c:
	* examples/app/appsrc-stream2.c:
	* examples/app/appsrc_ex.c:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/app/.cvsignore:
	* gst-libs/gst/app/Makefile.am:
	* gst-libs/gst/app/gstapp-marshal.list:
	* gst-libs/gst/app/gstappbuffer.c:
	* gst-libs/gst/app/gstappbuffer.h:
	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsink.h:
	* gst-libs/gst/app/gstappsrc.c:
	* gst-libs/gst/app/gstappsrc.h:
	* gst/app/Makefile.am:
	* gst/app/gstapp.c:

	Remove AppSrc/AppSink that are moving to -base. Partially fixes
	#564421

2009-01-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegdemux/mpegtspacketizer.c:
	Guard interval is 4 if descriptor part shows binary 11 (3 not 4).

2009-01-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegdemux/gstmpegdesc.h:
	Fix up satellite delivery subsystem defs.

2009-01-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegdemux/gstmpegdesc.h:
	Fix up terrestrial delivery system descriptor defs.
	They should be shifted otherwise wrong values are seen.

2009-01-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c: (mxf_metadata_handle_tag),
	(mxf_metadata_preface_handle_tag),
	(mxf_metadata_identification_handle_tag),
	(mxf_metadata_content_storage_handle_tag),
	(mxf_metadata_essence_container_data_handle_tag),
	(mxf_metadata_generic_package_handle_tag),
	(mxf_metadata_track_handle_tag),
	(mxf_metadata_sequence_handle_tag),
	(mxf_metadata_structural_component_handle_tag),
	(mxf_metadata_generic_descriptor_handle_tag),
	(mxf_metadata_locator_handle_tag),
	(mxf_metadata_locator_class_init):
	* gst/mxf/mxfmetadata.h:
	"Generation UID" and "This Generation UID" are different so handle
	them different. Also both are not part of every metadata type.

2009-01-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: Sascha Hauer <s dot hauer at pengutronix dot de>
	          Luotao Fu <l dot fu at pengutronix dot de>

	* gst/bayer/gstbayer2rgb.c: (get_pix_offset),
	(gst_bayer2rgb_set_caps):
	Fix color offset calculation for 24bpp. Fixes bug #566613.

2009-01-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: vanista <vanista at gmail dot com>

	* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
	* gst/mpegtsmux/tsmux/tsmux.c: (tsmux_write_pmt):
	* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
	(tsmux_stream_write_pes_header), (tsmux_stream_get_es_descrs):
	* gst/mpegtsmux/tsmux/tsmuxstream.h:
	Improve muxing of AC3/h264 streams a bit. Fixes bug #550613.

2009-01-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_pad_next_component):
	Don't allow negative or zero edit rates to prevent division
	by zero and we support negative edit rates anyway.

2009-01-05  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c: (gst_x264_enc_class_init),
	(gst_x264_enc_header_buf), (gst_x264_enc_encode_frame):
	Use hyphen in property name, perform safety buffer size check
	prior to mem access, and some more parentheses in macro.

2009-01-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	(mxf_metadata_wave_audio_essence_descriptor_handle_tag),
	(mxf_bwf_create_caps):
	* gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_klv_packet):
	* gst/mxf/mxfmetadata.c: (mxf_metadata_handle_tag),
	(mxf_metadata_preface_handle_tag),
	(mxf_metadata_identification_handle_tag),
	(mxf_metadata_content_storage_handle_tag),
	(mxf_metadata_essence_container_data_handle_tag),
	(mxf_metadata_generic_package_handle_tag),
	(mxf_metadata_source_package_handle_tag),
	(mxf_metadata_track_handle_tag),
	(mxf_metadata_sequence_handle_tag),
	(mxf_metadata_structural_component_handle_tag),
	(mxf_metadata_source_clip_handle_tag),
	(mxf_metadata_dm_segment_handle_tag),
	(mxf_metadata_generic_descriptor_handle_tag),
	(mxf_metadata_file_descriptor_handle_tag),
	(mxf_metadata_generic_picture_essence_descriptor_handle_tag),
	(mxf_metadata_generic_sound_essence_descriptor_handle_tag),
	(mxf_metadata_generic_data_essence_descriptor_handle_tag),
	(mxf_metadata_multiple_descriptor_handle_tag):
	* gst/mxf/mxfparse.c: (mxf_partition_pack_parse),
	(mxf_index_table_segment_parse), (mxf_primer_pack_parse),
	(mxf_local_tag_add_to_hash_table):
	Fix compilation with debugging disabled.

2009-01-05  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* configure.ac:
	Also mention jp2kenc as a jp2k plugin feature.

2009-01-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: Sebastian Pölsterl <sebp at k-d-w dot org>

	* sys/dvb/dvbbasebin.c: (dvb_base_bin_init),
	(dvb_base_bin_finalize), (dvb_base_bin_activate_program),
	(dvb_base_bin_pmt_info_cb), (dvb_base_bin_pad_added_cb),
	(dvb_base_bin_program_destroy):
	Fix some memory leaks. Fixes bug #566356.

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

	Patch by: Olivier Crete <tester at tester dot ca>

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_setcaps_send_rtp), (create_send_rtp_sink):
	* gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
	When an SSRC is found on the caps of the sender RTP, use this as the
	internal SSRC. Fixes #565910.

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

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_event_send_rtp_sink),
	(gst_rtp_session_getcaps_send_rtp):
	* gst/rtpmanager/rtpsession.c: (check_collision),
	(rtp_session_schedule_bye_locked), (rtp_session_schedule_bye):
	* gst/rtpmanager/rtpsession.h:
	Rename a method to better reflect what it really does.

2009-01-02  Alessandro Decina  <alessandro.d@gmail.com>

	* ext/apexsink/Makefile.am:
	Move -lgcrypto from _LDFLAGS to _LIBADD.

2009-01-02  Alessandro Decina  <alessandro.d@gmail.com>

	* ext/apexsink/Makefile.am:
	Link against -lgcrpyto for RSA_new and RSA_free.
	* ext/faac/gstfaac.c:
	* ext/x264/gstx264enc.c:
	Fix compiler warnings.

2009-01-02  Alessandro Decina  <alessandro.d@gmail.com>

	* gst/mpegdemux/gstmpegdemux.c:
	Initialize scr_rate_n and scr_rate_d in order to fix compiler warnings.

2008-12-31  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c: (mxf_bwf_handle_essence_element),
	(mxf_aes3_handle_essence_element):
	* gst/mxf/mxfalaw.c: (mxf_alaw_handle_essence_element):
	* gst/mxf/mxfd10.c: (mxf_d10_picture_handle_essence_element),
	(mxf_d10_sound_handle_essence_element):
	* gst/mxf/mxfdemux.c: (gst_mxf_demux_pad_init),
	(gst_mxf_demux_choose_package),
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_pad_next_component),
	(gst_mxf_demux_handle_generic_container_essence_element),
	(gst_mxf_demux_parse_footer_metadata),
	(gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query):
	* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_handle_essence_element):
	* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_handle_essence_element):
	* gst/mxf/mxfmetadata.c: (mxf_metadata_sequence_init),
	(mxf_metadata_structural_component_init),
	(mxf_metadata_generic_picture_essence_descriptor_init):
	* gst/mxf/mxfmpeg.c: (mxf_mpeg_video_handle_essence_element),
	(mxf_mpeg_audio_handle_essence_element):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxfup.c: (mxf_up_handle_essence_element):
	* gst/mxf/mxfvc3.c: (mxf_vc3_handle_essence_element):
	* tests/check/elements/mxfdemux.c: (_sink_chain):
	Implement support for OP2a/b/c and OP3a/b/c, i.e. tracks with
	more than a single component. This currently only works for
	the case where the components are stored in playback order
	in the file.

	Set some more default/distinguished values for the structural
	metadata.

	Make some types more strict by choosing the correct subclasses.

	Set DISCONT flag on buffers after a component switch.

	Take the last partition from the random index pack for the footer
	partition of the header partition doesn't reference the footer
	partition. This gives us the final structural metadata for
	some more files in the beginning.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query),
	(gst_flups_demux_parse_pack_start):
	Use the adjusted SCR for calculating the mux rate.
	Don't update the rate estimation after a discont.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data):
	* gst/mpegdemux/gstmpegdemux.h:
	The position member in the newsegment event corresponds to the
	stream_time of the segment start position.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Robin Stocker <robin at nibor dot org>

	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query):
	Converting from time to bytes operates on the stream_time, not the SCR
	timeline.
	The position reporting should happen in stream_time, not the segment
	timestamp range. See #557161.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	(gst_app_src_init), (gst_app_src_set_property),
	(gst_app_src_get_property), (gst_app_src_query),
	(gst_app_src_set_latencies), (gst_app_src_set_latency),
	(gst_app_src_get_latency), (gst_app_src_push_buffer_full):
	* gst-libs/gst/app/gstappsrc.h:
	Add properties and methods to configure and retrieve the min and max
	latencies.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Sebastian Pölsterl <sebp at k-d-w dot org>

	* gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_eit):
	Fix memleak. Fixes #565614.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Sebastian Pölsterl <sebp at k-d-w dot org>

	* gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_sdt):
	Add a scrambled field to the service structures retrieved from SDT to
	determine if a channel is scrambled. Fixes #565613.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

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

	* gst/pcapparse/Makefile.am:
	* gst/pcapparse/gstpcapparse.c:
	Patch to make gstpcapparse compile with mingw32 gcc. Fixes #565439.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_getcaps_send_rtp):
	Use method to get the internal SSRC.

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(rtp_session_set_property), (rtp_session_get_property):
	Add property to congiure the internal SSRC of the session.
	Fixes #565910.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(rtp_session_set_property), (rtp_session_get_property):
	Add property to change the internal SSRC of the session.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
	Only change the SSRC of the session and reset the internal source when
	the SSRC actually changed. See #565910.

2008-12-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c: (rtp_source_init),
	(rtp_source_update_caps), (get_clock_rate):
	* gst/rtpmanager/rtpsource.h:
	When no payload was specified on the caps but there was a clock-rate,
	assume the clock-rate corresponds to the first payload type found in the
	RTP packets. Fixes #565509.

2008-12-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	With constant read failures, make sure we exit the read_device
	method.

2008-12-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Post bus message with dvb read failure when unable to read from
	device.

2008-12-23  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Luotao Fu <l dot fu at pengutronix dot de>

	* sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps):
	Fix the Depth calculation.
	Fixes #564114.

2008-12-23  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Arnout Vandecappelle <arnout at mind dot be>

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	(calculate_skew):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Keep track of the last outgoing timestamp and of the last sender-side
	time.  Timestamps can only go forward if they do at the sender
	side, can only go back if they do at the sender side, and remain the
	same if they remain the same at the sender side. Fixes #565319.

2008-12-22  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps),
	(mxf_mpeg_create_caps):
	Add initial support for h.264 video (SMPTE RP2008).

2008-12-22  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve):
	* gst/mxf/mxfmetadata.h:
	If resolving a metadata object failed the first time return
	FALSE for a second mxf_metadata_base_resolve() call instead
	of TRUE.

2008-12-22  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxf.c:
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfd10.c:
	* gst/mxf/mxfdms1.c:
	* gst/mxf/mxfdms1.h:
	* gst/mxf/mxfmpeg.h:
	* gst/mxf/mxftypes.h:
	Cleanup of the includes.

2008-12-19  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/gstqtmux.c: (gst_qt_mux_change_state):
	Do not tempt or suggest to violate gst_collect_pads API specification.

2008-12-19  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/atoms.h:
	* gst/qtmux/descriptors.c:
	* gst/qtmux/descriptors.h:
	* gst/qtmux/fourcc.h:
	* gst/qtmux/ftypcc.h:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmux.h:
	* gst/qtmux/gstqtmuxmap.c:
	* gst/qtmux/gstqtmuxmap.h:
	* gst/qtmux/properties.c:
	* gst/qtmux/properties.h:
	Dual license qtmux LGPL/MIT.  Fixes #564232.

2008-12-19  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps),
	(mxf_aes3_create_caps):
	* gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
	* gst/mxf/mxfd10.c: (mxf_d10_create_caps):
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c: (mxf_metadata_source_package_resolve),
	(mxf_metadata_generic_picture_essence_descriptor_set_caps),
	(mxf_metadata_generic_sound_essence_descriptor_set_caps):
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps):
	Add mxf_metadata_generic_sound_essence_descriptor_set_caps() to
	set rate and channels and use this for all sound essence.

	Give some debug output when setting picture essence caps with
	invalid descriptor values.

	Fix height calculation from the frame layout a bit more and
	add a TODO to check if it's really correct now or if it needs
	more fixing (especially, does the framerate need adjustments?).

2008-12-18  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxf.c: (plugin_init):
	* gst/mxf/mxfvc3.c: (mxf_is_vc3_essence_track),
	(mxf_vc3_handle_essence_element), (mxf_vc3_create_caps),
	(mxf_vc3_init):
	* gst/mxf/mxfvc3.h:
	Add support for VC-3 (aka DNxHD essence, see SMPTE 2019-4).
	This is untested because of lack of sample files but should
	work fine.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init):
	Add appsrc and appsink documentation.

2008-12-17  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_chain):
	In push mode skip the run in again if we get buffers with
	an offset before the run in. This can happen on seeks for example.

2008-12-16  Stefan Kost  <ensonic@users.sf.net>

	* ext/celt/gstceltenc.c:
	* ext/celt/gstceltenc.h:
	* ext/metadata/gstmetadatamux.c:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmux.h:
	  Totally remove the internal taglists and fully use tagsetter. Fixes
	  various tag muxing issues.

2008-12-16  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* tests/check/elements/mxfdemux.c: (mxfdemux_suite):
	Increase the timeout to 3 minutes to prevent timeouts.

2008-12-16  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* tests/check/elements/mxfdemux.c: (_sink_event):
	* tests/check/elements/mxfdemux.h:
	Make sure the main loop is already running when handling the EOS
	event in pull mode. This works around a race condition that can
	happen if the element goes into PLAYING, handles everything and
	sends EOS before the main loop is started.

2008-12-16  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c: (mxf_is_aes_bwf_essence_track),
	(mxf_bwf_handle_essence_element),
	(mxf_aes3_handle_essence_element), (mxf_bwf_create_caps),
	(mxf_aes3_create_caps), (mxf_aes_bwf_create_caps),
	(mxf_aes_bwf_init):
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track),
	(mxf_alaw_handle_essence_element), (mxf_alaw_create_caps),
	(mxf_alaw_init):
	* gst/mxf/mxfalaw.h:
	* gst/mxf/mxfd10.c: (mxf_is_d10_essence_track),
	(mxf_d10_picture_handle_essence_element),
	(mxf_d10_sound_handle_essence_element), (mxf_d10_create_caps),
	(mxf_d10_init):
	* gst/mxf/mxfd10.h:
	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_handle_generic_container_essence_element):
	* gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track),
	(mxf_dv_dif_handle_essence_element), (mxf_dv_dif_create_caps),
	(mxf_dv_dif_init):
	* gst/mxf/mxfdv-dif.h:
	* gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track),
	(mxf_jpeg2000_handle_essence_element), (mxf_jpeg2000_create_caps),
	(mxf_jpeg2000_init):
	* gst/mxf/mxfjpeg2000.h:
	* gst/mxf/mxfmpeg.c: (mxf_is_mpeg_essence_track),
	(mxf_mpeg_video_handle_essence_element),
	(mxf_mpeg_audio_handle_essence_element), (mxf_mpeg_es_create_caps),
	(mxf_mpeg_create_caps), (mxf_mpeg_init):
	* gst/mxf/mxfmpeg.h:
	* gst/mxf/mxfparse.c: (mxf_essence_element_handler_register),
	(mxf_essence_element_handler_find):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxfup.c: (mxf_is_up_essence_track),
	(mxf_up_handle_essence_element), (mxf_up_rgba_create_caps),
	(mxf_up_create_caps), (mxf_up_init):
	* gst/mxf/mxfup.h:
	Implement an essence element handling registry and use this instead
	of an hardcoded, large if-then-else block.

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

	* tests/check/Makefile.am:
	Blacklist rfbsrc from the state change test.

2008-12-16  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/mxfdemux.c: (_pad_added), (_sink_chain),
	(_sink_event), (_create_sink_pad), (_create_src_pad_push),
	(_src_getrange), (_src_query), (_create_src_pad_pull),
	(GST_START_TEST), (mxfdemux_suite):
	* tests/check/elements/mxfdemux.h:
	Add push and pull mode unit test for mxfdemux.

2008-12-16  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-mxf.xml:
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	Add initial documentation for the MXF plugin and mxfdemux.

2008-12-16  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_resolve_references):
	* gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve_default),
	(mxf_metadata_base_class_init), (mxf_metadata_base_parse),
	(mxf_metadata_base_resolve), (mxf_metadata_new),
	(mxf_metadata_preface_resolve),
	(mxf_metadata_content_storage_resolve),
	(mxf_metadata_essence_container_data_resolve),
	(mxf_metadata_generic_package_resolve),
	(mxf_metadata_source_package_resolve),
	(mxf_metadata_track_resolve), (mxf_metadata_sequence_resolve),
	(mxf_metadata_dm_segment_resolve),
	(mxf_metadata_generic_descriptor_resolve),
	(mxf_metadata_multiple_descriptor_resolve):
	* gst/mxf/mxfmetadata.h:
	Rename MXFMetadataBase methods to reflect that they belong to
	MXFMetadataBase and not MXFMetadata.

2008-12-15  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	(mxf_metadata_wave_audio_essence_descriptor_handle_tag),
	(mxf_metadata_aes3_audio_essence_descriptor_handle_tag):
	* gst/mxf/mxfmetadata.c:
	(mxf_metadata_multiple_descriptor_handle_tag):
	Return FALSE when parsing a metadata tag failed.
	Remove some useless return value assignments.

2008-12-15  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxf.c: (plugin_init):
	* gst/mxf/mxfaes-bwf.c:
	(mxf_metadata_wave_audio_essence_descriptor_handle_tag),
	(mxf_metadata_wave_audio_essence_descriptor_init),
	(mxf_metadata_wave_audio_essence_descriptor_class_init),
	(mxf_metadata_aes3_audio_essence_descriptor_finalize),
	(mxf_metadata_aes3_audio_essence_descriptor_handle_tag),
	(mxf_metadata_aes3_audio_essence_descriptor_init),
	(mxf_metadata_aes3_audio_essence_descriptor_class_init),
	(mxf_is_aes_bwf_essence_track), (mxf_bwf_create_caps),
	(mxf_aes3_create_caps), (mxf_aes_bwf_create_caps),
	(mxf_aes_bwf_init):
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track),
	(mxf_alaw_create_caps), (mxf_alaw_init):
	* gst/mxf/mxfalaw.h:
	* gst/mxf/mxfd10.c: (mxf_is_d10_essence_track),
	(mxf_d10_create_caps), (mxf_d10_init):
	* gst/mxf/mxfd10.h:
	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_find_package), (gst_mxf_demux_choose_package),
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_handle_metadata),
	(gst_mxf_demux_handle_generic_container_essence_element),
	(gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query):
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track),
	(mxf_dv_dif_create_caps), (mxf_dv_dif_init):
	* gst/mxf/mxfdv-dif.h:
	* gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track),
	(mxf_jpeg2000_create_caps), (mxf_jpeg2000_init):
	* gst/mxf/mxfjpeg2000.h:
	* gst/mxf/mxfmetadata.c: (mxf_metadata_base_finalize),
	(mxf_metadata_base_handle_tag), (mxf_metadata_base_resolve),
	(mxf_metadata_base_init), (mxf_metadata_base_class_init),
	(mxf_metadata_parse), (mxf_metadata_resolve),
	(mxf_metadata_handle_tag), (mxf_metadata_class_init),
	(mxf_metadata_init), (mxf_metadata_init_types),
	(mxf_metadata_register), (mxf_metadata_new),
	(mxf_metadata_preface_finalize), (mxf_metadata_preface_handle_tag),
	(mxf_metadata_preface_resolve), (mxf_metadata_preface_init),
	(mxf_metadata_preface_class_init),
	(mxf_metadata_identification_finalize),
	(mxf_metadata_identification_handle_tag),
	(mxf_metadata_identification_init),
	(mxf_metadata_identification_class_init),
	(mxf_metadata_content_storage_finalize),
	(mxf_metadata_content_storage_handle_tag),
	(mxf_metadata_content_storage_resolve),
	(mxf_metadata_content_storage_init),
	(mxf_metadata_content_storage_class_init),
	(mxf_metadata_essence_container_data_handle_tag),
	(mxf_metadata_essence_container_data_resolve),
	(mxf_metadata_essence_container_data_init),
	(mxf_metadata_essence_container_data_class_init),
	(mxf_metadata_generic_package_finalize),
	(mxf_metadata_generic_package_handle_tag),
	(mxf_metadata_generic_package_resolve),
	(mxf_metadata_generic_package_init),
	(mxf_metadata_generic_package_class_init),
	(mxf_metadata_material_package_resolve),
	(mxf_metadata_material_package_init),
	(mxf_metadata_material_package_class_init),
	(mxf_metadata_source_package_finalize),
	(mxf_metadata_source_package_handle_tag),
	(mxf_metadata_source_package_resolve),
	(mxf_metadata_source_package_init),
	(mxf_metadata_source_package_class_init),
	(mxf_metadata_track_finalize), (mxf_metadata_track_handle_tag),
	(mxf_metadata_track_resolve), (mxf_metadata_track_init),
	(mxf_metadata_track_class_init),
	(mxf_metadata_track_identifier_parse),
	(mxf_metadata_timeline_track_handle_tag),
	(mxf_metadata_timeline_track_init),
	(mxf_metadata_timeline_track_class_init),
	(mxf_metadata_event_track_handle_tag),
	(mxf_metadata_event_track_init),
	(mxf_metadata_event_track_class_init),
	(mxf_metadata_static_track_init),
	(mxf_metadata_static_track_class_init),
	(mxf_metadata_sequence_finalize),
	(mxf_metadata_sequence_handle_tag),
	(mxf_metadata_sequence_resolve), (mxf_metadata_sequence_init),
	(mxf_metadata_sequence_class_init),
	(mxf_metadata_structural_component_handle_tag),
	(mxf_metadata_structural_component_init),
	(mxf_metadata_structural_component_class_init),
	(mxf_metadata_timecode_component_handle_tag),
	(mxf_metadata_timecode_component_init),
	(mxf_metadata_timecode_component_class_init),
	(mxf_metadata_source_clip_handle_tag),
	(mxf_metadata_source_clip_resolve),
	(mxf_metadata_source_clip_init),
	(mxf_metadata_source_clip_class_init),
	(mxf_metadata_dm_source_clip_finalize),
	(mxf_metadata_dm_source_clip_handle_tag),
	(mxf_metadata_dm_source_clip_init),
	(mxf_metadata_dm_source_clip_class_init),
	(mxf_metadata_dm_segment_finalize),
	(mxf_metadata_dm_segment_handle_tag),
	(mxf_metadata_dm_segment_resolve), (mxf_metadata_dm_segment_init),
	(mxf_metadata_dm_segment_class_init),
	(mxf_metadata_generic_descriptor_finalize),
	(mxf_metadata_generic_descriptor_handle_tag),
	(mxf_metadata_generic_descriptor_resolve),
	(mxf_metadata_generic_descriptor_init),
	(mxf_metadata_generic_descriptor_class_init),
	(mxf_metadata_file_descriptor_handle_tag),
	(mxf_metadata_file_descriptor_init),
	(mxf_metadata_file_descriptor_class_init),
	(mxf_metadata_generic_picture_essence_descriptor_handle_tag),
	(mxf_metadata_generic_picture_essence_descriptor_init),
	(mxf_metadata_generic_picture_essence_descriptor_class_init),
	(mxf_metadata_generic_picture_essence_descriptor_set_caps),
	(mxf_metadata_generic_sound_essence_descriptor_handle_tag),
	(mxf_metadata_generic_sound_essence_descriptor_init),
	(mxf_metadata_generic_sound_essence_descriptor_class_init),
	(mxf_metadata_cdci_picture_essence_descriptor_handle_tag),
	(mxf_metadata_cdci_picture_essence_descriptor_init),
	(mxf_metadata_cdci_picture_essence_descriptor_class_init),
	(mxf_metadata_rgba_picture_essence_descriptor_finalize),
	(mxf_metadata_rgba_picture_essence_descriptor_handle_tag),
	(mxf_metadata_rgba_picture_essence_descriptor_init),
	(mxf_metadata_rgba_picture_essence_descriptor_class_init),
	(mxf_metadata_generic_data_essence_descriptor_handle_tag),
	(mxf_metadata_generic_data_essence_descriptor_init),
	(mxf_metadata_generic_data_essence_descriptor_class_init),
	(mxf_metadata_multiple_descriptor_finalize),
	(mxf_metadata_multiple_descriptor_handle_tag),
	(mxf_metadata_multiple_descriptor_resolve),
	(mxf_metadata_multiple_descriptor_init),
	(mxf_metadata_multiple_descriptor_class_init),
	(mxf_metadata_locator_init), (mxf_metadata_locator_class_init),
	(mxf_metadata_text_locator_finalize),
	(mxf_metadata_text_locator_handle_tag),
	(mxf_metadata_text_locator_init),
	(mxf_metadata_text_locator_class_init),
	(mxf_metadata_network_locator_finalize),
	(mxf_metadata_network_locator_handle_tag),
	(mxf_metadata_network_locator_init),
	(mxf_metadata_network_locator_class_init):
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxfmpeg.c:
	(mxf_metadata_mpeg_video_descriptor_handle_tag),
	(mxf_metadata_mpeg_video_descriptor_init),
	(mxf_metadata_mpeg_video_descriptor_class_init),
	(mxf_is_mpeg_essence_track), (mxf_mpeg_es_create_caps),
	(mxf_mpeg_create_caps), (mxf_mpeg_init):
	* gst/mxf/mxfmpeg.h:
	* gst/mxf/mxfparse.c: (mxf_index_table_segment_parse),
	(mxf_local_tag_add_to_hash_table):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	* gst/mxf/mxfup.c: (mxf_is_up_essence_track), (mxf_up_create_caps),
	(mxf_up_init):
	* gst/mxf/mxfup.h:
	Convert the structural metadata to GstMiniObjects to make a lot of
	code easier and to make everything better extensible.
	Add a "registry" for metadata handlers to improve extensibility even
	more and to remove metadata type specifics from mxfdemux.

	Clean up a lot of parts and add some more NULL checks.

2008-12-15  Stefan Kost  <ensonic@users.sf.net>

	* ext/faac/gstfaac.c:
	  Fix default for outputformat property.

2008-12-15  Wim Taymans  <wim.taymans@collabora.co.uk>

	* examples/app/appsrc-ra.c: (feed_data):
	* examples/app/appsrc-seekable.c: (feed_data):
	* examples/app/appsrc-stream.c: (read_data):
	* examples/app/appsrc-stream2.c: (feed_data):
	Fix example to unref after emiting the push-buffer action.

	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	(gst_app_src_push_buffer_full), (gst_app_src_push_buffer),
	(gst_app_src_push_buffer_action):
	Don't take the ref on the buffer in push-buffer action because it's too
	awkward for bindings. Fixes #564482.

2008-12-13  Edward Hervey  <bilboed@gmail.com>

	* m4/Makefile.am:
	More .m4 that aren't shipped with gettext 0.17 anymore.

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

	* m4/Makefile.am:
	inttypes.m4 hasn't been available since gettext-0.15, and since we now
	require gettext >= 0.17 ... we can remove it from the list of files to
	dist.

2008-12-13  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_descriptive_metadata),
	(gst_mxf_demux_handle_klv_packet):
	Add a generic handler for descriptive metadata so we can get some
	debug output and let users file bugs for unsupport descriptive
	metadata schemes.

2008-12-12  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	* gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
	* gst/mxf/mxfjpeg2000.c:
	* gst/mxf/mxfmpeg.c:
	* gst/mxf/mxfup.c:
	Major update of the TODO lists. There's still much to do. 

2008-12-11  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_metadata_track),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_handle_metadata):
	* gst/mxf/mxfparse.c: (mxf_metadata_track_parse),
	(mxf_metadata_structural_component_parse),
	(mxf_metadata_structural_component_reset):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	Implement parsing of Event Tracks, Static Tracks, DM Segments
	and DM Source Clips as a preparation for descriptive metadata
	support. Next step is to implement SMPTE S380M, "Descriptive
	Metadata Scheme-1".

2008-12-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	Implement detection of the colorspace used by the
	JPEG2000 codestream. XYZ colorspace isn't supported by
	our decoders yet unfortunately.

2008-12-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfparse.c:
	(mxf_metadata_generic_picture_essence_descriptor_set_caps):
	All frame layout values except 0 are for interlaced video,
	not only 1 and 2.

2008-12-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	(gst_mxf_demux_handle_primer_pack),
	(gst_mxf_demux_handle_metadata_preface),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_choose_package),
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_parse_footer_metadata),
	(gst_mxf_demux_handle_klv_packet):
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxftypes.h:
	Remove the concept of "final" metadata, broken files have updated
	metadata in following partitions even if the current partition
	is closed and complete.

	If there's a second primer pack inside a partition ignore the second
	one instead of throwing an error.

	Store the type of a track (audio, video, timestamp, ...) inside the
	track struct.

	Post no-more-pads only once for a stream and not a second time
	when switching the currently playing package.

	When updating all streams make sure that we could select and find
	a package instead of dereferencing NULL.

	Allow descriptive metadata inside metadata parts of a file when
	pulling the footer metadata too.

	Only switch the currently playing package if a new one was chosen
	and the metadata is in a resolved state. If the latter isn't true
	postpone the switch until the metadata is resolved.

	Pull the footer metadata directly after parsing the header partition
	pack if it's not closed or not complete instead of waiting until
	the next KLV packet.

2008-12-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfup.c: (mxf_up_handle_essence_element):
	Don't create a subbuffer, instead just change the buffer metadata
	of the input buffer.

2008-12-07  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_pad_finalize),
	(gst_mxf_demux_pad_class_init), (gst_mxf_demux_pad_init),
	(gst_mxf_demux_remove_pad), (gst_mxf_demux_reset_metadata),
	(gst_mxf_demux_combine_flows),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_handle_generic_container_essence_element),
	(gst_mxf_demux_pull_random_index_pack), (gst_mxf_demux_loop),
	(gst_mxf_demux_src_query):
	Rename GstMXFPad to GstMXFDemuxPad to prevent name clashes
	with the GstMXFMuxPad in the muxer (later).

	Pull the random index pack only directly after skipping the run
	in and don't allocate an array for it if parsing it failed.

2008-12-07  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfd10.c: (mxf_d10_sound_handle_essence_element),
	(mxf_d10_create_caps):
	Use the mapping data for storing the channel count and the
	width instead of parsing caps for every buffer.

2008-12-07  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfup.c: (mxf_up_handle_essence_element),
	(mxf_up_rgba_create_caps):
	Handle the image start and end offsets, otherwise we output
	too large image buffers.

2008-12-07  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps):
	Set codec name tags for the MPEG audio essence.

2008-12-07  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_update_streams):
	* gst/mxf/mxftypes.h:
	* gst/mxf/mxfup.c: (mxf_is_up_essence_track),
	(mxf_up_handle_essence_element), (mxf_up_rgba_create_caps),
	(mxf_up_create_caps):
	* gst/mxf/mxfup.h:
	Add initial support for uncompressed video essence (SMPTE S384M).
	
	* gst/mxf/mxfparse.c:
	(mxf_metadata_rgba_picture_essence_descriptor_handle_tag),
	(mxf_metadata_rgba_picture_essence_descriptor_reset):
	Fix parsing of the RGBA descriptor and add support for parsing
	the pixel layout.

2008-12-06  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_parse_footer_metadata):
	The previous partition field of the partition is relative
	to the current partition and not to the offset of the header
	partition.

2008-12-06  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfd10.c: (mxf_d10_sound_handle_essence_element):
	Document decoding of the AES3 data and also skip the 32 bit
	header in the beginning of every buffer, otherwise we get
	one broken audio channel.

2008-12-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	(gst_mxf_demux_handle_metadata_generic_data_essence_descriptor),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_handle_metadata):
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfparse.c:
	(mxf_metadata_generic_data_essence_descriptor_handle_tag),
	(mxf_metadata_generic_data_essence_descriptor_reset):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	Implement parsing of the generic data essence descriptor.

2008-12-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_resolve_references):
	Generalize some lines of codes that are more or less the same
	by a macro.

2008-12-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Apparently AC_CONFIG_MACRO_DIR breaks when using more
	than one macro directory, reverting last change.

2008-12-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Set AC_CONFIG_MACRO_DIR to common/m4 to point autoconf to
	our M4 macros.

2008-12-04  Michael Smith <msmith@songbirdnest.com>

	* gst/selector/gstinputselector.c:
	  Ensure we emit notify::active-pad when auto-selecting a pad
	  due to it having activity and us not having an existing active
	  pad. Fixes #563147

2008-12-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_resolve_references):
	* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
	* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	Coding style fixes.

	* gst/mxf/mxfmpeg.c: (mxf_mpeg_audio_handle_essence_element),
	(mxf_mpeg_es_create_caps), (mxf_mpeg_create_caps):
	Add support for MPEG, AC3, DTS audio.

2008-12-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_generic_container_essence_element):
	Ignore zero sized essence elements. They're often inserted
	to fulfill the streaming requirements.

2008-12-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfparse.c:
	(mxf_metadata_generic_picture_essence_descriptor_set_caps):
	Fix setting of the height/width and PAR of video streams.

2008-12-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxfd10.c: (mxf_is_d10_essence_track),
	(mxf_d10_picture_handle_essence_element),
	(mxf_d10_sound_handle_essence_element), (mxf_d10_create_caps):
	* gst/mxf/mxfd10.h:
	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_update_streams):
	Add support for SMPTE D10 essence (SMPTE 386M).

	* gst/mxf/mxfparse.c:
	(mxf_metadata_generic_picture_essence_descriptor_set_caps):
	Don't set width/height and PAR on the caps as those values are
	wrong for most files (height is sometimes the height of a field
	and aspect ratio is some random value).

	* gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps),
	(mxf_aes3_create_caps):
	Fix calculation of block align if it isn't set in the descriptor.

2008-12-03  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	(mxf_metadata_aes3_audio_essence_descriptor_handle_tag),
	(mxf_metadata_aes3_audio_essence_descriptor_reset),
	(mxf_aes3_handle_essence_element), (mxf_bwf_create_caps),
	(mxf_aes3_create_caps), (mxf_aes_bwf_create_caps):
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	(gst_mxf_demux_handle_metadata_aes3_audio_essence_descriptor),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_handle_metadata):
	* gst/mxf/mxfdemux.h:
	Add support for AES3 audio (SMPTE 382M).

	* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
	* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	Fix coding style.

2008-12-03  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_generic_container_essence_element):
	Improve debugging a bit.

2008-12-03  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvparse.c: (FLV_GET_STRING):
	Check if strings are valid UTF8 before using them.

2008-12-03  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfparse.c:
	Remove FIXME, zero-ULs and UMIDs are really invalid and we can
	use them as "unset" value.

2008-12-03  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_base_init):
	Use a single "track_%u" src pad template and use the track ID
	of the playback package for the pad name instead of the track ID
	of the source package, as the latter could be the same for
	more than one track if they're in different packages.

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

	* ext/jp2k/gstjasperenc.c: Some compilers complain about
	  uninitialized variable; add a g_assert_not_reached()

2008-12-01  Tim-Philipp Müller  <tim.muller at collabora co uk>

	Patch by: 이문형 <iwings at gmail dot com>

	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_push_buffer):
	  Don't forget to release the lock again if we bail out because some
	  pad is flushing or we've reached EOS, otherwise things will lock up
	  next time _push_buffer() is called (#562802).

2008-12-01  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c: (build_jp2h_extension):
	Fix mj2 sample description metadata construction.

2008-12-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	Use new image/x-jpc caps for the raw JPEG2000 codestream.
	For now assume sRGB as colorspace, has to be read from the descriptor
	somehow later.

2008-12-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_sink_setcaps):
	* ext/jp2k/gstjasperenc.c: (gst_jasper_enc_reset),
	(gst_jasper_enc_set_src_caps), (gst_jasper_enc_init_encoder),
	(gst_jasper_enc_sink_setcaps), (gst_jasper_enc_get_data):
	* ext/jp2k/gstjasperenc.h:
	Add image/x-jpc caps name for real, raw JPEG2000 codestream data.
	In 0.11 we should merge image/x-j2c and image/x-jpc and simply drop
	the non-standard boxing in the jasper elements and handle it in
	qtmux/qtdemux.
	image/x-jpc will be used by mxfdemux later.

	Also add support for JP2 output in jp2kenc.

2008-12-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps):
	* gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_generic_container_essence_element):
	* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps):
	* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	* gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps),
	(mxf_mpeg_create_caps):
	Add the codec name, and if possible the avg bitrate, to the pad's taglist.

2008-12-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_choose_package):
	If the preface references a primary package use this as the default
	playback package unless one was specified by the "package" property.
	If there's no preface primary package still try to use the first
	material package.

2008-11-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_resolve_references):
	If there's no descriptor for the track in the track's source
	package and there's a single descriptor without a linked track
	assume that it belongs to this track.

2008-11-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track):
	* gst/mxf/mxfalaw.h:
	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_update_streams):
	* gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track):
	* gst/mxf/mxfjpeg2000.h:
	* gst/mxf/mxfmpeg.c: (mxf_is_mpeg_essence_track),
	(mxf_mpeg_es_create_caps), (mxf_mpeg_create_caps):
	* gst/mxf/mxfmpeg.h:
	Some random cleanup.

2008-11-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_remove_pads),
	(gst_mxf_demux_reset), (gst_mxf_demux_find_package),
	(gst_mxf_demux_choose_package),
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_set_property),
	(gst_mxf_demux_get_property), (gst_mxf_demux_finalize),
	(gst_mxf_demux_class_init):
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfparse.c: (mxf_umid_from_string):
	* gst/mxf/mxfparse.h:
	Add property to select the top-level source package or material
	package that should be used for playback.

2008-11-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_random_index_pack):
	Make sure that demux->offset has the correct value before
	calling any gst_mxf_demux_handle_* functions.

2008-11-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps):
	* gst/mxf/mxfmpeg.c: (mxf_mpeg_video_create_caps):
	Set the correct MPEG video version if possible and add support
	for MPEG4 video, including codec_data.

2008-11-29  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_update_streams):
	* gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_video_essence_track),
	(mxf_jpeg2000_handle_essence_element), (mxf_jpeg2000_create_caps):
	* gst/mxf/mxfjpeg2000.h:
	Add initial support for JPEG2000 encoded video essence.

	* gst/mxf/mxfparse.c:
	(mxf_metadata_generic_picture_essence_descriptor_set_caps):
	Set the framerate in the video caps.

2008-11-29  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_sink_setcaps):
	Don't unref the element instance if we don't own a reference.

2008-11-29  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: Cygwin Ports maintainer
	          <yselkowitz at users dot sourceforge dot net>

	* autogen.sh:
	* configure.ac:
	Require gettext 0.17 because older versions don't mix with libtool
	2.2. At build time an older gettext version will still work.
	Fixes bug #556091.

2008-11-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_random_index_pack):
	Only try to pull the random index pack at the end of file one time
	and not for every single packet if it fails.

2008-11-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps):
	* gst/mxf/mxfalaw.c: (mxf_is_alaw_audio_essence_track),
	(mxf_alaw_handle_essence_element), (mxf_alaw_create_caps):
	* gst/mxf/mxfalaw.h:
	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_update_streams):
	Add support for A-Law encoded audio essence (SMPTE 388M and 382M).

2008-11-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset),
	(gst_mxf_demux_handle_index_table_segment):
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfparse.c: (mxf_index_table_segment_parse),
	(mxf_index_table_segment_reset):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	Implement parsing of index table segments, which will later be
	used for seeking.

2008-11-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mplex.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* gst/audioresample/gstaudioresample.c:
	Update audioresample documentation for the new element name.

2008-11-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/audioresample/gstaudioresample.c:
	And now also update the debug category from audioresample
	to legacyresample.

2008-11-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Remove speexresample from the build system too.

2008-11-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/speexresample/Makefile.am:
	* gst/speexresample/README:
	* gst/speexresample/arch.h:
	* gst/speexresample/fixed_arm4.h:
	* gst/speexresample/fixed_arm5e.h:
	* gst/speexresample/fixed_bfin.h:
	* gst/speexresample/fixed_debug.h:
	* gst/speexresample/fixed_generic.h:
	* gst/speexresample/gstspeexresample.c:
	* gst/speexresample/gstspeexresample.h:
	* gst/speexresample/resample.c:
	* gst/speexresample/resample_sse.h:
	* gst/speexresample/speex_resampler.h:
	* gst/speexresample/speex_resampler_double.c:
	* gst/speexresample/speex_resampler_float.c:
	* gst/speexresample/speex_resampler_int.c:
	* gst/speexresample/speex_resampler_wrapper.h:
	* tests/check/elements/speexresample.c:
	Remove old speexresample files.

2008-11-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* docs/plugins/inspect/plugin-speexresample.xml:
	Remove old file.

2008-11-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* docs/plugins/inspect/plugin-legacyresample.xml:
	Add missing file.

2008-11-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-dccp.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mythtv.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-oss4.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* gst/audioresample/gstaudioresample.c: (plugin_init):
	* gst/audioresample/Makefile.am:
	* tests/check/Makefile.am:
	* tests/check/elements/audioresample.c: (setup_audioresample),
	(GST_START_TEST):
	Integrate the moved audioresample into the build system and
	rename it to legacyresample. Fixes bug #558124.

2008-11-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset),
	(gst_mxf_demux_handle_random_index_pack),
	(gst_mxf_demux_pull_random_index_pack), (gst_mxf_demux_loop):
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfparse.c: (mxf_random_index_pack_parse):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	Implement parsing of the random index pack, which provides a seek
	table (including body sid) to the start of partition packs.
	Later this will be used for reading all index table segments of
	the complete file efficiently.

2008-11-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/Makefile.am:
	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_handle_klv_packet):
	* gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track),
	(mxf_dv_dif_handle_essence_element), (mxf_dv_dif_create_caps):
	* gst/mxf/mxfdv-dif.h:
	* gst/mxf/mxfparse.c: (mxf_is_descriptive_metadata):
	* gst/mxf/mxfparse.h:
	Add fundamental support for DV-DIF essence streams.

	Handle descriptive metadata packets as metadata packets.

2008-11-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset),
	(gst_mxf_demux_handle_klv_packet):
	* gst/mxf/mxfdemux.h:
	Only try to pull the footer metadata once and not on every KLV packet
	if it failed before.

2008-11-26  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c: (obtain_source),
	(rtp_session_create_source), (rtp_session_process_rtp),
	(rtp_session_process_sr), (rtp_session_process_rr),
	(rtp_session_process_sdes), (rtp_session_process_bye):
	Make obtain_source return an aditional ref so that we don't lose our ref
	to it when a session cleanup occurs when we are emiting a signal.
	Emit the on_new_ssrc signal for the CSRC, not the SSRC.
	Fixes #562319.

2008-11-26  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_reset_sync),
	(gst_rtp_bin_clear_pt_map):
	Reset the sync parameters when clearing the payload type map too.
	Fixes #562312.

2008-11-26  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (get_client),
	(gst_rtp_bin_reset_sync), (gst_rtp_bin_associate),
	(gst_rtp_bin_handle_sync), (create_stream),
	(gst_rtp_bin_class_init), (new_ssrc_pad_found):
	* gst/rtpmanager/gstrtpbin.h:
	Remove a lot of per stream state that is not needed and pass new info in
	the method call.
	Add signal to reset sync parameters.
	Avoid parsing the caps to get a clock_base, we get this from the sync
	signal now. 

2008-11-26  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_pad_init),
	(gst_mxf_demux_reset_metadata), (gst_mxf_demux_combine_flows),
	(gst_mxf_demux_handle_generic_container_essence_element):
	Properly combine flow returns of the source pads.

	Improve debugging and reset pad fields together with the
	metadata to prevent invalid memory references.

	* gst/mxf/mxfparse.c: (mxf_metadata_preface_parse):
	Fix typo.

2008-11-26  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	(mxf_metadata_wave_audio_essence_descriptor_reset):
	* gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_reset):
	* gst/mxf/mxfparse.c: (mxf_metadata_file_descriptor_handle_tag),
	(mxf_metadata_file_descriptor_reset),
	(mxf_metadata_generic_sound_essence_descriptor_reset),
	(mxf_metadata_generic_picture_essence_descriptor_reset),
	(mxf_metadata_cdci_picture_essence_descriptor_reset),
	(mxf_metadata_rgba_picture_essence_descriptor_reset),
	(mxf_metadata_multiple_descriptor_reset):
	* gst/mxf/mxfparse.h:
	When memset'ing the descriptors to zeroes only touch the part
	of this descriptor, not it's parent type.

	Set correct default values for all metadata fields.

2008-11-25  David Schleef  <ds@schleef.org>

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	  Enable latency code, since we're definitely after 0.10.12

2008-11-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Jonathan Matthew <notverysmart at gmail dot com>

	* ext/spc/gstspc.c: (gst_spc_dec_sink_event), (spc_setup):
	Post an error and push EOS when we can't start playback for some reason.
	also avoid a crash when fed an empty file. Fixes #480543.

2008-11-25  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* tests/check/elements/speexresample.c: (test_pipeline):
	Make unit test again faster to prevent timeouts with valgrind.

2008-11-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_event_send_rtcp_src):
	Fix event leak.

2008-11-25  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfmpeg.c: (mxf_mpeg_video_create_caps):
	* gst/mxf/mxfparse.c:
	(mxf_metadata_generic_picture_essence_descriptor_set_caps):
	* gst/mxf/mxfparse.h:
	Set video dimensions and pixel aspect ratio on the caps.

2008-11-25  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
	(gst_mxf_demux_handle_metadata_generic_descriptor),
	(gst_mxf_demux_handle_metadata_file_descriptor),
	(gst_mxf_demux_handle_metadata_multiple_descriptor),
	(gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor),
	(gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor),
	(gst_mxf_demux_handle_metadata_rgba_picture_essence_descriptor),
	(gst_mxf_demux_handle_metadata_mpeg_video_descriptor),
	(gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor),
	(gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_handle_metadata):
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfparse.c:
	(mxf_metadata_rgba_picture_essence_descriptor_handle_tag),
	(mxf_metadata_rgba_picture_essence_descriptor_reset):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	Add initial parsing of RGBA descriptors.

	Don't initialize descriptor GArray with zeroes.

2008-11-25  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	(mxf_metadata_wave_audio_essence_descriptor_handle_tag):
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_metadata_generic_descriptor),
	(gst_mxf_demux_handle_metadata_file_descriptor),
	(gst_mxf_demux_handle_metadata_multiple_descriptor),
	(gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor),
	(gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor),
	(gst_mxf_demux_handle_metadata_mpeg_video_descriptor),
	(gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor),
	(gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_handle_metadata):
	* gst/mxf/mxfmpeg.c:
	(mxf_metadata_mpeg_video_descriptor_handle_tag):
	* gst/mxf/mxfmpeg.h:
	* gst/mxf/mxfparse.c: (mxf_partition_pack_parse),
	(mxf_primer_pack_parse), (mxf_metadata_preface_parse),
	(mxf_metadata_identification_parse),
	(mxf_metadata_content_storage_parse),
	(mxf_metadata_essence_container_data_parse),
	(mxf_metadata_generic_package_parse), (mxf_metadata_track_parse),
	(mxf_metadata_sequence_parse),
	(mxf_metadata_structural_component_parse),
	(mxf_metadata_descriptor_parse),
	(mxf_metadata_generic_descriptor_handle_tag),
	(mxf_metadata_generic_descriptor_reset),
	(mxf_metadata_file_descriptor_handle_tag),
	(mxf_metadata_generic_sound_essence_descriptor_handle_tag),
	(mxf_metadata_generic_picture_essence_descriptor_handle_tag),
	(mxf_metadata_cdci_picture_essence_descriptor_handle_tag),
	(mxf_metadata_multiple_descriptor_handle_tag),
	(mxf_metadata_locator_parse):
	* gst/mxf/mxfparse.h:
	Rewrite parsing of descriptors to go top-down instead of bottom-up
	which makes it possible to have the buffer data non-writable.

	Improve debugging a bit.

2008-11-24  Michael Smith <msmith@songbirdnest.com>

	* configure.ac:
	* sys/Makefile.am:
	  Add new directory for new acmmp3dec plugin
	* sys/acmenc/Makefile.am:
	* sys/acmenc/acmmp3dec.c:
	  Add new acmmp3dec plugin, which uses ACM for decoding mp3 on windows.

2008-11-24  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c:
	(gst_mxf_demux_handle_generic_container_essence_element):
	Make sure to only output generic container essence elements
	for a track if the body SID of the surrounding partition is
	the same as the body SID of the track's source package.

2008-11-24  Julien Moutte  <julien@fluendo.com>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_find_offset),
	(gst_flv_demux_handle_seek_push), (gst_flv_demux_handle_seek_pull):
	Fix non key unit seeking by always going to the previous keyframe. Mark
	the discont flag when we've moved in the file.
	* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate): MP3 streams
	are parsed already, makes autoplugged pipelines shorter.

2008-11-24  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: vanista <vanista at gmail dot com>

	* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
	* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new):
	Add initial support for muxing AC3/DTS/LPCM into MPEG TS.
	Fixes bug #550613.

2008-11-24  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_klv_packet),
	(gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_chain):
	* gst/mxf/mxfparse.c: (mxf_product_version_parse),
	(mxf_metadata_identification_parse),
	(mxf_metadata_content_storage_parse):
	Allow non-MXF KLV packets and just drop them instead of throwing
	an error and handle 9 byte product versions as written by Avid.
	This doesn't add support for the non-standard Avid MXF files
	but at least makes it possible to parse their header metadata.

	Fix a copy&paste error in debug output.

2008-11-23  Stefan Kost  <ensonic@users.sf.net>

	* ext/jack/gstjackaudiosink.c:
	* ext/jack/gstjackaudiosrc.c:
	  Query port latencies for sink/src delays.

	* ext/jack/gstjackbin.c:
	  No printf please.

2008-11-23  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_klv_packet),
	(gst_mxf_demux_chain):
	Actually we support a length stored inside 8 bytes but it must
	be smaller than G_MAXUINT for GstBuffer.

2008-11-23  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: Tal Shalif <tshalif at nargila dot org>

	* ext/resindvd/resindvdsrc.c:
	(rsn_dvdsrc_prepare_streamsinfo_event):
	Fix format string. Fixes bug #561992.

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

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(rtp_session_init), (rtp_session_set_property),
	(rtp_session_get_property):
	Add property to configure the RTCP MTU.

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

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(copy_source), (rtp_session_create_sources),
	(rtp_session_get_property):
	Add G_PARAM_STATIC_STRINGS.
	Add property to return a GValueArray of all known RTPSources in the
	session.

	* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	(rtp_source_create_sdes), (rtp_source_set_property),
	(rtp_source_get_property):
	Remove properties to set the various SDES items, an application is never
	supposed to change the RTPSource data.
	Change the SDES getter properties to one SDES property that returns all
	SDES items in a GstStructure.

2008-11-22  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* tests/check/elements/speexresample.c: (GST_START_TEST):
	Make the unit test a bit faster to prevent timeouts, especially
	with valgrind.

2008-11-22  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfdemux.c: (gst_mxf_demux_push_src_event),
	(gst_mxf_demux_handle_header_metadata_update_streams):
	* gst/mxf/mxfparse.c: (gst_mxf_ul_hash),
	(mxf_partition_pack_parse), (mxf_primer_pack_parse),
	(mxf_metadata_preface_parse), (mxf_metadata_content_storage_parse),
	(mxf_metadata_generic_package_parse),
	(mxf_metadata_sequence_parse),
	(mxf_metadata_generic_descriptor_parse),
	(mxf_metadata_multiple_descriptor_parse):
	Some more format string fixes and usage of guint instead of gint
	where negative values don't make sense.

2008-11-22  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mxf/mxfaes-bwf.c:
	(mxf_metadata_wave_audio_essence_descriptor_parse):
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_range),
	(gst_mxf_demux_pull_klv_packet),
	(gst_mxf_demux_parse_footer_metadata),
	(gst_mxf_demux_handle_klv_packet),
	(gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_chain):
	* gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse):
	* gst/mxf/mxfmpeg.h:
	* gst/mxf/mxfparse.c: (mxf_timestamp_parse), (mxf_fraction_parse),
	(mxf_utf16_to_utf8), (mxf_product_version_parse),
	(mxf_partition_pack_parse), (mxf_primer_pack_parse),
	(mxf_local_tag_parse), (mxf_metadata_preface_parse),
	(mxf_metadata_identification_parse),
	(mxf_metadata_content_storage_parse),
	(mxf_metadata_essence_container_data_parse),
	(mxf_metadata_generic_package_parse), (mxf_metadata_track_parse),
	(mxf_metadata_sequence_parse),
	(mxf_metadata_structural_component_parse),
	(mxf_metadata_generic_descriptor_parse),
	(mxf_metadata_file_descriptor_parse),
	(mxf_metadata_generic_sound_essence_descriptor_parse),
	(mxf_metadata_generic_picture_essence_descriptor_parse),
	(mxf_metadata_cdci_picture_essence_descriptor_parse),
	(mxf_metadata_multiple_descriptor_parse),
	(mxf_metadata_locator_parse):
	* gst/mxf/mxfparse.h:
	Use guint instead of guint64 or gsize for all buffer sizes and
	use correct format strings for them. Only local tag set sizes
	are still guint16 as they can't be larger.

	Only allow KLV packets of sizes below 1<<32 as GStreamer only uses
	guint for buffer sizes. The MXF standard allows packet sizes up
	to 1<<64.

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

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
	Also unref the target pad for unknown pads.

2008-11-22  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/dccp/gstdccp.c: (gst_dccp_socket_write):
	Use G_GSIZE_FORMAT instead of "%u" for a size_t variable in
	the format string to prevent a compiler warning.

2008-11-21  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Olivier Crete <tester at tester dot ca>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
	Release the right pads on rtpbin. Fixes #561752.

2008-11-21  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_class_init), (gst_speex_resample_set_property),
	(gst_speex_resample_get_property):
	Add a "filter-length" property that maps to the quality values
	for compatibilty with audioresample.

2008-11-21  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Remove the "experimental" flag from the deinterlace2 plugin.

2008-11-21  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/mxf/Makefile.am:
	* gst/mxf/mxf.c: (plugin_init):
	* gst/mxf/mxfaes-bwf.c:
	(mxf_metadata_wave_audio_essence_descriptor_parse),
	(mxf_metadata_wave_audio_essence_descriptor_reset),
	(mxf_is_aes_bwf_essence_track), (mxf_bwf_handle_essence_element),
	(mxf_bwf_create_caps), (mxf_aes_bwf_create_caps):
	* gst/mxf/mxfaes-bwf.h:
	* gst/mxf/mxfdemux.c: (gst_mxf_pad_finalize),
	(gst_mxf_pad_class_init), (gst_mxf_pad_init),
	(gst_mxf_demux_flush), (gst_mxf_demux_remove_pad),
	(gst_mxf_demux_reset_mxf_state), (gst_mxf_demux_reset_metadata),
	(gst_mxf_demux_reset), (gst_mxf_demux_pull_range),
	(gst_mxf_demux_push_src_event),
	(gst_mxf_demux_handle_partition_pack),
	(gst_mxf_demux_handle_primer_pack),
	(gst_mxf_demux_handle_metadata_preface),
	(gst_mxf_demux_handle_metadata_identification),
	(gst_mxf_demux_handle_metadata_content_storage),
	(gst_mxf_demux_handle_metadata_essence_container_data),
	(gst_mxf_demux_handle_metadata_material_package),
	(gst_mxf_demux_handle_metadata_source_package),
	(gst_mxf_demux_handle_metadata_track),
	(gst_mxf_demux_handle_metadata_sequence),
	(gst_mxf_demux_handle_metadata_structural_component),
	(gst_mxf_demux_handle_metadata_generic_descriptor),
	(gst_mxf_demux_handle_metadata_file_descriptor),
	(gst_mxf_demux_handle_metadata_multiple_descriptor),
	(gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor),
	(gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor),
	(gst_mxf_demux_handle_metadata_mpeg_video_descriptor),
	(gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor),
	(gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor),
	(gst_mxf_demux_handle_metadata_locator),
	(gst_mxf_demux_handle_header_metadata_resolve_references),
	(gst_mxf_demux_handle_header_metadata_update_streams),
	(gst_mxf_demux_handle_metadata),
	(gst_mxf_demux_handle_generic_container_system_item),
	(gst_mxf_demux_handle_generic_container_essence_element),
	(gst_mxf_demux_handle_random_index_pack),
	(gst_mxf_demux_handle_index_table_segment),
	(gst_mxf_demux_pull_klv_packet),
	(gst_mxf_demux_parse_footer_metadata),
	(gst_mxf_demux_handle_klv_packet),
	(gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_loop),
	(gst_mxf_demux_chain), (gst_mxf_demux_src_event),
	(gst_mxf_demux_src_query_type), (gst_mxf_demux_src_query),
	(gst_mxf_demux_sink_activate), (gst_mxf_demux_sink_activate_push),
	(gst_mxf_demux_sink_activate_pull), (gst_mxf_demux_sink_event),
	(gst_mxf_demux_change_state), (gst_mxf_demux_finalize),
	(gst_mxf_demux_base_init), (gst_mxf_demux_class_init),
	(gst_mxf_demux_init):
	* gst/mxf/mxfdemux.h:
	* gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse),
	(mxf_metadata_mpeg_video_descriptor_reset),
	(mxf_is_mpeg_video_essence_track),
	(mxf_mpeg_video_handle_essence_element),
	(mxf_mpeg_video_create_caps):
	* gst/mxf/mxfmpeg.h:
	* gst/mxf/mxfparse.c: (mxf_is_mxf_packet), (mxf_is_partition_pack),
	(mxf_is_header_partition_pack), (mxf_is_body_partition_pack),
	(mxf_is_footer_partition_pack), (mxf_is_fill),
	(mxf_is_primer_pack), (mxf_is_metadata),
	(mxf_is_random_index_pack), (mxf_is_index_table_segment),
	(mxf_is_generic_container_system_item),
	(mxf_is_generic_container_essence_element),
	(mxf_is_generic_container_essence_container_label),
	(mxf_ul_is_equal), (mxf_ul_is_zero), (mxf_ul_to_string),
	(mxf_umid_is_equal), (mxf_umid_is_zero), (mxf_umid_to_string),
	(gst_mxf_ul_hash), (gst_mxf_ul_equal), (mxf_timestamp_parse),
	(mxf_timestamp_is_unknown), (mxf_timestamp_compare),
	(mxf_fraction_parse), (mxf_utf16_to_utf8),
	(mxf_product_version_parse), (mxf_partition_pack_parse),
	(mxf_partition_pack_reset), (_mxf_mapping_ul_free),
	(mxf_primer_pack_parse), (mxf_primer_pack_reset),
	(mxf_local_tag_parse), (gst_mxf_local_tag_free),
	(gst_metadata_add_custom_tag), (mxf_metadata_preface_parse),
	(mxf_metadata_preface_reset), (mxf_metadata_identification_parse),
	(mxf_metadata_identification_reset),
	(mxf_metadata_content_storage_parse),
	(mxf_metadata_content_storage_reset),
	(mxf_metadata_essence_container_data_parse),
	(mxf_metadata_essence_container_data_reset),
	(mxf_metadata_generic_package_parse),
	(mxf_metadata_generic_package_reset), (mxf_metadata_track_parse),
	(mxf_metadata_track_reset), (mxf_metadata_track_identifier_parse),
	(mxf_metadata_sequence_parse), (mxf_metadata_sequence_reset),
	(mxf_metadata_structural_component_parse),
	(mxf_metadata_structural_component_reset),
	(mxf_metadata_generic_descriptor_parse),
	(mxf_metadata_generic_descriptor_reset),
	(mxf_metadata_file_descriptor_parse),
	(mxf_metadata_file_descriptor_reset),
	(mxf_metadata_generic_sound_essence_descriptor_parse),
	(mxf_metadata_generic_sound_essence_descriptor_reset),
	(mxf_metadata_generic_picture_essence_descriptor_parse),
	(mxf_metadata_generic_picture_essence_descriptor_reset),
	(mxf_metadata_cdci_picture_essence_descriptor_parse),
	(mxf_metadata_cdci_picture_essence_descriptor_reset),
	(mxf_metadata_multiple_descriptor_parse),
	(mxf_metadata_multiple_descriptor_reset),
	(mxf_metadata_locator_parse), (mxf_metadata_locator_reset):
	* gst/mxf/mxfparse.h:
	* gst/mxf/mxftypes.h:
	Add first version of an MXF demuxer. Currently it supports
	MPEG video and raw audio and OP 1a/b/c.

2008-11-20  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	  Fix flushing/seeking problems returning error code.
	  Fix mp3 decoding with winXP (crashed randomly, occasionally).
	* sys/dshowdecwrapper/gstdshowvideodec.cpp:
	  Fix problems when framerate is missing from video.

2008-11-20  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c: (get_current_times),
	(rtcp_thread), (gst_rtp_session_chain_recv_rtp):
	Pass the running time to the session when processing RTP packets.
	Improve the time function to provide more info.

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(rtp_session_init), (update_arrival_stats),
	(rtp_session_process_rtp), (rtp_session_process_sdes),
	(rtp_session_process_rtcp), (session_start_rtcp),
	(rtp_session_on_timeout):
	* gst/rtpmanager/rtpsession.h:
	Mark the internal source with a flag.
	Use running_time instead of the more useless timestamp.
	Validate a source when a valid SDES has been received.
	Pass the current system time when processing SR packets.

	* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	(rtp_source_init), (rtp_source_create_stats),
	(rtp_source_get_property), (rtp_source_send_rtp),
	(rtp_source_process_rb), (rtp_source_get_new_rb),
	(rtp_source_get_last_rb):
	* gst/rtpmanager/rtpsource.h:
	Add property to get source stats.
	Mark params as STATIC_STRINGS.
	Calculate the bitrate at the sender SSRC.
	Avoid negative values in the round trip time calculations.

	* gst/rtpmanager/rtpstats.h:
	Update some docs and change some variable name to more closely reflect
	what it contains.

2008-11-20  Stefan Kost  <ensonic@users.sf.net>

	patch by: Leandro Melo de Sales <leandroal@gmail.com>

	* gst/dccp/gstdccp.c:
	* gst/dccp/gstdccp.h:
	* gst/dccp/gstdccpclientsink.c:
	* gst/dccp/gstdccpclientsink.h:
	* gst/dccp/gstdccpclientsrc.c:
	* gst/dccp/gstdccpserversink.c:
	* gst/dccp/gstdccpserversrc.c:
	* gst/dccp/gstdccpserversrc.h:
	  CodeStyle improvements and minor fixes to the DCCP plugin.
	  Fixes #553823.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain_rtcp):
	Initialize return value to fix compiler warning about uninitialized
	variable.

2008-11-19  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init):
	Mark signal arg as static scope.

2008-11-19  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	(gst_rtp_bin_handle_sync), (create_stream), (free_stream),
	(new_ssrc_pad_found):
	Remove internal sync pad, use signals instead to get lip-sync
	notifications.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_base_init),
	(gst_rtp_jitter_buffer_class_init),
	(gst_rtp_jitter_buffer_internal_links), (create_rtcp_sink),
	(remove_rtcp_sink), (gst_rtp_jitter_buffer_request_new_pad),
	(gst_rtp_jitter_buffer_release_pad),
	(gst_rtp_jitter_buffer_sink_rtcp_event),
	(gst_rtp_jitter_buffer_chain_rtcp),
	(gst_rtp_jitter_buffer_get_property):
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	Make it possible to send SR packets to the jitterbuffer.
	Check if the SR timestamps are valid by comparing them to the RTP
	timestamps.
	Signal the SR packet and the timing information to listeners.

	* gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
	(gst_rtp_ssrc_demux_rtcp_chain), (gst_rtp_ssrc_demux_src_query):
	Remove some unused code.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	(calculate_skew), (rtp_jitter_buffer_get_sync):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Keep track of the last seen RTP timestamp so that we can filter out
	invalid SR packets.

2008-11-18  Alessandro Decina  <alessandro.d@gmail.com>

	* ext/metadata/gstbasemetadata.c:
	Avoid deadlock during pad activation.
	Fixes #561241.

2008-11-17  David Schleef  <ds@schleef.org>

	* gst/qtmux/gstqtmux.c: Quiet a debugging message that I recently
	  added.

2008-11-17  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/rtpmanager/rtpsource.c: (get_clock_rate):
	Fix GST_DEBUG call to only have as many arguments as required
	by the format string. Fixes a compiler warning.

2008-11-17  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	(gst_rtp_bin_sync_chain), (create_stream), (new_ssrc_pad_found):
	Do not try to keep track of the clock-rate ourselves but simply get the
	value from the jitterbuffer. 

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain),
	(gst_rtp_jitter_buffer_get_sync):
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	Add some debug info.
	Pass the clock-rate to the jitterbuffer.
	Also pass the clock-rate along with the rtp timestamp when getting the
	sync parameters.

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	Fix some debug.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	(calculate_skew), (rtp_jitter_buffer_get_sync):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Keep track of clock-rate changes and return the clock-rate together with
	the rtp timestamps used for sync.
	Don't try to construct timestamps when we have no base_time.

	* gst/rtpmanager/rtpsource.c: (get_clock_rate):
	Request a new clock-rate when the payload type changes.
	Reset the jitter calculation when the clock-rate changes.

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

	* tests/check/elements/aacparse_data.h:
	* tests/check/elements/amrparse_data.h:
	  Add missing files.

2008-11-14  David Schleef  <ds@schleef.org>

	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmux.h:
	  Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part.

2008-11-14  David Schleef  <ds@schleef.org>

	* sys/qtwrapper/codecmapping.c: Add some of our favorite codecs.

2008-11-14  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/atoms.h:
	* gst/qtmux/descriptors.c:
	* gst/qtmux/descriptors.h:
	* gst/qtmux/fourcc.h:
	* gst/qtmux/ftypcc.h:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmux.h:
	* gst/qtmux/gstqtmuxmap.c:
	* gst/qtmux/gstqtmuxmap.h:
	* gst/qtmux/properties.c:
	* gst/qtmux/properties.h:
	Revert previous commit.

2008-11-14  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c:
	* gst/qtmux/atoms.h:
	* gst/qtmux/descriptors.c:
	* gst/qtmux/descriptors.h:
	* gst/qtmux/fourcc.h:
	* gst/qtmux/ftypcc.h:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmux.h:
	* gst/qtmux/gstqtmuxmap.c:
	* gst/qtmux/gstqtmuxmap.h:
	* gst/qtmux/properties.c:
	* gst/qtmux/properties.h:
	Dual license LGPL/MIT, as apparently supposed to.

2008-11-14  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/atoms.c: (build_esds_extension),
	(build_mov_aac_extension), (build_jp2h_extension),
	(build_codec_data_extension):
	* gst/qtmux/atoms.h:
	* gst/qtmux/fourcc.h:
	* gst/qtmux/gstqtmux.c: (gst_qt_mux_audio_sink_set_caps),
	(gst_qt_mux_video_sink_set_caps):
	* gst/qtmux/gstqtmuxmap.c: (gst_qt_mux_map_format_to_header):
	Cut detour in sample description extension construction.
	Also actually implement ISO JPEG2000 mj2 format.

2008-11-14  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps):
	Construct source caps in more conventional (and correct) manner.

2008-11-14  Christian Schaller <christian.schaller@collabora.co.uk>

	* configure.ac: remove experimental build check, -bad is experimental
	in itself and putting a plugin with a low rank, in the -bad sandbox
	module demanding people pass --enable-experimental to build is just
	like putting butter on lard (Rob tells me the English equivalent to
	that expression is 'over egging the pudding').
	* gst-plugins-bad.spec.in: add three latest plugin additions
	
2008-11-14  Stefan Kost  <ensonic@users.sf.net>

	* gst-libs/gst/play/.cvsignore:
	* gst-libs/gst/play/play.h:
	* gst-libs/gst/play/play.vcproj:
	  Remove cruft. This is not entered by make and its not even compilable.

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

	* ext/dirac/gstdiracenc.cc:
	Set pixel-aspect-ratio correctly in the encoder API, as well
	as some default gstreamerish colorspace properties.  Also,
	apparently, change a bunch of indentation.

2008-11-13  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/jp2k/Makefile.am:
	* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_class_init),
	(gst_jasper_dec_change_state):
	* ext/jp2k/gstjasperenc.c: (gst_jasper_enc_base_init),
	(gst_jasper_enc_class_init), (gst_jasper_enc_init),
	(gst_jasper_enc_reset), (gst_jasper_enc_set_src_caps),
	(gst_jasper_enc_init_encoder), (gst_jasper_enc_sink_setcaps),
	(gst_jasper_enc_get_data), (gst_jasper_enc_chain),
	(gst_jasper_enc_set_property), (gst_jasper_enc_get_property),
	(gst_jasper_enc_change_state):
	* ext/jp2k/gstjasperenc.h:
	* ext/jp2k/gstjp2k.c: (plugin_init):
	Add jp2kenc to jp2k plugin.

2008-11-13  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_init),
	(gst_jasper_dec_reset), (gst_jasper_dec_negotiate),
	(gst_jasper_dec_get_picture):
	* ext/jp2k/gstjasperdec.h:
	Make pad template caps reflect the supported formats.
	Add or modify some debug statements, and slightly simplify image
	passing to encoding library.

2008-11-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/aacparse/gstaacparse.c: (plugin_init):
	Don't autoplug aacparse until it works.

2008-11-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_jitter_buffer_sink_parse_caps),
	(gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain):
	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	(calculate_skew):
	Small cleanups and some more debug info.

2008-11-13  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/Makefile.am:
	* tests/check/elements/aacparse.c:
	* tests/check/elements/amrparse.c:
	  Add unit tests for new parsers.

2008-11-13  Stefan Kost  <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-aacparse.xml:
	* docs/plugins/inspect/plugin-amrparse.xml:
	  Update docs.

2008-11-13  Stefan Kost  <ensonic@users.sf.net>

	* gst/aacparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.c:
	  Fix baseparse type name.

2008-11-13  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* gst/aacparse/Makefile.am:
	* gst/aacparse/gstaacparse.c:
	* gst/aacparse/gstaacparse.h:
	* gst/aacparse/gstbaseparse.c:
	* gst/aacparse/gstbaseparse.h:
	* gst/amrparse/Makefile.am:
	* gst/amrparse/gstamrparse.c:
	* gst/amrparse/gstamrparse.h:
	* gst/amrparse/gstbaseparse.c:
	* gst/amrparse/gstbaseparse.h:
	  Add two new baseparse based parsers (aac and amr) from Bug #518857.

2008-11-12  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/rfbdecoder.c:
	Fix uninitialized warnings

2008-11-11  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* tests/check/Makefile.am:
	* tests/check/elements/qtmux.c: (setup_src_pad),
	(teardown_src_pad), (setup_qtmux), (cleanup_qtmux),
	(check_qtmux_pad), (GST_START_TEST), (qtmux_suite), (main):
	Add unit test for qtmux.

2008-11-11  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* gst/qtmux/gstqtmux.c: (gst_qt_mux_add_metadata_tags):
	Add some more safety/sanity checks in tag manipulation.

2008-11-10  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain):
	Also configure the next expected output seqnum when we get a seqnum-base
	on the caps.

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

	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsrc.c:
	* gst/h264parse/gsth264parse.c:
	 Wim, you're a bad boy. You don't want people to contact you or what?

2008-11-10  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/filter/gstiir.c:
	  Fix name tag.

2008-11-07  David Schleef  <ds@schleef.org>

	patch by: Thiago Sousa Santos <thiagossantos@gmail.com>

	* configure.ac:
	* gst/qtmux/Makefile.am:
	* gst/qtmux/atoms.c:
	* gst/qtmux/atoms.h:
	* gst/qtmux/descriptors.c:
	* gst/qtmux/descriptors.h:
	* gst/qtmux/fourcc.h:
	* gst/qtmux/ftypcc.h:
	* gst/qtmux/gstqtmux.c:
	* gst/qtmux/gstqtmux.h:
	* gst/qtmux/gstqtmuxmap.c:
	* gst/qtmux/gstqtmuxmap.h:
	* gst/qtmux/properties.c:
	* gst/qtmux/properties.h:
	  Copy qtmux from revision 148 of the gst-qtmux repository.
	  Fixes #550280.

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

	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	(gst_app_src_init), (gst_app_src_set_property),
	(gst_app_src_get_property), (gst_app_src_push_buffer):
	* gst-libs/gst/app/gstappsrc.h:
	Add is-live property.
	Add some more docs.

2008-11-06  Thijs Vermeir  <thijsvermeir@gmail.com>

	* configure.ac:
	* gst/librfb/Makefile.am:
	* gst/librfb/gstrfbsrc.c:
	Fix basic navigation events

2008-11-06  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace2_class_init), (gst_deinterlace2_init),
	(gst_deinterlace2_set_property), (gst_deinterlace2_get_property):
	Bring properties into this century.

2008-11-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Set filters in PAUSED or PLAYING.

2008-11-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegdemux/gstmpegtsdemux.c:
	Make private section pads have a caps set so they are not tried
	to be linked in parse_launch for example.

2008-11-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Josep Torra

	* gst/mpegdemux/gstmpegtsdemux.c:
	No need to reclaculate flush in this case.
	Fixes some bad decode errors introduced.

2008-11-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	Fix typo.

2008-11-06  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
	Fix RGB mask in caps

2008-11-05  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	Add Hextile encoding

2008-11-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Josep Torra

	* gst/mpegdemux/gstmpegtsdemux.c:
	Heuristic approach when resyncing.

2008-11-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Sebastian Pölsterl

	* gst/mpegdemux/gstmpegdesc.c:
	Length should be a guint8 not a gint.
	* gst/mpegdemux/mpegtspacketizer.c:
	Convert text to utf8 for each descriptor separately and not
	concatenate them first and convert after.
	
2008-11-04  Stefan Kost  <ensonic@users.sf.net>

	* gst/modplug/gstmodplug.cc:
	  Send tag event. Fixes #559286.

2008-11-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Sebastian Pölsterl

	* gst/mpegdemux/mpegtsparse.c:
	Fix another memleak.

2008-11-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Sebastian Pölsterl

	* gst/mpegdemux/mpegtspacketizer.c:
	* sys/dvb/gstdvbsrc.c:
	Fix memleaks.

2008-11-04  Stefan Kost  <ensonic@users.sf.net>

	* ext/alsaspdif/Makefile.am:
	* ext/amrwb/Makefile.am:
	* ext/apexsink/Makefile.am:
	* ext/arts/Makefile.am:
	* ext/artsd/Makefile.am:
	* ext/audiofile/Makefile.am:
	* ext/audioresample/Makefile.am:
	* ext/bz2/Makefile.am:
	* ext/cdaudio/Makefile.am:
	* ext/celt/Makefile.am:
	* ext/dc1394/Makefile.am:
	* ext/dirac/Makefile.am:
	* ext/directfb/Makefile.am:
	* ext/divx/Makefile.am:
	* ext/dts/Makefile.am:
	* ext/faac/Makefile.am:
	* ext/faad/Makefile.am:
	* ext/gsm/Makefile.am:
	* ext/hermes/Makefile.am:
	* ext/ivorbis/Makefile.am:
	* ext/jack/Makefile.am:
	* ext/jp2k/Makefile.am:
	* ext/ladspa/Makefile.am:
	* ext/lcs/Makefile.am:
	* ext/libfame/Makefile.am:
	* ext/libmms/Makefile.am:
	* ext/metadata/Makefile.am:
	* ext/mpeg2enc/Makefile.am:
	* ext/mplex/Makefile.am:
	* ext/musepack/Makefile.am:
	* ext/musicbrainz/Makefile.am:
	* ext/mythtv/Makefile.am:
	* ext/nas/Makefile.am:
	* ext/neon/Makefile.am:
	* ext/ofa/Makefile.am:
	* ext/polyp/Makefile.am:
	* ext/resindvd/Makefile.am:
	* ext/sdl/Makefile.am:
	* ext/shout/Makefile.am:
	* ext/snapshot/Makefile.am:
	* ext/sndfile/Makefile.am:
	* ext/soundtouch/Makefile.am:
	* ext/spc/Makefile.am:
	* ext/swfdec/Makefile.am:
	* ext/tarkin/Makefile.am:
	* ext/theora/Makefile.am:
	* ext/timidity/Makefile.am:
	* ext/twolame/Makefile.am:
	* ext/x264/Makefile.am:
	* ext/xine/Makefile.am:
	* ext/xvid/Makefile.am:
	* gst-libs/gst/app/Makefile.am:
	* gst-libs/gst/dshow/Makefile.am:
	* gst/aiffparse/Makefile.am:
	* gst/app/Makefile.am:
	* gst/audiobuffer/Makefile.am:
	* gst/bayer/Makefile.am:
	* gst/cdxaparse/Makefile.am:
	* gst/chart/Makefile.am:
	* gst/colorspace/Makefile.am:
	* gst/dccp/Makefile.am:
	* gst/deinterlace/Makefile.am:
	* gst/deinterlace2/Makefile.am:
	* gst/dvdspu/Makefile.am:
	* gst/festival/Makefile.am:
	* gst/filter/Makefile.am:
	* gst/flacparse/Makefile.am:
	* gst/flv/Makefile.am:
	* gst/games/Makefile.am:
	* gst/h264parse/Makefile.am:
	* gst/librfb/Makefile.am:
	* gst/mixmatrix/Makefile.am:
	* gst/modplug/Makefile.am:
	* gst/mpeg1sys/Makefile.am:
	* gst/mpeg4videoparse/Makefile.am:
	* gst/mpegdemux/Makefile.am:
	* gst/mpegtsmux/Makefile.am:
	* gst/mpegvideoparse/Makefile.am:
	* gst/mve/Makefile.am:
	* gst/nsf/Makefile.am:
	* gst/nuvdemux/Makefile.am:
	* gst/overlay/Makefile.am:
	* gst/passthrough/Makefile.am:
	* gst/pcapparse/Makefile.am:
	* gst/playondemand/Makefile.am:
	* gst/rawparse/Makefile.am:
	* gst/real/Makefile.am:
	* gst/rtjpeg/Makefile.am:
	* gst/rtpmanager/Makefile.am:
	* gst/scaletempo/Makefile.am:
	* gst/sdp/Makefile.am:
	* gst/selector/Makefile.am:
	* gst/smooth/Makefile.am:
	* gst/smoothwave/Makefile.am:
	* gst/speed/Makefile.am:
	* gst/speexresample/Makefile.am:
	* gst/stereo/Makefile.am:
	* gst/subenc/Makefile.am:
	* gst/tta/Makefile.am:
	* gst/vbidec/Makefile.am:
	* gst/videodrop/Makefile.am:
	* gst/videosignal/Makefile.am:
	* gst/virtualdub/Makefile.am:
	* gst/vmnc/Makefile.am:
	* gst/y4m/Makefile.am:
	* sys/acmenc/Makefile.am:
	* sys/cdrom/Makefile.am:
	* sys/dshowdecwrapper/Makefile.am:
	* sys/dshowsrcwrapper/Makefile.am:
	* sys/dvb/Makefile.am:
	* sys/dxr3/Makefile.am:
	* sys/fbdev/Makefile.am:
	* sys/oss4/Makefile.am:
	* sys/qcam/Makefile.am:
	* sys/qtwrapper/Makefile.am:
	* sys/vcd/Makefile.am:
	* sys/wininet/Makefile.am:
	* win32/common/config.h:
	  Don't install static libs for plugins. Fixes #550851 for -bad.

2008-11-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Sebastian Pölsterl
	
	* gst/mpegdemux/mpegtsparse.c:
	Fix memleak.

2008-11-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	based on patch by: Sebastian Pölsterl

	* sys/dvb/gstdvbsrc.c:
	Fix memleak.

2008-11-03  Jan Schmidt  <jan.schmidt@sun.com>

	* examples/scaletempo/.cvsignore:
	Add example to cvs ignores.

2008-11-03  Jan Schmidt  <jan.schmidt@sun.com>

	* sys/qtwrapper/audiodecoders.c:
	(open_decoder):
	Fix mismatched signedness compiler warning.

2008-11-03  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_convert_buffer):
	Add TODO at the top of the file for enabling SSE/ARM specific
	optimizations and choosing the fastest implementation at runtime.

	Add g_assert_not_reached() at two places that should really never
	be reached.

2008-11-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_check_discont):
	Fix format string and arguments.

	* gst/speexresample/resample_sse.h:
	Add missing file.

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

	* ext/resindvd/Makefile.am:
	  Dist the play scripts.

2008-11-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/speexresample/Makefile.am:
	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_base_init), (gst_speex_resample_get_funcs),
	(gst_speex_resample_convert_buffer), (_benchmark_int_float),
	(_benchmark_int_int), (_benchmark_integer_resampling),
	(plugin_init):
	* gst/speexresample/gstspeexresample.h:
	* gst/speexresample/resample.c:
	* gst/speexresample/speex_resampler_double.c:
	* gst/speexresample/speex_resampler_float.c:
	* gst/speexresample/speex_resampler_int.c:
	* gst/speexresample/speex_resampler_wrapper.h:
	Add missing headers to Makefile.am.

	Update copyright, years and my mail address.

	Benchmark the integer resampling implementation against the
	float implementation and use the faster one for 8/16 bit integer
	input. On most recent systems the floating point version is faster.

2008-10-31  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Use AC_TRY_COMPILE instead of AC_TRY_RUN as the result of the linking
	is what is interesting, not that it actually runs.
	Fixes cross-compilation and fixes bug #558639.

2008-10-30  Michael Smith <msmith@songbirdnest.com>

	* sys/qtwrapper/audiodecoders.c:
	  Add ALAC support.
	  Fix decode of mono AAC files created by itunes.
	  Set output format correctly (don't ask quicktime to
	  resample for us).
	  Use a larger decode buffer to avoid problems with large
	  ALAC packets.
	  Fix decode to loop until we have all output data.
	* sys/qtwrapper/qtutils.c:
	  Fix includes so we compile on more OSes.

2008-10-30  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* configure.ac:
	  Require at least Gtk 2.8.0 for the demos (that's the oldest I can
	  test with; I'm fairly certain Gtk 2.0.0 is not good enough any
	  longer); clean up some unused Gtk-related configure cruft.

	* examples/scaletempo/demo-gui.c:
	  Define Gtk 2.12 function to noop when compiling against older Gtk.

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

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_convert_buffer):
	The length for the buffer conversion function is the number of
	audio frames, i.e. we need to multiply it by the number of channels
	to get the number of values. Also spotted by the unit test after
	running in valgrind.

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

	* tests/check/elements/speexresample.c: (element_message_cb),
	(eos_message_cb), (test_pipeline), (GST_START_TEST),
	(speexresample_suite):
	Add pipeline unit tests for testing all supported formats with
	up/downsampling and different in/outrates.

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_push_drain), (gst_speex_resample_process):
	* gst/speexresample/speex_resampler_wrapper.h:
	Fix bugs identified by the testsuite.

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

	* gst/speexresample/gstspeexresample.c: (gst_speex_resample_stop),
	(gst_speex_resample_get_funcs),
	(gst_speex_resample_transform_size),
	(gst_speex_resample_convert_buffer),
	(gst_speex_resample_push_drain), (gst_speex_resample_process):
	* gst/speexresample/gstspeexresample.h:
	* gst/speexresample/speex_resampler_wrapper.h:
	Add support for int8, int24 and int32 input by converting internally
	to/from int16 or double.

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

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	Better fix for #546319 and similar cases by explicitly
	registering when we're in playing state or not.

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

	* ext/ladspa/gstladspa.c:
	  Whitespace.
	* ext/ladspa/gstsignalprocessor.c:
	  Add a FIXME:. not sure if this code does the forwarding correctly.

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

	* gst/speexresample/Makefile.am:
	* gst/speexresample/arch.h:
	* gst/speexresample/gstspeexresample.c: (gst_speex_resample_stop),
	(gst_speex_resample_get_unit_size), (gst_speex_resample_get_funcs),
	(gst_speex_resample_init_state), (gst_speex_resample_update_state),
	(gst_speex_resample_reset_state), (gst_speex_resample_parse_caps),
	(_gcd), (gst_speex_resample_transform_size),
	(gst_speex_resample_set_caps), (gst_speex_resample_push_drain),
	(gst_speex_resample_process), (gst_speex_resample_transform),
	(gst_speex_resample_query), (gst_speex_resample_set_property):
	* gst/speexresample/gstspeexresample.h:
	* gst/speexresample/resample.c:
	* gst/speexresample/speex_resampler.h:
	* gst/speexresample/speex_resampler_double.c:
	* gst/speexresample/speex_resampler_wrapper.h:
	* tests/check/elements/speexresample.c: (setup_speexresample),
	(test_perfect_stream_instance), (GST_START_TEST),
	(test_discont_stream_instance):
	Add support for double samples as input and refactor the usage
	of the different compilation flavors of the speex resampler.

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

	* gst/scaletempo/gstscaletempo.c:
	  Return the result of parent_class->event().

2008-10-30  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/audiobuffer/Makefile.am:
	* gst/audiobuffer/gstaudioringbuffer.c:
	(gst_int_ring_buffer_acquire), (gst_int_ring_buffer_release),
	(gst_int_ring_buffer_start), (gst_int_ring_buffer_base_init),
	(gst_int_ring_buffer_class_init), (gst_int_ring_buffer_init),
	(gst_int_ring_buffer_new), (gst_audio_ringbuffer_get_type),
	(gst_audio_ringbuffer_class_init), (gst_audio_ringbuffer_init),
	(gst_audio_ringbuffer_finalize), (gst_audio_ringbuffer_getcaps),
	(gst_audio_ringbuffer_setcaps), (gst_audio_ringbuffer_bufferalloc),
	(gst_audio_ringbuffer_handle_sink_event),
	(gst_audio_ringbuffer_render), (gst_audio_ringbuffer_chain),
	(gst_audio_ringbuffer_handle_src_event),
	(gst_audio_ringbuffer_handle_src_query),
	(gst_audio_ringbuffer_get_range),
	(gst_audio_ringbuffer_src_checkgetrange_function),
	(gst_audio_ringbuffer_sink_activate_push),
	(gst_audio_ringbuffer_src_activate_push),
	(gst_audio_ringbuffer_src_activate_pull),
	(gst_audio_ringbuffer_change_state),
	(gst_audio_ringbuffer_set_property),
	(gst_audio_ringbuffer_get_property), (plugin_init):
	Add first version of an audioringbuffer element that can be inserted in
	the pipeline to convert push-based upstream into a pull-based
	downstream.

2008-10-29  Michael Smith <msmith@songbirdnest.com>

	* gst/aiffparse/aiffparse.c:
	  AIFF is always signed, even for 8 bit.

2008-10-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init):
	Fix the docs.

2008-10-29  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Robin Stocker <robin at nibor dot org>

	* gst/real/gstrealvideodec.c: (gst_real_video_dec_setcaps):
	A RealVideo video inside a container (for example MKV) should use the
	PAR which is specified on the sinkpad caps. Fixes #558416.

2008-10-29  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/speexresample/gstspeexresample.c: (gst_speex_resample_start),
	(gst_speex_resample_get_unit_size),
	(gst_speex_resample_push_drain), (gst_speex_resample_event),
	(gst_speex_resample_check_discont), (gst_speex_resample_process),
	(gst_speex_resample_transform):
	* gst/speexresample/gstspeexresample.h:
	Rewrite timestamp tracking to make it more robust and guarantee
	a continous stream.

	* tests/check/Makefile.am:
	* tests/check/elements/speexresample.c: (setup_speexresample),
	(cleanup_speexresample), (fail_unless_perfect_stream),
	(test_perfect_stream_instance), (GST_START_TEST),
	(test_discont_stream_instance), (live_switch_alloc_only_48000),
	(live_switch_get_sink_caps), (live_switch_push),
	(speexresample_suite):
	Add unit tests for speexresample based on the audioresample unit tests.

2008-10-29  Jan Schmidt  <thaytan@noraisin.net>

	* ext/resindvd/resindvdsrc.c:
	Make sure to start the NAV packet processing when changing
	state to PLAYING  by passing a flag that indicates the state
	change is in progress.
	Fixes: #546319

2008-10-28  Stefan Kost  <ensonic@users.sf.net>

	* ext/resindvd/resin-play:
	  Remove $@ to fix parse_launch warning

	* ext/resindvd/resin-play2:
	  Add a version that uses deinterlace and xvimagesink.
	  

2008-10-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_get_unit_size),
	(gst_speex_resample_fixate_caps), (gst_speex_resample_init_state),
	(gst_speex_resample_update_state), (gst_speex_resample_parse_caps),
	(gst_speex_resample_transform_size), (gst_speex_resample_set_caps),
	(gst_speex_resample_push_drain), (gst_speex_resample_event),
	(gst_speex_resample_check_discont), (gst_speex_fix_output_buffer),
	(gst_speex_resample_process), (gst_speex_resample_transform),
	(gst_speex_resample_query), (gst_speex_resample_set_property):
	* gst/speexresample/gstspeexresample.h:
	Some random cleanup, add G_LIKELY and friends, use GST_DEBUG_OBJECT
	instead of GST_DEBUG, ...

2008-10-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_query):
	Implement position query in time format.

2008-10-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	(gst_flv_demux_loop), (gst_flv_demux_handle_seek_push),
	(gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event),
	(gst_flv_demux_dispose), (gst_flv_demux_init):
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp):
	Put the GstSegment directly into the instance struct instead of
	allocating and free'ing it again.

	Push tags already if only one pad was added, no need to wait for
	the second one.

	When generating our index set has_video and has_audio if we find
	video or audio in case the FLV header has incorrect data.

2008-10-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_class_init), (gst_speex_resample_fixate_caps),
	(gst_speex_resample_process):
	Fixate to the nearest supported rate instead of the first one.

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

	* gst/speexresample/README:
	* gst/speexresample/arch.h:
	* gst/speexresample/fixed_arm4.h:
	* gst/speexresample/fixed_arm5e.h:
	* gst/speexresample/fixed_bfin.h:
	* gst/speexresample/fixed_debug.h:
	* gst/speexresample/fixed_generic.h:
	* gst/speexresample/resample.c: (compute_func), (main), (sinc),
	(cubic_coef), (resampler_basic_direct_single),
	(resampler_basic_direct_double),
	(resampler_basic_interpolate_single),
	(resampler_basic_interpolate_double), (update_filter),
	(speex_resampler_init_frac), (speex_resampler_process_native),
	(speex_resampler_magic), (speex_resampler_process_float),
	(speex_resampler_process_int),
	(speex_resampler_process_interleaved_float),
	(speex_resampler_process_interleaved_int),
	(speex_resampler_set_rate_frac), (speex_resampler_skip_zeros),
	(speex_resampler_reset_mem):
	* gst/speexresample/speex_resampler.h:
	Update Speex resampler with latest version from Speex GIT.

2008-10-27  Michael Smith <msmith@songbirdnest.com>

	* gst/aiffparse/aiffparse.c:
	* gst/aiffparse/aiffparse.h:
	  Calculate width from depth correctly.
	  Read SSND header properly (fixes 24 bit AIFF reading).

2008-10-27  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c: (gst_x264_enc_init_encoder):
	Adapt to slightly modified x264 API.  Fixes #555238.

2008-10-27  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/faac/gstfaac.c: (gst_faac_sink_event):
	Prevent endless loop if buffer alloc error.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_chain),
	(gst_flv_demux_pull_tag), (gst_flv_demux_pull_header),
	(gst_flv_demux_create_index):
	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_script),
	(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	(gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type),
	(gst_flv_parse_header):
	* gst/flv/gstflvparse.h:
	Don't memcpy() all data we want to push downstream, instead just
	create subbuffers and push them downstream.

	Fix some minor memory leaks.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Require CVS of core for the last change.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/Makefile.am:
	Fix (non-critical) syntax error and add all required CFLAGS and LIBS.

	* gst/flv/gstflvparse.c: (FLV_GET_STRING),
	(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
	(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	(gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type):
	Rewrite the script tag parsing to make sure we don't try to read
	more data than we have. Also use GST_READ_UINT24_BE directly and
	fix some minor memory leaks.
	This should make all crashes on fuzzed FLV files disappear.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvparse.c: (FLV_GET_STRING),
	(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	(gst_flv_parse_tag_type), (gst_flv_parse_header):
	Properly check everywhere that we have enough data to parse and
	don't read outside the allocated memory region. 

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video):
	If the caps change during playback and negotiation fails error out
	instead of trying to continue.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps),
	(gst_flv_mux_request_new_pad), (gst_flv_mux_write_buffer),
	(gst_flv_mux_collected):
	* gst/flv/gstflvmux.h:
	* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate):
	Add support for Speex audio and allow buffers without valid
	timestamp in the muxer.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_loop),
	(gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push),
	(gst_flv_demux_handle_seek_pull):
	Don't post an error message on the bus if sending EOS downstream
	didn't work. Fixes bug #550454.

	Fix seek event handling to look at the flags of the seek event
	instead of assuming some random flags, don't send segment-start
	messages when operating in push mode and push seek events upstream
	if we couldn't handle them.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag):
	Error out early if pulling a tag failed.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_create_index),
	(gst_flv_demux_loop):
	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_script),
	(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	(gst_flv_parse_tag_timestamp):
	* gst/flv/gstflvparse.h:
	In pull mode we create our own index before doing anything else
	and don't use the index provided by some files (which are more than
	often incorrect and cause failed seeks).

	For push mode we still use the index provided by the file and extend it
	while doing the playback.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_push_src_event),
	(gst_flv_demux_loop), (gst_flv_demux_handle_seek_pull),
	(gst_flv_demux_sink_event):
	Instead of using gst_pad_event_default() use a small
	gst_pad_push_event() wrapper that only does what we want and is much
	more simple.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_change_state),
	(gst_flv_demux_set_index), (gst_flv_demux_init):
	* gst/flv/gstflvdemux.h:
	If our index was created by the element and not provided from the
	outside we should destroy it when starting a new stream to get
	all old entries removed.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range):
	Improve debugging a bit when pulling a buffer from upstream fails.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	(gst_flv_demux_handle_seek_pull), (gst_flv_demux_dispose):
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video):
	Close the currently playing segment from the streaming thread
	instead of the thread where the seek event is handled.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: David Härdeman <david at hardeman dot nu>

	* gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_nit):
	Add support for the frequency list descriptor, which provides
	additional frequencies that should be scanned by a DVB application.
	Fixes bug #557814.

2008-10-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: vanista <vanista at gmail dot com>

	* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_choose_best_stream):
	Fix EOS logic by correctly popping the collect pad buffers only
	when we've chosen to use them instead of popping them always and
	storing them in a private queue.

	Before the pipeline would deadlock if all pads go EOS at the same
	time. Fixes bug #557763.

2008-10-26  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Back to development -> 0.10.9.1

=== release 0.10.9 ===

2008-10-24  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.9, "Matters of fact"

2008-10-24  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Commit 0.10.8.4 pre-release

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

	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data):
	Fix reverse playback regression.
	Fixes #557080

2008-10-19  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* ext/apexsink/gstapexplugin.c: (plugin_init):
	  Set apexsink's rank to NONE so it doesn't get used by
	  autoaudiosink (there's no point really). (#556588)

2008-10-16  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	0.10.8.3 pre-release

2008-10-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	Patch by: Josep Torra

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	Properly handle some resync cases in the optimised
	buffering strategy.

2008-10-16  Michael Smith <msmith@songbirdnest.com>
	* sys/acmenc/Makefile.am:
	  Remove incorrect use of DIRECTSOUND_LDFLAGS

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

	* gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps),
	(gst_flv_mux_write_buffer):
	Don't set video_codec to the value that actually should go
	into audio codec, otherwise we create invalid files.
	Fixes bug #556564.

2008-10-16  Jan Schmidt  <jan.schmidt@sun.com>

	* tests/check/Makefile.am:
	Leave apexsink out of the states test.

2008-10-16  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_jitter_buffer_sink_parse_caps),
	(gst_rtp_jitter_buffer_flush_start),
	(gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain),
	(gst_rtp_jitter_buffer_loop):
	Fix problem with using the output seqnum counter to check for input
	seqnum discontinuities.
	Improve gap detection and recovery, reset and flush the jitterbuffer on
	seqnum restart. Fixes #556520.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert):
	Fix wrong G_LIKELY.

2008-10-16  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Commit 0.10.8.2 pre-release bump, that actually went out in a
	tarball on 2008-10-11

2008-10-16  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_event_send_rtcp_src), (create_send_rtcp_src):
	Install event handler on the rtcp_src pad, make LATENCY event return
	TRUE. Fixes #556338.

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

	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data):
	Make sure the mpegpsdemux element creates valid newsegment events.
	Fixes #556428

2008-10-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Sebastian Pölsterl
	
	* gst/mpegdemux/mpegtspacketizer.c:
	Fixes segfault in get_encoding_and_convert.
	Fixes #556482

2008-10-15  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Josep Torra

	* gst/mpegdemux/gstmpegtsdemux.c:
	Fixes a segfault in the adaptation buffer size strategy.
	Fixes #556440

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

	* gst/selector/gstinputselector.c: (gst_input_selector_event),
	(gst_input_selector_query):
	Gracefully handle the cases when we dont' have otherpad.
	Fixes #556430

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

	* gst/aiffparse/aiffparse.c: (plugin_init):
	Fix debugging category initialization.
	Fixes #556274	

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

	* ext/apexsink/gstapexsink.c:
	Fix some more format string compiler warnings (from OS/X)

2008-10-13  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/apexsink/gstapexraop.c: (gst_apexraop_connect),
	(gst_apexraop_set_volume):
	Fix format string compiler warnings.

2008-10-12  Jan Schmidt  <jan.schmidt@sun.com>

	* sys/oss4/oss4-mixer.c:
	* sys/oss4/oss4-sink.c:
	* sys/oss4/oss4-source.c:
	Add some spaces in translateable strings.
	Fixes: #555969 #555968 #555965

2008-10-12  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag),
	(gst_flv_demux_pull_header):
	Fix regression of handling flow returns in pull mode.
	Fixes bug #556003.

2008-10-12  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/Makefile.am:
	Add apexsink to SUBDIRS. Fixes bug #555912.

2008-10-11  Jan Schmidt  <jan.schmidt@sun.com>

	* tests/check/pipelines/metadata.c:
	Make the metadata test not fail when jpegenc isn't available....
	as it isn't here, because it's not in this module, and
	therefore not in the plugin path when the check runs.

2008-10-10  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video):
	Use gst_pad_alloc_buffer_and_set_caps() to make sure we get
	a buffer with caps that we can work with (i.e. the pad's caps).

	Add non-keyframe video frames to the index too but without the
	keyframe flag.

	Add audio frames to the index only if we have no video stream.

2008-10-10  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video):
	Create pads from the pad templates, use fixed caps on them
	and only activate them after the caps are set.

2008-10-10  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Disable flacparse for this release as it's too buggy.

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

	* gst/flacparse/gstbaseparse.c (gst_base_parse_push_buffer),
	(gst_base_parse_update_upstream_durations):
	Fix compiler warning on OS/X about parameters not matching
	the debug format string.

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

	* gst/deinterlace2/tvtime/tomsmocomp.c:
	(gst_deinterlace_method_tomsmocomp_class_init):
	Fix unused variable compiler warning when not building
	X86 assembly.

2008-10-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_loop):
	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_timestamp):
	* gst/flv/gstflvparse.h:
	Get an approximate duration of the file by looking at the timestamp
	of the last tag in pull mode. If we get (maybe better) duration from
	metadata later we'll use that instead.

2008-10-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range),
	(gst_flv_demux_pull_tag), (gst_flv_demux_pull_header):
	Refactor _pull_range() logic with checks into a seperate function
	to make things a bit more readable.

2008-10-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_chain),
	(gst_flv_demux_base_init):
	Use gst_element_class_set_details_simple().

	If we get GST_FLOW_NOT_LINKED in the parse loop but at least
	one of the pads is linked continue the loop.

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

	* ext/amrwb/gstamrwbenc.c:
	* ext/amrwb/gstamrwbenc.h:
	  Pass the discont flag from the input buffer on to the output buffer in
	  the AMR encoder.

2008-10-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate),
	(gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate):
	Correct caps for video codec id 5: It's On2 VP6 with alpha channel
	which needs a different decoder and has different caps.

	Add support for audio codec id 14, which is MP3 with 8kHz sampling
	rate.

	Fix endianness and signedness for raw audio codec ids.

	Add support for alaw and mulaw audio.

2008-10-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_chain):
	Go out of the parse loop as soon as we get an error instead
	of parsing until the GstAdapter is empty.

	Add some explanations about the header and tag size.

	Don't print synchronizing message if everything is fine.

2008-10-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flv/Makefile.am:
	* gst/flv/gstflvdemux.c: (plugin_init):
	* gst/flv/gstflvmux.c: (gst_flv_mux_base_init),
	(gst_flv_mux_class_init), (gst_flv_mux_init),
	(gst_flv_mux_finalize), (gst_flv_mux_reset),
	(gst_flv_mux_handle_src_event), (gst_flv_mux_handle_sink_event),
	(gst_flv_mux_video_pad_setcaps), (gst_flv_mux_audio_pad_setcaps),
	(gst_flv_mux_request_new_pad), (gst_flv_mux_release_pad),
	(gst_flv_mux_write_header), (gst_flv_mux_write_buffer),
	(gst_flv_mux_collected), (gst_flv_mux_change_state):
	* gst/flv/gstflvmux.h:
	Add first version of a FLV muxer. The only missing feature is writing
	of stream metadata.

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

	* ext/amrwb/gstamrwbparse.c:
	* ext/amrwb/gstamrwbparse.h:
	  Add flush seek handler. Taken from recent armnbparse changes.
	  Sync the code more and use #defines for HEADER.

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

	* ext/amrwb/gstamrwbparse.c:
	* ext/amrwb/gstamrwbparse.h:
          Fix the duration query. Also set caps on the pads and buffers more
          correctly. Taken from recent armnbparse changes.

2008-10-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.c:
	Add Fluendo to the Long Name.

2008-10-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	* gst-plugins-bad.spec.in:
	* gst/mpegdemux/Makefile.am:
	* gst/mpegdemux/flumpegdemux.c:
	* gst/mpegdemux/gstmpegdesc.c:
	* gst/mpegdemux/gstmpegdesc.h:
	* gst/mpegdemux/mpegtspacketizer.c:
	* gst/mpegdemux/mpegtspacketizer.h:
	* gst/mpegdemux/mpegtsparse.c:
	* gst/mpegdemux/mpegtsparse.h:
	Move of mpegtsparse to mpegdemux.
	Fixes #555193.

2008-10-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data),
	(gst_flups_demux_parse_pack_start):
	Prevent a division by zero if last mux rate was zero.

	If we're going to send a NEWSEGMENT event but the segment start
	and the current buffer timestamp differ by more than a second we
	will start the NEWSEGMENT at the buffer timestamp.

	This fixes playback of the tv2-1_25.mpg file, which has 0 as first SCR
	but the first PTS are around 1 hour and 40 minutes.

	Fixes bug #553755.

2008-10-07  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/resindvd/resindvdsrc.c:
	Fix next/prev chapter seeking at the beginning or end.
	Use 64-bit scaling utility functions for converting MPEG
	timestamps.

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

	Patch by: Håvard Graff <havard dot graff at tandberg dot com>

	* gst/rtpmanager/gstrtpbin-marshal.list:
	Add marshaller for new action signal.

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_internal_session),
	(gst_rtp_bin_class_init):
	* gst/rtpmanager/gstrtpbin.h:
	Add action signal to retrieve the internal RTPSession object.

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(gst_rtp_session_get_property), (gst_rtp_session_release_pad):
	Add property to access the internal RTPSession object.

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(check_collision):
	* gst/rtpmanager/rtpsession.h:
	Add action signal to retrieve an RTPSource object by SSRC. 
	See #555396.

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

	* gst/selector/gstoutputselector.c:
	  Choose right pad for sending events. Fixes #555244

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

	* gst/rtpmanager/gstrtpbin.c: (find_session_by_pad),
	(free_session), (gst_rtp_bin_dispose), (remove_recv_rtp),
	(remove_recv_rtcp), (remove_send_rtp), (remove_rtcp),
	(gst_rtp_bin_release_pad):
	Release pads of the session manager.
	Start implementing releasing pads of gstrtpbin.

	* gst/rtpmanager/gstrtpsession.c: (remove_recv_rtp_sink),
	(remove_recv_rtcp_sink), (remove_send_rtp_sink),
	(remove_send_rtcp_src), (gst_rtp_session_release_pad):
	Implement releasing pads in gstrtpsession.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_jitter_buffer_sink_parse_caps):
	Only update the seqnum-base when it was not already configured for the
	streams.

2008-10-06  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac
	* ext/metadata/README:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	  Start using core geo tags (bump req). Fix handling of location
	  references.

	* tests/check/Makefile.am:
	  Sort blacklisted elements and remove moved ones. Add new test.

	* tests/check/pipelines/metadata.c:
	  Add first tests for metadata element.

	* tests/icles/metadata_editor.c:
	  Move free to correct place.

2008-10-06  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/generic/states.c:
	  Stop test on state-change error. Should be applied on other modules if
	  we agree that it makes sense.

2008-10-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtsparse.c:
	Actually copy the structure passed in when assigning it because
	it gets freed straight after the function call.
	Re: pat_info and pmt_info GstStructures.

2008-10-06  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	Patch by: Josep Torra

	* gst/mpegdemux/gstmpegtsdemux.c:
	Fix wrong firing of critical introduced by previous optimisation.

2008-10-03  Wim Taymans  <wim.taymans@collabora.co.uk>

	* ext/faac/gstfaac.c: (gst_faac_configure_source_pad):
	Warn and clamp to max bitrate for samplerate.
	Fixes #550486.

2008-10-03  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtsparse.c:
	Fix possible crash where pat is pointing to a freed structure.

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

	* ext/metadata/README:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	  Use core gps tags.

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

	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/Makefile.am:
	  Add mapping of format and mime type to xmp.

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

	* ext/metadata/README:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	  Reverting. Will need to wait for core 0.10.21 release.

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

	* ext/metadata/README:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	  Use core gps tags.

2008-09-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flacparse/gstbaseparse.c: (gst_base_parse_finalize),
	(gst_base_parse_class_init), (gst_base_parse_push_buffer),
	(gst_base_parse_change_state), (gst_base_parse_set_index),
	(gst_base_parse_get_index):
	Add support for GstIndex.

2008-09-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flacparse/gstbaseparse.c: (gst_base_parse_class_init),
	(gst_base_parse_push_buffer),
	(gst_base_parse_update_upstream_durations),
	(gst_base_parse_convert), (gst_base_parse_frame_in_segment):
	* gst/flacparse/gstbaseparse.h:
	Provide a vfunc for the subclass to decide whether a frame is inside
	the segment or not and add a default implementation.

	Fix approximate bitrate calculations.

2008-09-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/flacparse/gstbaseparse.c: (gst_base_parse_class_init),
	(gst_base_parse_init), (gst_base_parse_push_buffer),
	(gst_base_parse_update_upstream_durations), (gst_base_parse_chain),
	(gst_base_parse_loop), (gst_base_parse_activate),
	(gst_base_parse_convert), (gst_base_parse_query):
	Approximate the average bitrate, duration and size if possible
	and add a default conversion function which uses this for
	time<->byte conversions.

	* gst/flacparse/gstflacparse.c: (gst_flac_parse_get_frame_size):
	Fix parsing if upstream gives -1 as duration.

2008-09-30  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision),
	(on_ssrc_validated), (on_ssrc_active), (on_ssrc_sdes),
	(on_bye_ssrc), (on_bye_timeout), (on_timeout), (on_sender_timeout):
	Ref the rtpsource object before we release the session lock when we emit
	the signals.

2008-09-30  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* sys/Makefile.am:
	* sys/wasapi/Makefile.am:
	* sys/wasapi/gstwasapi.c:
	* sys/wasapi/gstwasapisink.c:
	* sys/wasapi/gstwasapisink.h:
	* sys/wasapi/gstwasapisrc.c:
	* sys/wasapi/gstwasapisrc.h:
	* sys/wasapi/gstwasapiutil.c:
	* sys/wasapi/gstwasapiutil.h:
	New plugin for audio capture and playback using Windows Audio Session
	API (WASAPI) available with Vista and newer (#520901).

	Comes with hardcoded caps and obviously needs lots of love. Haven't
	had time to work on this code since it was written, was initially just
	a quick experiment to play around with this new API.

2008-09-30  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.cpp
	  (AudioFakeSink.DoRenderSample):
	Fix a couple of signed/unsigned comparison warnings.

2008-09-30  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.h (AudioFakeSink.AudioFakeSink):
	* sys/dshowdecwrapper/gstdshowvideodec.h (VideoFakeSink.VideoFakeSink):
	Use the _T() macro to support both Unicode and MBCS.

2008-09-30  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* ext/libmms/gstmms.c (plugin_init):
	Fix return type of the GstURIHandler::get_type() implementation.

2008-09-29  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/flacparse/Makefile.am:
	* gst/flacparse/gstbaseparse.c: (gst_base_parse_get_type),
	(gst_base_parse_base_init), (gst_base_parse_base_finalize),
	(gst_base_parse_finalize), (gst_base_parse_class_init),
	(gst_base_parse_init), (gst_base_parse_check_frame),
	(gst_base_parse_parse_frame), (gst_base_parse_bytepos_to_time),
	(gst_base_parse_sink_event), (gst_base_parse_sink_eventfunc),
	(gst_base_parse_src_event), (gst_base_parse_src_eventfunc),
	(gst_base_parse_is_seekable), (gst_base_parse_push_buffer),
	(gst_base_parse_handle_and_push_buffer), (gst_base_parse_drain),
	(gst_base_parse_chain), (gst_base_parse_pull_range),
	(gst_base_parse_loop), (gst_base_parse_sink_activate),
	(gst_base_parse_activate), (gst_base_parse_sink_activate_push),
	(gst_base_parse_sink_activate_pull), (gst_base_parse_set_duration),
	(gst_base_parse_set_min_frame_size),
	(gst_base_parse_get_querytypes), (gst_base_parse_query),
	(gst_base_parse_handle_seek), (gst_base_parse_sink_setcaps):
	* gst/flacparse/gstbaseparse.h:
	* gst/flacparse/gstbitreader.c: (gst_bit_reader_new),
	(gst_bit_reader_new_from_buffer), (gst_bit_reader_free),
	(gst_bit_reader_init), (gst_bit_reader_init_from_buffer),
	(gst_bit_reader_set_pos), (gst_bit_reader_get_pos),
	(gst_bit_reader_get_remaining), (gst_bit_reader_skip),
	(gst_bit_reader_skip_to_byte):
	* gst/flacparse/gstbitreader.h:
	* gst/flacparse/gstbytereader.c: (GDOUBLE_SWAP_LE_BE),
	(GFLOAT_SWAP_LE_BE), (gst_byte_reader_new),
	(gst_byte_reader_new_from_buffer), (gst_byte_reader_free),
	(gst_byte_reader_init), (gst_byte_reader_init_from_buffer),
	(gst_byte_reader_set_pos), (gst_byte_reader_get_pos),
	(gst_byte_reader_get_remaining), (gst_byte_reader_skip),
	(gst_byte_reader_get_uint8), (gst_byte_reader_get_int8),
	(gst_byte_reader_peek_uint8), (gst_byte_reader_peek_int8),
	(gst_byte_reader_get_uint24_le), (gst_byte_reader_get_uint24_be),
	(gst_byte_reader_get_int24_le), (gst_byte_reader_get_int24_be),
	(gst_byte_reader_peek_uint24_le), (gst_byte_reader_peek_uint24_be),
	(gst_byte_reader_peek_int24_le), (gst_byte_reader_peek_int24_be):
	* gst/flacparse/gstbytereader.h:
	* gst/flacparse/gstflac.c: (plugin_init):
	* gst/flacparse/gstflacparse.c: (gst_flac_parse_base_init),
	(gst_flac_parse_class_init), (gst_flac_parse_init),
	(gst_flac_parse_finalize), (gst_flac_parse_start),
	(gst_flac_parse_stop), (gst_flac_parse_get_frame_size),
	(gst_flac_parse_check_valid_frame),
	(gst_flac_parse_handle_streaminfo),
	(gst_flac_parse_handle_vorbiscomment),
	(gst_flac_parse_handle_picture), (_value_array_append_buffer),
	(gst_flac_parse_handle_headers), (gst_flac_parse_generate_headers),
	(gst_flac_parse_parse_frame):
	* gst/flacparse/gstflacparse.h:
	Add FLAC parser, based on GstBaseParse. Also add the bit and byte reader
	that will be added to libgstbase later.

	The FLAC parser is currently not 100% bug free and fails to get the
	correct frame size for some frames in some streams.

2008-09-27  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/resindvd/gstmpegdemux.c:
	* ext/resindvd/gstmpegdemux.h:
	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/rsnstreamselector.c:
	Add in Title/Chapter seeking, and simple but buggy audio
	and subtitle stream selection.

2008-09-24  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	* sys/dshowdecwrapper/gstdshowaudiodec.h:
	* sys/dshowdecwrapper/gstdshowfakesrc.cpp:
	* sys/dshowdecwrapper/gstdshowutil.cpp:
	* sys/dshowdecwrapper/gstdshowutil.h:
	* sys/dshowdecwrapper/gstdshowvideodec.cpp:
	* sys/dshowdecwrapper/gstdshowvideodec.h:
	  Prefer known-good filters, create directly by GUID if possible,
	  fall back to creating highest-merit filter otherwise.
	  Fixes playback with random dshow filters installed in some
	  cases.

2008-09-23  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert),
	(rtp_jitter_buffer_get_sync):
	* gst/rtpmanager/rtpsession.c: (on_sender_timeout),
	(session_cleanup):
	* gst/rtpmanager/rtpsource.c:
	Fix some docs.

2008-09-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	Patch from: Josep Torra

	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	Use a preallocated buffer per stream for PES packets sent on src pads.
	Adaptively adjust buffer size appropriately.

2008-09-17  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start),
	  (gst_neonhttp_src_send_request_and_redirect):
	  Clean up the debug logging code and #ifdef mess a bit: whether or not
	  gstreamer debug messages should be output should not depend on an
	  element property; also, GST_ELEMENT_ERROR will leave a line in the log
	  already, so merge the more useful debug log messages with the less useful
	  error debug strings.

2008-09-17  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start):
	  Don't post LIBRARY_INIT errors where we should be posting
	  RESOURCE OPEN_READ errors. Fixes #552506.

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

	* ext/jack/gstjackaudiosink.c: (jack_process_cb):
	* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
	Fix compiler warnings on OS/X

2008-09-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Michael Krufky

	* sys/dvb/gstdvbsrc.c:
	Add adapter_name for bus message in ATSC case. Fixes #552536.

2008-09-15  Stefan Kost  <ensonic@users.sf.net>

	* ext/celt/gstceltenc.h:
	  Help gtk-doc to parse this correctly.

	* gst/pcapparse/gstpcapparse.c:
	  Add missing include.

2008-09-15  Stefan Kost  <ensonic@users.sf.net>

	* examples/Makefile.am:
	  Only built scaletempo example if we have gtk.

2008-09-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (create_session),
	(gst_rtp_bin_associate), (gst_rtp_bin_sync_chain):
	Do not try to adjust the offset of streams for which we have not yet
	seen an SR packet. Avoids large ts-offsets in some cases.

2008-09-10  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/Makefile.am:
	* sys/dshowdecwrapper/gstdshowaudiodec.c:
	* sys/dshowdecwrapper/gstdshowaudiodec.cpp:
	* sys/dshowdecwrapper/gstdshowaudiodec.h:
	* sys/dshowdecwrapper/gstdshowdecwrapper.c:
	* sys/dshowdecwrapper/gstdshowdecwrapper.cpp:
	* sys/dshowdecwrapper/gstdshowdecwrapper.h:
	* sys/dshowdecwrapper/gstdshowfakesrc.cpp:
	* sys/dshowdecwrapper/gstdshowfakesrc.h:
	* sys/dshowdecwrapper/gstdshowutil.cpp:
	* sys/dshowdecwrapper/gstdshowutil.h:
	* sys/dshowdecwrapper/gstdshowvideodec.c:
	* sys/dshowdecwrapper/gstdshowvideodec.cpp:
	* sys/dshowdecwrapper/gstdshowvideodec.h:
	  Major rewrite of dshowdecwrapper. Converts code to
	  C++, moves to direct use of DirectShow base classes,
	  make a lot of code clearer, simplify, etc.
	  Fix decode of MP3 on Vista by working around an apparent
	  bug in the decoder.

2008-09-10  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func,
	  gst_ks_clock_start):
	  Synchronize KS clock as a single-shot operation for now, there's not
	  much point in doing it periodically until we're actually using the
	  KS timestamps for anything else than just discarding old frames.
	* sys/winks/gstksvideosrc.c (gst_ks_video_src_open_device):
	  Provide the GstClock when opening the device if we already have one.

2008-09-10  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp,
	  gst_ks_video_device_prepare_buffers, gst_ks_video_device_create_pin,
	  gst_ks_video_device_set_state, gst_ks_video_device_request_frame,
	  gst_ks_video_device_read_frame):
	  Guard against capturing old frames by keeping track of the last
	  timestamp and also zero-fill the buffers before each capture.
	  Only assign a master clock if the pin hasn't already got one.
	  Actually free buffers on the way down to avoid a huge memory leak,
	  as this was previously done when changing state to ACQUIRE downwards
	  and we now skip that state on the way down.
	  Add some debug.
	* sys/winks/gstksvideosrc.c (DEFAULT_DEVICE_PATH, DEFAULT_DEVICE_NAME,
	  DEFAULT_DEVICE_INDEX, KS_WORKER_LOCK, KS_WORKER_UNLOCK,
	  KS_WORKER_WAIT, KS_WORKER_NOTIFY, KS_WORKER_WAIT_FOR_RESULT,
	  KS_WORKER_NOTIFY_RESULT, KS_WORKER_STATE_STARTING,
	  KS_WORKER_STATE_READY, KS_WORKER_STATE_STOPPING,
	  KS_WORKER_STATE_ERROR, KsWorkerState, device_path, device_name,
	  device_index, running, worker_thread, worker_lock,
	  worker_notify_cond, worker_result_cond, worker_state,
	  worker_pending_caps, worker_setcaps_result, worker_pending_run,
	  worker_run_result, gst_ks_video_src_reset,
	  gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_open_device,
	  gst_ks_video_src_close_device, gst_ks_video_src_worker_func,
	  gst_ks_video_src_start_worker, gst_ks_video_src_stop_worker,
	  gst_ks_video_src_change_state, gst_ks_video_src_set_clock,
	  gst_ks_video_src_set_caps, gst_ks_video_src_timestamp_buffer,
	  gst_ks_video_src_create):
	  Remove ENABLE_CLOCK_DEBUG define, it's GST_LEVEL_DEBUG after all.
	  Get rid of PROP_ENSLAVE_KSCLOCK and always slave the ks clock to the
	  GStreamer clock, it doesn't seem to hurt and matches DirectShow's
	  behavior. As an added bonus we usually get PresentationTime set for
	  each frame, so we can expand on this later for smarter latency
	  reporting (by looking at the diff between the timestamp from the
	  driver and the time according to the GStreamer clock).
	  Use an internal worker thread for opening the device, setting caps,
	  changing its state and closing it. This way we're a lot more
	  compatible with drivers that rely on hacks to do video-effects
	  between the low-level NT API and the application. Ick.
	  Start the ks clock and set the pin to KSSTATE_RUN on the first
	  create() so that we'll hopefully get hold of the GStreamer clock
	  from the very beginning. This way there's no chance that the
	  timestamps will make a sudden jump in the beginning of the stream
	  when we're running with a clock.
	* sys/winks/kshelpers.c (CHECK_OPTIONS_FLAG,
	  ks_options_flags_to_string):
	  Reorder the flags to match the headerfile order, and make the string
	  a bit more compact.
	* sys/winks/ksvideohelpers.c (ks_video_probe_filter_for_caps):
	  Avoid leaking KSPROPERTY_PIN_DATARANGES.

2008-09-09  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* configure.ac:
	* ext/Makefile.am:
	* ext/jp2k/Makefile.am:
	* ext/jp2k/gstjasperdec.c: (gst_jasper_dec_base_init),
	(gst_jasper_dec_class_init), (gst_jasper_dec_init),
	(gst_jasper_dec_reset), (gst_jasper_dec_sink_setcaps),
	(gst_jasper_dec_negotiate), (gst_jasper_dec_get_picture),
	(gst_jasper_dec_chain), (gst_jasper_dec_set_property),
	(gst_jasper_dec_get_property), (gst_jasper_dec_change_state),
	(plugin_init):
	* ext/jp2k/gstjasperdec.h:
	Add jp2k plugin.  Fixes #550657.

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

	* gst/mpegdemux/flumpegdemux.c: (plugin_init):
	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_sync_get_type),
	(gst_flups_demux_get_type), (gst_flups_demux_plugin_init):
	* gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_get_type),
	(gst_fluts_demux_plugin_init):
	Fix conflicting public names in new mpeg demuxers.
	Fixes #550468

2008-09-08  Michael Smith <msmith@songbirdnest.com>

	* gst/aiffparse/aiffparse.c:
	  Support chunks in AIFF in any order in pull mode, and any order so
	  long as we get COMM before the actual data (SSND) in push mode.
	  Fixes playback of AIFC files.

2008-09-08  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c: (gst_selector_pad_reset),
	(gst_input_selector_reset), (gst_input_selector_change_state):
	Reset the selector state when going to READY.

2008-09-05  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (on_sender_timeout),
	(create_session), (gst_rtp_bin_associate),
	(gst_rtp_bin_sync_chain), (gst_rtp_bin_class_init),
	(gst_rtp_bin_request_new_pad):
	* gst/rtpmanager/gstrtpbin.h:
	Add signal to notify listeners when a sender becomes a receiver.
	Tweak lip-sync code, don't store our own copy of the ts-offset of the
	jitterbuffer, don't adjust sync if the change is less than 4msec.
	Get the RTP timestamp <-> GStreamer timestamp relation directly from
	the jitterbuffer instead of our inaccurate version from the source.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
	(gst_rtp_jitter_buffer_get_sync):
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	Add G_LIKELY macros, use global defines for max packet reorder and
	dropouts.
	Reset the jitterbuffer clock skew detection when packets seqnums are
	changed unexpectedly.

	* gst/rtpmanager/gstrtpsession.c: (on_sender_timeout),
	(gst_rtp_session_class_init), (gst_rtp_session_init):
	* gst/rtpmanager/gstrtpsession.h:
	Add sender timeout signal.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	(calculate_skew), (rtp_jitter_buffer_insert),
	(rtp_jitter_buffer_get_sync):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Add some G_LIKELY macros.
	Keep track of the extended RTP timestamp so that we can report the RTP
	timestamp <-> GStreamer timestamp relation for lip-sync.
	Remove server timestamp gap detection code, the server can sometimes
	make a huge gap in timestamps (talk spurts,...) see #549774.
	Detect timetamp weirdness instead by observing the sender/receiver
	timestamp relation and resync if it changes more than 1 second.
	Add method to report about the current rtp <-> gst timestamp relation
	which is needed for lip-sync.

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(on_sender_timeout), (check_collision), (rtp_session_process_sr),
	(session_cleanup):
	* gst/rtpmanager/rtpsession.h:
	Add sender timeout signal.
	Remove inaccurate rtp <-> gst timestamp relation code, the
	jitterbuffer can now do an accurate reporting about this.

	* gst/rtpmanager/rtpsource.c: (rtp_source_init),
	(rtp_source_update_caps), (calculate_jitter),
	(rtp_source_process_rtp):
	* gst/rtpmanager/rtpsource.h:
	Remove inaccurate rtp <-> gst timestamp relation code.

	* gst/rtpmanager/rtpstats.h:
	Define global max-reorder and max-dropout constants for use in various
	subsystems.

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

	patch by: Sebastian Pölsterl

	* sys/dvb/gstdvbsrc.c:
	Add DVB Adapter name to structure sent over bus.

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

	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_parse_pack_start):
	* gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_data_cb):
	Fix build on macosx.

2008-09-02  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	* gst/mpegdemux/Makefile.am:
	* gst/mpegdemux/flumpegdemux.c:
	* gst/mpegdemux/flutspatinfo.c:
	* gst/mpegdemux/flutspatinfo.h:
	* gst/mpegdemux/flutspmtinfo.c:
	* gst/mpegdemux/flutspmtinfo.h:
	* gst/mpegdemux/flutspmtstreaminfo.c:
	* gst/mpegdemux/flutspmtstreaminfo.h:
	* gst/mpegdemux/gstmpegdefs.h:
	* gst/mpegdemux/gstmpegdemux.c:
	* gst/mpegdemux/gstmpegdemux.h:
	* gst/mpegdemux/gstmpegdesc.c:
	* gst/mpegdemux/gstmpegdesc.h:
	* gst/mpegdemux/gstmpegtsdemux.c:
	* gst/mpegdemux/gstmpegtsdemux.h:
	* gst/mpegdemux/gstpesfilter.c:
	* gst/mpegdemux/gstpesfilter.h:
	* gst/mpegdemux/gstsectionfilter.c:
	* gst/mpegdemux/gstsectionfilter.h:
	Add Fluendo MPEG PS and TS demuxers to gst-plugins-bad. This
	is now dual licensed MPL and LGPL.

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

	* gst/mpegtsmux/mpegtsmux.c: (new_packet_cb):
	Set caps on outgoing buffers.

2008-09-02  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* ext/resindvd/plugin.c: (plugin_init):
	* ext/resindvd/resindvdsrc.c:
	* ext/twolame/gsttwolame.c: (plugin_init):
	* gst/aiffparse/aiffparse.c: (plugin_init):
	  Enable/fix up translations for these plugins.

	* po/LINGUAS:
	  Add 'ca' to LINGUAS.

	* po/POTFILES.in:
	* po/POTFILES.skip:
	  Add more files for translation and more files which tools
	  should skip.

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

	* gst/mpegtsmux/tsmux/tsmux.c: (tsmux_write_ts_header):
	Fix build on macosx.

2008-09-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac):
	Allocate a fixed size buffer on the stack instead of using malloc().

	* gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_free),
	(tsmux_program_new), (tsmux_program_free):
	* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
	(tsmux_stream_free), (tsmux_stream_consume),
	(tsmux_stream_add_data):
	Use GSlice.

2008-09-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
	Add support for muxing MPEG4 video.

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

	* gst/mpegtsmux/tsmux/tsmux.h:
	* gst/mpegtsmux/tsmux/tsmuxstream.h:
	Fix build of mpegtsmux.
	
2008-09-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/mpegtsmux/Makefile.am:
	* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_base_init),
	(mpegtsmux_class_init), (mpegtsmux_init), (mpegtsmux_dispose),
	(gst_mpegtsmux_set_property), (gst_mpegtsmux_get_property),
	(release_buffer_cb), (mpegtsmux_create_stream),
	(mpegtsmux_create_streams), (mpegtsmux_choose_best_stream),
	(mpegtsmux_collected), (mpegtsmux_request_new_pad),
	(mpegtsmux_release_pad), (new_packet_cb),
	(mpegtsdemux_prepare_srcpad), (mpegtsmux_change_state),
	(plugin_init):
	* gst/mpegtsmux/mpegtsmux.h:
	* gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac):
	* gst/mpegtsmux/mpegtsmux_aac.h:
	* gst/mpegtsmux/mpegtsmux_h264.c: (mpegtsmux_prepare_h264):
	* gst/mpegtsmux/mpegtsmux_h264.h:
	* gst/mpegtsmux/tsmux/Makefile.am:
	* gst/mpegtsmux/tsmux/crc.h:
	* gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_set_write_func),
	(tsmux_set_pat_frequency), (tsmux_get_pat_frequency), (tsmux_free),
	(tsmux_program_new), (tsmux_set_pmt_frequency),
	(tsmux_get_pmt_frequency), (tsmux_program_add_stream),
	(tsmux_program_set_pcr_stream), (tsmux_get_new_pid),
	(tsmux_create_stream), (tsmux_find_stream), (tsmux_packet_out),
	(tsmux_write_adaptation_field), (tsmux_write_ts_header),
	(tsmux_write_stream_packet), (tsmux_program_free),
	(tsmux_write_section), (tsmux_write_section_hdr),
	(tsmux_write_pat), (tsmux_write_pmt):
	* gst/mpegtsmux/tsmux/tsmux.h:
	* gst/mpegtsmux/tsmux/tsmuxcommon.h:
	* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
	(tsmux_stream_get_pid), (tsmux_stream_free),
	(tsmux_stream_set_buffer_release_func), (tsmux_stream_consume),
	(tsmux_stream_at_pes_start), (tsmux_stream_bytes_avail),
	(tsmux_stream_bytes_in_buffer), (tsmux_stream_get_data),
	(tsmux_stream_pes_header_length),
	(tsmux_stream_find_pts_dts_within),
	(tsmux_stream_write_pes_header), (tsmux_stream_add_data),
	(tsmux_stream_get_es_descrs), (tsmux_stream_pcr_ref),
	(tsmux_stream_pcr_unref), (tsmux_stream_is_pcr),
	(tsmux_stream_get_pts):
	* gst/mpegtsmux/tsmux/tsmuxstream.h:
	Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This
	is renamed to mpegtsmux to prevent conflicts. Also all relevant
	informations about copyright and license are added to the top of
	every file but apart from that no changes compared to the latest
	SVN versions happened.

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

	* gst/selector/gstinputselector.c: (gst_input_selector_init),
	(gst_input_selector_event), (gst_input_selector_query):
	Reuse the get_linked_pads for both source and sinkpads because they are
	the same.
	Implement a custum event handler and get the internally linked pad
	directly instead of relying on the default (slower) implementation.

2008-08-31  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/celt/gstceltdec.c: (celt_dec_chain_parse_data):
	Correctly take the granulepos from upstream if possible and
	correctly handle the granulepos in various calculations: the
	granulepos is the sample number of the _last_ sample in a frame, not
	the first. 

	* ext/celt/gstceltenc.c: (gst_celt_enc_sinkevent),
	(gst_celt_enc_encode), (gst_celt_enc_chain),
	(gst_celt_enc_change_state):
	* ext/celt/gstceltenc.h:
	Handle non-zero start timestamps in the encoder and detect/handle
	stream discontinuities. Fixes bug #547075.

2008-08-31  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: Rov Juvano <rovjuvano at users dot sourceforge dot net>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-scaletempo.xml:
	* examples/scaletempo/Makefile.am:
	* examples/scaletempo/demo-gui.c: (pop_status_bar),
	(status_bar_printf), (demo_gui_seek_bar_format), (update_position),
	(demo_gui_seek_bar_change), (demo_gui_do_change_rate),
	(demo_gui_do_set_rate), (demo_gui_do_rate_entered),
	(demo_gui_do_toggle_advanced), (demo_gui_do_toggle_disabled),
	(demo_gui_do_seek), (demo_gui_do_play), (demo_gui_do_pause),
	(demo_gui_do_play_pause), (demo_gui_do_open_file),
	(demo_gui_do_playlist_prev), (demo_gui_do_playlist_next),
	(demo_gui_do_about_dialog), (demo_gui_do_quit),
	(demo_gui_request_set_stride), (demo_gui_request_set_overlap),
	(demo_gui_request_set_search), (demo_gui_rate_changed),
	(demo_gui_playing_started), (demo_gui_playing_paused),
	(demo_gui_playing_ended), (demo_gui_player_errored),
	(demo_gui_stride_changed), (demo_gui_overlap_changed),
	(demo_gui_search_changed), (demo_gui_set_player_func),
	(demo_gui_set_playlist_func), (build_gvalue_array),
	(create_action), (demo_gui_show_func), (demo_gui_set_player),
	(demo_gui_set_playlist), (demo_gui_show), (demo_gui_get_property),
	(demo_gui_set_property), (demo_gui_init), (demo_gui_class_init),
	(demo_gui_get_type):
	* examples/scaletempo/demo-gui.h:
	* examples/scaletempo/demo-main.c: (handle_error_message),
	(handle_quit), (main):
	* examples/scaletempo/demo-player.c: (no_pipeline),
	(demo_player_event_listener), (demo_player_state_changed_cb),
	(demo_player_eos_cb), (demo_player_build_pipeline), (_set_rate),
	(demo_player_scale_rate_func), (demo_player_set_rate_func),
	(_set_state_and_wait), (demo_player_load_uri_func),
	(demo_player_play_func), (demo_player_pause_func), (_seek_to),
	(demo_player_seek_by_func), (demo_player_seek_to_func),
	(demo_player_get_position_func), (demo_player_get_duration_func),
	(demo_player_scale_rate), (demo_player_set_rate),
	(demo_player_load_uri), (demo_player_play), (demo_player_pause),
	(demo_player_seek_by), (demo_player_seek_to),
	(demo_player_get_position), (demo_player_get_duration),
	(demo_player_get_property), (demo_player_set_property),
	(demo_player_init), (demo_player_class_init),
	(demo_player_get_type):
	* examples/scaletempo/demo-player.h:
	* gst/scaletempo/Makefile.am:
	* gst/scaletempo/gstscaletempo.c: (best_overlap_offset_float),
	(best_overlap_offset_s16), (output_overlap_float),
	(output_overlap_s16), (fill_queue), (reinit_buffers),
	(gst_scaletempo_transform), (gst_scaletempo_transform_size),
	(gst_scaletempo_sink_event), (gst_scaletempo_set_caps),
	(gst_scaletempo_get_property), (gst_scaletempo_set_property),
	(gst_scaletempo_base_init), (gst_scaletempo_class_init),
	(gst_scaletempo_init):
	* gst/scaletempo/gstscaletempo.h:
	* gst/scaletempo/gstscaletempoplugin.c: (plugin_init):
	Add scaletempo plugin, which allows to scale the speed of audio without
	changing the pitch by handling seeks with a rate!=1.0.
	Integrate it into the docs and add the example application for it.
	Fixes bug #537700.

2008-08-30  David Schleef  <ds@schleef.org>

	* ext/dirac/gstdiracenc.cc: Fix some memleaks.

2008-08-29  David Schleef  <ds@schleef.org>

	* ext/dirac/gstdiracenc.cc: Fix EOS handling.  Clean up at
	  object disposal.  Handle 4:2:2 and 4:4:4 video.

2008-08-29  Jan Schmidt  <Jan.Schmidt@sun.com>

	* ext/resindvd/resindvdbin.c:
	Fix compiler warning on Forte.

2008-08-29  Jan Schmidt  <Jan.Schmidt@sun.com>

	* configure.ac:
	Commit FIONREAD	check, needed for the dccp src.

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

	* ext/faac/gstfaac.c: (gst_faac_init), (gst_faac_sink_event),
	(gst_faac_chain), (gst_faac_change_state):
	* ext/faac/gstfaac.h:
	Add code for calculating proper timestamp/duration for the trailing
	encoded buffers that faac will output when receiving EOS.

2008-08-29  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Fix CFLAGS and LIBS for the apexsink.

2008-08-28  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* sys/winks/ksvideohelpers.c (ks_video_media_type_free):
	  Avoid leaking the KSDATARANGE member of each KsVideoMediaType.

2008-08-28  Jan Schmidt  <Jan.Schmidt@sun.com>

	* gst/dccp/gstdccp.c:
	* gst/dccp/gstdccpclientsrc.c:
	Fix compilation on Solaris by including filio.h as needed.

	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	Fix compilation with Forte - apparently it hates concatenating a
	macro argument that starts with an underscore??

2008-08-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: Jérémie Bernard <gremimail at gmail dot com>

	* configure.ac:
	* ext/apexsink/LGPL-3.0.txt:
	* ext/apexsink/Makefile.am:
	* ext/apexsink/gstapexplugin.c: (plugin_init):
	* ext/apexsink/gstapexraop.c: (g_strdel), (gst_apexraop_send),
	(gst_apexraop_recv), (gst_apexraop_new), (gst_apexraop_free),
	(gst_apexraop_set_host), (gst_apexraop_get_host),
	(gst_apexraop_set_port), (gst_apexraop_get_port),
	(gst_apexraop_set_useragent), (gst_apexraop_get_useragent),
	(gst_apexraop_connect), (gst_apexraop_get_jacktype),
	(gst_apexraop_get_jackstatus), (gst_apexraop_close),
	(gst_apexraop_set_volume), (gst_apexraop_write_bits),
	(gst_apexraop_write), (gst_apexraop_flush):
	* ext/apexsink/gstapexraop.h:
	* ext/apexsink/gstapexsink.c: (gst_apexsink_jackstatus_get_type),
	(gst_apexsink_jacktype_get_type), (gst_apexsink_interfaces_init),
	(gst_apexsink_implements_interface_init),
	(gst_apexsink_mixer_interface_init),
	(gst_apexsink_interface_supported),
	(gst_apexsink_mixer_list_tracks), (gst_apexsink_mixer_set_volume),
	(gst_apexsink_mixer_get_volume), (gst_apexsink_base_init),
	(gst_apexsink_class_init), (gst_apexsink_init),
	(gst_apexsink_set_property), (gst_apexsink_get_property),
	(gst_apexsink_finalise), (gst_apexsink_open),
	(gst_apexsink_prepare), (gst_apexsink_write),
	(gst_apexsink_unprepare), (gst_apexsink_delay),
	(gst_apexsink_reset), (gst_apexsink_close):
	* ext/apexsink/gstapexsink.h:
	Add apexsink for audio output to Apple AirPort Express Wireless
	devices. Fixes bug #542510.

2008-08-28  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_send_rtcp),
	(gst_rtp_session_event_send_rtp_sink):
	Send EOS when the session object instructs us to.

	* gst/rtpmanager/rtpsession.c: (rtp_session_on_timeout):
	* gst/rtpmanager/rtpsession.h:
	Make it possible for the session manager to instruct us to send EOS. We
	currently will EOS when the session is a sender and when the sender part
	goes EOS. This is not entirely correct behaviour because the session
	could still participate as a receiver.
	Fixes #549409.

2008-08-27  Michael Smith <msmith@songbirdnest.com>

	* gst/aiffparse/aiffparse.c:
	  Read size of chunks preceeding the audio data with the
	  correct endianness. Fixes playback of some files.
	  Fixes #538500

2008-08-27  Michael Smith <msmith@songbirdnest.com>

	* configure.ac:
	* gst/aiffparse/Makefile.am:
	* gst/aiffparse/aiffparse.c:
	* gst/aiffparse/aiffparse.h:
	  Add an AIFF parsing element, heavily based on wavparse.

2008-08-27  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* sys/winks/gstksvideodevice.c (gst_ks_video_device_class_init,
	  gst_ks_video_device_set_state):
	  Don't set the pin state to KSSTATE_RUN from the streaming thread.
	  Skip KSSTATE_ACQUIRE when changing pin state downwards.
	  Be nice and specify G_PARAM_STATIC_STRINGS.
	  Remove unused finalize method.

	* sys/winks/gstksvideosrc.c (DEFAULT_ENABLE_QUIRKS, PROP_ENABLE_QUIRKS,
	  enable_quirks, gst_ks_video_src_class_init, gst_ks_video_src_init,
	  gst_ks_video_src_finalize, gst_ks_video_src_get_property,
	  gst_ks_video_src_set_property, gst_ks_video_src_reset,
	  gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_change_state,
	  gst_ks_video_src_set_caps):
	  First driver quirk: work around Logitech's hostile driver software to
	  improve stability and performance. See comments for details.
	  Provide a property to disable driver quirks (enabled by default).
	  Be nice and specify G_PARAM_STATIC_STRINGS.
	  Remove unused dispose method.
	  Tweak include order.

2008-08-27  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c: (gst_input_selector_init),
	(gst_input_selector_query):
	Implement the LATENCY query in a better way by taking the latency of all
	sinkpads and taking the min/max instead of just taking a random pad.

2008-08-26  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
	Unroll the loop to handle two bytes at once. This should give
	a small speedup and makes it possible to handle chroma and luma
	different which is needed later.

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

	* gst/dccp/gstdccpserversink.c:
	* gst/dccp/gstdccpserversink.h:
	Don't put globals only used by one '.c' file in a header !
	Declare it as static, fixes build on macosx.

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

	* gst/dccp/gstdccp.c: (gst_dccp_send_buffer):
	Whoops, that was one fix too much :)

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

	* gst/dccp/gstdccp.c: (gst_dccp_read_buffer),
	(gst_dccp_send_buffer), (gst_dccp_set_sock_windowsize):
	size_t's size varies by platform/architecture. Use glib convenience
	macro instead. Fixes build on macosx.
	Remove ending '\n' in debug statements.

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

	* gst/pcapparse/gstpcapparse.c: (gst_pcap_parse_class_init):
	Remove unused code and fix includes.

2008-08-25  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace_method_class_init):
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/tomsmocomp.c:
	(gst_deinterlace_method_tomsmocomp_class_init):
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	First part of the C implementation of the tomsmocomp deinterlacing
	algorithm. This only supports search-effort=0 currently, is painfully
	slow and needs some cleanup later when all search-effort settings
	are implemented in C.

2008-08-24  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/winks/Makefile.am:
	* sys/winks/gstksclock.c:
	* sys/winks/gstksclock.h:
	* sys/winks/gstksvideodevice.c:
	* sys/winks/gstksvideodevice.h:
	* sys/winks/gstksvideosrc.c:
	* sys/winks/gstksvideosrc.h:
	* sys/winks/kshelpers.c:
	* sys/winks/kshelpers.h:
	* sys/winks/ksvideohelpers.c:
	* sys/winks/ksvideohelpers.h:
	  New plugin for low-latency video capture on Windows (#519935).

	  Uses Kernel Streaming, the lowest level API for doing video capture
	  on Windows (more or less just raw ioctls).

2008-08-24  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* gst/pcapparse/gstpcapparse.c:
	* sys/winscreencap/gstdx9screencapsrc.c:
	* sys/winscreencap/gstgdiscreencapsrc.c:
	  Added documentation blobs. Thanks to Stefan for noticing!

2008-08-24  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	* configure.ac:
	* gst/pcapparse/Makefile.am:
	* gst/pcapparse/gstpcapparse.c:
	* gst/pcapparse/gstpcapparse.h:
	  New plugin: pcapparse (#520899).

2008-08-24  Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>

	patch by: Haakon Sporsheim <hakon.sporsheim@tandberg.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/winscreencap/Makefile.am:
	* sys/winscreencap/gstdx9screencapsrc.c:
	* sys/winscreencap/gstdx9screencapsrc.h:
	* sys/winscreencap/gstgdiscreencapsrc.c:
	* sys/winscreencap/gstgdiscreencapsrc.h:
	* sys/winscreencap/gstwinscreencap.c:
	* sys/winscreencap/gstwinscreencap.h:
	  New plugin: winscreencap (#463941).

2008-08-22  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.c:
	  Flip mpeg1/mpeg2 arrays for mpeg audio. Detect which type the audio
	  is correctly, instead of backwards. No functional changes, since this
	  mistake was completely self-consistent.

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

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  Add, but commented out xml/element-dc1394.xml. Its documented, but
	  I can't get it to be build.

	* ext/celt/gstceltdec.c:
	* ext/celt/gstceltenc.c:
	  Fix doc warnings and reformat the doc block.

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

	patch by: Leandro Melo de Sales <leandroal@gmail.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-dccp.xml:
	* gst/dccp/Makefile.am:
	* gst/dccp/gstdccp.c:
	* gst/dccp/gstdccp.h:
	* gst/dccp/gstdccpclientsink.c:
	* gst/dccp/gstdccpclientsink.h:
	* gst/dccp/gstdccpclientsrc.c:
	* gst/dccp/gstdccpclientsrc.h:
	* gst/dccp/gstdccpplugin.c:
	* gst/dccp/gstdccpserversink.c:
	* gst/dccp/gstdccpserversink.h:
	* gst/dccp/gstdccpserversrc.c:
	* gst/dccp/gstdccpserversrc.h:
	* tests/icles/dccp/README:
	* tests/icles/dccp/call/README:
	* tests/icles/dccp/call/DCCPClient.c:
	* tests/icles/dccp/call/DCCPServer.c:
	* tests/icles/dccp/file/DCCPClientSaveFile.c:
	* tests/icles/dccp/file/DCCPServerSendFile.c:
	* tests/icles/dccp/mic/DCCPClientPlayMic.c:
	* tests/icles/dccp/mic/DCCPServerMic.c:
	* tests/icles/dccp/mp3/DCCPClientPlayMP3.c:
	* tests/icles/dccp/mp3/DCCPServerSendMP3.c:
	* tests/icles/dccp/mp3Speex/DCCPClientPlaySpeexMP3.c:
	* tests/icles/dccp/mp3Speex/DCCPServerSendSpeexMP3.c:
	* tests/icles/dccp/mp3Stream/DCCPClientPlayMP3Stream.c:
	* tests/icles/dccp/mp3Stream/DCCPServerSendMP3Stream.c:
	  Add dccp plugin. Fixes #542390.

2008-08-20  Tim-Philipp Müller  <tim at collabora co uk>

	* configure.ac:
	  Remove bits that presumably weren't supposed to be committed.

2008-08-20  Michael Smith <msmith@songbirdnest.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/acmenc/Makefile.am:
	* sys/acmenc/acmenc.c:
	  Add new windows ACM encoder wrapper.

2008-08-18  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Michael Krufky

	* sys/dvb/gstdvbsrc.c:
	* sys/dvb/parsechannels.c:
	Add ATSC tunning and channels.conf parsing support.
	Fixes #537455

2008-08-13  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.c:
	* sys/dshowdecwrapper/gstdshowaudiodec.h:
	* sys/dshowdecwrapper/gstdshowvideodec.c:
	* sys/dshowdecwrapper/gstdshowvideodec.h:
	* sys/dshowvideosink/dshowvideosink.cpp:
	* sys/dshowvideosink/dshowvideosink.h:
	  Initialise COM with default flags.
	  Only deinitialise if the initialisation was successful.

2008-08-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	(gst_rtp_bin_sync_chain), (new_ssrc_pad_found):
	Reset rtp timestamp interpollation when we detect a gap when the
	clock_base changed.
	Don't try to adjust the ts-offset when it's too big (> 3seconds)

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_set_ssrc):
	* gst/rtpmanager/gstrtpsession.h:
	Add method to set session SSRC.

	* gst/rtpmanager/rtpsession.c: (check_collision),
	(rtp_session_set_internal_ssrc), (rtp_session_get_internal_ssrc),
	(rtp_session_on_timeout):
	* gst/rtpmanager/rtpsession.h:
	Added debugging for the collision checks.
	Add method to change the internal SSRC of the session.

	* gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp):
	Reset the clock base when we detect large jumps in the seqnums.

2008-08-12  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c: (gst_x264_enc_reset),
	(gst_x264_enc_chain), (gst_x264_enc_encode_frame):
	* ext/x264/gstx264enc.h:
	Do not deal with duplicated input (timestamps).  If needed,
	a generic element can do so.
	Do not manipulate input timestamps on the way out,
	since that shifts the timeline and A/V sync.

2008-08-12  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* docs/plugins/gst-plugins-bad-plugins.args:
	Integrate new properties into documentation.
	* ext/x264/gstx264enc.c: (gst_x264_enc_class_init),
	(gst_x264_enc_init), (gst_x264_enc_init_encoder),
	(gst_x264_enc_set_property), (gst_x264_enc_get_property):
	Fix up API prior to eventual plugin move.
	API: GstX264Enc:pass (provides more options, and changed to enum)

2008-08-12  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/inspect/plugin-mplex.xml:
	* ext/mplex/gstmplex.cc:
	Update and add documentation for mplex.
	* ext/mpeg2enc/gstmpeg2enc.cc:
	Documentation update.

2008-08-12  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* ext/x264/gstx264enc.c:
	* tests/check/Makefile.am:
	* tests/check/elements/x264enc.c: (setup_x264enc),
	(cleanup_x264enc), (GST_START_TEST), (x264enc_suite), (main):
	Add documentation and unit test for x264enc.

2008-08-11  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c: (gst_x264_enc_init),
	(gst_x264_enc_header_buf), (gst_x264_enc_encode_frame):
	Allocate some buffers in more adaptive and economical fashion.

2008-08-11  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* configure.ac:
	Check for sufficiently up-to-date x264 API.
	* ext/x264/gstx264enc.c: (gst_x264_enc_pass_get_type),
	(gst_x264_enc_base_init), (gst_x264_enc_class_init),
	(gst_x264_enc_init), (gst_x264_enc_init_encoder),
	(gst_x264_enc_set_property), (gst_x264_enc_get_property):
	* ext/x264/gstx264enc.h:
	Expose some more parameters of the x264 encoder as properties.

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

	* gst/rtpmanager/gstrtpbin.c:
	  Print the pad-name in debug log.

	* sys/dshowsrcwrapper/gstdshowaudiosrc.c:
	* sys/dshowsrcwrapper/gstdshowvideosrc.c:
	  Use "-" instead of "_" in property names. Can we call them just
	  "device" like everywhere else?

2008-08-08  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.c: (gst_x264_enc_log_callback),
	(gst_x264_enc_finalize), (gst_x264_enc_header_buf),
	(gst_x264_enc_set_src_caps), (gst_x264_enc_sink_set_caps),
	(gst_x264_enc_flush_frames):
	Coding style and layout; re-order some functions in more
	typical and natural flow.

2008-08-08  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/Makefile.am:
	* ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps),
	(gst_x264_enc_sink_set_caps), (gst_x264_enc_init),
	(gst_x264_enc_reset), (gst_x264_enc_finalize),
	(gst_x264_enc_flush_frames), (gst_x264_enc_sink_event),
	(gst_x264_enc_chain), (gst_x264_enc_encode_frame),
	(gst_x264_enc_change_state), (gst_x264_enc_set_property):
	* ext/x264/gstx264enc.h:
	Use GQueue in stead of custom queue code.
	Factorize flushing out encoder delayed frames.
	Factorize initialization and state change reset.

2008-08-08  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/gstx264enc.h:
	* sys/fbdev/gstfbdevsink.c:
	Use configure-generated _stdint.h.

2008-08-08  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/x264/Makefile.am:
	* ext/x264/gstx264enc.c: (gst_x264_enc_header_buf),
	(gst_x264_enc_sink_set_caps), (gst_x264_enc_base_init),
	(gst_x264_enc_class_init), (gst_x264_enc_log_callback),
	(gst_x264_enc_init), (gst_x264_enc_init_encoder),
	(gst_x264_enc_finalize), (gst_x264_enc_chain),
	(gst_x264_enc_encode_frame), (plugin_init):
	* ext/x264/gstx264enc.h:
	Use video format library and GST_WRITE_*_BE macros where applicable.
	Use finalize in stead of dispose.
	Set up debug category and log callback.

2008-08-07  Tim-Philipp Müller  <tim.muller at collabora co uk>

	Patch by: Frederic Crozat <fcrozat@mandriva.org>

	* ext/sndfile/gstsf.c: (plugin_init):
	* sys/dvb/gstdvbsrc.c: (gst_dvbsrc_plugin_init):
	* sys/oss4/oss4-audio.c: (plugin_init):
	Make sure gettext returns translations in UTF-8 encoding rather
	than in the current locale encoding (#546822).

2008-08-07  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/twolame/gsttwolame.c: (gst_two_lame_sink_setcaps),
	(gst_two_lame_chain):
	* ext/twolame/gsttwolame.h:
	Allow raw float samples as input for encoding.

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

	* ext/jack/gstjackaudiosrc.c:
	  Try committing this once again. Now properly renamed.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-jack.xml
	  Add new element to docs.

	* ext/jack/gstjack.h
	  Add missing file.

	* ext/jack/gstjackaudiosrc.c:
	* ext/jack/gstjackaudiosrc.h:
	  Rename jackaudiosrc to jack_audio_src.

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

	patch by: Tristan Matthews <tristan@sat.qc.ca>

	* ext/jack/Makefile.am:
	* ext/jack/gstjack.c:
	* ext/jack/gstjackaudioclient.c:
	* ext/jack/gstjackaudiosink.c:
	* ext/jack/gstjackaudiosink.h:
	* ext/jack/gstjackaudiosrc.c:
	* ext/jack/gstjackaudiosrc.h:
	* ext/jack/gstjackringbuffer.h:
	  Add a jackaudiosrc. Refactor sink slightly for better code reuse.
	  Fixes #545197.

2008-08-06  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-celt.xml:
	* docs/plugins/inspect/plugin-twolame.xml:
	Add twolame and celt plugins to the docs.

2008-08-05  Wim Taymans  <wim.taymans@collabora.co.uk>

	Based on patch by: Olivier Crete <tester at tester dot ca>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	Make the buffer metadata writable before inserting it in the
	jitterbuffer because the jitterbuffer will modify the timestamps.

	* gst/rtpmanager/rtpjitterbuffer.c:
	Update method comment about requiring writable metadata on buffers.

	* gst/rtpmanager/rtpsession.c: (rtp_session_process_sr),
	(rtp_session_process_rtcp):
	Make the RTCP buffer metadata writable because we want to modify the
	metadata.
	Fixes #546312.

2008-08-05  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c: (gst_selector_pad_bufferalloc),
	(gst_selector_pad_chain), (gst_input_selector_getcaps),
	(gst_input_selector_activate_sinkpad):
	Move the select-all logic into the activation of the currently selected
	pad. We want to remember the last pad with activity in select-all mode.
	Fix the getcaps function, we can produce the union of the upstream caps
	in select-all mode, not the intersection like proxy_getcaps() does.

2008-08-05  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Håvard Graff <havard dot graff at tandberg dot com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain):
	Fix debug by logging the right seqnum.

2008-08-05  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Olivier Crete <tester at tester dot ca>

	* gst/rtpmanager/gstrtpbin.c: (get_pt_map):
	Release lock before emitting the request-pt-map signal.
	Fixes #543480.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace_simple_method_interpolate_scanline),
	(gst_deinterlace_simple_method_copy_scanline),
	(gst_deinterlace_simple_method_deinterlace_frame):
	* gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy):
	* gst/deinterlace2/tvtime/greedyh.c:
	(deinterlace_frame_di_greedyh):
	* gst/deinterlace2/tvtime/scalerbob.c:
	(deinterlace_scanline_scaler_bob):
	* gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy):
	* gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave),
	(copy_scanline):
	* gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave),
	(copy_scanline):
	* gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave),
	(copy_scanline):
	Use oil_memcpy() instead of memcpy() as it's faster for the sizes that
	are usually used here.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace_simple_method_deinterlace_frame),
	(gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method):
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/linear.c:
	(deinterlace_scanline_linear_c), (deinterlace_scanline_linear_mmx),
	(deinterlace_scanline_linear_mmxext),
	(gst_deinterlace_method_linear_class_init),
	(gst_deinterlace_method_linear_init):
	* gst/deinterlace2/tvtime/linearblend.c:
	(deinterlace_scanline_linear_blend_c),
	(deinterlace_scanline_linear_blend2_c),
	(deinterlace_scanline_linear_blend_mmx),
	(deinterlace_scanline_linear_blend2_mmx),
	(gst_deinterlace_method_linear_blend_class_init),
	(gst_deinterlace_method_linear_blend_init):
	* gst/deinterlace2/tvtime/plugins.h:
	* gst/deinterlace2/tvtime/scalerbob.c:
	(deinterlace_scanline_scaler_bob),
	(gst_deinterlace_method_scaler_bob_class_init),
	(gst_deinterlace_method_scaler_bob_init):
	* gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave),
	(copy_scanline), (gst_deinterlace_method_weave_class_init),
	(gst_deinterlace_method_weave_init):
	* gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave),
	(copy_scanline), (gst_deinterlace_method_weave_bff_class_init),
	(gst_deinterlace_method_weave_bff_init):
	* gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave),
	(copy_scanline), (gst_deinterlace_method_weave_tff_class_init),
	(gst_deinterlace_method_weave_tff_init):
	Add the remaining tvtime deinterlacing methods and fix the
	deinterlace_frame() implementation of GstDeinterlaceSimpleMethod.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
	(deinterlace_line_mmx), (gst_deinterlace_method_vfir_class_init):
	Implement the VFIR deinterlacing method as simple method.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace_simple_method_interpolate_scanline),
	(gst_deinterlace_simple_method_copy_scanline),
	(gst_deinterlace_simple_method_deinterlace_frame),
	(gst_deinterlace_simple_method_class_init),
	(gst_deinterlace_simple_method_init):
	* gst/deinterlace2/gstdeinterlace2.h:
	Add a GstDeinterlaceSimpleMethod subclass of GstDeinterlaceMethod that
	can be used by simple deinterlacing methods. They only have to provide
	a function for interpolating a scanline or copying a scanline.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_chain):
	Respect the latency of the deinterlacing algorithm for the timestamps
	of every buffer.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedyh.asm:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	Add the MMX registers to the clobbered registers only if __MMX__ is
	defined.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method),
	(gst_deinterlace2_class_init):
	Enable tomsmocomp again as the C port will be ready for the next
	release.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_init),
	(gst_greatest_common_divisor), (gst_fraction_double),
	(gst_deinterlace2_getcaps), (gst_deinterlace2_setcaps):
	Don't use proxy_getcaps() but implement our own getcaps() function
	that doubles/halfs the framerate if all fields should be sent out.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/Makefile.am:
	* ext/twolame/Makefile.am:
	* ext/twolame/gsttwolame.c: (gst_two_lame_mode_get_type),
	(gst_two_lame_padding_get_type), (gst_two_lame_emphasis_get_type),
	(gst_two_lame_release_memory), (gst_two_lame_finalize),
	(gst_two_lame_base_init), (gst_two_lame_class_init),
	(gst_two_lame_src_setcaps), (gst_two_lame_sink_setcaps),
	(gst_two_lame_init), (gst_two_lame_set_property),
	(gst_two_lame_get_property), (gst_two_lame_sink_event),
	(gst_two_lame_chain), (gst_two_lame_setup),
	(gst_two_lame_change_state), (gst_two_lame_get_default_settings),
	(plugin_init):
	* ext/twolame/gsttwolame.h:
	Add TwoLAME MP2 encoding element, based on the LAME element.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/Makefile.am:
	* ext/celt/Makefile.am:
	* ext/celt/gstcelt.c: (plugin_init):
	* ext/celt/gstceltdec.c: (gst_celt_dec_base_init),
	(gst_celt_dec_class_init), (gst_celt_dec_reset),
	(gst_celt_dec_init), (celt_dec_convert),
	(celt_get_sink_query_types), (celt_dec_sink_query),
	(celt_get_src_query_types), (celt_dec_src_query),
	(celt_dec_src_event), (celt_dec_sink_event),
	(celt_dec_chain_parse_header), (celt_dec_chain_parse_comments),
	(celt_dec_chain_parse_data), (celt_dec_chain),
	(celt_dec_change_state):
	* ext/celt/gstceltdec.h:
	* ext/celt/gstceltenc.c: (gst_celt_enc_setup_interfaces),
	(gst_celt_enc_base_init), (gst_celt_enc_class_init),
	(gst_celt_enc_finalize), (gst_celt_enc_sink_setcaps),
	(gst_celt_enc_sink_getcaps), (gst_celt_enc_convert_src),
	(gst_celt_enc_convert_sink), (gst_celt_enc_get_latency),
	(gst_celt_enc_get_query_types), (gst_celt_enc_src_query),
	(gst_celt_enc_sink_query), (gst_celt_enc_init),
	(gst_celt_enc_create_metadata_buffer), (gst_celt_enc_setup),
	(gst_celt_enc_buffer_from_data), (gst_celt_enc_push_buffer),
	(gst_celt_enc_set_header_on_caps), (gst_celt_enc_sinkevent),
	(gst_celt_enc_chain), (gst_celt_enc_get_property),
	(gst_celt_enc_set_property), (gst_celt_enc_change_state):
	* ext/celt/gstceltenc.h:
	Add CELT encoder and decoder elements based on the Speex elements.

2008-08-02  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by: Tal Shalif <tshalif at nargila dot org>

	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_initsdl):
	Use g_setenv() and g_unsetenv() instead of setenv() to fix compilation
	with mingw. Fixes bug #545247.

2008-08-02  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Back to development -> 0.10.8.1

=== release 0.10.8 ===

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

	* configure.ac:
	  releasing 0.10.8, "Vapour Trails"

2008-07-25  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	0.10.7.3 pre-release

	* po/LINGUAS:
	* po/id.po:
	Add Indonesian translation.

2008-07-23  Michael Smith <msmith@songbirdnest.com>

	* gst/festival/gstfestival.c:
	  Guard unistd.h with HAVE_UNISTD_H
	* gst/modplug/libmodplug/load_it.cpp:
	* gst/modplug/libmodplug/sndfile.cpp:
	* gst/modplug/libmodplug/sndfile.h:
	* gst/modplug/libmodplug/stdafx.h:
	  Support for compiling with MSVC: use _MSC_VER for detecting MSVC instead
	  of MSC_VER. Make CanPackSamples take the type it's passed. Change scope
	  of a variable in load_it.cpp to MSVC's scoping rules.
	* gst/sdp/gstsdpdemux.c:
	  Guard unistd.h with HAVE_UNISTD_H
	  Fixes #544457.

2008-07-22  Stefan Kost  <ensonic@users.sf.net>

	* ext/timidity/gsttimidity.c:
	  Fix compiler warning. Fixes #544050.

2008-07-21  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Don't check for nav_print.h any more - it should be included in
	the libdvdnav development package if libdvdnav headers depend on it.
	Fixes: #543846

2008-07-21  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* ext/ladspa/Makefile.am:
	Link the ladspa plugin with -ldl. It's needed for dlopen() and friends
	for loading the ladspa plugins and previously was linked in by
	gmodule. Fixes bug #543848.

2008-07-21  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/modplug/libmodplug/Makefile.am:
	Use GST_CXXFLAGS instead of GST_CFLAGS for CXXFLAGS. GST_CFLAGS
	can contain compiler parameters that are invalid for C++.
	Fixes bug #543860.

2008-07-21  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/resindvd/Makefile.am:
	Dist missing header files. Fixes bug #543861.

2008-07-19  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	0.10.7.2 pre-release

2008-07-19  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/Makefile.am:
	Dist and recurse into resindvd subdir

2008-07-19  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Remove interleave and replaygain configure.ac pieces too

2008-07-19  Jan Schmidt  <jan.schmidt@sun.com>

	* po/LINGUAS:
	* po/lt.po:
	Add new lithunian translation, and add french to the LINGUAS
	file.

2008-07-19  Jan Schmidt  <jan.schmidt@sun.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-interleave.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* gst/interleave/Makefile.am:
	* gst/interleave/deinterleave.c:
	* gst/interleave/deinterleave.h:
	* gst/interleave/interleave.c:
	* gst/interleave/interleave.h:
	* gst/interleave/plugin.c:
	* gst/interleave/plugin.h:
	* gst/replaygain/Makefile.am:
	* gst/replaygain/gstrganalysis.c:
	* gst/replaygain/gstrganalysis.h:
	* gst/replaygain/gstrglimiter.c:
	* gst/replaygain/gstrglimiter.h:
	* gst/replaygain/gstrgvolume.c:
	* gst/replaygain/gstrgvolume.h:
	* gst/replaygain/replaygain.c:
	* gst/replaygain/replaygain.h:
	* gst/replaygain/rganalysis.c:
	* gst/replaygain/rganalysis.h:
	* tests/check/Makefile.am:
	* tests/check/elements/deinterleave.c:
	* tests/check/elements/interleave.c:
	* tests/check/elements/rganalysis.c:
	* tests/check/elements/rglimiter.c:
	* tests/check/elements/rgvolume.c:
	Remove interleave and replaygain plugins that have moved to -good

2008-07-18  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method),
	(gst_deinterlace2_class_init), (gst_deinterlace2_init):
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/greedy.c:
	(gst_deinterlace_method_greedy_l_class_init):
	* gst/deinterlace2/tvtime/greedyh.c:
	(gst_deinterlace_method_greedy_h_class_init):
	* gst/deinterlace2/tvtime/vfir.c:
	(gst_deinterlace_method_vfir_class_init):
	Disable the tomsmocomp algorithm for this release as it's buggy
	and has no C implementation yet.

	Build the deinterlace2 plugin on all architectures but still mark it
	as experimental.
	
	Build the x86 inline assembly only if GCC inline assembly is supported
	and only on x86 or amd64. Fixes bug #543286.

2008-07-16  Jan Schmidt  <Jan.Schmidt@sun.com>

	* gst/real/gstrealvideodec.c: (open_library):
	Add some casts to fix the build on Forte

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

	* gst/deinterlace2/tvtime/greedy.c:
	(gst_deinterlace_method_greedy_l_class_init):
	* gst/deinterlace2/tvtime/greedyh.c:
	(gst_deinterlace_method_greedy_h_class_init):
	* gst/deinterlace2/tvtime/vfir.c:
	(gst_deinterlace_method_vfir_class_init):
	Fix build on x86_64

2008-07-14  Jan Schmidt  <thaytan@noraisin.net>

	* ext/resindvd/gstmpegdemux.c:
	Remove whitespace line.

	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdbin.h:
	Make it so that audio/video pads aren't added to the bin
	until after data flow starts.

	* ext/resindvd/resin-play:
	Move video buffer queue outside resindvdbin

	* ext/resindvd/resindvdsrc.c:
	Check that the nav_clock_id didn't already get unscheduled.

	* gst/dvdspu/gstdvdspu.c:
	Remove assert that sometimes triggers erroneously.

2008-07-13  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedyh.asm:
	Always use the C implementation if width is not a multiple of 4. The
	assembly optimized version only handle this and calling the C
	implementation for the remaining part doesn't work because it needs
	previous calculations.

2008-07-13  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedyh.asm:
	* gst/deinterlace2/tvtime/greedyh.c:
	* gst/deinterlace2/tvtime/greedyhmacros.h:
	Some cleanup, use 3DNOW instead of TDNOW in macros.

	* gst/deinterlace2/tvtime/tomsmocomp.c:
	(gst_deinterlace_method_tomsmocomp_class_init):
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	The SSE method in fact only needs MMXEXT, declare it as such.

2008-07-11  Jan Schmidt  <thaytan@noraisin.net>

	* docs/plugins/.cvsignore:
	Ignore *-undeclared.txt

	* ext/resindvd/rsnaudiomunge.c:
	Turn g_print's into debug statements.

	* ext/resindvd/resin-play:
	* ext/resindvd/Makefile.am:
	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdbin.h:
	* ext/resindvd/rsnparsetter.c:
	* ext/resindvd/rsnparsetter.h:
	* ext/resindvd/rsnwrappedbuffer.c:
	* ext/resindvd/rsnwrappedbuffer.h:
	Add a bloated implementation of a really simple idea: Replace the
	pixel-aspect-ratio in the output video with a prescribed one when
	necessary. There must be an easier way.

	Split the dvdspu out of the resindvdbin and put out the subpicture
	stream on the subpicture pad.

	* ext/resindvd/gstmpegdemux.c:
	Send video-aspect events down the pipe from the demuxer.

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	Handle timed-stills somewhat using g_cond_timed_wait, with a FIXME
	to make it use clock-waiting later.

	* ext/resindvd/rsnbasesrc.c:
	Don't overwrite the last_stop in the basesrc segment after a seamless
	seek.

2008-07-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	Convert extended event text to UTF-8.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-stereo.xml:
	* gst/stereo/gststereo.c:
	  Document one more.

2008-07-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/gstmpegdesc.h:
	Fix extended event descriptor parsing, out by 1 in position of
	text length.

2008-07-09  Stefan Kost  <ensonic@users.sf.net>

	* gst/festival/gstfestival.c:
	  Add a note to the docs, that festival need to be running. Also log an
	  error it it is not. Fixes #541327

2008-07-08  Thijs Vermeir  <thijsvermeir@gmail.com>

	patch by: Ilja Pavkovic <illsen@gumblfarz.de>

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/gstrfbsrc.h:
	Add view-only property to ignore the navigation events

2008-07-08  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowdecwrapper/gstdshowaudiodec.c:
	  Revert previous patch apart from typo fixes; the patch was not
	  independently useful.

2008-07-08  Michael Smith <msmith@songbirdnest.com>

	Based on patch by: Alessandro Decina <alessandro@nnva.org>
	* sys/dshowdecwrapper/gstdshowaudiodec.c:
	* sys/dshowdecwrapper/gstdshowdecwrapper.h:
	* sys/dshowdecwrapper/gstdshowvideodec.c:
	  Add AAC, AC3 to handled codecs.
	  Fix handling of flush events.
	  Improve debug/error output.
	  Fix a number of typos in comments and variable names.

2008-07-08  Thijs Vermeir  <thijsvermeir@gmail.com>

	patch by: Ilja Pavkovic <illsen@gumblfarz.de>

	* gst/librfb/rfbdecoder.c:
	Implement ServerCutText message

2008-07-08  Thijs Vermeir  <thijsvermeir@gmail.com>

	patch by: Ilja Pavkovic <illsen@gumblfarz.de>

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfbdecoder.c:
	Add property for shared desktop

2008-07-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	Don't include ERROR_CFLAGS in GST_CXXFLAGS as it might include
	flags that are invalid for C++.

2008-07-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* ext/spc/gstspc.c: (spc_setup):
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	Don't use declarations after statements in the remaining code.

2008-07-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	Patch by:
	  Jonathan Rosser <jonathan dot rosser at rd dot bbc dot co dot uk>

	* ext/metadata/metadataexif.c: (metadataparse_handle_unit_tags):
	* ext/metadata/metadataxmp.c:
	(metadataparse_xmp_iter_add_to_tag_list):
	* ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_start):
	* ext/timidity/gstwildmidi.c: (gst_wildmidi_loop):
	Don't use declarations after statements.

2008-07-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Alessandro Decina

	* gst/mpegtsparse/mpegtsparse.c:
	Fix memory leak by unreffing structures when not needed.
	Fixes #539292.

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

	* gst/sdp/gstsdpdemux.c:
	  Use floating point math for latencies < 0 sec in log output.

2008-07-06  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	Mark internal processing functions as static inline for quite some
	speedup as they're used only once and need to get many local variables
	passed as parameter.

2008-07-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace_method_deinterlace_frame),
	(gst_deinterlace2_set_method), (gst_deinterlace2_init),
	(gst_deinterlace2_reset_history), (gst_deinterlace2_reset),
	(gst_deinterlace2_set_property), (gst_deinterlace2_get_property),
	(gst_deinterlace2_pop_history), (gst_deinterlace2_head_history),
	(gst_deinterlace2_push_history), (gst_deinterlace2_chain),
	(gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
	(gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
	(gst_deinterlace2_src_query):
	* gst/deinterlace2/gstdeinterlace2.h:
	Call the current instance "self" instead of "object".

2008-07-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace_method_get_latency),
	(gst_deinterlace2_set_method), (gst_deinterlace2_class_init),
	(gst_deinterlace2_push_history), (gst_deinterlace2_chain),
	(gst_deinterlace2_setcaps), (gst_deinterlace2_src_query):
	* gst/deinterlace2/gstdeinterlace2.h:
	Include latency of the method in the returned latency.

	Fix outputting of all fields, i.e. doubling of the framerate.

2008-07-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace_method_class_init), (gst_deinterlace_method_init),
	(gst_deinterlace_method_deinterlace_frame),
	(gst_deinterlace_method_get_fields_required),
	(gst_deinterlace2_methods_get_type), (_do_init),
	(gst_deinterlace2_set_method), (gst_deinterlace2_class_init),
	(gst_deinterlace2_child_proxy_get_child_by_index),
	(gst_deinterlace2_child_proxy_get_children_count),
	(gst_deinterlace2_child_proxy_interface_init),
	(gst_deinterlace2_init), (gst_deinterlace2_finalize),
	(gst_deinterlace2_chain), (gst_deinterlace2_src_query):
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/greedy.c:
	(deinterlace_greedy_packed422_scanline_c),
	(deinterlace_greedy_packed422_scanline_mmx),
	(deinterlace_greedy_packed422_scanline_mmxext),
	(deinterlace_frame_di_greedy),
	(gst_deinterlace_method_greedy_l_set_property),
	(gst_deinterlace_method_greedy_l_get_property),
	(gst_deinterlace_method_greedy_l_class_init),
	(gst_deinterlace_method_greedy_l_init):
	* gst/deinterlace2/tvtime/greedyh.asm:
	* gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C),
	(deinterlace_frame_di_greedyh),
	(gst_deinterlace_method_greedy_h_set_property),
	(gst_deinterlace_method_greedy_h_get_property),
	(gst_deinterlace_method_greedy_h_class_init),
	(gst_deinterlace_method_greedy_h_init):
	* gst/deinterlace2/tvtime/greedyh.h:
	* gst/deinterlace2/tvtime/plugins.h:
	* gst/deinterlace2/tvtime/tomsmocomp.c:
	(gst_deinterlace_method_tomsmocomp_set_property),
	(gst_deinterlace_method_tomsmocomp_get_property),
	(gst_deinterlace_method_tomsmocomp_class_init),
	(gst_deinterlace_method_tomsmocomp_init):
	* gst/deinterlace2/tvtime/tomsmocomp.h:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	* gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir),
	(gst_deinterlace_method_vfir_class_init),
	(gst_deinterlace_method_vfir_init):
	Use a GstObject subtype for the deinterlacing methods and export
	the different settings for each deinterlacing method via GObject
	properties.

	Implement GstChildProxy interface to allow access to the used
	deinterlacing method and to allow adjusting the different settings.

	Move global variables of the tomsmocomp deinterlacing method into
	function local variables to make it possible to use this deinterlacing
	method from different instances.

2008-07-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedyh.asm:
	Support widths that are not a multiply of 4 when using the assembly
	optimized greedyh implementations.

2008-07-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedyh.c:
	(deinterlace_frame_di_greedyh):
	Only build the assembly optimized implementations on x86.

2008-07-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

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

	* configure.ac:
	Fix checking of headers for the OSS4 plugin to fail if a single
	header doesn't exist already. AC_CHECK_HEADERS only fails if none
	of the headers is found. Fixes bug #541543.

2008-07-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

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

	* configure.ac:
	* gst/festival/Makefile.am:
	* gst/festival/gstfestival.c:
	Fix built of the festival plugin with mingw32 by linking to ws2_32.dll
	and including winsock headers. Fixes bug #541522.

2008-07-03  Peter Kjellerstedt  <pkj@axis.com>

	* ChangeLog:
	* gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_loop):
	* gst/rtpmanager/rtpsource.c: (rtp_source_get_new_sr):
	Corrected a typo (interpollate -> interpolate).

2008-07-03  Peter Kjellerstedt  <pkj@axis.com>

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp),
	(gst_rtp_session_send_rtp), (gst_rtp_session_send_rtcp),
	(gst_rtp_session_sync_rtcp), (gst_rtp_session_chain_recv_rtp),
	(gst_rtp_session_chain_recv_rtcp), (gst_rtp_session_chain_send_rtp):
	* gst/rtpmanager/rtpsession.c: (source_push_rtp),
	(rtp_session_send_rtp):
	* gst/rtpmanager/rtpsource.c: (push_packet), (calculate_jitter),
	(rtp_source_process_rtp), (rtp_source_send_rtp):
	Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a
	pipeline is running normally.

2008-07-03  Peter Kjellerstedt  <pkj@axis.com>

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init),
	(gst_rtp_session_finalize), (rtcp_thread),
	(gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_recv_rtcp),
	(gst_rtp_session_event_send_rtp_sink),
	(gst_rtp_session_chain_send_rtp):
	* gst/rtpmanager/rtpsession.c: (check_collision),
	(update_arrival_stats), (rtp_session_process_rtp),
	(rtp_session_process_rtcp), (rtp_session_send_rtp),
	(rtp_session_send_bye_locked), (rtp_session_send_bye),
	(rtp_session_next_timeout), (session_report_blocks), (session_cleanup),
	(is_rtcp_time), (rtp_session_on_timeout):
	* gst/rtpmanager/rtpsession.h:
	Do not mix the use of g_get_current_time() with gst_clock_get_time().

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

	* gst/mpegvideoparse/mpegvideoparse.c:
	* gst/mpegvideoparse/mpegvideoparse.h:
	Queue new-segment events and send them after caps have been
	determined and set, so that the decoder will have been auto-plugged.

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

	Patch by : Michael Smith <msmith @ xiph dot org>
	
	* sys/qtwrapper/audiodecoders.c: (qtwrapper_audio_decoder_init),
	(clear_AudioStreamBasicDescription), (fill_indesc_mp3),
	(fill_indesc_aac), (make_samr_magic_cookie), (write_len),
	(make_aac_magic_cookie), (open_decoder), (process_buffer_cb),
	(qtwrapper_audio_decoder_chain),
	(qtwrapper_audio_decoder_sink_event),
	(qtwrapper_audio_decoder_base_init),
	(qtwrapper_audio_decoder_class_init),
	(qtwrapper_audio_decoders_register):
	* sys/qtwrapper/codecmapping.h:
	* sys/qtwrapper/imagedescription.c: (image_description_for_avc1),
	(image_description_for_mp4v), (image_description_from_stsd_buffer):
	* sys/qtwrapper/imagedescription.h:
	* sys/qtwrapper/qtutils.c: (get_name_info_from_component),
	(dump_avcc_atom), (dump_image_description),
	(AllocateAudioBufferList):
	* sys/qtwrapper/qtutils.h:
	* sys/qtwrapper/qtwrapper.c: (plugin_init):
	* sys/qtwrapper/qtwrapper.h:
	* sys/qtwrapper/videodecoders.c:
	(qtwrapper_video_decoder_base_init), (open_decoder),
	(decompressCb), (qtwrapper_video_decoder_chain),
	(qtwrapper_video_decoders_register):
	Make qtwrapper compile/work on win32.
	Lots of fixes
	Fixes #531840

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

	* gst/rawparse/gstvideoparse.c:
	Fix size calculation for RGB buffers -> bpp is in bits, so divide by 8

2008-06-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/tvtime/tomsmocomp.c: (tomsmocomp_init),
	(tomsmocomp_filter_mmx), (tomsmocomp_filter_3dnow),
	(tomsmocomp_filter_sse), (deinterlace_frame_di_tomsmocomp):
	* gst/deinterlace2/tvtime/tomsmocomp.h:
	Remove useless file and mark everything possible as static.

	* gst/deinterlace2/tvtime/greedy.c:
	* gst/deinterlace2/tvtime/greedyh.c:
	Use "_stdint.h" instead of <stdint.h>.

2008-06-29  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_init):
	* gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy):
	* gst/deinterlace2/tvtime/greedyh.c:
	(deinterlace_frame_di_greedyh):
	* gst/deinterlace2/tvtime/speedtools.h:
	* gst/deinterlace2/tvtime/speedy.c:
	* gst/deinterlace2/tvtime/speedy.h:
	* gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy):
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	* gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir):
	Get rid of speedy.[ch] as we don't use most of it's code anyway
	and it doesn't seem to be relicensed to LGPL. Use memcpy() instead
	of the speedy memcpy everywhere instead.
	
	* gst/deinterlace2/gstdeinterlace2.h:
	Remove many unused declarations.

2008-06-28  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* ext/mpeg2enc/gstmpeg2encoptions.cc:
	* ext/mpeg2enc/gstmpeg2encoptions.hh:
	Expose the additional MPEG HDTV format profiles available in latest
	mjpegtools version.

2008-06-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_src_query):
	Divide latency be 2 to convert from fields to frames.

2008-06-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedy.c:
	(deinterlace_greedy_packed422_scanline_c),
	(deinterlace_greedy_packed422_scanline_mmx),
	(deinterlace_greedy_packed422_scanline_mmxext),
	(deinterlace_frame_di_greedy):
	Don't use scanlines function from gstdeinterlace2 as it's
	not appropiate for this method. Instead implement deinterlace_frame
	function by taking the one from greedyh.
	
	* gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C):
	Small fix for the C implementation.

	* gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir):
	Don't use the scanlines function from gstdeinterlace2 as it's only
	used for this method and will be removed. Instead implement
	deinterlace_frame function and make it a bit more efficient.

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace2_class_init), (gst_deinterlace2_set_method),
	(gst_deinterlace2_push_history), (gst_deinterlace2_chain),
	(gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
	(gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
	(gst_deinterlace2_src_query):
	Fix coding style and remove scanlines function as it's unused now.

2008-06-28  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedyh.asm:
	* gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C),
	(deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method):
	* gst/deinterlace2/tvtime/greedyhmacros.h:
	Add a C implementation for the greedyh deinterlacing method, clean
	up the code a bit and mark the SSE version as MMXEXT as it doesn't
	require any SSE instructions.

2008-06-27  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace2_set_property), (gst_deinterlace2_chain),
	(gst_deinterlace2_setcaps):
	If we're outputting all fields the framerate has to be doubled.

	Set duration on the outgoing buffers.

2008-06-26  Mark Nauwelaerts  <mark.nauwelaerts@collabora.co.uk>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/y4m/gsty4mencode.c:
	Add documentation for YUV4MPEG2 encoder element.

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

	* gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	Remove unneeded macros that break build on macosx.

2008-06-24  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* configure.ac:
	  Depend on released versions of core and -base.

2008-06-24  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedy.c:
	(deinterlace_greedy_packed422_scanline_mmx),
	(deinterlace_greedy_packed422_scanline_mmxext):
	Optimize MMX/MMXEXT implementations a bit by requiring two less
	memory accesses and fix the workaround for the missing right shift
	on bytes to unset the highest bit of every byte.

2008-06-24  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedy.c:
	(deinterlace_greedy_packed422_scanline_mmxext):
	Remove sfence instruction as it's not needed and actually is an SSE
	instruction.

2008-06-24  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedy.c:
	(deinterlace_greedy_packed422_scanline_mmx),
	(deinterlace_greedy_packed422_scanline):
	Add plain MMX implementation for the greedyl method.

2008-06-24  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/Makefile.am:
	Move the assembly includes to noinst_HEADERS where they belong.

	* gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
	(deinterlace_line_mmx):
	Fix C and MMX implementations a bit more.

2008-06-24  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedy.c:
	(deinterlace_greedy_packed422_scanline_c),
	(deinterlace_greedy_packed422_scanline_mmxext),
	(deinterlace_greedy_packed422_scanline):
	Fix the C implementation to produce correct results and optimize the
	MMXEXT implementation.

	Handle odd widths and don't read over array boundaries in the MMXEXT
	implementation.

	* gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
	(deinterlace_line_mmx), (deinterlace_scanline_vfir):
	Fix a small rounding bug in the MMX implementation, the MMX
	implementation doesn't actually need MMXEXT instructions so don't mark
	it as such.

	Handle odd widths in both implementations.

2008-06-22  Stefan Kost  <ensonic@users.sf.net>

	* ext/resindvd/rsnbasesrc.c:
	  Use the right i18n header.

2008-06-21  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/greedy.c:
	(deinterlace_greedy_packed422_scanline_sse),
	(deinterlace_greedy_packed422_scanline_c),
	(deinterlace_greedy_packed422_scanline):
	Implement a C version of the greedy low motion algorithm and mark the
	assembly optimized version as SSE as it uses SSE instructions
	additional to MMX instructions.

2008-06-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	Patch by: Sebastian Pölsterl

	* gst/mpegtsparse/mpegtspacketizer.c:
	Fix problem when empty string is provided.

2008-06-20  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_mmxext),
	(deinterlace_line_c), (deinterlace_scanline_vfir):
	Make it possible to use the vfir method on X86 CPUs without MMXEXT too
	but use the MMXEXT optimized code whenever possible.

2008-06-20  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace2_class_init), (gst_deinterlace2_init),
	(gst_deinterlace2_reset_history), (gst_deinterlace2_reset),
	(gst_deinterlace2_finalize), (gst_deinterlace2_chain),
	(gst_deinterlace2_sink_event), (gst_deinterlace2_change_state),
	(gst_deinterlace2_src_query):
	* gst/deinterlace2/gstdeinterlace2.h:
	Reset element state on PAUSED->READY properly, don't leak any buffers
	when finalizing, allocate buffers with gst_pad_alloc_buffer() and
	properly return flow returns from gst_pad_push() instead of ignoring them.

2008-06-20  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
	Add missing header.

2008-06-20  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* configure.ac:
	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/tvtime/greedyh.asm:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	Fix compilation on generic x86/amd64 and include deinterlace2 in the
	build system. Because of several bugs it's still enabled only
	by --enable-experimental.

2008-06-20  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	Schedule NAV packets and activate them with an async clock callback
	at the right moment. This makes delayed menu highlights appear
	at the correct time and fixes Back To The Future.

	When outputting new segment in do_seek(), calculate our position
	value properly, so we report the right time when popping in and
	out of the menus.

	* ext/resindvd/rsnbasesrc.c:
	When handling a non-flushing seek, accumulate the segment,
	rather than having every seek start from 0 and messing with sync

2008-06-19  Stefan Kost  <ensonic@users.sf.net>

	* gst/selector/gstoutputselector.c:
	* tests/icles/output-selector-test.c:
	  Use BOILERPLATE macro and update test to the latest api changes.

2008-06-19  Wim Taymans  <wim.taymans@collabora.co.uk>

	* examples/app/appsink-src.c: (on_new_buffer_from_source):
	Don't use a buffer after unreffing it.

2008-06-18  Stefan Kost  <ensonic@users.sf.net>

	* ext/metadata/metadataexif.c:
	  Add description tag mapping.

2008-06-18  Stefan Kost  <ensonic@users.sf.net>

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* examples/app/appsrc-ra.c:
	* examples/app/appsrc-seekable.c:
	* examples/app/appsrc-stream.c:
	* examples/app/appsrc-stream2.c:
	* ext/directfb/dfbvideosink.h:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadataexif.c:
	* ext/theora/theoradec.h:
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/speedy.c:
	* gst/deinterlace2/tvtime/speedy.h:
	* gst/deinterlace2/tvtime/vfir.c:
	 Fix gtk-doc warnings. Also don't misuse api-doc comments for normal
	 comments.

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

	* ext/resindvd/resindvdbin.c:
	Parse the URI argument into the device name so dvd:///path/to/image
	works.

	* ext/resindvd/resindvdsrc.c:
	Implement a trivial duration query reporting the current PGC length.

	* gst/dvdspu/gstdvdspu.c:
	Rename typo in the function name.

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

	* configure.ac:
	Disable deinterlace2 plugin again which was accidently enabled
	with last commit.

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

	* configure.ac:
	* ext/resindvd/resindvdsrc.h:
	Make resindvd work with libdvdnav >= 4.0.0.

2008-06-17  Jan Schmidt  <thaytan@noraisin.net>

	* configure.ac:
	Check for libdvdnav to build resindvd.

	* ext/Makefile.am:
	* ext/resindvd/Makefile.am:
	* ext/resindvd/gstmpegdefs.h:
	* ext/resindvd/gstmpegdemux.c:
	* ext/resindvd/gstmpegdemux.h:
	* ext/resindvd/gstmpegdesc.c:
	* ext/resindvd/gstmpegdesc.h:
	* ext/resindvd/gstpesfilter.c:
	* ext/resindvd/gstpesfilter.h:
	* ext/resindvd/plugin.c:
	* ext/resindvd/resin-play:
	* ext/resindvd/resindvdbin.c:
	* ext/resindvd/resindvdbin.h:
	* ext/resindvd/resindvdsrc.c:
	* ext/resindvd/resindvdsrc.h:
	* ext/resindvd/rsnaudiomunge.c:
	* ext/resindvd/rsnaudiomunge.h:
	* ext/resindvd/rsnbasesrc.c:
	* ext/resindvd/rsnbasesrc.h:
	* ext/resindvd/rsnpushsrc.c:
	* ext/resindvd/rsnpushsrc.h:
	* ext/resindvd/rsnstreamselector.c:
	* ext/resindvd/rsnstreamselector.h:

	First commit of DVD-Video playback component 'rsndvdbin'
	and helper elements.

	Use --enable-experimental for now, but feel free to give it a
	try using the resin-play script.

	* gst/dvdspu/gstdvdspu.c:
	Add some extra guards for malformed events.

2008-06-16  David Schleef  <ds@schleef.org>

	* configure.ac:
	Bump dirac requirement to 0.10 due to api changes.

2008-06-16  Andy Wingo  <wingo@pobox.com>

	* gst-libs/gst/app/gstappsrc.c (gst_app_src_set_max_bytes)
	(gst_app_src_get_max_bytes, gst_app_src_push_buffer): Use
	G_GUINT64_FORMAT. Avoid overflow in get_max_bytes().

2008-06-16  Stefan Kost  <ensonic@users.sf.net>

	* sys/dvb/gstdvbsrc.c:
	  Move docblob upwards. Balance tags and restore blank line.

2008-06-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Fix out of date docs.

2008-06-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	Patch from: Vincent Genieux

	* gst/mpegtsparse/mpegtsparse.c:
	Fix refcount issues, fixes #538560.

2008-06-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/gstmpegdesc.h:
	* gst/mpegtsparse/mpegtspacketizer.c:
	Parse the extended event descriptor.

2008-06-16  Stefan Kost  <ensonic@users.sf.net>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/speed/gstspeed.c:
	* gst/speexresample/gstspeexresample.c:
	* gst/videosignal/gstvideoanalyse.c:
	* gst/videosignal/gstvideodetect.c:
	* gst/videosignal/gstvideomark.c:
	* sys/dvb/gstdvbsrc.c:
	* sys/oss4/oss4-mixer.c:
	* sys/oss4/oss4-sink.c:
	* sys/oss4/oss4-source.c:
	* sys/wininet/gstwininetsrc.c:
	  Final round of doc updates.

2008-06-16  Stefan Kost  <ensonic@users.sf.net>

	* gst/deinterlace/gstdeinterlace.c:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpclient.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtpmanager/gstrtpptdemux.c:
	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/gstrtpssrcdemux.c:
	* gst/sdp/gstsdpdemux.c:
	  More doc updates. More xrefs.

2008-06-14  Julien Moutte  <julien@fluendo.com>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	(gst_flv_demux_dispose):
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate),
	(gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate),
	(gst_flv_parse_tag_video): Introduce demuxing support for AAC and
	H.264/AVC inside FLV.
	* sys/dshowdecwrapper/gstdshowaudiodec.c: (gst_dshowaudiodec_init),
	(gst_dshowaudiodec_chain), (gst_dshowaudiodec_push_buffer),
	(gst_dshowaudiodec_sink_event), (gst_dshowaudiodec_setup_graph):
	* sys/dshowdecwrapper/gstdshowaudiodec.h:
	* sys/dshowdecwrapper/gstdshowvideodec.c: (gst_dshowvideodec_init),
	(gst_dshowvideodec_sink_event), (gst_dshowvideodec_chain),
	(gst_dshowvideodec_push_buffer), (gst_dshowvideodec_src_getcaps):
	* sys/dshowdecwrapper/gstdshowvideodec.h: Lot of random fixes 
	to improve stability (ref counting, safety checks...)

2008-06-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_probe_modules):
	Disable sipro on 64bits, it crashes.

2008-06-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain),
	(close_library), (open_library),
	(gst_real_audio_dec_probe_modules), (gst_real_audio_dec_getcaps),
	(gst_real_audio_dec_setcaps), (gst_real_audio_dec_init),
	(gst_real_audio_dec_change_state), (gst_real_audio_dec_finalize):
	Add raversions we can support on the caps.
	Refactor the loading of the real codecs like realvideo so that we can
	implement probing.
	Probe all supported formats by trying to load the .so files, only report
	the versions on the caps that we can actually load.

	* gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	(gst_real_video_dec_getcaps), (gst_real_video_dec_setcaps),
	(open_library), (close_library),
	(gst_real_video_dec_probe_modules),
	(gst_real_video_dec_change_state), (gst_real_video_dec_init),
	(gst_real_video_dec_finalize), (gst_real_video_dec_class_init):
	* gst/real/gstrealvideodec.h:
	Change the loading of the library like the audio decoder.
	Probe the supported formats by trying to load the .so files and only
	report the versions on the caps that we can actually load.

2008-06-13  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Sebastian Pölsterl

	* gst/mpegtsparse/mpegtspacketizer.c:
	Handle character sets in strings coming from DVB SI according
	to the DVB SI spec.

2008-06-13  Stefan Kost  <ensonic@users.sf.net>

	* gst/replaygain/gstrganalysis.c:
	* gst/replaygain/gstrglimiter.c:
	* gst/replaygain/gstrgvolume.c:
	  More doc updates.

2008-06-13  Stefan Kost  <ensonic@users.sf.net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-interleave.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegtsparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-mythtv.xml
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-oss4.xml
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-subenc.xml
	* docs/plugins/inspect/plugin-timidity.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbenc.c:
	* ext/amrwb/gstamrwbparse.c:
	* ext/dc1394/gstdc1394.c:
	* ext/directfb/dfbvideosink.c:
	* ext/ivorbis/vorbisdec.c:
	* ext/jack/gstjackaudiosink.c:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mplex/gstmplex.cc:
	* ext/musicbrainz/gsttrm.c:
	* ext/mythtv/gstmythtvsrc.c:
	* ext/theora/theoradec.c:
	* ext/timidity/gsttimidity.c:
	* ext/timidity/gstwildmidi.c:
	* gst-libs/gst/app/gstappsink.c:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/dvdspu/gstdvdspu.c:
	* gst/festival/gstfestival.c:
	* gst/freeze/gstfreeze.c:
	* gst/interleave/deinterleave.c:
	* gst/interleave/interleave.c:
	* gst/modplug/gstmodplug.cc:
	* gst/nuvdemux/gstnuvdemux.c:
	  Add missing elements to docs. Fix doc-markup: use convinience syntax
	  for examples (produces valid docbook), add several refsec2 when we
	  have several titles. Fix some types.

2008-06-12  Wim Taymans  <wim.taymans@collabora.co.uk>

	* examples/app/.cvsignore:
	* examples/app/Makefile.am:
	* examples/app/appsink-src.c: (on_new_buffer_from_source),
	(on_source_message), (on_sink_message), (main):
	Add beefed up example app from bug #413418. It now also uses appsink
	instead of fakesink for more ultimate coolness.

	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	(gst_app_src_init), (gst_app_src_set_property),
	(gst_app_src_get_property), (gst_app_src_unlock),
	(gst_app_src_unlock_stop), (gst_app_src_create),
	(gst_app_src_set_max_bytes), (gst_app_src_push_buffer),
	(gst_app_src_end_of_stream):
	* gst-libs/gst/app/gstappsrc.h:
	Add block property to allow push based implementation to block when we
	fill up the appsrc queues.
	Emit the enough-data signal while releasing our lock.

2008-06-12  Stefan Kost  <ensonic@users.sf.net>

	* examples/app/.cvsignore:
	  Ignore more.

2008-06-12  Stefan Kost  <ensonic@users.sf.net>

	* ext/dc1394/gstdc1394.c:
	* ext/ivorbis/vorbisdec.c:
	* ext/jack/gstjackaudiosink.c:
	* ext/metadata/gstmetadatademux.c:
	* ext/mythtv/gstmythtvsrc.c:
	* ext/theora/theoradec.c:
	* gst-libs/gst/app/gstappsink.c:
	* gst/bayer/gstbayer2rgb.c:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/rawparse/gstaudioparse.c:
	* gst/rawparse/gstvideoparse.c:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpclient.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtpmanager/gstrtpptdemux.c:
	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/gstrtpssrcdemux.c:
	* gst/selector/gstinputselector.c:
	* gst/selector/gstoutputselector.c:
	* gst/videosignal/gstvideoanalyse.c:
	* gst/videosignal/gstvideodetect.c:
	* gst/videosignal/gstvideomark.c:
	* sys/oss4/oss4-mixer.c:
	* sys/oss4/oss4-sink.c:
	* sys/oss4/oss4-source.c:
	  Do not use short_description in section docs for elements. We extract
	  them from element details and there will be warnings if they differ.
	  Also fixing up the ChangeLog order.

2008-06-12  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Sebastien Merle <sylane at gmail dot com>

	* ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_chain):
	Fix the sign of the data we pass to the decoder so that the decoder
	compiles with newer reference code as well. Fixes #528618.

2008-06-12  Stefan Kost  <ensonic@users.sf.net>

	* tests/icles/test-oss4.c:
	  Include stdlib.h.

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

	Based on a patch by: Martin Eikermann <meiker at upb dot de>

	* gst/deinterlace2/Makefile.am:
	* gst/deinterlace2/gstdeinterlace2.c:
	(gst_deinterlace2_method_get_type),
	(gst_deinterlace2_fields_get_type),
	(gst_deinterlace2_field_layout_get_type),
	(gst_deinterlace2_base_init), (gst_deinterlace2_class_init),
	(gst_deinterlace2_init), (gst_deinterlace2_set_method),
	(gst_deinterlace2_set_property), (gst_deinterlace2_get_property),
	(gst_deinterlace2_finalize), (gst_deinterlace2_pop_history),
	(gst_deinterlace2_head_history), (gst_deinterlace2_push_history),
	(gst_deinterlace2_deinterlace_scanlines), (gst_deinterlace2_chain),
	(gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
	(gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
	(gst_deinterlace2_src_query), (gst_deinterlace2_src_query_types),
	(plugin_init):
	* gst/deinterlace2/gstdeinterlace2.h:
	* gst/deinterlace2/tvtime/greedy.c: (copy_scanline),
	(deinterlace_greedy_packed422_scanline_mmxext),
	(dscaler_greedyl_get_method):
	* gst/deinterlace2/tvtime/greedyh.asm:
	* gst/deinterlace2/tvtime/greedyh.c:
	(deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method),
	(greedyh_init), (greedyh_filter_mmx), (greedyh_filter_3dnow),
	(greedyh_filter_sse):
	* gst/deinterlace2/tvtime/greedyh.h:
	* gst/deinterlace2/tvtime/greedyhmacros.h:
	* gst/deinterlace2/tvtime/mmx.h:
	* gst/deinterlace2/tvtime/plugins.h:
	* gst/deinterlace2/tvtime/speedtools.h:
	* gst/deinterlace2/tvtime/speedy.c: (multiply_alpha), (clip255),
	(comb_factor_packed422_scanline_mmx),
	(diff_factor_packed422_scanline_c),
	(diff_factor_packed422_scanline_mmx),
	(diff_packed422_block8x8_mmx), (diff_packed422_block8x8_c),
	(packed444_to_packed422_scanline_c),
	(packed422_to_packed444_scanline_c),
	(packed422_to_packed444_rec601_scanline_c),
	(vfilter_chroma_121_packed422_scanline_mmx),
	(vfilter_chroma_121_packed422_scanline_c),
	(vfilter_chroma_332_packed422_scanline_mmx),
	(vfilter_chroma_332_packed422_scanline_c),
	(kill_chroma_packed422_inplace_scanline_mmx),
	(kill_chroma_packed422_inplace_scanline_c),
	(invert_colour_packed422_inplace_scanline_mmx),
	(invert_colour_packed422_inplace_scanline_c),
	(mirror_packed422_inplace_scanline_c),
	(interpolate_packed422_scanline_c),
	(convert_uyvy_to_yuyv_scanline_mmx),
	(convert_uyvy_to_yuyv_scanline_c),
	(interpolate_packed422_scanline_mmx),
	(interpolate_packed422_scanline_mmxext),
	(blit_colour_packed422_scanline_c),
	(blit_colour_packed422_scanline_mmx),
	(blit_colour_packed422_scanline_mmxext),
	(blit_colour_packed4444_scanline_c),
	(blit_colour_packed4444_scanline_mmx),
	(blit_colour_packed4444_scanline_mmxext), (small_memcpy),
	(speedy_memcpy_c), (speedy_memcpy_mmx), (speedy_memcpy_mmxext),
	(blit_packed422_scanline_c), (blit_packed422_scanline_mmx),
	(blit_packed422_scanline_mmxext),
	(composite_colour4444_alpha_to_packed422_scanline_c),
	(composite_colour4444_alpha_to_packed422_scanline_mmxext),
	(composite_packed4444_alpha_to_packed422_scanline_c),
	(composite_packed4444_alpha_to_packed422_scanline_mmxext),
	(composite_packed4444_to_packed422_scanline_c),
	(composite_packed4444_to_packed422_scanline_mmxext),
	(composite_alphamask_to_packed4444_scanline_c),
	(composite_alphamask_to_packed4444_scanline_mmxext),
	(composite_alphamask_alpha_to_packed4444_scanline_c),
	(premultiply_packed4444_scanline_c),
	(premultiply_packed4444_scanline_mmxext),
	(blend_packed422_scanline_c), (blend_packed422_scanline_mmxext),
	(quarter_blit_vertical_packed422_scanline_mmxext),
	(quarter_blit_vertical_packed422_scanline_c),
	(subpix_blit_vertical_packed422_scanline_c),
	(a8_subpix_blit_scanline_c), (myround), (init_RGB_to_YCbCr_tables),
	(init_YCbCr_to_RGB_tables), (rgb24_to_packed444_rec601_scanline_c),
	(rgba32_to_packed4444_rec601_scanline_c),
	(packed444_to_rgb24_rec601_scanline_c),
	(packed444_to_nonpremultiplied_packed4444_scanline_c),
	(aspect_adjust_packed4444_scanline_c), (setup_speedy_calls),
	(speedy_get_accel):
	* gst/deinterlace2/tvtime/speedy.h:
	* gst/deinterlace2/tvtime/sse.h:
	* gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy),
	(deinterlace_frame_di_tomsmocomp), (dscaler_tomsmocomp_get_method),
	(tomsmocomp_init), (tomsmocomp_filter_mmx),
	(tomsmocomp_filter_3dnow), (tomsmocomp_filter_sse):
	* gst/deinterlace2/tvtime/tomsmocomp.h:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoop0A.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA8.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA2.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA6.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH2.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVA.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVAH.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
	* gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
	* gst/deinterlace2/tvtime/vfir.c: (deinterlace_line),
	(deinterlace_scanline_vfir), (copy_scanline),
	(dscaler_vfir_get_method):
	* gst/deinterlace2/tvtime/x86-64_macros.inc:
	Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer,
	which was relicensed to LGPL for GStreamer and in theory provides
	better and faster results than the simple deinterlace element.
	Fixes bug #163578.

	Ported to GStreamer 0.10 but still not enabled or included in the
	build system by default because of bad artefacts caused by a bug
	somewhere and as it can be only build on x86/amd64 ATM and requires
	special CFLAGS. Will be fixed soon.

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

	Based on a patch by: Ryan Houdek <Sonicadvance1 at GMAIL dot COM>

	* ext/timidity/gstwildmidi.c: (gst_wildmidi_init),
	(gst_wildmidi_change_state), (plugin_init):
	* ext/timidity/gstwildmidi.h:
	Initialize wildmidi only once in the plugin init function instead
	of once for every instance. The second and following calls to the
	wildmidi initialization function will fail. Fixes bug #525613.

	Also don't register the element at all if wildmidi initialization
	fails.

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

	* ext/soundtouch/gstpitch.cc:
	Call gst_element_no_more_pads() after all pads are added.

2008-06-09  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rawparse/gstrawparse.c: (gst_raw_parse_push_buffer),
	(gst_raw_parse_loop), (gst_raw_parse_handle_seek_push),
	(gst_raw_parse_handle_seek_pull):
	Add simple reverse playback.

2008-06-09  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rawparse/gstrawparse.c: (gst_raw_parse_reset),
	(gst_raw_parse_push_buffer), (gst_raw_parse_chain),
	(gst_raw_parse_loop), (gst_raw_parse_sink_activatepull),
	(gst_raw_parse_convert), (gst_raw_parse_sink_event),
	(gst_raw_parse_handle_seek_push), (gst_raw_parse_handle_seek_pull),
	(gst_raw_parse_src_query), (gst_raw_parse_get_fps):
	* gst/rawparse/gstrawparse.h:
	Fix seeking, timestamps, duration and some more. Fixes #536309.

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

	* examples/app/Makefile.am:
	* examples/app/appsrc-ra.c: (feed_data), (seek_data),
	(found_source), (bus_message), (main):
	* examples/app/appsrc-seekable.c: (feed_data), (seek_data),
	(found_source), (bus_message), (main):
	* examples/app/appsrc-stream2.c: (feed_data), (found_source),
	(bus_message), (main):
	Added 3 more example application for using appsrc in random-access mode,
	pull-mode streaming and pull mode seekable.

	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	(gst_app_src_start), (gst_app_src_do_get_size),
	(gst_app_src_create):
	* gst-libs/gst/app/gstappsrc.h:
	Make stream-type property writable.
	Unset flushing when starting so that we reuse appsrc.
	Inform basesrc about the configured size.
	Emit seek-data signal when we are going to a different offset in
	random-access mode.

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

	* examples/app/appsrc-stream.c: (found_source), (main):
	Use deep-notify until we can depend on a playbin2 with support for the
	source property.

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

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_init),
	(gst_rtp_bin_finalize), (gst_rtp_bin_change_state):
	Fix deadlock when shutting down, use a new lock instead to properly
	shutdown.

2008-06-05  Wim Taymans  <wim.taymans@collabora.co.uk>

	* examples/app/.cvsignore:
	* examples/app/Makefile.am:
	* examples/app/appsrc-stream.c: (read_data), (start_feed),
	(stop_feed), (found_source), (bus_message), (main):
	Added an example on how to use appsrc in playbin in streaming mode from
	an mmapped file.

	* examples/app/appsrc_ex.c: (main):
	Set pipeline to NULL to free queued buffers.

	* gst-libs/gst/app/gstapp-marshal.list:
	* gst-libs/gst/app/gstappsrc.c: (stream_type_get_type), (_do_init),
	(gst_app_src_class_init), (gst_app_src_init),
	(gst_app_src_flush_queued), (gst_app_src_dispose),
	(gst_app_src_set_property), (gst_app_src_get_property),
	(gst_app_src_unlock), (gst_app_src_unlock_stop),
	(gst_app_src_start), (gst_app_src_stop), (gst_app_src_is_seekable),
	(gst_app_src_check_get_range), (gst_app_src_do_seek),
	(gst_app_src_create), (gst_app_src_set_stream_type),
	(gst_app_src_get_stream_type), (gst_app_src_set_max_bytes),
	(gst_app_src_get_max_bytes), (gst_app_src_push_buffer),
	(gst_app_src_end_of_stream), (gst_app_src_uri_get_type),
	(gst_app_src_uri_get_protocols), (gst_app_src_uri_get_uri),
	(gst_app_src_uri_set_uri), (gst_app_src_uri_handler_init):
	* gst-libs/gst/app/gstappsrc.h:
	Measure max queue size in bytes instead.
	Add support for 3 modes of operation, streaming, seekable and
	random-access, making basesrc handle the scheduling modes for each.
	Add appsrc:// uri handler so that automatic plugging can be done from
	playbin2 or uridecodebin, for example.
	Added support for custom segment formats.
	Add support for push and pull based operations from the application.
	Expand the methods so that errors can be detected.
	Flush the queued buffers on seeks and when shutting down.
	Add signals to inform the app that a seek must happen.

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

	* gst/interleave/deinterleave.c: (gst_deinterleave_add_new_pads),
	(gst_deinterleave_src_query):
	* gst/interleave/interleave.c: (gst_interleave_src_query_duration),
	(gst_interleave_src_query):
	Properly implement duration and position queries in bytes format. We
	have to take the upstream reply and divide/multiply it by the number
	of channels to get the correct result.

2008-06-04  Michael Smith <msmith@songbirdnest.com>

	* sys/dshowvideosink/dshowvideofakesrc.cpp:
	* sys/dshowvideosink/dshowvideofakesrc.h:
	* sys/dshowvideosink/dshowvideosink.cpp:
	* sys/dshowvideosink/dshowvideosink.h:
	  Fix up copyright notice on new plugin.

2008-06-04  David Schleef  <ds@schleef.org>

	* ext/dirac/gstdiracenc.cc: Update properties for recent
	  dirac changes.  Patch from Jonathan Rosser.

2008-06-04  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* ext/x264/gstx264enc.c: (gst_x264_enc_header_buf),
	  (gst_x264_enc_sink_event), (gst_x264_enc_chain),
	  (gst_x264_enc_encode_frame):
	  Try harder not to crash when we get an EOS event but haven't set
	  up the encoder yet (as may happen when upstream errors out with
	  not-negotiated, for example). Also, always push the EOS event
	  downstream.

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

	* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
	(gst_interleave_pad_get_property), (gst_interleave_pad_class_init),
	(gst_interleave_request_new_pad), (gst_interleave_release_pad):
	* gst/interleave/interleave.h:
	Use an always increasing integer for the number in the name of the
	requested sink pads to guarantuee a unique name. Add a "channel"
	property to GstInterleavePad to make it possible for applications
	to retrieve the channel number in the output for every pad.

	Use g_type_register_static_simple() instead of
	g_type_register_static() to save some relocations.

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

	* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
	(gst_interleave_change_state):
	Stop GstCollectPads before calling the parent's state change function
	when going from PAUSED to READY as we otherwise deadlock.
	Fixes bug #536258.

2008-06-03  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/h264parse/gsth264parse.c: (gst_nal_bs_init),
	(gst_h264_parse_sink_setcaps), (gst_h264_parse_chain_forward),
	(gst_h264_parse_queue_buffer), (gst_h264_parse_chain_reverse),
	(gst_h264_parse_chain):
	* gst/h264parse/gsth264parse.h:
	Parse codec_data and use the nalu_size_length field to get the NALU
	length in packetized h264.
	When queueing a packetized buffer in reverse mode, don't unref the
	buffer twice.
	Avoid accessing the buffer TIMESTAMP field after we pushed it on
	the adaptor.

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

	* gst/interleave/interleave.c:
	(gst_interleave_check_channel_positions),
	(gst_interleave_set_channel_positions),
	(gst_interleave_class_init):
	Use new gst_audio_check_channel_positions() function and register
	the GstInterleavePad type from a threadsafe context.

2008-06-02  Michael Smith <msmith@songbirdnest.com>

	* configure.ac:
	  Revert accidental addition in configure.ac. Sorry.

2008-06-02  Michael Smith <msmith@songbirdnest.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/dshowvideosink/Makefile.am:
	* sys/dshowvideosink/README:
	* sys/dshowvideosink/dshowvideofakesrc.cpp:
	* sys/dshowvideosink/dshowvideofakesrc.h:
	* sys/dshowvideosink/dshowvideosink.cpp:
	* sys/dshowvideosink/dshowvideosink.h:
	Add a new win32 videosink. Uses the DirectShow renderers for
	high-performance video rendering on win32.
	Currently only supports some YUV formats.
	Rank PRIMARY, since it's much more useful for the common cases that the
	directdraw sink (which only does RGB).

2008-06-02  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* ext/spc/Makefile.am:
	  Dist tag.h

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

	* ext/faad/gstfaad.c: (gst_faad_sink_event):
	Always drain before activating the new segment.

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

	* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
	(gst_interleave_finalize), (gst_audio_check_channel_positions),
	(gst_interleave_set_channel_positions),
	(gst_interleave_class_init), (gst_interleave_init),
	(gst_interleave_set_property), (gst_interleave_get_property),
	(gst_interleave_request_new_pad), (gst_interleave_release_pad),
	(gst_interleave_sink_setcaps), (gst_interleave_src_query_duration),
	(gst_interleave_src_query_latency), (gst_interleave_collected):
	* gst/interleave/interleave.h:
	Allow setting channel positions via a property and allow using the
	channel positions on the input as the channel positions of the output.

	Fix some broken logic and memory leaks.

	* tests/check/Makefile.am:
	* tests/check/elements/interleave.c: (src_handoff_float32),
	(sink_handoff_float32), (GST_START_TEST), (interleave_suite):
	Add unit tests for checking correct handling of channel positions.

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

	* ext/faad/gstfaad.c: (gst_faad_dispose), (clear_queued),
	(flush_queued), (gst_faad_drain), (gst_faad_do_raw_seek),
	(gst_faad_src_event), (gst_faad_sink_event), (gst_faad_chain),
	(gst_faad_change_state):
	* ext/faad/gstfaad.h:
	Add basic reverse playback support.
	Clear decoder state after disconts.
	Remove some unused code.
	Mark output buffers with a discont after a decoding error.

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

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* gst/mpeg4videoparse/mpeg4videoparse.c:
	(gst_mpeg4vparse_handle_vos):
	Fix mpeg4videoparse on big endian architectures. Fixes bug #536042.

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

	* tests/check/elements/mplex.c: (setup_src_pad),
	(teardown_src_pad):
	Don't use the deprecated gst_element_get_pad().

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

	* examples/directfb/gstdfb.c: (main):
	Don't use the deprecated gst_element_get_pad().

2008-05-28  Wim Taymans  <wim.taymans@collabora.co.uk>

	Based on patch by: <onkarshinde at gmail dot com>

	* sys/vcd/vcdsrc.c: (gst_vcdsrc_uri_get_uri),
	(gst_vcdsrc_uri_set_uri):
	Allow the track to be set by using the uri. Fixes #535043.

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

	* gst/interleave/interleave.c: (gst_interleave_src_query_duration),
	(gst_interleave_src_query_latency), (gst_interleave_src_query):
	Implement latency query.

2008-05-27  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/mpegvideoparse/mpegvideoparse.c:
	Add GST_BUFFER_FLAG_DELTA_UNIT to not I frame buffers

2008-05-27  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c:
	(gst_rtp_bin_propagate_property_to_jitterbuffer),
	(gst_rtp_bin_change_state), (new_payload_found),
	(new_ssrc_pad_found):
	Break out of callbacks when we are shutting down.
	Make sure no state changes can happen when we reconfigure.

2008-05-27  Wim Taymans  <wim.taymans@collabora.co.uk>

	* configure.ac:
	Require CVS core and base for new audio clock reset method.

	* ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_change_state):
	Reset the audio clock. See #521761.

2008-05-26  Wim Taymans  <wim.taymans@collabora.co.uk>

	* ext/jack/gstjackaudiosink.c:
	(gst_jack_audio_sink_allocate_channels):
	Include the element name in the port name to avoid duplicate port names.

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

	* gst/interleave/deinterleave.c:
	Add another example launch line.

	* gst/interleave/interleave.c: (interleave_24),
	(gst_interleave_finalize), (gst_interleave_base_init),
	(gst_interleave_class_init), (gst_interleave_init),
	(gst_interleave_request_new_pad), (gst_interleave_release_pad),
	(gst_interleave_change_state), (__remove_channels),
	(__set_channels), (gst_interleave_sink_getcaps),
	(gst_interleave_set_process_function),
	(gst_interleave_sink_setcaps), (gst_interleave_sink_event),
	(gst_interleave_src_query_duration), (gst_interleave_src_query),
	(forward_event_func), (forward_event), (gst_interleave_src_event),
	(gst_interleave_collected):
	* gst/interleave/interleave.h:
	Major rewrite of interleave using GstCollectpads. This new version
	also supports almost all raw audio formats and has better caps
	negotiation. Fixes bug #506594.

	Also update docs and add some more examples.

	* tests/check/elements/interleave.c: (interleave_chain_func),
	(GST_START_TEST), (src_handoff_float32), (sink_handoff_float32),
	(interleave_suite):
	Add some more extensive unit tests for interleave.

2008-05-26  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	When checking the seqnum, reset the jitterbuffer if the gap is too big,
	we need to do this so that we can better handle a restarted source.
	Fix some comments.

	* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew),
	(rtp_jitter_buffer_insert):
	Tweak the skew resync diff.
	Use our working seqnum compare function in -base.
	Rework the jitterbuffer insert code to make it clearer and more
	performant by only retrieving the seqnum of the input buffer once and by
	adding some G_LIKELY compiler hints.
	Improve debugging for duplicate packets.

	* gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp):
	Fix a comment, we don't do skew correction here..

2008-05-26  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Håvard Graff <havard dot graff at tandberg dot com>

	* gst/rtpmanager/gstrtpbin.c:
	(gst_rtp_bin_propagate_property_to_jitterbuffer),
	(gst_rtp_bin_set_property):
	Propagate the do-lost and latency properties to the jitterbuffers when
	they are changed on rtpbin.

2008-05-26  Wim Taymans  <wim.taymans@collabora.co.uk>

	* examples/switch/switcher.c: (switch_timer):
	* gst/replaygain/gstrgvolume.c: (gst_rg_volume_init):
	* gst/rtpmanager/gstrtpclient.c: (create_stream):
	* gst/sdp/gstsdpdemux.c: (gst_sdp_demux_stream_configure_udp),
	(gst_sdp_demux_stream_configure_udp_sink):
	* tests/check/elements/deinterleave.c: (GST_START_TEST),
	(pad_added_setup_data_check_float32_8ch_cb):
	* tests/check/elements/rganalysis.c: (send_eos_event),
	(send_tag_event):
	Don't use _gst_pad().

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-interleave.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegtsparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	Add interleave/deinterleave to the docs and while at that
	run make update in docs/plugins.

	* gst/interleave/deinterleave.c:
	Add a parapraph about using a queue and audioconvert after the source
	pads to the docs.

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

	* gst/interleave/deinterleave.c: (gst_deinterleave_base_init),
	(gst_deinterleave_class_init), (gst_deinterleave_init),
	(gst_deinterleave_add_new_pads), (gst_deinterleave_sink_getcaps):
	* gst/interleave/deinterleave.h:
	Don't set a getcaps() function on the src pads as it's not required
	and the default getcaps() function returns the correct results for
	our src pads.

	Complete documentation and add myself to the authors of the element.

2008-05-22  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* tests/icles/.cvsignore:
	* tests/icles/Makefile.am:
	* tests/icles/test-oss4.c: (opt_show_mixer_messages), (WAIT_TIME),
	  (show_mixer_messages), (probe_mixer_tracks), (probe_pad),
	  (probe_details), (probe_element), (main):
	  Small oss4 test that probes for available devices and retrieves
	  their caps and mixer tracks and all that. Also allows testing of
	  mixer change messages on the bus.

2008-05-22  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* sys/oss4/oss4-mixer.c: (gst_oss4_mixer_open):
	* sys/oss4/oss4-property-probe.c:
	  (gst_oss4_property_probe_find_device_name),
	  (gst_oss4_property_probe_find_device_name_nofd):
	* sys/oss4/oss4-property-probe.h:
	* sys/oss4/oss4-sink.c: (gst_oss4_sink_get_property):
	* sys/oss4/oss4-source.c: (gst_oss4_source_get_property):
	  Make device-name probing in NULL state work better (e.g. for the
	  gnome-control-center sound capplet).

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

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_push),
	(gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain),
	(gst_mpeg4vparse_change_state):
	Move some code around to integrate the startcode searching with the
	other bits of parsing, avoid a whole bunch of peeks.
	Get rid of invalid data that should not happen according to the specs.
	Fixes #533559.

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

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

	* ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_class_init),
	(gst_mythtv_src_init), (gst_mythtv_src_clear),
	(do_read_request_response), (gst_mythtv_src_create),
	(gst_mythtv_src_start):
	Correctly set duration to get a more correct seek bar in totem.

	Disable query and event functions as they don't work and do some
	smaller cleanup.

	Fixes bug #533736.

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

	Patch by: Brian Koropoff <brianhk at cs dot washington dot edu>

	* ext/spc/Makefile.am:
	* ext/spc/gstspc.c: (gst_spc_dec_class_init),
	(gst_spc_dec_src_query_type), (gst_spc_dec_init),
	(gst_spc_dec_dispose), (gst_spc_dec_sink_event),
	(gst_spc_duration), (gst_spc_fadeout), (gst_spc_dec_src_event),
	(gst_spc_dec_src_query), (spc_play), (spc_setup):
	* ext/spc/gstspc.h:
	* ext/spc/tag.c: (spc_tag_is_extended), (spc_tag_is_text_format),
	(spc_tag_is_present), (spc_tag_unpack_date), (spc_tag_clear),
	(spc_tag_get_info), (spc_tag_free):
	* ext/spc/tag.h:
	Add support for some essential features like seeking, reading song
	duration and extended tags. Fixes bug #454151.

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

	* tests/check/elements/deinterleave.c: (GST_START_TEST):
	Set keep-positions property to TRUE for the 8 channel test to ensure
	that the original channel position is set on the output.

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

	* gst/interleave/deinterleave.c: (gst_deinterleave_class_init),
	(gst_deinterleave_init), (gst_deinterleave_add_new_pads),
	(gst_deinterleave_set_pads_caps), (gst_deinterleave_set_property),
	(gst_deinterleave_get_property):
	* gst/interleave/deinterleave.h:
	Add a property to select whether channel positions should be kept on
	the mono output buffers or should be dropped.

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

	* docs/Makefile.am:
	Oops - fix the spelling of the variable I added.

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

	* gst/interleave/deinterleave.c: (gst_deinterleave_finalize),
	(gst_deinterleave_init), (gst_deinterleave_sink_event),
	(gst_deinterleave_process), (gst_deinterleave_sink_activate_push):
	* gst/interleave/deinterleave.h:
	Queue events until src pads were added and they can be sent. Otherwise
	downstream will never get the first newsegment event.

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

	* gst/interleave/deinterleave.c: (gst_deinterleave_sink_setcaps),
	(gst_deinterleave_getcaps):
	Always set the channel positions when gst_audio_get_channel_positions()
	returns something, even if they're not set in the caps. This makes
	sure that the output channels can be interleaved again correctly
	in the mono/stereo cases too.

	Don't ask for the peercaps of the current pad in getcaps() as this
	might call getcaps() again and deadlock.

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

	* ext/timidity/gstwildmidi.c: (wildmidi_open_config):
	Check some more common locations for a valid configuration file.
	Fixes bug #533435. Packagers should still #define WILDMIDI_CFG
	to the distributions default location.

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

	* gst/interleave/Makefile.am:
	* gst/interleave/deinterleave.c: (deinterleave_24),
	(gst_deinterleave_finalize), (gst_deinterleave_base_init),
	(gst_deinterleave_class_init), (gst_deinterleave_init),
	(gst_deinterleave_add_new_pads), (gst_deinterleave_set_pads_caps),
	(gst_deinterleave_set_process_function),
	(gst_deinterleave_sink_setcaps), (__remove_channels),
	(__set_channels), (gst_deinterleave_getcaps),
	(gst_deinterleave_process), (gst_deinterleave_chain),
	(gst_deinterleave_sink_activate_push):
	* gst/interleave/deinterleave.h:
	Add support for all raw audio formats and provide better negotiation
	if the caps are changing.

	Don't allow changes of the channel positions and set the position of
	the corresponding channel on the src pad caps.

	General cleanup and smaller bugfixes.

	* tests/check/elements/deinterleave.c: (float_buffer_check_probe):
	Check the channel positions on the output buffer caps.

2008-05-16  Jan Schmidt  <jan.schmidt@sun.com>

	* docs/Makefile.am:
	Don't attempt to build plugin docs when they're disabled.

	* gst/bayer/Makefile.am:
	Add libgstvideo to the link.

	* gst/rtpmanager/Makefile.am:
	Fix link order, and move LIBS things to _LIBS

2008-05-16  Jan Schmidt  <jan.schmidt@sun.com>

	* docs/plugins/gst-plugins-bad-plugins.types:
	Remove bogus attempt to pull 'metadata' plugin's base
	class into the docs.

2008-05-14  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain):
	Simply drop bad RTP packets with a warning instead of just posting an
	error and stopping. This is a perfectly recoverable event and we don't
	force people to use an rtpbin to filter out bad packets first.

2008-05-14  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_init):
	Set fixed caps on the srcpad after we created the pad...

2008-05-14  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* tests/check/Makefile.am:
	  Remove deinterleave test from VALGRIND_TO_FIX again now that
	  there are suppressions in gst.supp which make this work for me.

2008-05-14  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* tests/check/Makefile.am:
	  Add deinterleave unit test to VALGRIND_TO_FIX, since it causes
	  weird invalid free errors in valgrind/libc after _exit for some
	  reason.

	* tests/check/elements/deinterleave.c: (pads_created),
	  (set_channel_positions), (src_handoff_float32_8ch),
	  (float_buffer_check_probe),
	  (pad_added_setup_data_check_float32_8ch_cb),
	  (make_fake_src_8chans_float32), (GST_START_TEST),
	  (deinterleave_suite):
	  Add some more deinterleave unit test bits I had locally.

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

	* gst/interleave/Makefile.am:
	* gst/interleave/deinterleave.h:
	* gst/interleave/interleave.h:
	* gst/interleave/plugin.h:
	Split definitions into separate header files for better documentation
	generation.
	
	* gst/interleave/deinterleave.c: (gst_deinterleave_base_init),
	(gst_deinterleave_class_init), (gst_deinterleave_sink_setcaps),
	(gst_deinterleave_process):
	Don't use alloca, allow caps changes as long as the number of channels
	does not change, don't use g_warning, return NOT_NEGOTIATED as early
	as possible and some other cleanup.

	* gst/interleave/interleave.c: (gst_interleave_base_init),
	(gst_interleave_class_init):
	Do some random cleanup.

	* tests/check/Makefile.am:
	* tests/check/elements/deinterleave.c: (GST_START_TEST),
	(deinterleave_chain_func), (deinterleave_pad_added),
	(deinterleave_suite):
	Add unit tests for the deinterleave element.

2008-05-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* gst/mpeg4videoparse/mpeg4videoparse.c:
	(gst_mpeg4vparse_set_new_caps), (gst_mpeg4vparse_align),
	(get_bits), (next_start_code), (gst_mpeg4vparse_handle_vos),
	(gst_mpeg4vparse_push), (gst_mpeg4vparse_drain),
	(gst_mpeg4vparse_chain), (gst_mpeg4vparse_sink_setcaps),
	(gst_mpeg4vparse_sink_event), (gst_mpeg4vparse_src_query),
	(gst_mpeg4vparse_set_property), (gst_mpeg4vparse_get_property),
	(gst_mpeg4vparse_class_init), (gst_mpeg4vparse_init):
	* gst/mpeg4videoparse/mpeg4videoparse.h:
	Parse the config data (either outbound or in the stream) to set   
	width/height, apect ration, framerate in the caps if applicable.
	Mark frames as GST_BUFFER_FLAG_DELTA_UNIT when they are not
	intra frames
	Set the timestamps of outgoing buffers to the buffer in
	which the VOP header was found.
	Drop incoming data untill configuration is found (by default,
	configurable using a property).
	Report a 1 frame latency. Fixes #532723.

2008-05-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/real/gstrealvideodec.c: (open_library):
	Add some debug for where we are searching for libraries.

2008-05-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
	Actually add the do-lost property to the object.

2008-05-12  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_loop):
	Avoid waiting for a negative (huge) duration when the last packet has a
	lower timestamp than the current packet.

2008-05-12  Peter Kjellerstedt  <pkj@axis.com>

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_query_send_rtcp_src):
	Make sure to unref the rtpsession returned by gst_pad_get_parent() to
	prevent a memory leak.


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

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	Quieten some docs output

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_loop):
	Initialise with GST_CLOCK_TIME_NONE to avoid compiler warning.

2008-05-11  Jan Schmidt  <jan.schmidt@sun.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/deinterlace/gstdeinterlace.h:
	Random doc of the day: the deinterlace element.

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

	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtsparse.c:
	Make sure all schedule EIT and non-actual transport stream
	EITs are parsed. Also add present-following flag and
	actual-transport-stream flag to eit bus message.

2008-05-09  Peter Kjellerstedt  <pkj@axis.com>

	* gst/rtpmanager/rtpsource.c: (rtp_source_finalize):
	Make sure to unref the caps used by RTPSource to prevent a memory leak.

2008-05-08  Tim-Philipp Müller  <tim.muller at collabora co uk>

	Based on patch by: Clive Wright <clive_wright ntlworld com>

	* sys/oss4/oss4-mixer-slider.c: (gst_oss4_mixer_slider_unpack_volume):
	  Apparently mono sliders have the mono value repeated in the upper bits,
	  so mask those out when reading them. Probably makes the mixer applet
	  work properly in some more cases.

2008-05-08  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Olivier Crete <tester at tester dot ca>

	* gst/rtpmanager/rtpsession.c: (source_clock_rate),
	(rtp_session_process_bye), (rtp_session_send_bye_locked):
	Unlock the session lock when calling one of our callbacks. 
	Fixes #532011.

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

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_event_send_rtp_sink):
	Send RTP BYE command on EOS. Fixes bug #531955.

2008-05-07  Ole André Vadla Ravnås  <ole.andre.ravnas at tandberg com>

	* win32/common/config.h.in:
	  Don't define GST_FUNCTION, if GLib supports MSVC we'd much rather
	  use the real thing than having "???" unconditionally.

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

	* gst-libs/gst/app/.cvsignore:
	* gst-libs/gst/app/Makefile.am:
	* gst-libs/gst/app/gstapp-marshal.list:
	Add marshal.list, make it compile and add to cvsignore.

	* gst-libs/gst/app/gstappsink.c: (gst_app_sink_dispose),
	(gst_app_sink_stop):
	Small cleanups.

	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
	(gst_app_src_init), (gst_app_src_set_property),
	(gst_app_src_get_property), (gst_app_src_unlock),
	(gst_app_src_unlock_stop), (gst_app_src_start), (gst_app_src_stop),
	(gst_app_src_create), (gst_app_src_set_caps),
	(gst_app_src_get_caps), (gst_app_src_set_size),
	(gst_app_src_get_size), (gst_app_src_set_seekable),
	(gst_app_src_get_seekable), (gst_app_src_set_max_buffers),
	(gst_app_src_get_max_buffers), (gst_app_src_push_buffer),
	(gst_app_src_end_of_stream):
	* gst-libs/gst/app/gstappsrc.h:
	Beat appsrc in shape, add signals and actions.
	Add some docs.
	Add properties for caps, size, seekability and max-buffers.
	Fix unlock/stop code.

2008-05-07  Tim-Philipp Müller  <tim.muller at collabora co uk>

	* configure.ac:
	  Error out if we don't have the required versions of core/base.

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

	* gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init),
	(gst_app_sink_init), (gst_app_sink_set_property),
	(gst_app_sink_get_property), (gst_app_sink_unlock_start),
	(gst_app_sink_unlock_stop), (gst_app_sink_flush_unlocked),
	(gst_app_sink_start), (gst_app_sink_stop), (gst_app_sink_event),
	(gst_app_sink_preroll), (gst_app_sink_render),
	(gst_app_sink_set_caps), (gst_app_sink_set_drop),
	(gst_app_sink_get_drop):
	* gst-libs/gst/app/gstappsink.h:
	Start some docs.
	Add property to drop buffers when the queue is filled
	Fix unlocking and flushing when the queues are filled.

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

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

	* gst/subenc/gstsrtenc.c: (gst_srt_enc_timestamp_to_string):
	Declare variables at the beginning of blocks. Fixes compilation with
	gcc 2.x and other compilers. Fixes bug #530611.

2008-04-29  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtspacketizer.h:
	* gst/mpegtsparse/mpegtsparse.c:
	Detect SI pids (NIT, SDT, EIT etc.) based on table id and not
	by pid number. This allows for example the EPG data from UK's
	freesat to be picked up.

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

	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/soundtouch/gstbpmdetect.cc:
	Cast NULL sentinels to void * as NULL is defined as an integer
	constant in most environments when using C++ and it's size might
	be different from a pointer.

2008-04-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init),
	(gst_app_sink_init), (gst_app_sink_set_property),
	(gst_app_sink_get_property), (gst_app_sink_event),
	(gst_app_sink_preroll), (gst_app_sink_render),
	(gst_app_sink_set_emit_signals), (gst_app_sink_get_emit_signals),
	(gst_app_sink_set_max_buffers), (gst_app_sink_get_max_buffers),
	(gst_app_sink_pull_buffer):
	* gst-libs/gst/app/gstappsink.h:
	Add more docs.
	Add signals for when preroll and render buffers are available.
	Add property to control signal emission.
	Add property to control the max queue size.

2008-04-25  Michael Smith <msmith@songbirdnest.com>

	* gst-libs/gst/dshow/Makefile.am:
	  Use CXXFLAGS rather than CFLAGS; these are C++ files.
	  Define required constants appropriately.
	* sys/dshowdecwrapper/Makefile.am:
	  Add required include dir, libraries.
	  Define required constants appropriately.

2008-04-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (create_stream), (gst_rtp_bin_init),
	(gst_rtp_bin_set_property), (gst_rtp_bin_get_property):
	* gst/rtpmanager/gstrtpbin.h:
	Expose new jitterbuffer property in rtpbin too.

2008-04-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init),
	(gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property),
	(gst_rtp_jitter_buffer_get_property):
	Disable sending out rtp packet lost events by default and make a
	property to enabe it. We will likely enable it by default when the base
	depayloaders have a default handler for them so that we don't send these
	events all through the pipeline for now.

2008-04-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_flush_stop),
	(gst_rtp_jitter_buffer_src_event), (gst_rtp_jitter_buffer_chain),
	(gst_rtp_jitter_buffer_loop):
	Remove private version of a function that is in -base now.
	Add src event handler.
	Rework the jitterbuffer pushing loop so that it can quickly react to
	lost packets and instruct the depayloader of them. This can then be used
	to implement error concealment data.

2008-04-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_query_send_rtcp_src), (create_recv_rtcp_sink),
	(create_send_rtcp_src):
	Set up some internal links functions for the RTCP and sync pads because
	the defaults are really not correct.
	Implement a query handler for the RTCP src pad, mostly to correctly
	report about the latency.

2008-04-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	(gst_rtp_bin_sync_chain):
	* gst/rtpmanager/rtpsession.c: (update_arrival_stats),
	(rtp_session_process_sr), (rtp_session_on_timeout):
	* gst/rtpmanager/rtpsource.c: (rtp_source_init),
	(calculate_jitter):
	* gst/rtpmanager/rtpsource.h:
	* gst/rtpmanager/rtpstats.h:
	Also keep track of the first buffer timestamp together with the first
	RTP timestamp as they both are needed to construct the timing of
	outgoing packets in the jitterbuffer and are therefore also needed to
	manage lip-sync. This fixes lip-sync if the first RTP packets arrive
	with a wildly different gap.

2008-04-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_query):
	Forward unknown queries upstream instead of returning FALSE on them.

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

	* configure.ac:
	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init),
	(gst_musepackdec_init), (gst_musepackdec_dispose),
	(gst_musepackdec_handle_seek_event), (gst_musepack_stream_init),
	(gst_musepackdec_loop), (plugin_init):
	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.c:
	* ext/musepack/gstmusepackreader.h:
	Add support for the new libmpcdec API which magically gets us support
	for SV8 files. Also do some random cleanup. Fixes bug #526905.

2008-04-24  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Back to development -> 0.10.7.1

=== release 0.10.7 ===

2008-04-24  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.7, "House of Cards"

2008-04-22  Stefan Kost  <ensonic@users.sf.net>

	* ext/faad/gstfaad.c:
	  Don't leak GstAudioChannelPosition. Fixes #529378.

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

	* gst/sdp/gstsdpdemux.c: (request_pt_map):
	Ref caps, see #528245.

2008-04-22  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	0.10.6.4 pre-release

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

	* tests/check/elements/rganalysis.c: (GST_START_TEST):
	Don't leak a tag list. Fixes bug #529285.

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

	* tests/check/elements/ofa.c: (bus_handler):
	Don't leak the tags string and tag list. Fixes bug #529283.

2008-04-21  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Olivier Crete <tester at tester dot ca>

	* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	(new_ssrc_pad_found):
	Ref caps when inserting into the cache.
	Don't leak pads.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_get_clock_rate),
	(gst_rtp_jitter_buffer_query):
	Avoid a caps leak.
	Don't leak refcount in query.

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps),
	(gst_rtp_pt_demux_chain):
	Avoid caps leaks.

	* gst/rtpmanager/gstrtpsession.c: (source_get_sdes_structure),
	(gst_rtp_session_init), (return_true),
	(gst_rtp_session_clear_pt_map), (gst_rtp_session_cache_caps),
	(gst_rtp_session_clock_rate):
	Ref caps when inserting into the cache.
	Fix some more caps leaks. Fixes #528245.

2008-04-18  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/icles/metadata_editor.c:
	  Add cast to placate gcc 4.1.2.

2008-04-16  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	0.10.6.3 pre-release

2008-04-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Revert patch that added a loop timeout.
	Fixes #528614.

2008-04-17  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpbin.c: (get_pt_map), (free_client),
	(gst_rtp_bin_associate), (gst_rtp_bin_get_free_pad_name):
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_get_clock_rate):
	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps):
	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate):
	Unset GValues after g_signal_emitv so that we avoid a refcount leak.
	Don't leak a padname.
	Don't leak client streams list.
	Lock rtpbin when associating streams. Fixes #528245.

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

	* tests/check/Makefile.am:
	Don't inlcude dc1394src in the generic/states test as it requires
	special hardware. Fixes bug #528011.

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

	* tests/check/elements/ofa.c: (bus_handler), (GST_START_TEST):
	Only check if the generated fingerprints are valid Base64. The
	fingerprints are different when running on different architectures
	which is a) no problem because the fingerprints are tolerant enough
	and b) is caused by libofa. Fixes bug #528266.

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

	* ext/timidity/Makefile.am:
	Dist all source files, no matter if only timidity or wildmidi or
	nothing is found by configure. Fixes bug #528000.

2008-04-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst-plugins-bad.spec.in:
	  Remove souphttpsrc plugin from spec files, it's moved to -good.

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

	* tests/check/Makefile.am:
	Remove soup test certificates from the dist.

2008-04-13  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/dirac/gstdiracenc.cc:
	Fix compilation by casting string constants.

	* sys/Makefile.am:
	Fix WININET_DIR variable reference.

2008-04-13  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-soup.xml:
	* ext/Makefile.am:
	* ext/soup/Makefile.am:
	* ext/soup/gstsouphttpsrc.c:
	* ext/soup/gstsouphttpsrc.h:
	* tests/check/Makefile.am:
	* tests/check/elements/souphttpsrc.c:
	* tests/check/test-cert.pem:
	* tests/check/test-key.pem:

	Remove soup plugin that's moved to -good (#523124)

2008-04-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
	  (gst_flv_parse_tag_script):
	  Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes
	  crash caused by a strlen on a NULL string (#527622).

2008-04-11  Tim-Philipp Müller  <tim at centricular dot net>

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

	* sys/dshowsrcwrapper/gstdshowvideosrc.c: (PROP_DEVICE_NAME),
	  (gst_dshowvideosrc_class_init), (gst_dshowvideosrc_init),
	  (gst_dshowvideosrc_dispose), (gst_dshowvideosrc_stop),
	  (gst_dshowvideosrc_unlock), (gst_dshowvideosrc_unlock_stop),
	  (gst_dshowvideosrc_create), (gst_dshowvideosrc_push_buffer):
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	  Don't increase latency by queuing buffers in an async queue when
	  the streaming thread can't keep up or isn't scheduled often
	  enough for some other reason, but just drop the previous buffer
	  in that case. Also implement GstBaseSrc::unlock for faster
	  unlocking when shutting down. (#520892).

2008-04-11  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/icles/metadata_editor.c: (ENC_UNKNOWN), (last_pixbuf),
	  (draw_pixbuf), (change_tag_list), (update_draw_pixbuf),
	  (ui_drawing_size_allocate_cb), (on_drawingMain_expose_event),
	  (on_buttonSaveFile_clicked), (ui_create), (me_gst_bus_callback_view),
	  (me_gst_setup_view_pipeline), (process_file):
	* tests/icles/metadata_editor.glade:
	  Remove GstXOverlay stuff and use gdkpixbufsink plus some rather crude
	  drawing/scaling logic to make this compile and work on all platforms.
	  Fixes #518227.

2008-04-11  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Bump core/base requirements to released versions to avoid
	  confusion.

	* gst/deinterlace/gstdeinterlace.c: (deinterlace_debug),
	  (GST_CAT_DEFAULT), (gst_deinterlace_base_init),
	  (gst_deinterlace_set_caps), (plugin_init):
	  Add debug category, use _set_element_details_simple and
	  remove special code path for Y42B to calculate offsets and
	  strides; libgstvideo knows how to handle this format now.

2008-04-11  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/cdxaparse/Makefile.am:
	* gst/cdxaparse/gstcdxaparse.c:
	* gst/cdxaparse/gstcdxastrip.c:
	* gst/cdxaparse/gstcdxastrip.h:
	* gst/cdxaparse/gstvcdparse.c:
	* gst/cdxaparse/gstvcdparse.h:
	  Port VCD parser (formerly cdxastrip) from 0.8 to 0.10. Doesn't do
	  anything the 0.8 version didn't do though.

2008-04-11  Julien Moutte  <julien@fluendo.com>

	* sys/oss4/oss4-mixer-enum.c:
	(gst_oss4_mixer_enum_get_values_locked):
	* sys/oss4/oss4-source.c: (gst_oss4_source_delay): Fix arguments
	format in debug statements.

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

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

	* configure.ac:
	* sys/Makefile.am:
	* sys/wininet/Makefile.am:
	* sys/wininet/gstwininetsrc.c:
	* sys/wininet/gstwininetsrc.h:
	  Add wininetsrc for basic http/ftp support on windows (#520897).

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

	* gst/nsf/nsf.h:
	  Change prototype of process function here too to avoid
	  'incompatible assignment' warnings.

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

	* tests/check/elements/souphttpsrc.c: (got_buffer),
	(souphttpsrc_suite):
	Increase the timeout for the internet tests to 250 seconds
	and check for NULL caps instead of just crashing.
	The real fix would be to implement an shoutcast server for the unit test
	instead of relying on a working internet connection.
	Fixes bug #521749.

2008-04-10  Peter Kjellerstedt  <pkj@axis.com>

	* gst/rtpmanager/gstrtpbin.c: (free_session):
	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize):
	Avoid leaking pads in the RTP manager.

2008-04-09  Jan Schmidt  <Jan.Schmidt@sun.com>

	* gst/nsf/nes_apu.c: (apu_process):
	* gst/nsf/nes_apu.h:
	Don't do void pointer arithmetic - it's a gcc extension.

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

	* ext/jack/gstjackaudiosink.c: (gst_jack_audio_sink_class_init):
	  Work around missing bits of thread-safety on older GLibs some
	  more to avoid assertions when starting up multiple playbin
	  objects concurrently (see #512382).

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

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_response_cb):
	Only ignore actual redirects not all responses when in state
	GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING. Fixes bug #526337.

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

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

        * configure.ac:
        Actually build dlls when cross-compiling with mingw32.
        Fixes bug #526247.

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

	* tests/check/elements/ofa.c: (GST_START_TEST):
	Also check that we have processed at least 135 seconds of audio
	until we stop and calculated a fingerprint.

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

	* gst/subenc/gstsrtenc.c:
	* gst/subenc/gstsrtenc.h:
	  GstSrtenc => GstSrtEnc and gst_srtenc_ => gst_srt_enc_.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/ofa.c: (bus_handler), (GST_START_TEST),
	(ofa_suite), (main):
	Add simple unit tests for the OFA plugin.

2008-04-02  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* sys/Makefile.am:
	* sys/oss4/Makefile.am:
	* sys/oss4/oss4-audio.c:
	* sys/oss4/oss4-audio.h:
	* sys/oss4/oss4-mixer-enum.c:
	* sys/oss4/oss4-mixer-enum.h:
	* sys/oss4/oss4-mixer-slider.c:
	* sys/oss4/oss4-mixer-slider.h:
	* sys/oss4/oss4-mixer-switch.c:
	* sys/oss4/oss4-mixer-switch.h:
	* sys/oss4/oss4-mixer.c:
	* sys/oss4/oss4-mixer.h:
	* sys/oss4/oss4-property-probe.c:
	* sys/oss4/oss4-property-probe.h:
	* sys/oss4/oss4-sink.c:
	* sys/oss4/oss4-sink.h:
	* sys/oss4/oss4-soundcard.h:
	* sys/oss4/oss4-source.c:
	* sys/oss4/oss4-source.h:
	  Add initial support for OSSv4. Mixer still needs a bit more love,
	  but even magic has its limits.

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

	* configure.ac:
	* gst-plugins-bad.spec.in:
	* gst/srtenc/Makefile.am:
	* gst/srtenc/gstsrtenc.c:
	* gst/srtenc/gstsrtenc.h:
	* gst/subenc/Makefile.am:
	* gst/subenc/gstsrtenc.c: (plugin_init):
	  Rename new srtenc plugin to subenc.

2008-04-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	Cable delivery subsystem descriptors' frequency's bcd
	is measured in 100Hz units so adjust multiplier accordingly.

2008-04-01  Thijs Vermeir  <thijsvermeir@gmail.com>

	* configure.ac:
	* gst/srtenc/Makefile.am:
	* gst/srtenc/gstsrtenc.c:
	* gst/srtenc/gstsrtenc.h:
	Add srt subtitle encoder

2008-03-31  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Kapil Agrawal <kapil at fluendo dot com>

	* ext/gsm/gstgsmdec.c: (gst_gsmdec_sink_setcaps),
	(gst_gsmdec_chain):
	* ext/gsm/gstgsmdec.h:
	Increase the allowed samplerates for the ms-gsm format.
	Fixes #481354.

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

	Patch by: Jan de Groot <jan at jgc homeip net>

	* configure.ac:
	  Fix build with --disable-external (#525100).

2008-03-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Repeat diseqc call to allow for some diseqc switches.

2008-03-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/Makefile.am:
	Dist ofa correctly! Fixes non-uninstalled build.

2008-03-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Make diseqc work more reliably.

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

	* gst/nsf/Makefile.am:
	* gst/nsf/fds_snd.c:
	* gst/nsf/mmc5_snd.c:
	* gst/nsf/nsf.c:
	* gst/nsf/types.h:
	* gst/nsf/vrc7_snd.c:
	* gst/nsf/vrcvisnd.c:
	* gst/nsf/memguard.c:
	* gst/nsf/memguard.h:
	Remove memguard again and apply hopefully all previously dropped
	local patches. Should be really better than the old version now.

2008-03-25  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/nsf/memguard.c: (_my_free):
	* gst/nsf/types.h:
	Unbreak compilation by disabling memguard and doing some dirty hack
	fixes to make it compile on 64bits.

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

	Patch by: Andreas Henriksson <andreas at fatal dot set>

	* gst/nsf/Makefile.am:
	* gst/nsf/dis6502.h:
	* gst/nsf/fds_snd.c:
	* gst/nsf/fds_snd.h:
	* gst/nsf/fmopl.c:
	* gst/nsf/fmopl.h:
	* gst/nsf/gstnsf.c:
	* gst/nsf/log.c:
	* gst/nsf/log.h:
	* gst/nsf/memguard.c:
	* gst/nsf/memguard.h:
	* gst/nsf/mmc5_snd.c:
	* gst/nsf/mmc5_snd.h:
	* gst/nsf/nes6502.c:
	* gst/nsf/nes6502.h:
	* gst/nsf/nes_apu.c:
	* gst/nsf/nes_apu.h:
	* gst/nsf/nsf.c:
	* gst/nsf/nsf.h:
	* gst/nsf/osd.h:
	* gst/nsf/types.h:
	* gst/nsf/vrc7_snd.c:
	* gst/nsf/vrc7_snd.h:
	* gst/nsf/vrcvisnd.c:
	* gst/nsf/vrcvisnd.h:
	Update our internal nosefart to nosefart-2.7-mls to fix segfaults
	on some files. Fixes bug #498237.

	Remove some // comments, fix some compiler warnings and use pow()
	instead of a slow, selfmade implementation.

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

	Patch by: Ed Catmur <ed at catmur dot co dot uk>

	* configure.ac:
	Add support for neon 0.28, which didn't change API. Fixes bug #524035.

2008-03-24  Rene Stadler  <mail@renestadler.de>

	* gst/replaygain/gstrganalysis.c (gst_rg_analysis_init),
	  (gst_rg_analysis_transform_ip):
	* gst/replaygain/gstrglimiter.c (gst_rg_limiter_init),
	  (gst_rg_limiter_transform_ip):
	Make rganalysis and rglimiter elements GAP-flag aware.

	* tests/check/elements/rganalysis.c: (test_gap_buffers),
	  (rganalysis_suite):
	* tests/check/elements/rglimiter.c (test_gap), (rglimiter_suite):
	Add tests to verify gap-awareness.

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

	* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_got_headers_cb),
	(gst_soup_http_src_chunk_allocator),
	(gst_soup_http_src_got_chunk_cb),
	(gst_soup_http_src_uri_get_protocols):
	Don't autoplug souphttpsrc for dav/davs. This is better handled by
	GIO and GnomeVFS as they provide authentication.

	Don't leak the icy caps if we already set them and get a new
	icy-metaint header.

	Try harder to set the icy caps on the output buffer to have correct
	caps for the first buffer already.

	* tests/check/elements/souphttpsrc.c: (got_buffer),
	(GST_START_TEST):
	Check that we get a buffer with application/x-icy caps if iradio-mode
	is enabled and we have an icecast URL.

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

	* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_chunk_allocator):
	Actually set the icy caps on our src pad if we have icecast data.
	Fixes bug #523854.

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

	* configure.ac:
	Check if the compiler supports do { } while (0) macros. This fixes
	a warning when compiling with g++ 4.3, resulting in a build failure
	because of -Werror.

	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	* ext/mplex/gstmplex.cc:
	Include <string.h> for memcpy and friends to fix the build with
	gcc 4.3.

	* tests/check/Makefile.am:
	Remove trailing backslash.

2008-03-20  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	(gst_input_selector_set_active_pad), (gst_input_selector_switch):
	Do g_object_notify() only when not holding the lock to get the property
	because otherwise we run into a deadlock with the deep-notify handlers
	that are possibly installed.

2008-03-20  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
	(gst_selector_pad_event), (gst_selector_pad_bufferalloc),
	(gst_selector_pad_chain), (gst_input_selector_set_active_pad):
	Release the selector lock when pad alloc happens on a non selected pad.

2008-03-20  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
	(gst_selector_pad_init), (gst_selector_pad_set_property),
	(gst_selector_pad_get_property), (gst_selector_pad_event),
	(gst_selector_pad_bufferalloc), (gst_selector_pad_chain),
	(gst_input_selector_set_active_pad):
	Add pad property to configure behaviour of the unselected pad, it can
	return OK or NOT_LINKED, based on the use case.

2008-03-20  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c:
	(gst_selector_pad_get_running_time), (gst_selector_pad_reset),
	(gst_selector_pad_event), (gst_selector_pad_bufferalloc),
	(gst_input_selector_wait), (gst_selector_pad_chain),
	(gst_input_selector_class_init), (gst_input_selector_init),
	(gst_input_selector_dispose), (gst_segment_set_start),
	(gst_input_selector_set_active_pad),
	(gst_input_selector_set_property),
	(gst_input_selector_get_property),
	(gst_input_selector_get_linked_pad),
	(gst_input_selector_is_active_sinkpad),
	(gst_input_selector_activate_sinkpad),
	(gst_input_selector_request_new_pad),
	(gst_input_selector_release_pad),
	(gst_input_selector_change_state), (gst_input_selector_block),
	(gst_input_selector_switch):
	* gst/selector/gstinputselector.h:
	Figure out the locking a bit more.
	Mark buffers with discont after switching.
	Fix initial segment forwarding, make sure to only forward one segment
	regardless of what the sequence of buffers/segments is. See #522203.
	Improve flushing when blocked.
	Return NOT_LINKED when a stream is not selected.
	Not API change for the switch signal in the docs.
	Fix start/time/accum values of the new segment.
	Correctly unlock and flush a blocking selector when going to READY.

2008-03-20  Stefan Kost  <ensonic@users.sf.net>

	* ext/ladspa/gstladspa.c:
	* ext/ladspa/gstsignalprocessor.c:
	  Add some thoughts and FIXME's.

2008-03-20  Stefan Kost  <ensonic@users.sf.net>

	* gst/bayer/gstbayer2rgb.c:
	  Include stdlib.h for abs.

2008-03-19  Stefan Kost  <ensonic@users.sf.net>

	* gst/freeze/FAQ:
	* gst/freeze/Makefile.am:
	* gst/freeze/gstfreeze.c:
	  Add example to source code documentation blob and remove the 3 line
	  FAQ.

	* gst/interleave/interleave.c:
	  Add a source code documentation blob.

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

	* ext/ofa/gstofa.c: (create_fingerprint), (gst_ofa_event),
	(gst_ofa_transform_ip), (plugin_init):
	Improve debugging, clean up a bit and really generate the fingerprint
	after 135 seconds.

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

	* ext/ofa/gstofa.c:
	Use GPL as license, the plugin itself is LGPL but libofa is GPL.

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

	Based on a patch by: Eric Buehl <eric dot buehl at gmail dot com>

	* configure.ac:
	* ext/ofa/Makefile.am:
	* ext/ofa/gstofa.c: (gst_ofa_base_init), (gst_ofa_finalize),
	(gst_ofa_class_init), (create_fingerprint), (gst_ofa_event),
	(gst_ofa_init), (gst_ofa_transform_ip), (gst_ofa_get_property),
	(plugin_init):
	* ext/ofa/gstofa.h:
	Add an OFA element, the successor of MusicBrainz TRM fingerprinting.
	Fixes bug #351309.

2008-03-18  Andy Wingo  <wingo@pobox.com>

	* ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument,
	and a potential int overflow.

	* ext/faad/gstfaad.h: Include <neaacdec.h> if faad is neaac.
	Avoids a #warning about an ignored #pragma.

2008-03-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* examples/switch/switcher.c:
	Update switch example to use input selector.

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

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	(gst_neonhttp_src_send_request_and_redirect):
	Handle HTTP status code 303 (See Other) the same way
	as 302 (Found). Not sure what to do about all the other 3xx
	redirect status codes. Fixes bug #522884.

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

	* gst-libs/gst/dshow/Makefile.am:
	Make sure the dshow helper library headers get distributed in the next
	release.

2008-03-14  David Schleef  <ds@schleef.org>

	Patch by: William M. Brack

	* gst/bayer/gstbayer2rgb.c: Significant improvements.  Fixes #521392.

2008-03-14  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c: (gst_selector_pad_event),
	(gst_selector_pad_bufferalloc), (gst_selector_pad_chain),
	(gst_input_selector_class_init),
	(gst_input_selector_set_active_pad),
	(gst_input_selector_set_property),
	(gst_input_selector_push_pending_stop):
	Add lots of debugging. 
	Fix time member in the newsegment event.

2008-03-13  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
	(gst_selector_pad_finalize), (gst_selector_pad_get_property),
	(gst_selector_pad_event), (gst_input_selector_class_init),
	(gst_input_selector_init), (gst_input_selector_set_active_pad),
	(gst_input_selector_set_property),
	(gst_input_selector_get_property),
	(gst_input_selector_request_new_pad),
	(gst_input_selector_release_pad),
	(gst_input_selector_push_pending_stop),
	(gst_input_selector_switch):
	* gst/selector/gstinputselector.h:
	Various cleanups.
	Added tags to the pads.
	Select active pad based on the pad object instead of its name.
	Fix refcount in set_active_pad.
	Add property to get the number of pads.

	* gst/selector/gstoutputselector.c:
	(gst_output_selector_class_init),
	(gst_output_selector_set_property),
	(gst_output_selector_get_property):
	Various cleanups.
	Select the active pad based on the pad object instead of its name.
	Fix locking when setting the active pad.

	* gst/selector/gstselector-marshal.list:
	* tests/check/elements/selector.c: (cleanup_pad),
	(selector_set_active_pad), (run_input_selector_buffer_count):
	Fixes for pad instead of padname for pad selection.

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

	* ext/alsaspdif/alsaspdifsink.c:
	* ext/gsm/gstgsm.c:
	* ext/jack/gstjack.c:
	* ext/libmms/gstmms.c:
	* ext/neon/gstneonhttpsrc.c:
	* ext/shout/gstshout.c:
	* ext/timidity/gsttimidity.c:
	* ext/timidity/gstwildmidi.c:
	* gst/nuvdemux/gstnuvdemux.c:
	* gst/tta/gsttta.c:
	Use GST_LICENSE, GST_PACKAGE_NAME and GST_PACKAGE_ORIGIN instead
	of hardcoding values where possible. Fixes bug #522212.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_init),
	(gst_soup_http_src_finished_cb), (gst_soup_http_src_response_cb),
	(gst_soup_http_src_build_message), (gst_soup_http_src_create):
	* ext/soup/gstsouphttpsrc.h:
	Try to resume on server disconnect. Fixes bug #522134.

2008-03-12  Wim Taymans  <wim.taymans@collabora.co.uk>

	* ext/xvid/gstxvidenc.c: (gst_xvidenc_chain):
	Set correct pixel aspect ratio for the encoder.

2008-03-11  Wim Taymans  <wim.taymans@collabora.co.uk>

	Patch by: Olivier Crete <tester at tester dot ca>

	* gst/rtpmanager/rtpsession.c: (find_add_conflicting_addresses),
	(check_collision), (obtain_source), (rtp_session_create_new_ssrc),
	(rtp_session_create_source), (rtp_session_process_rtp),
	(rtp_session_process_sr), (rtp_session_process_rr),
	(rtp_session_process_sdes), (rtp_session_process_bye),
	(rtp_session_send_bye_locked), (rtp_session_send_bye),
	(rtp_session_on_timeout):
	* gst/rtpmanager/rtpsession.h:
	Implement collision and loop detection in rtpmanager.
	Fixes #520626.

	* gst/rtpmanager/rtpsource.c: (rtp_source_reset),
	(rtp_source_init):
	* gst/rtpmanager/rtpsource.h:
	Add method to reset stats.

2008-03-11  Wim Taymans  <wim.taymans@collabora.co.uk>

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

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init),
	(rtcp_thread), (start_rtcp_thread), (stop_rtcp_thread),
	(join_rtcp_thread), (gst_rtp_session_change_state):
	Avoid a deadlock when joining the RTCP thread in PAUSED because it might
	be blocked downstream. Also avoid spawning multiple rtcp threads.
	Fixes #520894.

2008-03-11  Wim Taymans  <wim.taymans@collabora.co.uk>

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

	* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
	Don't try to reset the clock skew when we have no timestamps.
	Fixes #519005.

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

	Patch by: Sjoerd Simons <sjoerd at luon dot net>

	* ext/faad/gstfaad.c: (looks_like_valid_header):
	Improve the header checking to look for what faad2 looks
	for too. Fixes playback of same apple trailers.
	Fixes bug #469979.

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

	* configure.ac:
	Really check for libdc1394 >= 2.0.0, pkg-config thinks that
	2.0.0-rcX is newer than 2.0.0 so we check for this too.

2008-03-05  David Schleef  <ds@schleef.org>

	* ext/dirac/gstdiracenc.cc: Add a bunch of properties cribbed
	  from the encoder program in dirac.

2008-03-05  David Schleef  <ds@schleef.org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/dirac/Makefile.am:
	* ext/dirac/gstdirac.cc:
	* ext/dirac/gstdiracenc.cc:
	  Rewrite Dirac encoder plugin based on Schroedinger gstreamer
	  elements.

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

	Patch by: Mark Nauwelaerts <manauw at skynet dot be>

	* configure.ac:
	* ext/Makefile.am:
	* ext/mplex/Makefile.am:
	* ext/mplex/gstmplex.cc:
	* 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:
	Port mplex element to 0.10. Fixes bug #520329.

	* tests/check/Makefile.am:
	* tests/check/elements/mplex.c: (test_sink_event), (setup_src_pad),
	(teardown_src_pad), (setup_mplex), (cleanup_mplex),
	(GST_START_TEST), (mplex_suite), (main):
	Add unit test for the mplex element.

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

	Patch by: Mark Nauwelaerts <manauw at skynet dot be>

	* configure.ac:
	Clean up detection of different mjpegtoolsAPI versions.

	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mpeg2enc/gstmpeg2enc.hh:
	* ext/mpeg2enc/gstmpeg2encoder.cc:
	* ext/mpeg2enc/gstmpeg2encoptions.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.hh:
	* ext/mpeg2enc/gstmpeg2encstreamwriter.cc:
	* ext/mpeg2enc/gstmpeg2encstreamwriter.hh:
	Streamline conditional code for evolving mjpegtools API,
	optimize and fix/prevent crash in log handling, use
	names/nicks for enums in the usual way andm inor updates
	in code and properties/settings. Partially fixes bug #520329.

2008-03-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/gstmpegdesc.h:
	* gst/mpegtsparse/mpegtspacketizer.c:
	Add parsing of cable delivery system descriptor.

2008-03-03  Peter Kjellerstedt  <pkj@axis.com>

	* configure.ac:
	Use AG_GST_CHECK_PLUGIN and AG_GST_DISABLE_PLUGIN to simplify which
	plug-ins are included/excluded. (#498222)

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

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

	* gst/mve/gstmvedemux.c: (gst_mve_audio_data),
	(gst_mve_demux_get_type):
	Fix audio discontinuity that happens when silent chunks are
	followed by real data again. Fixes bug #519905.

2008-03-01  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	* sys/dvb/parsechannels.c:
	Add DVB-C support. Special thanks to Christian Schaller
	for a testing ground.

2008-02-28  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtsparse.c:
	Only send PMTs to program pads that the PMT is for even if
	on same pid.
	As a by-product, we now no longer hardcode any psi pid numbers.
	Also remove pcr stream from old pmt when we apply a new pmt.

2008-02-28  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* tests/icles/metadata_editor.c:
	Map Date-Time and GPS tags and Convert from EXIF to XMP Datatime as
	local time (those changes has been done in previous comit but had to
	be revert in 2008-02-10 due to frozen)

2008-02-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/camutils.c:
	Remove the G_VALUE_HOLDS_BOXED checks. They were
	only added to help debug the data corruption.

2008-02-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/camutils.c:
	Don't free the program descriptors, this structure
	containing them is still stored after.
	Fixes data corruption.

2008-02-27  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/camutils.c:
	Extra checks to prevent data corruption/segfaults.

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

	* ext/nas/nassink.c:
	  Fix build warning by using portable API.

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

	* gst/selector/gstoutputselector.c:
	  Fix changing to same pad twice before a chain call.	  

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

	Patch by: Daniel Fischer <dan at f3c dot com>

	* configure.ac:
	* ext/dc1394/gstdc1394.c: (gst_dc1394_change_state),
	(gst_dc1394_get_cam_caps), (gst_dc1394_open_cam_with_best_caps):
	* ext/dc1394/gstdc1394.h:
	Add support for libdc1394 2.0.0 and above and require this version
	now. Fixes bug #514964.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_class_init),
	(gst_soup_http_src_init), (gst_soup_http_src_dispose),
	(gst_soup_http_src_set_property), (gst_soup_http_src_get_property),
	(gst_soup_http_src_create):
	* ext/soup/gstsouphttpsrc.h:
	* tests/check/elements/souphttpsrc.c: (run_test), (GST_START_TEST),
	(souphttpsrc_suite):
	Add support for specifying a list of cookies to be passed in
	the HTTP request. Fixes bug #518722.

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

	* gst/selector/gstinputselector.c:
	* gst/selector/gstinputselector.h:
	  Added "select-all" property to make it work like aggregator in 0.8.

	* gst/selector/gstoutputselector.c:
	  Fix resend-latest behavoiur.
	  
	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/selector.c:
	  Add unit tests for selector.

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

	* configure.ac:
	* ext/timidity/gsttimidity.c: (plugin_init):
	* ext/timidity/gstwildmidi.c: (plugin_init):
	Remove midi typefinders and require base CVS as they moved there.

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

	* ext/Makefile.am:
	Only disable the ext/timidity directory if both, wildmidi
	_and_ timidity are not available.

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

	Patch by: Emilio Pozuelo Monfort <pochu at ubuntu dot com>

	* ext/Makefile.am:
	Build the wildmidi plugin if it's enabled and not only when
	both, the timidity and wildmidi plugin, are enabled.

2008-02-23  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/mpeg2enc/Makefile.am:
	* ext/soundtouch/Makefile.am:
	* gst/modplug/Makefile.am:
          Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them
          when building C++ code.

2008-02-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Add initial support for multiproto driver (not yet merged into
	v4l-dvb mainline yet).
	Only works for DVB-S not DVB-S2, DVB-T, DVB-C or other.

2008-02-22  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-interleave.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegtsparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-tremor.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	  Update to version 0.10.6.1.

2008-02-22  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-gdp.xml:
	* docs/plugins/inspect/plugin-quicktime.xml:
	* docs/plugins/inspect/plugin-switch.xml:
	* docs/plugins/inspect/plugin-videocrop.xml:
	  Remove docs for elements that have moved to other modules
	  or been renamed.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* configure.ac:
	* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_cancel_message),
	(gst_soup_http_src_finished_cb), (gst_soup_http_src_chunk_free),
	(gst_soup_http_src_chunk_allocator),
	(gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_create),
	(gst_soup_http_src_start), (gst_soup_http_src_set_proxy):
	* ext/soup/gstsouphttpsrc.h:
	Implement zero-copy and make the buffer size configurable.
	Prefix proxy URIs with "http://" if they don't start with it
	already and catch errors earlier, fixes hanging in some situations.
	Fixes bug #514948.

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

	* tests/check/gst-plugins-bad.supp:
	Add suppressions for SoundTouch valgrind warnings and
	a valgrind warning caused by the LADSPA sine plugin and
	happening on every exit().
	Remove GIO suppressions as it's now in -base.

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

	* ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_create):
	Don't allocate and copy the data to a new place but instead
	put the data from gmyth (which we own) into the buffers that
	are passed downstream.

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

	* ext/timidity/gstwildmidi.c:
	If WILDMIDI_CFG is not defined, define it to the default
	timidity configure file.

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

	Based on a patch by:
	  Hans de Goede <j dot w dot r dot degoede at hhs dot nl>

	* configure.ac:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	Remove hack to work with mjpegtools 1.9.0rc3 and above and instead
	use mjpeg_loglev_t() for getting the log levels. Check for this
	function in configure.ac as the pkg-config file doesn't tell us
	which release candidate we have. Fixes bug #517896.

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

	* configure.ac:
	Check for X for the nas plugin to make it possible to build it
	again. Fixes bug #517895.

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

	* tests/check/Makefile.am:
	Ignore some more elements for the states unit test, like
	dfbvideosink which produces a segfault. Fixes bug #517854.

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

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

	* gst/librfb/gstrfbsrc.c: (gst_rfb_property_set_version):
	* gst/librfb/rfbdecoder.c: (rfb_decoder_message_set_encodings),
	(rfb_decoder_state_set_encodings):
	* gst/mpegtsparse/mpegtspacketizer.c:
	(mpegts_packetizer_parse_nit), (mpegts_packetizer_parse_sdt),
	(mpegts_packetizer_parse_eit):
	* sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps),
	(gst_fbdevsink_setcaps), (gst_fbdevsink_render):
	Some C89 fixes, moving variable declarations to the beginning
	of a block. Fixes bug #517937.

2008-02-21  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Back to development...

=== release 0.10.6 ===

2008-02-20  Jan Schmidt <jan.schmidt@sun.com>

	* configure.ac:
	  releasing 0.10.6, "A Big Deep Breath"

2008-02-20  Bastien Nocera  <hadess@hadess.net>

	* ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_do_seek),
	(gst_mythtv_src_start): Using the wrong GstFormat for the filesize,
	and fail seek properly on anything but _BYTES format
	Fixes bug #517684

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

	Patch by: Olivier Crete <tester at tester dot ca>

	* gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found):
	Fix small memory leak, leaking caps. Fixes bug #517571.

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

	* gst/tta/Makefile.am:
	Link tta plugin with libm. Fixes bug #517391.

2008-02-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/camutils.c:
	Do not assume "descriptors" property in the pmt structure
	is present.
	Fixes #516499.

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

	Patch by: Olivier Crete <tester@tester.ca>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate):
	Ignore streams that did not receive an SR packet when doing
	synchronisation. Fixes #516160.

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

	* gst/dvdspu/gstdvdspu.c: (gst_dvd_spu_handle_new_spu_buf):
	Set n_line_ctrl_i to 0 whenever we free line_ctrl_i. Patch based
	on an idea by Jan Schmidt, fixes bug #516436.

2008-02-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/gstmpegdesc.c:
	* gst/mpegtsparse/gstmpegdesc.h:
	* gst/mpegtsparse/mpegtsparse.c:
	Make sure the gstmpegdesc debug lines do not critical
	when GST_DEBUG is enabled and also actually output.
	Thanks to Alessandro Decina for spotting.
	Fixes #516448

2008-02-13  Jan Schmidt  <jan.schmidt@sun.com>

	* gst-libs/gst/Makefile.am:
	* sys/Makefile.am:
	Also add dshow pieces to the disted subdirs to fix distcheck.

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

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

	* gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_reverse):
	Fix potential buffer leak in reverse mode. Re-Fixes #516061.

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

	* configure.ac:
	Allow gmyth versions from 0.4 up to 0.7.99, the API didn't change
	until 0.7 fortunately.

2008-02-12  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Generate the directshow Makefiles so that the directories
	get disted. Still needs some configure time detection to enable
	building them under MingW.

2008-02-12  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/metadata/Makefile.am:
	Don't install a header file. We will have to merge these
	tags into libgsttag after the release and use them from there.
	Fixes: #515860

2008-02-12  Sebastien Moutte  <sebastien@moutte.net>

	* gst-libs/gst/dshow/Makefile.am:
	* sys/dshowdecwrapper/Makefile.am:
	* sys/dshowsrcwrapper/Makefile.am:
	Add Makefiles to win32 plugins and lib.
	They will need to be tested and probably fixed by developers
	working with mingw. This is a first step to include source files 
	with releases.
	
2008-02-12  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/dvbbasebin.c:
	Fix leak of location string returned from gst_uri_get_location.
	Fixes bug #516114

2008-02-12  David Schleef  <ds@schleef.org>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* sys/Makefile.am:
	* sys/glsink/BUGS:
	* sys/glsink/Makefile.am:
	* sys/glsink/color_matrix.c:
	* sys/glsink/glextensions.c:
	* sys/glsink/glextensions.h:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/gltestsrc.c:
	* sys/glsink/gltestsrc.h:
	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstglbuffer.h:
	* sys/glsink/gstglconvert.c:
	* sys/glsink/gstgldisplay.c:
	* sys/glsink/gstgldisplay.h:
	* sys/glsink/gstgldownload.c:
	* sys/glsink/gstglfilter.c:
	* sys/glsink/gstglfilter.h:
	* sys/glsink/gstglfilterexample.c:
	* sys/glsink/gstgltestsrc.c:
	* sys/glsink/gstgltestsrc.h:
	* sys/glsink/gstglupload.c:
	* sys/glsink/gstopengl.c:
	  Remove glimagesink, as it's been moved to gst-plugins-gl.
	  Fixes #516094.

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

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

	* gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_reverse):
	Fix potential buffer leak in reverse mode. Fixes #516061.

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

	* sys/dshowdecwrapper/gstdshowaudiodec.c:
	(gst_dshowaudiodec_dispose):
	* sys/dshowdecwrapper/gstdshowvideodec.c:
	(gst_dshowvideodec_dispose):
	Chain up dispose methods properly. Fixes bug #515970.

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

	* gst/mpegvideoparse/mpegvideoparse.c:
	(mpegvideoparse_handle_sequence), (mpegvideoparse_drain_avail),
	(gst_mpegvideoparse_change_state):
	Fix leaking caps.
	Fix potential buffer leak in forward mode.
	Cleanup queues when going to READY. Fixes #515815.

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

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-gio.xml:
	Remove documentation for the GIO plugin as it was moved to
	gst-plugins-base. Fixes bug #515964.

2008-02-12  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/xvid/gstxvidenc.c:
	* gst/vmnc/vmncdec.c:
	* sys/glsink/glimagesink.c:
	* sys/glsink/gstgldisplay.c:
	Fix some finalize leaks by chaining up to the parent method.
	Fixes: #515919

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

	* tests/check/elements/souphttpsrc.c:
	Include glib/gprintf.h for g_vasprintf(). Fixes bug #515564.

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

	* gst/librfb/gstrfbsrc.c: (gst_rfb_src_dispose):
	Free the rfb decoder on finalize. Fixes bug #515721.

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

	* sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_class_init),
	(gst_fbdevsink_finalize):
	Free the device string in finalize. Fixes bug #515722.

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

	* ext/xvid/gstxvidenc.c: (gst_xvidenc_init):
	Unset GValues after using them. Fixes bug #515720.

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

	* tests/check/Makefile.am:
	Disable the dvb plugin for the states test. Fixes bug #515567.

2008-02-10  Edgard Lima,,,,  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* tests/icles/metadata_editor.c:
	  Revert changes to 2008-02-09 due to frozen.

2008-02-10  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/ivorbis/vorbisfile.c:
	Trivial fix for build warning.
	Patch by: Josep Torra Valles <josep@fluendo.com>
	Fixes: #515588

2008-02-10  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/metadataexif.c:
	  Convert from EXIF to XMP DataTime as local time.

2008-02-10  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* tests/icles/metadata_editor.c:
	  Map Date-Time and GPS tags.
	  

2008-02-09  Jan Schmidt  <jan.schmidt@sun.com>

	* gst/selector/Makefile.am:

	Listing the marshal.h in the nodist_HEADERS breaks distcheck, so
	let's not do that

	* tests/check/Makefile.am:
	Disable the crashing cdaudio plugin from the states test so I can make
	pre-releases.

2008-02-09  Jan Schmidt  <jan.schmidt@sun.com>

	* win32/vs6/libgstdshowdecwrapper.dsp:
	* win32/vs6/libgstflv.dsp:
	Convert to DOS line endings, and set -kb

2008-02-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/Makefile.am:
	* sys/dvb/dvbbasebin.c:
	Add URI Handler for dvb.
	Re-order pad templates to workaround a bug in playbasebin.
	* sys/dvb/parsechannels.c:
	* sys/dvb/parsechannels.h:
	Add code to parse channels from zap-style channels.conf files.

2008-02-08  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/inspect/plugin-multifile.xml:
	* gst/multifile/Makefile.am:
	* gst/multifile/gstmultifile.c:
	* gst/multifile/gstmultifilesink.c:
	* gst/multifile/gstmultifilesink.h:
	* gst/multifile/gstmultifilesrc.c:
	* gst/multifile/gstmultifilesrc.h:
	* gst/multifile/multifile.vproj:
	* tests/check/Makefile.am:
	* tests/check/elements/multifile.c:

	Remove multifile plugin, which has moved to -good

2008-02-07  David Schleef  <ds@schleef.org>

	* gst/multifile/gstmultifilesink.c:
	* gst/multifile/gstmultifilesrc.c:
	  Use g_file_[sg]et_contents() instead of using stdio functions.
	  Should be less error prone.
	* tests/check/elements/multifile.c:
	  Create a temporary directory using standard functions instead of
	  creating a directory in the current dir.

2008-02-08  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* gst/spectrum/.cvsignore:
	* gst/spectrum/Makefile.am:
	* gst/spectrum/README:
	* gst/spectrum/demo-audiotest.c:
	* gst/spectrum/demo-osssrc.c:
	* gst/spectrum/gstspectrum.c:
	* gst/spectrum/gstspectrum.h:
	* gst/spectrum/spectrum.vcproj:
	* tests/check/Makefile.am:
	* tests/check/elements/spectrum.c:

	Remove spectrum plugin, which has moved to -good

2008-02-08  Jan Schmidt  <jan.schmidt@sun.com>

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	Remove equalizer plugin docs

	* tests/check/Makefile.am:
	Add GST_OPTION_CFLAGS, to get -Werror -Wall into the tests as for
	other modules.

	* tests/check/elements/multifile.c:
	* tests/check/elements/rganalysis.c:
	* tests/check/elements/rglimiter.c:

	Fix compiler warnings from -Wall -Werror

2008-02-08  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-equalizer.xml:
	* gst/equalizer/.cvsignore:
	* gst/equalizer/Makefile.am:
	* gst/equalizer/demo.c:
	* gst/equalizer/gstiirequalizer.c:
	* gst/equalizer/gstiirequalizer.h:
	* gst/equalizer/gstiirequalizer10bands.c:
	* gst/equalizer/gstiirequalizer10bands.h:
	* gst/equalizer/gstiirequalizer3bands.c:
	* gst/equalizer/gstiirequalizer3bands.h:
	* gst/equalizer/gstiirequalizernbands.c:
	* gst/equalizer/gstiirequalizernbands.h:
	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/equalizer.c:

	Remove the equalizer plugin, which has moved to -good

2008-02-08  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	Make DISABLE_DEPRECATED defined *only* during CVS, not during
	pre-releases or releases.

2008-02-08  Jan Schmidt  <jan.schmidt@sun.com>

	* docs/plugins/Makefile.am:
	Don't scan deleted xingmux header.

2008-02-08  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* gst/xingheader/Makefile.am:
	* gst/xingheader/gstxingmux.c:
	* gst/xingheader/gstxingmux.h:
	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/xingmux.c:
	* tests/check/elements/xingmux_testdata.h:
	Remove the xingmux plugin, as the element has moved into
	mpegaudioparse in -ugly.

2008-02-07  Jan Schmidt  <jan.schmidt@sun.com>

	* docs/plugins/Makefile.am:
	Remove mention of non-existent headers to fix the build.

2008-02-07  Jan Schmidt  <jan.schmidt@sun.com>

	* configure.ac:
	* ext/Makefile.am:
	* ext/gio/Makefile.am:
	* ext/gio/gstgio.c:
	* ext/gio/gstgio.h:
	* ext/gio/gstgiobasesink.c:
	* ext/gio/gstgiobasesink.h:
	* ext/gio/gstgiobasesrc.c:
	* ext/gio/gstgiobasesrc.h:
	* ext/gio/gstgiosink.c:
	* ext/gio/gstgiosink.h:
	* ext/gio/gstgiosrc.c:
	* ext/gio/gstgiosrc.h:
	* ext/gio/gstgiostreamsink.c:
	* ext/gio/gstgiostreamsink.h:
	* ext/gio/gstgiostreamsrc.c:
	* ext/gio/gstgiostreamsrc.h:
	* tests/check/Makefile.am:
	* tests/check/pipelines/.cvsignore:
	* tests/check/pipelines/gio.c:

	Remove GIO plugin which has now moved to -base.

2008-02-07  Jan Schmidt  <jan.schmidt@sun.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* gst/filter/Makefile.am:
	* gst/filter/filter.vcproj:
	* gst/filter/gstbpwsinc.c:
	* gst/filter/gstbpwsinc.h:
	* gst/filter/gstfilter.c:
	* gst/filter/gstfilter.h:
	* gst/filter/gstlpwsinc.c:
	* gst/filter/gstlpwsinc.h:
	* tests/check/Makefile.am:
	* tests/check/elements/bpwsinc.c:
	* tests/check/elements/lpwsinc.c:

	Remove lpwsinc and bpwsinc elements - they've become
	audiowsinclimit and audiowsincband respectively, in the
	gst-plugins-good audiofx plugin.

2008-02-07  Sebastien Moutte  <sebastien@moutte.net>

	* ext\neon\gstneonhttpsrc.c:
	Include unistd.h only if _HAVE_UNISTD_H is defined
	* gst\mpegvideoparse\mpegvideoparse.c:
	Use G_GUINT64_CONSTANT GLIB macro for constant
	* sys\dshowsrcwrapper\gstdshowaudiosrc.c:
	* sys\dshowsrcwrapper\gstdshowvideosrc.c:
	* sys\dshowdecwrapper\gstdshowaudiodec.c:
	* sys\dshowdecwrapper\gstdshowaudiodec.h:
	* sys\dshowdecwrapper\gstdshowdecwrapper.c:
	* sys\dshowdecwrapper\gstdshowdecwrapper.h:
	* sys\dshowdecwrapper\gstdshowvideodec.c
	* sys\dshowdecwrapper\gstdshowvideodec.h:
	Add a DirectShow decoder wrapper.
	* win32\MANIFEST:
	Add new win32 files to MANIFEST
	* win32\vs6\gst_plugins_bad.dsw:
	* win32\vs6\libgstdshow.dsp:
	* win32\vs6\libgstdshowdecwrapper.dsp:
	* win32\vs6\libgstflv.dsp:
	Add new projects to bad workspace

2008-02-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	Parse component descriptor.
	* gst/mpegtsparse/mpegtsparse.c:
	Add SI pids to every program (but hardcoded currently).

2008-02-07  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* tests/icles/metadata_editor.c:
	* tests/icles/metadata_editor.glade:
	  Add more tags. Improve test app.

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

	* gst/multifile/gstmultifilesink.c:
	  Add a fixme comment.

	* gst/selector/gstoutputselector.c:
	  Fix same leak as in input-selector.

	* tests/icles/output-selector-test.c:
	  Improve the test.

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

	* gst/spectrum/gstspectrum.c:
	  Improve the docs.

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

	* configure.ac:
	  The dc1394 plugin seems to use API that was removed or changed
	  before the final 2.0.0 release, so only build it if 2.0.0-rc5
	  is available. Someone needs to port it to the final API.

	* ext/dc1394/gstdc1394.c: (gst_dc1394_change_camera_transmission):
	  Include string.h for memcpy and use g_usleep instead of usleep.

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

	* gst/filter/gstlpwsinc.c:
	Fix typo in the long description of the element.

2008-02-07  Jan Schmidt  <jan.schmidt@sun.com>

	* gst/xingheader/Makefile.am:
	Put CFLAGS and LIBS in the right order

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

	* configure.ac:
	  ximagesrc has moved to -good, so no need to check for
	  the required X libs here any more.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_got_chunk_cb),
	(gst_soup_http_src_create):
	Fix memory leak and improve debugging a bit.

2008-02-05  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	  Add more tags mapping.

2008-02-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtsparse.c:
	Handle latency queries in src pads.

2008-02-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	Add flag to both sdt and nit structures to say
	whether the table is for the actual network/ts
	or not.

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

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

	* gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_flush):
	Flush packetizer too.

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

	* ext/ladspa/gstladspa.c: (gst_ladspa_base_init),
	(gst_ladspa_class_init), (ladspa_describe_plugin), (plugin_init):
	Don't use GST_BOILERPLATE as the stuff generated from it is not used
	anyway and can't be used.
	Store the class struct of the correct type in parent_class.
	Pass the LADSPA_Descriptor as class_data to the class_init function
	as preparation for the time, when we can add pad templates and friends
	in class_init and add a FIXME for that.
	Don't use a custom hash table for passing the LADSPA_Descriptors to
	base_init but use g_type_set_qdata and g_type_get_qdata.

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

	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	Really fix the build.
	TODO : Apply spankOmatic2000 on thaytan's rear end.

2008-02-04  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	  (GstMpeg2EncPictureReader.StreamPictureParams):
	  Fix compilation with libmjpegtools 1.8.x.

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

	* ext/ladspa/gstsignalprocessor.c:
	(gst_signal_processor_class_add_pad_template):
	Don't unref the pad template after adding it.
	gst_element_class_add_pad_template takes ownership of it.

2008-02-03  Jan Schmidt  <jan.schmidt@sun.com>

	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	Use the incoming pixel-aspect-ratio if provided to infer a 
	default aspect ratio, which can be overridden using the 'aspect'
	property.

	Fixes: #499008

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

	Patch by: Andrzej Mendel <andrzej dot mendel at gmail dot com>

	* configure.ac:
	Fix variable naming to make it possible to build the glimagesink
	plugin. Fixes bug #514093.

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

	* ext/metadata/gstmetadatademux.c:
	  Demote metadatademux to GST_RANK_NONE for the release, it's not
	  ready to be autoplugged yet.

	* tests/icles/metadata_editor.c:
	  Fix printf format warning for GType on ppc32 by removing it,
	  since it doesn't make sense to print the GType value anyway.

2008-02-02  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	  Map more Exif tags.

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

	* gst/selector/gstinputselector.c: (gst_selector_pad_event):
	Don't leak event on pads that are not linked. Fixes #512826.

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

	* configure.ac:
	  Bump core/base requirements to released versions, to avoid confusion.

	* gst/deinterlace/Makefile.am:
	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_set_caps):
	  Use the new GstVideoFormat API to get strides, plane offsets etc..
	  For Y42B we still need to calculate these ourselves, since the lib
	  in -base doesn't know about this format yet and we can't bump the
	  requirement to CVS right now. Fix the Y42B stride, offset and size
	  calculations for odd widths and heights while we're at it though
	  (to match those in videotestsrc).

2008-01-31  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/metadata_mapping.htm:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	  Add documentation.

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

	* ext/metadata/metadataparsejpeg.c: (metadataparse_jpeg_reading):
	Fix compilation.

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

	* gst-libs/gst/app/gstappsink.c: (gst_app_sink_dispose):
	Really clean up the queue instead of just unreffing all buffers
	in it.

	* gst-libs/gst/app/gstappsrc.c: (gst_app_src_base_init),
	(gst_app_src_class_init), (gst_app_src_init),
	(gst_app_src_dispose), (gst_app_src_finalize):
	Fix dispose/finalize.

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

	* ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst):
	Fix compiler warning by making the function signature match what
	everyone is passing in...

	* tests/icles/Makefile.am:
	Fix the build on Solaris by removing GNU ld specific flags that
	look unnecessary.

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

	* ext/metadata/Makefile.am:
	Add some relevant variables to CFLAGS and LIBADD, for example our
	compiler warnings paramters.

	* ext/metadata/gstbasemetadata.c:
	(gst_base_metadata_strip_push_buffer),
	(gst_base_metadata_calculate_offsets),
	(gst_base_metadata_src_event), (gst_base_metadata_sink_activate):
	* ext/metadata/gstmetadatademux.c: (gst_metadata_demux_init),
	(gst_metadata_demux_set_property), (gst_metadata_demux_dispose):
	* ext/metadata/gstmetadatamux.c: (gst_metadata_mux_init),
	(gst_metadata_mux_set_property), (gst_metadata_mux_get_property),
	(gst_metadata_mux_dispose),
	(gst_metadata_mux_create_chunks_from_tags):
	* ext/metadata/metadata.c: (metadata_dispose):
	* ext/metadata/metadataexif.c:
	(metadataparse_exif_content_foreach_entry_func),
	(metadatamux_exif_for_each_tag_in_list):
	* ext/metadata/metadataiptc.c:
	(metadatamux_iptc_for_each_tag_in_list):
	* ext/metadata/metadatamuxjpeg.c: (metadatamux_jpeg_lazy_update),
	(metadatamux_jpeg_reading):
	* ext/metadata/metadatamuxpng.c: (metadatamux_png_reading):
	* ext/metadata/metadataparsejpeg.c: (metadataparse_jpeg_reading):
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadataxmp.c: (metadataparse_xmp_tag_list_add),
	(metadatamux_xmp_create_chunk_from_tag_list):
	Fix a million warnings that showed up after the above change.

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

	* ext/soup/gstsouphttpsrc.c: (_do_init),
	(gst_soup_http_src_base_init), (gst_soup_http_src_class_init),
	(gst_soup_http_src_init), (gst_soup_http_src_dispose),
	(gst_soup_http_src_set_property), (gst_soup_http_src_get_property),
	(gst_soup_http_src_unicodify), (gst_soup_http_src_cancel_message),
	(gst_soup_http_src_queue_message),
	(gst_soup_http_src_add_range_header),
	(gst_soup_http_src_session_unpause_message),
	(gst_soup_http_src_session_pause_message),
	(gst_soup_http_src_session_close),
	(gst_soup_http_src_got_headers_cb),
	(gst_soup_http_src_got_body_cb), (gst_soup_http_src_finished_cb),
	(gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_response_cb),
	(gst_soup_http_src_parse_status), (gst_soup_http_src_create),
	(gst_soup_http_src_start), (gst_soup_http_src_stop),
	(gst_soup_http_src_unlock), (gst_soup_http_src_unlock_stop),
	(gst_soup_http_src_get_size), (gst_soup_http_src_is_seekable),
	(gst_soup_http_src_do_seek), (gst_soup_http_src_set_location),
	(gst_soup_http_src_set_proxy), (gst_soup_http_src_uri_get_type),
	(gst_soup_http_src_uri_get_protocols),
	(gst_soup_http_src_uri_get_uri), (gst_soup_http_src_uri_set_uri),
	(gst_soup_http_src_uri_handler_init), (plugin_init):
	Add changes to gstsouphttpsrc.c that were missing from last commit.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/inspect/plugin-soup.xml:
	(gst_soup_http_src_base_init), (gst_soup_http_src_class_init),
	(gst_soup_http_src_init), (gst_soup_http_src_dispose),
	(gst_soup_http_src_set_property), (gst_soup_http_src_get_property),
	(gst_soup_http_src_unicodify), (gst_soup_http_src_cancel_message),
	(gst_soup_http_src_queue_message),
	(gst_soup_http_src_add_range_header),
	(gst_soup_http_src_session_unpause_message),
	(gst_soup_http_src_session_pause_message),
	(gst_soup_http_src_session_close),
	(gst_soup_http_src_got_headers_cb),
	(gst_soup_http_src_got_body_cb), (gst_soup_http_src_finished_cb),
	(gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_response_cb),
	(gst_soup_http_src_parse_status), (gst_soup_http_src_create),
	(gst_soup_http_src_start), (gst_soup_http_src_stop),
	(gst_soup_http_src_unlock), (gst_soup_http_src_unlock_stop),
	(gst_soup_http_src_get_size), (gst_soup_http_src_is_seekable),
	(gst_soup_http_src_do_seek), (gst_soup_http_src_set_location),
	(gst_soup_http_src_set_proxy), (gst_soup_http_src_uri_get_type),
	(gst_soup_http_src_uri_get_protocols),
	(gst_soup_http_src_uri_get_uri), (gst_soup_http_src_uri_set_uri),
	(gst_soup_http_src_uri_handler_init), (plugin_init):
	* ext/soup/gstsouphttpsrc.h:
	Make coding style more consistent, including class renaming.

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

	* configure.ac:
	Fix configure check for soundtouch to not produce syntax errors.

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

	* configure.ac:
	* ext/metadata/metadataxmp.c:
	(metadatamux_xmp_for_each_tag_in_list):
	Fix build with exempi >= 1.99.5 and fix the include
	path for exempi.

2008-01-30  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	  Just uptade the ToDo list.

2008-01-30  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadatatypes.c:
	* ext/metadata/metadatatypes.h:
	* ext/metadata/metadataxmp.c:
	  Add documentation. Speed up a bit png muxer. Fix xmp muxer.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c:
	Update documentation a bit.

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-quicktime.xml:
	* docs/plugins/inspect/plugin-rawparse.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-soup.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-switch.xml:
	* docs/plugins/inspect/plugin-videocrop.xml:
	Regenerate everything for the documentation changes we had.

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

	* ext/gio/gstgiobasesink.c: (close_stream_cb),
	(gst_gio_base_sink_stop), (gst_gio_base_sink_event),
	(gst_gio_base_sink_render), (gst_gio_base_sink_set_stream):
	* ext/gio/gstgiobasesrc.c: (close_stream_cb),
	(gst_gio_base_src_stop), (gst_gio_base_src_create),
	(gst_gio_base_src_set_stream):
	Use async variants of the close stream functions to prevent blocking
	for a long time there and add some more sanity checks for a correct
	stream.

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

	* tests/icles/Makefile.am:
	Move -Wl parameter from _LDADD to _LDFLAGS to fix autogen.sh.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_init):
	Let the proxy property default to the content of the $http_proxy
	environment variable.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* tests/check/test-cert.pem:
	* tests/check/test-key.pem:
	Add missing files for the unit test.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	Add souphttpsrc to the docs.

	* configure.ac:
	* ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init),
	(gst_souphttp_src_init), (gst_souphttp_src_dispose),
	(gst_souphttp_src_set_property), (gst_souphttp_src_get_property),
	(gst_souphttp_src_cancel_message),
	(gst_souphttp_src_queue_message),
	(gst_souphttp_src_add_range_header),
	(gst_souphttp_src_session_unpause_message),
	(gst_souphttp_src_session_pause_message),
	(gst_souphttp_src_session_close),
	(gst_souphttp_src_got_headers_cb), (gst_souphttp_src_got_body_cb),
	(gst_souphttp_src_finished_cb), (gst_souphttp_src_got_chunk_cb),
	(gst_souphttp_src_response_cb), (gst_souphttp_src_parse_status),
	(gst_souphttp_src_create), (gst_souphttp_src_start),
	(gst_souphttp_src_stop), (gst_souphttp_src_unlock),
	(gst_souphttp_src_unlock_stop), (gst_souphttp_src_get_size),
	(gst_souphttp_src_is_seekable), (gst_souphttp_src_do_seek),
	(gst_souphttp_src_set_location), (gst_souphttp_src_set_proxy),
	(plugin_init):
	* ext/soup/gstsouphttpsrc.h:
	Add support for libsoup2.4 and require it. Also implement redirection
	and manual proxy specification. Fixes bug #510708.

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/souphttpsrc.c:
	Add unit test for souphttpsrc.

2008-01-30  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/Makefile.am:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxjpeg.h:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadatamuxpng.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsepng.c:
	* tests/icles/Makefile.am:
	  Add documentation. Fix test app compilation. Fix pull mode.

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

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain):
	Try to get the new clock-rate from the buffer caps when we receive a new
	payload type instead of always firing the signal. Fixes #512774.

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

	* ext/mpeg2enc/gstmpeg2enc.cc:
	Define LOG_NONE and friends if they're not defined yet. mjpegtools
	1.9.0rc3 removed their definitions but without it doesn't make much
	sense to write a log handler.

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

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.types:
	  Add base classes for metadata and equalizer (no introspection yet).

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

	* ext/metadata/README:
	  Formatting.
	* tests/icles/metadata_editor.c:
	  Include stdlib.h.

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-selector.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-switch.xml:
	* gst/selector/.cvsignore:
	* gst/selector/Makefile.am:
	* gst/selector/gstinputselector.c:
	* gst/selector/gstinputselector.h:
	* gst/selector/gstoutputselector.c:
	* gst/selector/gstoutputselector.h:
	* gst/selector/gstselector-marshal.list:
	* gst/selector/gstselector.c:
	* gst/selector/selector.vcproj:
	* gst/switch/.cvsignore:
	* gst/switch/Makefile.am:
	* gst/switch/gstswitch-marshal.list:
	* gst/switch/gstswitch.c:
	* gst/switch/gstswitch.h:
	* gst/switch/switch.vcproj:
	* tests/icles/.cvsignore:
	* tests/icles/Makefile.am:
	* tests/icles/output-selector-test.c:
	  Replace the switch plugin with the selector plugin. Add output-
	  selector as the opposite of input-selectoo (was switch). Add a test
	  for output-selector. Add docs for the elements. The vcproj needs
	  update. Fixes #500142.

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

	* gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_forward):
	  Try to avoid 'unused variable' compiler warning if debugging is
	  disabled (not bullet proof, but seems to do for now). (#512654)

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

	* ext/soundtouch/gstbpmdetect.cc:
	Clean up a bit and only allocate a temporary buffer for the data
	if processing stereo data as BPMDetect downmixes from stereo to
	mono and stores the result in the input data. Thanks to
	Stefan Kost for the suggestions.

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

	* ext/soundtouch/gstpitch.cc:
	Cast a double to a GstClockTimeDiff to fix a compiler warning.

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

	* tests/icles/metadata_editor.c:
	  Printf format fix.

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

	* ext/soundtouch/gstpitch.cc:
	Don't send a LATENCY event for now until we get the usage right.

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

	* ext/soundtouch/gstpitch.cc:
	* ext/soundtouch/gstpitch.hh:
	Implement LATENCY query and notify about latency changes.
	Unfortunately we don't have a fixed latency but it changes
	a bit with each buffer so we only send an LATENCY event with
	the maximum latency if it changes.

	Always calculate the timestamp, duration, etc from the sample
	rate instead of using a pre-calculated duration for one sample
	to prevent large rounding errors.

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

	Based on a patch by:
	    Hans de Goede <j dot w dot r dot degoede at hhs dot nl>

	* configure.ac:
	* ext/mpeg2enc/gstmpeg2encoder.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.hh:
	Add support for building against mjpegtools 1.9 while keeping
	compatiblity with older versions.

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

	* ext/soundtouch/gstbpmdetect.cc:
	Only consider a BPM value above 1.0 as valid.

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

	* ext/soundtouch/Makefile.am:
	* ext/soundtouch/gstbpmdetect.cc:
	* ext/soundtouch/gstbpmdetect.hh:
	* ext/soundtouch/plugin.c: (plugin_init):
	Add BPM detection plugin based on SoundTouch's libBPM.

	* ext/soundtouch/gstpitch.cc:
	Allow sample rates until MAX instead of only 48kHz and remove the
	buffer-frames field from that caps.
	Clear the remaining samples completely when necessary to get into
	a clean state again.

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

	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init):
	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init):
	Don't implement get_unit_size() ourselves, the GstAudioFilter base
	class already does this for us.

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

	* ext/soundtouch/gstpitch.cc:
	Allow seeking only in TIME and DEFAULT format, other formats will
	not work as expected. Also handle a stop position of -1 correctly
	for seeks, newsegment events and the queries. This fixes playback
	with the pitch element if upstream doesn't know the duration or has
	-1 as stop position in NEWSEGMENT events for other reasons. Before
	simply nothing was played as the segment was going from 0 to 0.

	Send a GST_MESSAGE_DURATION whenever the rate or tempo is changed
	so applications can update their cached duration. Fixes bug #503308.

	Some random cleanup and memory leak closing.

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

	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.c:
	First include the libmpcdec headers before everything else as they
	#define TRUE and FALSE unconditionally and we otherwise get conflicts
	with the ones that GLib defines.

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

	* configure.ac:
	* ext/soundtouch/gstpitch.cc:
	Add support for libsoundtouch 1.3.1 and add an ugly workaround for
	the header definined PACKAGE and other variables for which we need
	our own values from config.h.

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

	* configure.ac:
	  Check for libglade-2.0, for the metadata-editor example.

	* tests/icles/Makefile.am:
	  Only try to build the metadata-editor example if we have gtk and
	  glade (otherwise the build would just fail ...); fix build in
	  uninstalled setup.

	* tests/icles/metadata_editor.c: (on_cell_edited), (ui_add_columns):
	  Fix compiler warnings (use GLib macros to cast pointer <-> int).

2008-01-25  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparseutil.c:
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadatatypes.c:
	* ext/metadata/metadatatypes.h:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	* ext/metadata/test/Makefile:
	* ext/metadata/test/MetadataEditorMain.glade:
	* ext/metadata/test/metadata_editor.c:
	* tests/icles/Makefile.am:
	* tests/icles/metadata_editor.c:
	* tests/icles/metadata_editor.glade:
	  Add lot of documentation.

2008-01-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Open frontend in NULL->READY so caps about dvb adapter can be
	seen by the app.

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

	Patch by: Olivier Crete <tester@tester.ca>

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
	(create_stream), (payload_type_change), (new_ssrc_pad_found):
	Also handle lip-sync when the clock-rate is not provided with caps but
	with a signal.

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

	Patch by: Olivier Crete <tester@tester.ca>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain):
	* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew),
	(rtp_jitter_buffer_insert):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Remove the fixed clock-rate from the jitterbuffer and extend it so that
	a clock-rate can be provided with each buffer instead. Fixes #511686.

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

	Patch by: Olivier Crete <tester@tester.ca>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_change_state),
	(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	Remove old unused variable.
	Track pt on input buffers and get the clock-rate when it changes.
	Ignore packets with unknown clock-rate. Fixes #511146.

2008-01-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Post bus message about adapter type and it's capabilities,
	when opening the frontend.
	After failing to read from the dvr, post a bus message to
	inform the app.

2008-01-25  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	The logic for the guard interval calculation was totally wrong.
	Fixed.

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

	Patch by: Olivier Crete <tester@tester.ca>

	* gst/rtpmanager/rtpsource.c: Fix unref of buffer using the
	  wrong function.  Fixes #511920

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	  Now we have full hierarchy.

	* docs/plugins/inspect/plugin-metadata.xml:
	  Regenerate.

	* ext/amrwb/gstamrwbdec.h:
	  Add doc blob for object instance.

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

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-metadata.xml:
	  Update this too, hopefully fixes the docs build (does at least
	  for me, after make clean in docs/plugins).

2008-01-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/gstmpegdesc.h:
	* gst/mpegtsparse/mpegtspacketizer.c:
	Fix network name descriptor, the length is actually the
	descriptor length not stored in the byte after.
	Fix bounds checking to be more correct.

2008-01-23  Edgard Lima  <edgard.lima@indt.org.br>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/gstmetadatademux.c:
	* ext/metadata/gstmetadatademux.h:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/metadatatags.c:
	  Add some documentation.

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

	* configure.ac:
	* ext/dts/gstdtsdec.c:
	Add support for building against libdca (with the libdts compat
	header). Fixes bug #511530.

	Should probably be ported to libdca as some points as it's the
	successor of libdts.

2008-01-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Do not go on forever if problem with reading from dvr, rather
	return NULL.
	Handle some cleanup issues of closing filedescriptors when
	failing to tune or similar.

2008-01-23 Christian Schaller <christian.schaller@collabora.co.uk>

	* gst/rawparse/Makefile.am: Add missing header files to noinst_headers
	* gst-plugins-bad.spec: update for latest changes

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/xingheader/gstxingmux.c:
	* gst/xingheader/gstxingmux.h:
	Add documentation for the xingheader plugin.

	* tests/check/elements/xingmux.c: (GST_START_TEST):
	Set element state to PLAYING before doing something else.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/xingmux.c: (setup_xingmux),
	(cleanup_xingmux), (GST_START_TEST), (xingmux_suite), (main):
	* tests/check/elements/xingmux_testdata.h:
	Add simple unit test for the xingmux element.

	* gst/xingheader/gstxingmux.c: (generate_xing_header),
	(gst_xing_mux_finalize), (xing_reset):
	Fix a memleak and invalid seek tables with less than 100 MP3 frames.

2008-01-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/gstmpegdesc.h:
	* gst/mpegtsparse/mpegtspacketizer.c:
	Parsed the satellite delivery system descriptor and
	added into nit's transport structure for delivery
	over the bus.

2008-01-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	Parsed and added network name to the nit structure sent
	in the bus message.

2008-01-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	Remove leaks introduced by not freeing g_strndup'd strings.
	Fix start_time and duration parsing in EIT.

2008-01-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	Add event name and description to the eit structure
	sent in the bus message.

2008-01-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtsparse.c:
	Revert const removal from previous commit.

2008-01-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/Makefile.am:
	* gst/mpegtsparse/gstmpegdesc.c:
	* gst/mpegtsparse/gstmpegdesc.h:
	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtsparse.c:
	Added descriptor searching infrastructure from Fluendo TS demuxer.
	Add channel name and provider to the sdt structure sent in the
	bus message.

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

	* gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_forward):
	Parse NAL units in forward mode to mark delta units flags.

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

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	  Regenerate.
  
	* docs/plugins/inspect/plugin-tremor.xml:
	  Add vorbisidec aka trmor.

	* ext/dc1394/gstdc1394.c:
	  Add short description.

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

	* docs/plugins/Makefile.am:
	  Add missing eol \

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Place object names to standard sectionas plugin dont document those.

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	  regenerate.
	  
	* ext/ivorbis/vorbisdec.c:
	* ext/ivorbis/vorbisdec.h:
	  Mark private vars and add short desc.

	* ext/mythtv/gstmythtvsrc.c:
	* ext/theora/theoradec.c:
	  Add short desc.

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

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/nuvdemux/gstnuvdemux.c:
	  One less to do. Its 'nuv' not 'nvu'. As an extra bonus I mention what
	  it actually is.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Update lists again. Those whole can build ivorbisdec, mythtvsrc,
	  nvudemux and theoradecexp, please commit the inspect/plugin-xxx.xml.

	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-rawparse.xml
	* docs/plugins/inspect/plugin-videoparse.xml:
	  Replace videoparse with rawparse.

	* gst/dvdspu/gstdvdspu.h:
	  Help gtk-doc to recognize the object struct.

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

	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	  Don't use gtk-doc comment style for non gtk-doc comments.
	  Make one static function static.

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

	Patch by: Gabriel Bouvigne <bouvigne at mp3-tech dot org>

	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_class_init),
	(gst_deinterlace_init), (gst_deinterlace_set_caps),
	(gst_deinterlace_transform_ip), (gst_deinterlace_set_property),
	(gst_deinterlace_get_property):
	* gst/deinterlace/gstdeinterlace.h:
	Provide 4:2:2 support
	Also deinterlace chroma planes
	Allow to turn on/off deinterlacing
	Change of default thresholds, in order to provide acceptable results
	with default params. Fixes #511001.

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

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Update docs file too.

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

	* gst/dvdspu/gstdvdspu-render.c: (gst_dvd_spu_render_spu):
	* gst/dvdspu/gstdvdspu.c: (dvdspu_debug), (GST_CAT_DEFAULT),
	  (subpic_sink_factory), (gst_dvd_spu_base_init),
	  (gst_dvd_spu_class_init), (gst_dvd_spu_init), (gst_dvd_spu_clear),
	  (gst_dvd_spu_dispose), (gst_dvd_spu_finalize),
	  (gst_dvd_spu_flush_spu_info), (gst_dvd_spu_buffer_alloc),
	  (gst_dvd_spu_src_event), (gst_dvd_spu_video_set_caps),
	  (gst_dvd_spu_video_proxy_getcaps), (gst_dvd_spu_video_event),
	  (gst_dvd_spu_video_chain), (dvspu_handle_vid_buffer),
	  (gst_dvd_spu_redraw_still), (gst_dvd_spu_parse_chg_colcon),
	  (gst_dvd_spu_exec_cmd_blk), (gst_dvd_spu_finish_spu_buf),
	  (gst_dvd_spu_setup_cmd_blk), (gst_dvd_spu_handle_new_spu_buf),
	  (gst_dvd_spu_handle_dvd_event), (gst_dvd_spu_advance_spu),
	  (gst_dvd_spu_check_still_updates), (gst_dvd_spu_subpic_chain),
	  (gst_dvd_spu_subpic_event), (gst_dvd_spu_change_state),
	  (gst_dvd_spu_plugin_init):
	* gst/dvdspu/gstdvdspu.h: (GST_TYPE_DVD_SPU):
	  Fix up dvdspu element again after previous namespace mangling:
	  rename debug category variable to old name, matching that in
	  dvdspu-render.c, to avoid undefined symbol error when loading
	  the module; same for the _render function in dvdspu-render.c:
	  we must use the same name in both .c files; change functions
	  now called gstgst_* back to gst_* again; and while we're at it,
	  we may as well canonicalise the namespace properly, namely to
	  gst_dvd_spu_*.

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

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* ext/theora/theoradec.c:
	* ext/theora/theoradec.h:
	  Coherent namespace usage and adding symbold from unused to sections.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  Add symbols from -unused.txt to the right place.

	* gst/dvdspu/gstdvdspu.c:
	* gst/dvdspu/gstdvdspu.h:
	  Coherent namespace usage.

	* gst/spectrum/gstspectrum.c:
	  Fix broken XML fragment in doc snippet even more.

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

	* docs/plugins/Makefile.am:
	  Update include list.

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	  Update xml includes.

	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-dvbsrc.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-equalizer.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-fbdevsink.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-interleave.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-metadata.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegtsparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-quicktime.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-switch.xml:
	* docs/plugins/inspect/plugin-timidity.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-videocrop.xml:
	* docs/plugins/inspect/plugin-videoparse.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	  Regenerate files.

	* gst/spectrum/gstspectrum.c:
	  Fix broken XML fragment in doc snippet.

	* tests/check/elements/.cvsignore:
	  Add test binary to ignores.

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

	* gst/h264parse/gsth264parse.c:
	  Fix the build. GST_TIME_ARGS takes a timestamp not a buffer.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c: (soup_got_headers):
	Report the size of the stream as the total size instead of
	the remaining Content-Length, which is wrong after a seek.

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

	* gst/rawparse/gstrawparse.c: (gst_raw_parse_push_buffer),
	(gst_raw_parse_loop):
	Handle framesizes > 4096 with multiple frames per buffer correctly
	in pull mode and handle short reads better.
	Also put offset and offset_end on outgoing buffers.

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

	* gst/rawparse/gstrawparse.c: (gst_raw_parse_loop):
	Improve handling of unknown or too small upstream sizes in
	pull mode.

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

	* gst/rawparse/gstrawparse.c: (gst_raw_parse_loop),
	(gst_raw_parse_handle_seek_push):
	Improve debugging a bit and for handling multiple frames per buffer
	in pull mode choose the next smallest multiply of framesize below
	4096 instead of always handling 1024 frames.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c: (soup_got_headers):
	Correctly set duration on the GstBaseSrc segment when we know it
	to fix failing the duration query.

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

	* gst/h264parse/gsth264parse.c: (gst_h264_parse_flush_decode),
	(gst_h264_parse_queue_buffer), (gst_h264_parse_chain_reverse):
	Set timestamps more correctly.

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

	* gst/rawparse/gstrawparse.c: (gst_raw_parse_class_init),
	(gst_raw_parse_init), (gst_raw_parse_reset),
	(gst_raw_parse_set_src_caps), (gst_raw_parse_push_buffer),
	(gst_raw_parse_chain), (gst_raw_parse_loop),
	(gst_raw_parse_sink_activate), (gst_raw_parse_sink_activatepull),
	(gst_raw_parse_change_state), (gst_raw_parse_sink_event),
	(gst_raw_parse_handle_seek_push), (gst_raw_parse_handle_seek_pull),
	(gst_raw_parse_src_event), (gst_raw_parse_src_query):
	* gst/rawparse/gstrawparse.h:
	Implement pull mode.

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

	* gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create):
	Fix memory leak spotted by the unit test.

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

	* tests/check/Makefile.am:
	Enable spectrum test again.

	* tests/check/gst-plugins-bad.supp:
	Add suppressions for a singleton in GIO that can't be freed.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/equalizer.c: (setup_equalizer),
	(cleanup_equalizer), (GST_START_TEST), (equalizer_suite), (main):
	Add some minimal tests for the equalizer plugin.

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

	* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_finalize):
	Unparent all bands from the equalizer when finalizing to stop
	leaking	them.

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

	* ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_uri_get_protocols):
	Add support for WebDAV.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init),
	(gst_souphttp_src_init), (gst_souphttp_src_create),
	(gst_souphttp_src_is_seekable), (gst_souphttp_src_do_seek),
	(soup_add_range_header), (soup_got_headers), (soup_got_chunk):
	* ext/soup/gstsouphttpsrc.h:
	Add support for seeking to souphttpsrc. Fixes bug #502335.

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

	* gst/h264parse/gsth264parse.c: (gst_h264_parse_clear_queues),
	(gst_h264_parse_flush_decode), (gst_h264_parse_queue_buffer),
	(gst_h264_parse_find_start_reverse),
	(gst_h264_parse_chain_reverse), (gst_h264_parse_chain):
	* gst/h264parse/gsth264parse.h:
	Improve debugging.
	Fix buffer splitting at sync codes and leftover buffer after
	scanning.

2008-01-17  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataxmp.c:
	  Fixed adding EXIF tags to correct IFD. Mapped some XMP tags.

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

	* gst/h264parse/gsth264parse.c: (gst_nal_list_new),
	(gst_nal_list_prepend_link), (gst_nal_list_delete_head),
	(gst_nal_bs_init), (gst_nal_bs_read), (gst_nal_bs_eos),
	(gst_nal_bs_read_ue), (gst_h264_parse_class_init),
	(gst_h264_parse_init), (gst_h264_parse_set_property),
	(gst_h264_parse_get_property), (gst_h264_parse_sink_setcaps),
	(gst_h264_parse_clear_queues), (gst_h264_parse_chain_forward),
	(gst_h264_parse_flush_decode), (gst_h264_parse_queue_buffer),
	(gst_h264_parse_find_start_reverse),
	(gst_h264_parse_chain_reverse), (gst_h264_parse_chain),
	(gst_h264_parse_sink_event), (gst_h264_parse_change_state):
	* gst/h264parse/gsth264parse.h:
	Add reverse playback support for containers that don't know how to
	properly send data between I-frames.

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

	* configure.ac:
	* tests/check/pipelines/gio.c: (GST_START_TEST):
	Update for API changes in GIO and require GIO 2.15.2 for this.

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

	* gst/xingheader/gstxingmux.c: (generate_xing_header):
	Bitrate is 4 bits, not 8 so check for 0xe as maximum value instead
	of 0xfe.

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

	* gst/xingheader/gstxingmux.c: (generate_xing_header):
	Remove accidentially leftover debug printf.

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

	* gst/xingheader/gstxingmux.c: (has_xing_header),
	(generate_xing_header), (gst_xing_mux_chain),
	(gst_xing_mux_sink_event):
	Choose smallest possible frame size for the Xing header, properly
	set the timestamp, duration and offset on the outgoing buffers,
	only send NEWSEGMENT events in BYTE format downstream and also
	drop VBRI headers if already existing.

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

	* gst/xingheader/Makefile.am:
	* gst/xingheader/gstxingmux.c: (parse_header), (get_xing_offset),
	(has_xing_header), (generate_xing_header),
	(gst_xing_mux_base_init), (gst_xing_mux_finalize), (xing_reset),
	(gst_xing_mux_init), (gst_xing_mux_chain),
	(gst_xing_mux_sink_event), (gst_xing_mux_change_state):
	* gst/xingheader/gstxingmux.h:
	Major cleanup and rewrite of xingmux with less bugs and new features:
	- Handles other layers as 3
	- Write TOC

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

	* tests/check/elements/rganalysis.c: (test_buffer_const_float_mono),
	  (test_buffer_const_float_stereo), (test_buffer_const_int16_mono),
	  (test_buffer_const_int16_stereo), (test_buffer_square_float_mono),
	  (test_buffer_square_float_stereo), (test_buffer_square_int16_mono),
	  (test_buffer_square_int16_stereo):
	* tests/check/elements/rglimiter.c: (create_test_buffer):
	* tests/check/elements/rgvolume.c: (test_buffer_new):
	  It's "endianness", not "endianess". Fixes unit tests.

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

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate):
	If we find the caps in the cache, use it to parse the clock-rate instead
	of returning an error. Fixes a TODO as found by Youness Alaoui.

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

	Patch by: Youness Alaoui <youness dot alaoui at collabora dot co dot uk>

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate):
	* gst/rtpmanager/rtpsession.c: (rtp_session_set_callbacks),
	(rtp_session_set_process_rtp_callback),
	(rtp_session_set_send_rtp_callback),
	(rtp_session_set_send_rtcp_callback),
	(rtp_session_set_sync_rtcp_callback),
	(rtp_session_set_clock_rate_callback),
	(rtp_session_set_reconsider_callback), (source_push_rtp),
	(source_clock_rate), (rtp_session_process_bye),
	(rtp_session_process_rtcp), (rtp_session_send_bye),
	(rtp_session_on_timeout):
	* gst/rtpmanager/rtpsession.h:
	Make it possible to use different user_data for each of the callbacks.
	Fixes #508587.

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

	* gst/mpegvideoparse/mpegpacketiser.c: (mpeg_util_find_start_code):
	Small meaningless cleanup.

	* gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_flush),
	(mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain_forward),
	(scan_keyframe), (gst_mpegvideoparse_flush_decode),
	(gst_mpegvideoparse_chain_reverse), (gst_mpegvideoparse_chain),
	(mpv_parse_sink_event), (gst_mpegvideoparse_change_state):
	* gst/mpegvideoparse/mpegvideoparse.h:
	Track segment events.
	Do the first part of reverse playback by sending data between two
	I-frames to the decoder.

2008-01-10  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/rtpmanager/gstrtpbin.c:
	Fix documentation for latest patch

2008-01-10  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/rtpmanager/gstrtpbin.c:
	Allow request_new_pad with name NULL (bug #508515)

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-09  Wim Taymans  <wim.taymans@collabora.co.uk>

	* gst/rtpmanager/gstrtpsession.c: (create_send_rtp_sink):
	Don't set fixed caps, we can basically do everything the upsteam peer
	pad can renegotiate to. Fixes #507940.

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

	* Makefile.am:
	  Include lcov.mak to allow building coverage reports. Add top-level
	  check targets similar to other gst packages.

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

	* ext/directfb/Makefile.am:
	  Add GST_CFLAGS.  Otherwise we don't get -Wall -Werror.
	* ext/directfb/dfbvideosink.c:
	  Getting tired of directfb's chatter.  Quiet it.

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

	Patch by: Sean D'Epagnier <sean@depagnier.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/fbdev/Makefile.am:
	* sys/fbdev/gstfbdevsink.c:
	* sys/fbdev/gstfbdevsink.h:
	  Add fbdev-based video sink.  Linux-only.  See bug #506549.

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

	* configure.ac:
	* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_get_size):
	* tests/check/pipelines/gio.c: (free_input), (GST_START_TEST):
	Update to GMemoryInputStream API changes in GLib SVN and require
	gio-2.0 >= 2.15.1 for this. Fixes bug #507584.
	We can also report the duration for every GSeekable, not only
	GFileInputStream and GMemoryInputStream.

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

	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/gstglbuffer.h:
	* sys/glsink/gstgldisplay.c:
	* sys/glsink/gstgldisplay.h:
	* sys/glsink/gstglupload.c:
	  Handle xoverlay exposes correctly.  This means glimagesink works
	  correctly most of the time in totem (fullscreening being an
	  execption).  Doesn't handle expose events directly to the GL
	  window.

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

	* sys/glsink/glextensions.c:
	* sys/glsink/glextensions.h:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/gstgldisplay.c:
	* sys/glsink/gstgldisplay.h:
	* sys/glsink/gstopengl.c:
	  Reenable video/x-raw-rgb and x-raw-yuv for glimagesink.  Enable
	  vblank synchronization.  Remove unused code.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_loop):
	Don't unref the popped buffer when we don't have ownership.
	Fixes #507020.

2008-01-03  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/Makefile.am:
	* gst/mpegtsparse/flutspatinfo.c:
	* gst/mpegtsparse/flutspatinfo.h:
	* gst/mpegtsparse/flutspmtinfo.c:
	* gst/mpegtsparse/flutspmtinfo.h:
	* gst/mpegtsparse/flutspmtstreaminfo.c:
	* gst/mpegtsparse/flutspmtstreaminfo.h:
	Remove no longer needed files.

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

	* tests/check/Makefile.am:
	  Disable vcdsrc in states test because it takes too much time
	  to get to PLAYING if it can find a device.

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

	* ext/musicbrainz/gsttrm.c:
	  Don't emit signiture when going to READY, because it might
	  not be ready.
	* ext/nas/nassink.c:
	  Remove useless call that sleeps for 5 seconds.  Yup, it calls
	  sleep(1) 5 times.  Go NAS.
	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfbdecoder.c:
	  Initialize our debug categories properly.
	* gst/rawparse/gstrawparse.c:
	  Don't register element details for a non-element.  Be much more
	  rude when subclass doesn't set a pad template (assert!).  Don't
	  unref the pad template; we don't own it.
	* gst/videosignal/gstvideoanalyse.c:
	  Initialize debug category.
	* tests/check/Makefile.am:
	  Ignore nassink element in tests because it has unavoidable
	  long timeouts.

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

	* gst/rtpmanager/gstrtpssrcdemux.c:
	(gst_rtp_ssrc_demux_change_state):
	Don't clean up pads when going to PAUSED.

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

	* configure.ac:
	* sys/glsink/Makefile.am:
	  Switch to using pkgconfig to detect libGL.  Since we use
	  recent features added to Mesa, there's no point in adding
	  a check for pre-pkgconfig versions.

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

	* ext/ladspa/gstladspa.c: (gst_ladspa_get_property):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_show_frame):
	* gst/mve/gstmvemux.c: (gst_mve_mux_request_new_pad):
	* sys/dvb/dvbbasebin.c: (dvb_base_bin_class_init):
	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-29  Sebastian Dröge  <slomo@circular-chaos.org>

	* configure.ac:
	* ext/gio/gstgio.c:
	* ext/gio/gstgio.h:
	* ext/gio/gstgiobasesink.h:
	* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_get_size):
	* ext/gio/gstgiobasesrc.h:
	* ext/gio/gstgiosink.c: (gst_gio_sink_start):
	* ext/gio/gstgiosink.h:
	* ext/gio/gstgiosrc.h:
	* ext/gio/gstgiostreamsink.h:
	* ext/gio/gstgiostreamsrc.h:
	* tests/check/pipelines/gio.c:
	Update to latest API changes in GLib/GIO and require at least
	gio-2.0 2.15.0 for this.
	
	* ext/gio/Makefile.am:
	Add GST_PLUGIN_LDFLAGS to LDFLAGS.

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

	* configure.ac:
	* sys/glsink/glextensions.c:
	* sys/glsink/glextensions.h:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstglbuffer.h:
	* sys/glsink/gstglconvert.c:
	* sys/glsink/gstgldisplay.c:
	* sys/glsink/gstgldisplay.h:
	* sys/glsink/gstgldownload.c:
	* sys/glsink/gstglfilter.c:
	* sys/glsink/gstglfilter.h:
	* sys/glsink/gstglfilterexample.c:
	* sys/glsink/gstgltestsrc.c:
	* sys/glsink/gstglupload.c:
	  Major cleanup of code.  Convert glupload to BaseTransform.
	  Handle caps negotiation mostly correctly.  Reenable in build.

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

	* ext/soup/Makefile.am:
	* ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_get_property),
	  (gst_souphttp_src_unicodify), (soup_got_headers):
	  Use gst_tag_freeform_string_to_utf8() and post radio station
	  info as tags on the bus.

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

	* sys/glsink/glimagesink.c:
	* sys/glsink/gstglupload.c:
	  Change glimagesink over to using GL buffers.  This breaks
	  glimagesink for normal operation, but should be fixed soon.

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

	* sys/glsink/gltestsrc.c:
	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstglbuffer.h:
	* sys/glsink/gstgldownload.c:
	* sys/glsink/gstglfilter.c:
	* sys/glsink/gstglfilterexample.c:
	* sys/glsink/gstgltestsrc.c:
	* sys/glsink/gstglupload.c:
	  Convert gldownload to BaseTransform.  Make glfilterexample
	  visually interesting.  Add support for various formats to
	  downloading.  Fix a few places where we leak GL state to
	  other elements (bad, but hard to prevent).

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

	* sys/glsink/BUGS:
	* sys/glsink/Makefile.am:
	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstglbuffer.h:
	* sys/glsink/gstglconvert.c:
	* sys/glsink/gstgldisplay.c:
	* sys/glsink/gstglfilter.c:
	* sys/glsink/gstglfilter.h:
	* sys/glsink/gstglfilterexample.c:
	* sys/glsink/gstgltestsrc.c:
	* sys/glsink/gstglupload.c:
	* sys/glsink/gstopengl.c:
	  Remove code that handles non-texture buffers.  Add a
	  GstGLBufferFormat type that corresponds to how to use the
	  texture, not the original video format.  Convert gstflfilter.c
	  into a base class, add glfilterexample and glconvert elements.
	* sys/glsink/color_matrix.c:
	  Minor ramblings about color conversion matrices.

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

	* sys/glsink/Makefile.am:
	* sys/glsink/gltestsrc.c:
	* sys/glsink/gltestsrc.h:
	* sys/glsink/gstgldisplay.c:
	* sys/glsink/gstgldownload.c:
	* sys/glsink/gstglfilter.c:
	* sys/glsink/gstgltestsrc.c:
	* sys/glsink/gstgltestsrc.h:
	* sys/glsink/gstglupload.c:
	* sys/glsink/gstopengl.c:
	  Add gltestsrc element, a duplicate of videotestsrc that uses
	  GL rendering to create images.  More cleanup.

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

	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstgldownload.c:
	* sys/glsink/gstglfilter.c:
	  Clean up code.  Fix a few leaks.

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

	* sys/glsink/Makefile.am:
	* sys/glsink/glimagesink.h:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstglbuffer.h:
	* sys/glsink/gstgldisplay.c:
	* sys/glsink/gstgldisplay.h:
	  Rename glvideo.[ch] to gstgldisplay.[ch].

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

	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstglbuffer.h:
	* sys/glsink/gstgldownload.c:
	* sys/glsink/gstglfilter.c:
	* sys/glsink/gstglupload.c:
	  Rewrite a bunch of code to use textures as the intermediate
	  instead of renderbuffers.  upload, download, filtering all
	  work.

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

	* gst/videoparse/Makefile.am:
	* gst/videoparse/README:
	* gst/videoparse/gstvideoparse.c:
	  Remove videoparse element, because it was moved to gst/rawparse/

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

	* gst/rawparse/gstrawparse.c: (gst_raw_parse_src_event):
	Always seek on frame boundaries, will produce nothing useful
	otherwise.

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

	* configure.ac:
	* gst/rawparse/Makefile.am:
	* gst/rawparse/README:
	* gst/rawparse/gstaudioparse.c: (gst_audio_parse_format_get_type),
	(gst_audio_parse_endianness_get_type), (gst_audio_parse_base_init),
	(gst_audio_parse_class_init), (gst_audio_parse_init),
	(gst_audio_parse_set_property), (gst_audio_parse_get_property),
	(gst_audio_parse_update_frame_size), (gst_audio_parse_get_caps):
	* gst/rawparse/gstaudioparse.h:
	* gst/rawparse/gstrawparse.c: (gst_raw_parse_base_init),
	(gst_raw_parse_class_init), (gst_raw_parse_init),
	(gst_raw_parse_dispose),
	(gst_raw_parse_class_set_src_pad_template),
	(gst_raw_parse_class_set_multiple_frames_per_buffer),
	(gst_raw_parse_reset), (gst_raw_parse_chain),
	(gst_raw_parse_convert), (gst_raw_parse_sink_event),
	(gst_raw_parse_src_event), (gst_raw_parse_src_query_type),
	(gst_raw_parse_src_query), (gst_raw_parse_set_framesize),
	(gst_raw_parse_set_fps), (gst_raw_parse_get_fps),
	(gst_raw_parse_is_negotiated):
	* gst/rawparse/gstrawparse.h:
	* gst/rawparse/gstvideoparse.c: (gst_video_parse_format_get_type),
	(gst_video_parse_endianness_get_type), (gst_video_parse_base_init),
	(gst_video_parse_class_init), (gst_video_parse_init),
	(gst_video_parse_set_property), (gst_video_parse_get_property),
	(gst_video_parse_format_to_fourcc),
	(gst_video_parse_update_frame_size), (gst_video_parse_get_caps):
	* gst/rawparse/gstvideoparse.h:
	* gst/rawparse/plugin.c: (plugin_init):
	Add new plugin rawparse that contains a base class for raw data
	parsers and the two elements audioparse and videoparse that can
	be used to parse raw audio and video. These are inspired by the
	old videoparse element which the new rawparse plugin deprecates.

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

	* sys/glsink/glextensions.c:
	* sys/glsink/glextensions.h:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstgldownload.c:
	* sys/glsink/gstglupload.c:
	  A careful read of the documentation reveals that I can't use
	  renderbuffers as textures.  Duh.  Checkpoint because I'm about
	  to rewrite a bunch of code.

2007-12-21  Edgard Lima,,,,  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparseutil.c:
	  Some IPTC tags mapped.

2007-12-21  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/Makefile.am:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/gstmetadatacommon.c:
	* ext/metadata/gstmetadatacommon.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	  Removed gstmetadatacommon.

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

	* sys/glsink/Makefile.am:
	* sys/glsink/glextensions.c:
	* sys/glsink/glextensions.h:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	* sys/glsink/gstglbuffer.c:
	* sys/glsink/gstglbuffer.h:
	* sys/glsink/gstgldownload.c:
	* sys/glsink/gstglfilter.c:
	* sys/glsink/gstglupload.c:
	* sys/glsink/gstopengl.c:
	  Switch to using framebuffer_objects instead of GLXPixmaps,
	  because that's what my driver supports.  Remove GLDrawable,
	  since GstGLDisplay now has a default drawable and context.

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

	* gst/equalizer/.cvsignore:
	* gst/switch/.cvsignore:
	  Ignore more.

2007-12-19  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/Makefile.am:
	* ext/metadata/TODO:
	* ext/metadata/gstbasemetadata.c:
	* ext/metadata/gstbasemetadata.h:
	* ext/metadata/gstmetadatacommon.c:
	* ext/metadata/gstmetadatacommon.h:
	* ext/metadata/gstmetadatademux.c:
	* ext/metadata/gstmetadatademux.h:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/test/metadata_editor.c:
	  New base class for metadata elements.

2007-12-18  Andy Wingo  <wingo@pobox.com>

	* gst/switch/gstswitch-marshal.list:
	* gst/switch/gstswitch.h (struct _GstStreamSelectorClass): 
	* gst/switch/gstswitch.c (enum, gst_selector_pad_class_init)
	(gst_selector_pad_get_property)
	(gst_selector_pad_get_running_time)
	(gst_stream_selector_class_init, gst_segment_get_timestamp)
	(gst_segment_set_stop, gst_segment_set_start)
	(gst_stream_selector_set_active_pad, gst_stream_selector_block)
	(gst_stream_selector_push_pending_stop)
	(gst_stream_selector_switch): Change so that the signals and
	properties deal in running time, not buffer time. Document the
	signals more. Change uint64 in API to int64, to reflect what's in
	GstSegment.

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

	* Makefile.am:
	  Include common/win32.mak for CRLF check of win32 project
	  files (see #393626).

	* configure.ac:
	  Bump requirements to -base CVS for libgstvideo additions in
	  glimagesink. Disable glimagesink until the missing files get
	  checked in.

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

	* sys/glsink/Makefile.am:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	* sys/glsink/gstopengl.c:
	* sys/glsink/gstglupload.c:
	  Use new GstVideoFormat checked into -base.  Add new glupload
	  element to upload raw video into a GLXPixbuf.  Untested.  Will
	  likely crash your motorcycle if you try it.
	* sys/glsink/gstvideo-common.c:
	* sys/glsink/gstvideo-common.h:
	  Remove.

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

	* gst/multifile/gstmultifilesrc.c:
	* gst/multifile/gstmultifilesrc.h:
	  When subsequent files are read, if the file doesn't exist, send
	  an EOS instead of causing an error.

2007-12-17  Andy Wingo  <wingo@pobox.com>

	* gst/switch/gstswitch.c (gst_selector_pad_chain): Return OK when
	a buffer is ignored, not NOT_LINKED. No sense in making a source
	element error out; at least fdsrc considers NOT_LINKED to be a
	fatal error. Patch 11/12. There is no patch 12/12. Foo.

	* gst/switch/gstswitch-marshal.list:
	* gst/switch/gstswitch.h (struct _GstStreamSelectorClass): 
	* gst/switch/gstswitch.c (gst_stream_selector_class_init)
	(gst_stream_selector_block): Make the block() signal return the
	last stop time of the active pad. Patch 10/12.

	* gst/switch/gstswitch.c (gst_selector_pad_get_property)
	(gst_selector_pad_class_init, gst_stream_selector_class_init)
	(gst_stream_selector_get_property): Expose 'last-stop-time' as a
	pad property, not an element property.
	(gst_selector_pad_chain): Mark the last_stop time as timestamp +
	duration, not timestamp. Patch 9/12.

	* gst/switch/gstswitch.c (gst_stream_selector_change_state)
	(gst_stream_selector_block, gst_stream_selector_switch): Use the
	cond mechanism instead of blocked pads. Patch 8/12.

	* gst/switch/gstswitch.h (struct _GstStreamSelector): 

	* gst/switch/gstswitch.c (gst_stream_selector_wait)
	(gst_selector_pad_chain, gst_stream_selector_init)
	(gst_stream_selector_dispose): Add infrastructure for new blocking
	mechanism that does not use gst_pad_set_blocked, which does not
	work on sink pads. Patch 7/12.

	* gst/switch/gstswitch.c (gst_stream_selector_class_init)
	(gst_stream_selector_get_property): Add last-stop-time readable
	property. Patch 6/12.

	* gst/switch/gstswitch.h (struct _GstStreamSelector): Add some
	state variables.

	* gst/switch/gstswitch.c (gst_stream_selector_push_pending_stop)
	(gst_selector_pad_chain): Push any pending stop event.
	(gst_stream_selector_set_active_pad)
	(gst_stream_selector_set_property): Factor out setting the active
	pad to a function. Close the segment of the previous active pad if
	told to do so via a stop_time != GST_CLOCK_TIME_NONE.
	(gst_stream_selector_switch): Implement switch vmethod. Patch 5/12.

	* gst/switch/gstswitch.c (gst_stream_selector_block): Implement
	the block() signal. This implementation will be replaced in future
	patches, however. Patch 4/12.

	* gst/switch/gstswitch.h (struct _GstStreamSelectorClass): Fix
	vmethod prototypes.

	* gst/switch/gstswitch.c (gst_stream_selector_class_init)
	(gst_stream_selector_block, gst_stream_selector_switch): Add empty
	vmethod definitions. Patch 3/12.

	* gst/switch/gstswitch.h (struct _GstStreamSelectorClass): 
	* gst/switch/gstswitch.c (gst_stream_selector_class_init): Add
	`block' and `switch' signals.

	* gst/switch/Makefile.am: 
	* gst/switch/gstswitch-marshal.list: Add foo to generate a
	marshaller for the `switch' signal. Patch 2/12.

	* gst/switch/gstswitch.h: 
	* gst/switch/gstswitch.c: Replace with files from
	gststreamselector.[ch], registered as the "switch" plugin, with
	"GstSwitch" types. Patch 1/12.

2007-12-17  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/gstmetadatademux.c:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/test/MetadataEditorMain.glade:
	* ext/metadata/test/metadata_editor.c:
	  Added "parse-only" property to metadatademux.

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

	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	  Rename GLVideo* to GstGL*.

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

	* sys/glsink/Makefile.am:
	* sys/glsink/glextensions.c:
	* sys/glsink/glextensions.h:
	* sys/glsink/glvideo.c:
	  Add vblank synchronization.  Isn't really working on my
	  driver. :(

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

	* sys/glsink/Makefile.am:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	* sys/glsink/gstvideo-common.c:
	* sys/glsink/gstvideo-common.h:
	  Add support for xRGB, xBGR, and AYUV.  Re-add support for
	  power-of-2 textures.

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

	* gst/videoparse/gstvideoparse.c: (gst_video_parse_dispose),
	(gst_video_parse_sink_event):
	Free the adapter on dispose and correctly reset on newsegment events.

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

	* gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event),
	(gst_video_parse_src_event), (gst_video_parse_src_query):
	Improve duration query by first asking upstream and if it can't handle
	the query try to get the duration in bytes from upstream and convert.
	For seeks, try if upstream handles this already first and do our
	conversion to byte format only if it doesn't and if we get a
	newsegment event in time format keep it and only do our conversions
	if the event has another format.

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

	* gst/videoparse/gstvideoparse.c:
	(gst_video_parse_format_get_type),
	(gst_video_parse_endianness_get_type),
	(gst_video_parse_class_init), (gst_video_parse_init),
	(gst_video_parse_set_property), (gst_video_parse_get_property),
	(gst_video_parse_format_to_fourcc),
	(gst_video_parse_update_block_size), (gst_video_parse_chain),
	(gst_video_parse_sink_event):
	Add support for video/x-raw-rgb and video/x-raw-gray. Also send
	downstream elements downstream, not upstream.

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

	* sys/glsink/gstvideo-common.c:
	* sys/glsink/gstvideo-common.h:
	  Pull together some common raw video functions into one location.
	  This should eventually move to -base.
	* sys/glsink/Makefile.am:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	* sys/glsink/gstopengl.c:
	  Use the new video-common.h stuff.  Readd support for RGB video.

2007-12-14  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/Makefile.am:
	* ext/metadata/TODO:
	* ext/metadata/gstmetadata.c:
	* ext/metadata/gstmetadatacommon.c:
	* ext/metadata/gstmetadatacommon.h:
	* ext/metadata/gstmetadatademux.c:
	* ext/metadata/gstmetadatademux.h:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/test/metadata_editor.c:
	  Added new module for common functions. Using GST_TYPE_FRACTION for
	  Exif (S)Rational types.

2007-12-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtspacketizer.h:
	Hash streams by pid again. Add a linked list inside each
	stream with a list of sub_tables. Fix multiple sections
	as it was borked with my last commit.

2007-12-14  Christian Schaller <christian.schaller@collabora.co.uk>

	* sys/glsink/Makefile.am: add glvideo.h
	* gst/speexresample/Makefile.am: add speex_resampler_wrapper.h
	* gst-plugins-bad.spec.in: add latest plugins

2007-12-13  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/TODO:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxjpeg.h:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadatamuxpng.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparseutil.c:
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadatatypes.h:
	* ext/metadata/metadataxmp.c:
	  Code documentation.

2007-12-13  Edgard Lima  <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/test/Makefile:
	* ext/metadata/test/MetadataEditorMain.glade:
	* ext/metadata/test/metadata_editor.c:
	  Added a test application. Added some EXIF tags. Fixed a muxer bug.

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

	* gst/videoparse/gstvideoparse.c: (gst_video_parse_init),
	  (gst_video_parse_src_event), (gst_video_parse_src_query_type):
	  Implement a query type function for the src pad, implement seeking
	  and use ANY caps for the sink pad as the element doesn't care what
	  caps the input has and everything is handled via properties.

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

	* gst/videoparse/gstvideoparse.c: (gst_video_parse_convert),
	  (gst_video_parse_sink_event):
	  Handle -1 values for the CONVERT query too.

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

	* gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event):
	  Add YV12 to the pad templates as it is supported too and allow
	  -1 as stop position for NEWSEGMENT events.

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

	* gst/videoparse/Makefile.am:
	  Add $(GST_PLUGINS_BASE_CFLAGS) to CFLAGS to fix the build.

	* gst/videoparse/gstvideoparse.c: (gst_video_parse_init),
	  (gst_video_parse_set_property), (gst_video_parse_get_property):
	  Use g_value_[sg]et_enum() for enum properties, g_value_[sg]et_int()
	  gives a g_critical().

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

	* gst/videoparse/README:
	* gst/videoparse/gstvideoparse.c:
	  Add a bunch of features: handle format specification, handle
	  queries and conversion.  Works much like a normal parser now.

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

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_finalize),
	(gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release),
	(gst_rtp_pt_demux_change_state):
	* gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_reset),
	(gst_rtp_ssrc_demux_dispose), (gst_rtp_ssrc_demux_src_query),
	(gst_rtp_ssrc_demux_change_state):
	Clean up the dynamic pads when going to READY.

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

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_finalize),
	(gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string),
	(gst_rtp_bin_handle_message):
	* gst/rtpmanager/rtpsession.c: (rtp_session_finalize),
	(rtp_session_send_bye):
	* gst/rtpmanager/rtpsource.c: (rtp_source_finalize):
	Fix some leaks.

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

	* ext/dts/gstdtsdec.c: (gst_dtsdec_init),
	  (gst_dtsdec_sink_setcaps), (gst_dtsdec_chain_raw),
	  (gst_dtsdec_chain):
	* ext/dts/gstdtsdec.h:
	  Add support for "audio/x-private1-dts" as used by flupsparse. Most
	  changes adapted from a52dec.

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

	* sys/glsink/Makefile.am:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glvideo.c:
	* sys/glsink/glvideo.h:
	  Split out gl-related code into a separate file with a
	  sensible API.  Major cleanup.  Still crashes occasionally
	  due to different threads touching bits at the same time.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* ext/soup/gstsouphttpsrc.c: (_do_init),
	(gst_souphttp_src_class_init), (gst_souphttp_src_init),
	(gst_souphttp_src_dispose), (gst_souphttp_src_set_property),
	(gst_souphttp_src_get_property), (unicodify),
	(gst_souphttp_src_unicodify), (gst_souphttp_src_create),
	(gst_souphttp_src_start), (gst_souphttp_src_stop),
	(gst_souphttp_src_unlock), (gst_souphttp_src_unlock_stop),
	(gst_souphttp_src_get_size), (gst_souphttp_src_is_seekable),
	(soup_got_headers), (soup_got_body), (soup_finished),
	(soup_got_chunk), (soup_response), (soup_parse_status),
	(gst_souphttp_src_uri_get_type),
	(gst_souphttp_src_uri_get_protocols),
	(gst_souphttp_src_uri_get_uri), (gst_souphttp_src_uri_set_uri),
	(gst_souphttp_src_uri_handler_init):
	* ext/soup/gstsouphttpsrc.h:
	Do not try to unpause I/O in the "queued" state.
	Reorganise a bunch of things and cleanups.
	Uses G_GUINT64_FORMAT instead of hard-coding %llu.
	See #502335.

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

	* ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps):
	Fix caps memleak.

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

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	  (gst_flv_parse_tag_video):
	  Don't strdup (and thus leak) codec name strings when passing
	  them to gst_tag_list_add().

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

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init),
	(gst_rtp_bin_handle_message):
	* gst/rtpmanager/gstrtpsession.c: (source_get_sdes_structure),
	(on_ssrc_sdes):
	Post a message when the SDES infor changes for a source.

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsource.c:
	Update some comments.

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

	Based on patch by: <mutex at runbox dot com>

	* gst/videoparse/gstvideoparse.c: (gst_video_parse_src_query):
	Forward the query upstream, the default element event handler does
	something different. Fixes #502879.

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

	* gst/rtpmanager/gstrtpbin.c: (on_ssrc_sdes), (create_session),
	(gst_rtp_bin_class_init):
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpclient.c:
	* gst/rtpmanager/gstrtpclient.h:
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	* gst/rtpmanager/gstrtpmanager.c:
	* gst/rtpmanager/gstrtpptdemux.c:
	* gst/rtpmanager/gstrtpptdemux.h:
	* gst/rtpmanager/gstrtpsession.c: (on_ssrc_sdes),
	(gst_rtp_session_class_init), (gst_rtp_session_init):
	* gst/rtpmanager/gstrtpsession.h:
	* gst/rtpmanager/gstrtpssrcdemux.c:
	* gst/rtpmanager/gstrtpssrcdemux.h:
	* gst/rtpmanager/rtpjitterbuffer.c:
	* gst/rtpmanager/rtpjitterbuffer.h:
	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(on_ssrc_sdes), (rtp_session_process_sdes):
	* gst/rtpmanager/rtpsession.h:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	* gst/rtpmanager/rtpstats.c:
	* gst/rtpmanager/rtpstats.h:
	Add signal to notify of an SDES change.
	Fix object type in the signal callbacks.

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

	* gst/rtpmanager/gstrtpbin.c: (create_session),
	(gst_rtp_bin_class_init), (gst_rtp_bin_init), (sdes_type_to_name),
	(gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string),
	(gst_rtp_bin_set_property), (gst_rtp_bin_get_property):
	* gst/rtpmanager/gstrtpbin.h:
	Expose SDES items as properties and configure the session managers with
	them.

	* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	(rtp_source_set_property):
	Fix SSRC property.

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

	* gst/rtpmanager/gstrtpbin.c: (create_session):
	* gst/rtpmanager/rtpjitterbuffer.c:
	Update comment.

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(gst_rtp_session_set_property), (gst_rtp_session_get_property):
	Define some GObject properties to set SDES and other configuration.

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(rtp_session_init), (rtp_session_finalize),
	(rtp_session_set_property), (rtp_session_get_property),
	(on_ssrc_sdes), (rtp_session_set_bandwidth),
	(rtp_session_get_bandwidth), (rtp_session_set_rtcp_fraction),
	(rtp_session_get_rtcp_fraction), (rtp_session_set_sdes_string),
	(rtp_session_get_sdes_string), (obtain_source),
	(rtp_session_get_internal_source), (rtp_session_process_sdes),
	(rtp_session_send_rtp), (rtp_session_next_timeout), (session_sdes),
	(is_rtcp_time):
	* gst/rtpmanager/rtpsession.h:
	Add signal when new SDES infor has been found for a source.
	Create properties for SDES and other info.
	Simplify the SDES API.
	Add method for getting the internal source object of the session.

	* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	(rtp_source_finalize), (rtp_source_set_property),
	(rtp_source_get_property), (rtp_source_set_callbacks),
	(rtp_source_get_ssrc), (rtp_source_set_as_csrc),
	(rtp_source_is_as_csrc), (rtp_source_is_active),
	(rtp_source_is_validated), (rtp_source_is_sender),
	(rtp_source_received_bye), (rtp_source_get_bye_reason),
	(rtp_source_set_sdes), (rtp_source_set_sdes_string),
	(rtp_source_get_sdes), (rtp_source_get_sdes_string),
	(rtp_source_get_new_sr), (rtp_source_get_new_rb):
	* gst/rtpmanager/rtpsource.h:
	Add GObject properties for various things.
	Don't leak the bye reason.

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

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video):
	Fix list of supported and known codecs.
	Emit tag with the codec name so it gets properly reported in totem and
	other applications.

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

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

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

	* gst/equalizer/gstiirequalizer.c:
	(gst_iir_equalizer_transform_ip):
	Fix compilation.

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

	* gst/equalizer/gstiirequalizer.c:
	(gst_iir_equalizer_transform_ip):
	Don't process buffers in passthrough mode.

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

	* gst/filter/gstbpwsinc.c: (bpwsinc_transform):
	* gst/filter/gstlpwsinc.c: (lpwsinc_transform):
	The transform() methods are not called in passthrough mode so
	there's no need for checking if the element is in passthrough mode.

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

	* gst/filter/gstbpwsinc.c: (bpwsinc_transform):
	* gst/filter/gstlpwsinc.c: (lpwsinc_transform):
	Sync the GObject properties with the controller even in passthrough
	mode to get consistent property values.

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

	* gst/mpegtsparse/mpegtsparse.c: (crc_tab):
	  Mark crc values table as constant.

2007-12-05  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	  Added some tags to exif parser.

2007-12-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtsparse.c:
	A sub table is identified by the pair table_id and 
	sub_table_identifier, not by pid. So hash with that.
	* sys/dvb/dvbbasebin.c:
	Make sure initial pids are added properly to filter,

2007-12-05  Andy Wingo  <wingo@pobox.com>

	* gst/switch/gstswitch.c (gst_switch_set_property): Don't push
	buffers from app thread when unsetting `queue-buffers', it's
	dangerous and the chain function will do it for us anyway.

2007-12-04  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/metadatamuxjpeg.c: (metadatamux_wrap_chunk),
	(metadatamux_jpeg_lazy_update):
	* ext/metadata/metadataparsejpeg.c: (metadataparse_jpeg_parse),
	(metadataparse_jpeg_reading):
	  Now compiles even when libiptc is missing.

2007-12-04  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxjpeg.h:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadatamuxpng.h:
	  Fixed element properties and now muxer writes to png also.

2007-12-03  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/Makefile.am:
	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtsparse.c:
	Remove signals for pat, pmt, nit, eit, sdt. Replace with bus
	messages.
	* sys/dvb/dvbbasebin.c:
	Instead of attaching to signals, use the bus messages.
	Also fix up so the dvbsrc starts only outputting the info tables
	like PAT, CAT, NIT, SDT, EIT instead of the whole ts.

2007-12-03  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	  Muxer writes (in jpeg only) whole IPTC chunk sent as tag. Muxer
	  implemets GstTagSetter interface.

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

	* gst/librfb/rfbdecoder.c:
		Should fix the 64-bit build

2007-11-30  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	  Muxer writes (in jpeg only) whole EXIF and XMP chunks sent as tags.

2007-11-30  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
		Add CoRRE encoding

2007-11-30  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/mpegtsparse.c:
	CRC check the psi pids. CRC checking code relicenced from MPL.
	Thanks Fluendo.

2007-11-30  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadatamuxjpeg.c:
	* ext/metadata/metadatamuxjpeg.h:
	* ext/metadata/metadatamuxpng.c:
	* ext/metadata/metadatamuxpng.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadatatypes.c:
	* ext/metadata/metadatatypes.h:
	  Fixed get_range bug when injecting and stripping. And mux is almost
	  done now.

2007-11-30  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/rfbdecoder.c:
		Use glib macro for swapping

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

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
		Disable CopyRect encoding by default
		Add RRE encoding

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* configure.ac:
	Bump libsoup requirement as libsoup does not support async client
	operation prior to version 2.2.104 and it has some leaks.

	* ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init),
	(gst_souphttp_src_init), (gst_souphttp_src_dispose),
	(gst_souphttp_src_set_property), (gst_souphttp_src_create),
	(gst_souphttp_src_start), (gst_souphttp_src_stop),
	(gst_souphttp_src_unlock), (gst_souphttp_src_unlock_stop),
	(gst_souphttp_src_get_size), (soup_got_headers), (soup_got_body),
	(soup_finished), (soup_got_chunk), (soup_response),
	(soup_session_close):
	* ext/soup/gstsouphttpsrc.h:
	Implement unlock().
	Picks up the size from the Content-Length header and emit a duration
	message.
	Don't leak the GMainContext object.
	Fixes #500099.

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

	* ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_set_caps),
	(alsaspdifsink_get_time), (alsaspdifsink_set_params),
	(alsaspdifsink_find_pcm_device):
	Don't free uninitialized data when we are in error.

2007-11-28  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	  Sending make and model individual tags and muxer now links fine.

2007-11-28  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadata.c:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadata.c:
	* ext/metadata/metadata.h:
	* ext/metadata/metadataexif.c:
	* ext/metadata/metadataexif.h:
	* ext/metadata/metadataiptc.c:
	* ext/metadata/metadataiptc.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparseexif.c:
	* ext/metadata/metadataparseexif.h:
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparseiptc.h:
	* ext/metadata/metadataparsexmp.c:
	* ext/metadata/metadataparsexmp.h:
	* ext/metadata/metadatatags.c:
	* ext/metadata/metadatatags.h:
	* ext/metadata/metadataxmp.c:
	* ext/metadata/metadataxmp.h:
	  Small fixes in get_range and better structure for generic muxer and
	  demuxer.

2007-11-26  Julien Moutte  <julien@fluendo.com>

	* configure.ac: Add QuickTime Wrapper plug-in.
	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_push_drain), (gst_speex_resample_process): Fix
	build on Mac OS X Leopard. Incorrect printf format arguments.
	* sys/Makefile.am:
	* sys/qtwrapper/Makefile.am:
	* sys/qtwrapper/audiodecoders.c:
	(qtwrapper_audio_decoder_base_init),
	(qtwrapper_audio_decoder_class_init),
	(qtwrapper_audio_decoder_init),
	(clear_AudioStreamBasicDescription), (fill_indesc_mp3),
	(fill_indesc_aac), (fill_indesc_samr), (fill_indesc_generic),
	(make_samr_magic_cookie), (open_decoder),
	(qtwrapper_audio_decoder_sink_setcaps), (process_buffer_cb),
	(qtwrapper_audio_decoder_chain),
	(qtwrapper_audio_decoder_sink_event),
	(qtwrapper_audio_decoders_register):
	* sys/qtwrapper/codecmapping.c: (audio_caps_from_string),
	(fourcc_to_caps):
	* sys/qtwrapper/codecmapping.h:
	* sys/qtwrapper/imagedescription.c: (image_description_for_avc1),
	(image_description_for_mp4v), (image_description_from_stsd_buffer),
	(image_description_from_codec_data):
	* sys/qtwrapper/imagedescription.h:
	* sys/qtwrapper/qtutils.c: (get_name_info_from_component),
	(get_output_info_from_component), (dump_avcc_atom),
	(dump_image_description), (dump_codec_decompress_params),
	(addSInt32ToDictionary), (dump_cvpixel_buffer),
	(DestroyAudioBufferList), (AllocateAudioBufferList):
	* sys/qtwrapper/qtutils.h:
	* sys/qtwrapper/qtwrapper.c: (plugin_init):
	* sys/qtwrapper/qtwrapper.h:
	* sys/qtwrapper/videodecoders.c:
	(qtwrapper_video_decoder_base_init),
	(qtwrapper_video_decoder_class_init),
	(qtwrapper_video_decoder_init), (qtwrapper_video_decoder_finalize),
	(fill_image_description), (new_image_description), (close_decoder),
	(open_decoder), (qtwrapper_video_decoder_sink_setcaps),
	(decompressCb), (qtwrapper_video_decoder_chain),
	(qtwrapper_video_decoder_sink_event),
	(qtwrapper_video_decoders_register): Initial import of QuickTime
	wrapper jointly developped by Songbird authors (Pioneers of the
	Inevitable) and Fluendo.

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

	* gst/spectrum/gstspectrum.c:
	  Use dispose and finalize. Dispose can be called multiple times.

2007-11-26  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadataparse.c: (gst_metadata_parse_init),
	(gst_metadata_parse_chain), (gst_metadata_parse_checkgetrange):
	  Now works when get_range is not available upstream.

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

	* gst/speexresample/README:
	* gst/speexresample/arch.h:
	* gst/speexresample/resample.c: (resampler_basic_direct_single),
	(resampler_basic_direct_double),
	(resampler_basic_interpolate_single),
	(resampler_basic_interpolate_double),
	(speex_resampler_process_native), (speex_resampler_process_float),
	(speex_resampler_process_int),
	(speex_resampler_process_interleaved_float),
	(speex_resampler_process_interleaved_int),
	(speex_resampler_get_input_latency),
	(speex_resampler_get_output_latency):
	* gst/speexresample/speex_resampler.h:
	Update speex resampler to latest SVN. We're now down to only the
	changes noted in README again.

	* gst/speexresample/speex_resampler_wrapper.h:
	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_push_drain), (gst_speex_resample_query):
	Adjust to API changes.

2007-11-25  Edward Hervey  <bilboed@bilboed.com>

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video):
	Output segment with proper 'stop' value, makes flvdemux 100% compatible
	with gnonlin.

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

	* ext/dc1394/gstdc1394.c:
	  Set initial structure name to fix assertion, due to recent caps name
	  constraints.

2007-11-23  Zaheer Abbas Merali <zaheerabbas at merali dot org>

	patch by: Alessandro Decina

	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtspacketizer.h:
	* gst/mpegtsparse/mpegtsparse.c:
	* gst/mpegtsparse/mpegtsparse.h:
	pat-info is now a signal not a GObject property that
	gets notified.
	pat-info, pmt-info now instead of passing a GObject as
	a parameter, pass a GstStructure.
	New signals: nit-info, sdt-info, eit-info for DVB SI information
	* sys/dvb/camconditionalaccess.c:
	* sys/dvb/camconditionalaccess.h:
	* sys/dvb/camdevice.c:
	* sys/dvb/camdevice.h:
	* sys/dvb/camswclient.c:
	* sys/dvb/camswclient.h:
	* sys/dvb/camutils.c:
	* sys/dvb/camutils.h:
	Cam code now uses the pmt GstStructure passed from mpegtsparse
	signals rather than the GObject.
	* sys/dvb/dvbbasebin.c:
	Use new signals in mpegtsparse and use GstStructures as per
	mpegtsparse's modified API.
	
2007-11-23  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadata.c:
	* ext/metadata/gstmetadatamux.c:
	* ext/metadata/gstmetadatamux.h:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparsetypes.h:
	* ext/metadata/metadatatypes.c:
	* ext/metadata/metadatatypes.h:
	  Now parser is generic (just add/remove a list of chunks). And a
	  template of muxer has been created.

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

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_update_state):
	Only post the latency message if we have a resampler state already.

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

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_update_state):
	Also post GST_MESSAGE_LATENCY if the latency changes.

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

	* gst/speexresample/resample.c: (speex_resampler_get_latency),
	(speex_resampler_drain_float), (speex_resampler_drain_int),
	(speex_resampler_drain_interleaved_float),
	(speex_resampler_drain_interleaved_int):
	* gst/speexresample/speex_resampler.h:
	* gst/speexresample/speex_resampler_wrapper.h:
	Add functions to push the remaining samples and to get the latency
	of the resampler. These will get added to Speex SVN in this or a
	slightly changed form at some point too and should get merged then
	again.

	* gst/speexresample/gstspeexresample.c: (gst_speex_resample_init),
	(gst_speex_resample_init_state),
	(gst_speex_resample_transform_size),
	(gst_speex_resample_push_drain), (gst_speex_resample_event),
	(gst_speex_fix_output_buffer), (gst_speex_resample_process),
	(gst_speex_resample_query), (gst_speex_resample_query_type):
	Drop the prepending zeroes and output the remaining samples on EOS.
	Also properly implement the latency query for this. speexresample
	should be completely ready for production use now.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_query):
	jitterbuffer can buffer an unlimited amount of time and thus has no
	max_latency requirements.

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

	* gst/speexresample/README:
	Add README explaining where the resampling code was taken from
	and which changes were done.

	* gst/speexresample/resample.c: (speex_alloc), (speex_realloc),
	(speex_free):
	Use g_malloc() and friends instead of malloc() to achieve higher
	portability and define the functions inline.

	* gst/speexresample/speex_resampler.h:
	Add back some useless preprocessor stuff to keep the diff between
	our version and the one from the Speex SVN repository lower.

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

	* gst/filter/gstbpwsinc.c: (bpwsinc_set_property):
	* gst/filter/gstlpwsinc.c: (lpwsinc_set_property):
	Post a GST_MESSAGE_LATENCY if the latency changes.

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

	* ext/faac/gstfaac.c: (gst_faac_sink_event):
	Don't try to flush the decoder on EOS when it was not initialized.
	Fixes #498667

2007-11-21  Julien Moutte  <julien@fluendo.com>

	* ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_write): Fix build
	on Mac OS X. (missing format parameter)

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

	* gst/equalizer/gstiirequalizer10bands.c:
	* gst/equalizer/gstiirequalizer3bands.c:
	  Remove preset iface again. We'll re-add this after its been released
	  in -good.

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

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_fix_output_buffer), (gst_speex_resample_transform):
	Some small cleanup and addition of a TODO item.

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

	* gst/speexresample/Makefile.am:
	Add missing file.

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

	* docs/plugins/inspect/plugin-app.xml:
	* docs/plugins/inspect/plugin-bayer.xml:
	* docs/plugins/inspect/plugin-cdaudio.xml:
	* docs/plugins/inspect/plugin-dvb.xml:
	* docs/plugins/inspect/plugin-dvbsrc.xml:
	* docs/plugins/inspect/plugin-dvdspu.xml:
	* docs/plugins/inspect/plugin-festival.xml:
	* docs/plugins/inspect/plugin-flvdemux.xml:
	* docs/plugins/inspect/plugin-gstinterlace.xml:
	* docs/plugins/inspect/plugin-interleave.xml:
	* docs/plugins/inspect/plugin-ladspa.xml:
	* docs/plugins/inspect/plugin-mpeg4videoparse.xml:
	* docs/plugins/inspect/plugin-mpegtsparse.xml:
	* docs/plugins/inspect/plugin-mpegvideoparse.xml:
	* docs/plugins/inspect/plugin-mve.xml:
	* docs/plugins/inspect/plugin-nas.xml:
	* docs/plugins/inspect/plugin-nuvdemux.xml:
	* docs/plugins/inspect/plugin-quicktime.xml:
	* docs/plugins/inspect/plugin-real.xml:
	* docs/plugins/inspect/plugin-rfbsrc.xml:
	* docs/plugins/inspect/plugin-sdp.xml:
	* docs/plugins/inspect/plugin-sndfile.xml:
	* docs/plugins/inspect/plugin-soup.xml:
	* docs/plugins/inspect/plugin-speexresample.xml:
	* docs/plugins/inspect/plugin-stereo.xml:
	* docs/plugins/inspect/plugin-switch.xml:
	* docs/plugins/inspect/plugin-vcdsrc.xml:
	* docs/plugins/inspect/plugin-videocrop.xml:
	* docs/plugins/inspect/plugin-videoparse.xml:
	* docs/plugins/inspect/plugin-vmnc.xml:
	* docs/plugins/inspect/plugin-x264.xml:
	* docs/plugins/inspect/plugin-y4menc.xml:
	Add missing inspection files to CVS.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-equalizer.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gio.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* gst/speexresample/gstspeexresample.h:
	Add speexresample to the docs and while at that do a make update.

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

	* gst/speexresample/gstspeexresample.c:
	(gst_speex_fix_output_buffer), (gst_speex_resample_process):
	If the resampler gives less output samples than expected
	adjust the output buffer and print a warning.

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

	* configure.ac:
	* gst/speexresample/arch.h:
	* gst/speexresample/fixed_generic.h:
	* gst/speexresample/gstspeexresample.c:
	(gst_speex_resample_base_init), (gst_speex_resample_class_init),
	(gst_speex_resample_init), (gst_speex_resample_start),
	(gst_speex_resample_stop), (gst_speex_resample_get_unit_size),
	(gst_speex_resample_transform_caps),
	(gst_speex_resample_init_state), (gst_speex_resample_update_state),
	(gst_speex_resample_reset_state), (gst_speex_resample_parse_caps),
	(gst_speex_resample_transform_size), (gst_speex_resample_set_caps),
	(gst_speex_resample_event), (gst_speex_resample_check_discont),
	(gst_speex_resample_process), (gst_speex_resample_transform),
	(gst_speex_resample_set_property),
	(gst_speex_resample_get_property), (plugin_init):
	* gst/speexresample/gstspeexresample.h:
	* gst/speexresample/resample.c: (speex_alloc), (speex_realloc),
	(speex_free), (compute_func), (main), (sinc), (cubic_coef),
	(resampler_basic_direct_single), (resampler_basic_direct_double),
	(resampler_basic_interpolate_single),
	(resampler_basic_interpolate_double), (update_filter),
	(speex_resampler_init), (speex_resampler_init_frac),
	(speex_resampler_destroy), (speex_resampler_process_native),
	(speex_resampler_process_float), (speex_resampler_process_int),
	(speex_resampler_process_interleaved_float),
	(speex_resampler_process_interleaved_int),
	(speex_resampler_set_rate), (speex_resampler_get_rate),
	(speex_resampler_set_rate_frac), (speex_resampler_get_ratio),
	(speex_resampler_set_quality), (speex_resampler_get_quality),
	(speex_resampler_set_input_stride),
	(speex_resampler_get_input_stride),
	(speex_resampler_set_output_stride),
	(speex_resampler_get_output_stride), (speex_resampler_skip_zeros),
	(speex_resampler_reset_mem), (speex_resampler_strerror):
	* gst/speexresample/speex_resampler.h:
	* gst/speexresample/speex_resampler_float.c:
	* gst/speexresample/speex_resampler_int.c:
	* gst/speexresample/speex_resampler_wrapper.h:
	Add resample element based on the Speex resampling algorithm.

2007-11-20  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	  Fixed buffer strip (safer wil pull and after seek).

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

	* gst/equalizer/gstiirequalizer10bands.c:
	* gst/equalizer/gstiirequalizer3bands.c:
	  Activate preset iface and upload two presets here.

2007-11-19  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	  Strip out in pull mode also. Seek and Query functions added.

2007-11-18  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparsetypes.h:
	  Strip out metadata chunks.

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

	* configure.ac:
	  Als use AG_GST_PLUGIN_DOCS (see #344039).

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

	Patch by: Wai-Ming Ho <webregbox at yahoo dot co dot uk>

	* gst/mpegtsparse/mpegtspacketizer.c: (foreach_stream_clear),
	(remove_all), (mpegts_packetizer_clear):
	Ensure that the plugin does not crash when the property pat-info is
	queried before a PAT is available. It also ensures that the PAT info is
	cleared when the changing from PLAYING to READY.
	Fixes #487892.

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

	Patch by: Wouter Paesen <wouter at blue-gate dot be>

	* ext/soundtouch/gstpitch.cc:
	Handle seeking correctly. Fixes #461068.

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

	Patch by: Michael Kötter <m dot koetter at oraise dot de>

	* ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_set_caps),
	(alsaspdifsink_get_time), (alsaspdifsink_open),
	(alsaspdifsink_set_params), (alsaspdifsink_delay), (plugin_init):
	Fix sample rate and clocking.
	Remove buffer_time and period_time as this seems to break on some
	hardware. Fixes #485462.

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

	Patch by: Wouter Cloetens <wouter at mind dot be>

	* configure.ac:
	* ext/Makefile.am:
	* ext/soup/Makefile.am:
	* ext/soup/gstsouphttpsrc.c: (_do_init),
	(gst_souphttp_src_base_init), (gst_souphttp_src_class_init),
	(gst_souphttp_src_init), (gst_souphttp_src_dispose),
	(gst_souphttp_src_set_property), (gst_souphttp_src_get_property),
	(gst_souphttp_src_create), (gst_souphttp_src_start),
	(gst_souphttp_src_stop), (gst_souphttp_src_unlock),
	(gst_souphttp_src_set_location), (soup_got_chunk), (soup_response),
	(soup_session_close), (plugin_init):
	* ext/soup/gstsouphttpsrc.h:
	Added HTTP source based on libsoup. Fixes #497020.

2007-11-15  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
	don't forget to handle the offset's
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	precalculate some many used values

2007-11-15  Thijs Vermeir  <thijsvermeir@gmail.com>

	patch by: Armando Taffarel Neto <taffarel@solis.coop.br>
	* gst/librfb/gstrfbsrc.c:
	Set the timestamp for the output buffers

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

	* tests/check/elements/spectrum.c: (GST_START_TEST):
	Fix spectrum unit test for the latest spectrum changes.

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

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

	* gst/replaygain/rganalysis.c: (yule_filter):
	Avoid slowdown from denormals when processing near-silence input data.
	Spotted by Gabriel Bouvigne. Fixes #494499.

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

	* gst/flv/gstflvparse.c:
	Add mapping for Nellymoser ASAO audio codec.
	(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Make sure we
	actually have data to read at the end of the tag. This avoids trying
	to allocate negative buffers.

2007-11-12  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/README:
	  Added a design proposal from metadata parse and mux.

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

	* gst/equalizer/demo.c: (draw_spectrum):
	* gst/spectrum/demo-audiotest.c: (draw_spectrum):
	* gst/spectrum/demo-osssrc.c: (draw_spectrum):
	* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init):
	Change the meaning of the magnitude values given in the
	GstMessages by spectrum to decibel instead of
	decibel+threshold.

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

	* gst/equalizer/gstiirequalizer10bands.c:
	* gst/equalizer/gstiirequalizer3bands.c:
	* gst/equalizer/gstiirequalizernbands.c:
	And continue to update docs. Also include some sample code
	for the n-band equalizer in the docs.

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

	* gst/equalizer/gstiirequalizer10bands.c:
	(gst_iir_equalizer_10bands_class_init):
	* gst/equalizer/gstiirequalizer3bands.c:
	(gst_iir_equalizer_3bands_class_init):
	* gst/equalizer/gstiirequalizernbands.c:
	Update docs and property ranges to the real values.

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

	* gst/spectrum/gstspectrum.c:
	Now do the scaling right for real. Also initialize a previously
	uninitialized variable.

2007-11-09  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/metadataparsexmp.c:
	(metadataparse_xmp_tag_list_add),
	(metadataparse_xmp_iter_simple_qual),
	(metadataparse_xmp_iter_simple), (metadataparse_xmp_iter_array),
	(metadataparse_xmp_iter):
	  Extracting more detailed info from XMP.

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

	* gst/equalizer/demo.c:
	  Make default volume a bit less. Improve layout by giving more space to
	  the slider with big-numbers and enable fill.

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

	* configure.ac:
	* tests/check/pipelines/gio.c: (GST_START_TEST):
	Require GIO >= 0.1.2 and adjust unit test for an API change.

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

	* tests/icles/equalizer-test.c: (do_slider_fiddling):
	Fix gain ranges for the latest equalizer changes.

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

	* ext/gio/gstgio.h:
	Add macro to check if a stream supports seeking.

	* ext/gio/Makefile.am:
	* ext/gio/gstgiobasesink.c: (gst_gio_base_sink_base_init),
	(gst_gio_base_sink_class_init), (gst_gio_base_sink_init),
	(gst_gio_base_sink_finalize), (gst_gio_base_sink_start),
	(gst_gio_base_sink_stop), (gst_gio_base_sink_unlock),
	(gst_gio_base_sink_unlock_stop), (gst_gio_base_sink_event),
	(gst_gio_base_sink_render), (gst_gio_base_sink_query),
	(gst_gio_base_sink_set_stream):
	* ext/gio/gstgiobasesink.h:
	* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_base_init),
	(gst_gio_base_src_class_init), (gst_gio_base_src_init),
	(gst_gio_base_src_finalize), (gst_gio_base_src_start),
	(gst_gio_base_src_stop), (gst_gio_base_src_get_size),
	(gst_gio_base_src_is_seekable), (gst_gio_base_src_unlock),
	(gst_gio_base_src_unlock_stop), (gst_gio_base_src_check_get_range),
	(gst_gio_base_src_create), (gst_gio_base_src_set_stream):
	* ext/gio/gstgiobasesrc.h:
	Refactor common GIO functions to GstGioBaseSink and GstGioBaseSrc
	base classes that only require a GInputStream or GOutputStream to
	work.

	* ext/gio/gstgiosink.c: (gst_gio_sink_base_init),
	(gst_gio_sink_class_init), (gst_gio_sink_init),
	(gst_gio_sink_finalize), (gst_gio_sink_start):
	* ext/gio/gstgiosink.h:
	* ext/gio/gstgiosrc.c: (gst_gio_src_base_init),
	(gst_gio_src_class_init), (gst_gio_src_init),
	(gst_gio_src_finalize), (gst_gio_src_start):
	* ext/gio/gstgiosrc.h:
	Use the newly created base classes here.

	* ext/gio/gstgio.c: (plugin_init):
	* ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_base_init),
	(gst_gio_stream_sink_class_init), (gst_gio_stream_sink_init),
	(gst_gio_stream_sink_finalize), (gst_gio_stream_sink_set_property),
	(gst_gio_stream_sink_get_property):
	* ext/gio/gstgiostreamsink.h:
	* ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_base_init),
	(gst_gio_stream_src_class_init), (gst_gio_stream_src_init),
	(gst_gio_stream_src_finalize), (gst_gio_stream_src_set_property),
	(gst_gio_stream_src_get_property):
	* ext/gio/gstgiostreamsrc.h:
	Implement GstGioStreamSink and GstGioStreamSrc that have a property
	to set the GInputStream/GOutputStream that should be used.

	* tests/check/Makefile.am:
	* tests/check/pipelines/.cvsignore:
	* tests/check/pipelines/gio.c: (message_handler), (GST_START_TEST),
	(gio_testsuite), (main):
	Add unit test for giostreamsrc and giostreamsink.

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

	* ext/gio/gstgio.c: (plugin_init):
	Remove nowadays unnecessary workaround for a crash.
	
	* ext/gio/gstgiosink.c: (gst_gio_sink_finalize),
	(gst_gio_sink_start), (gst_gio_sink_stop),
	(gst_gio_sink_unlock_stop):
	* ext/gio/gstgiosink.h:
	* ext/gio/gstgiosrc.c: (gst_gio_src_finalize), (gst_gio_src_start),
	(gst_gio_src_stop), (gst_gio_src_unlock_stop):
	* ext/gio/gstgiosrc.h:
	Make the finalize function safer, clean up everything that could stay
	around.

	Reset the cancellable instead of creating a new one after cancelling
	some operation.

	Don't store the GFile in the element, it's only necessary for creating
	the streams.

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

	* gst/spectrum/demo-audiotest.c: (main):
	Use autoaudiosink instead of alsasink and use a sine wave.

	* gst/spectrum/gstspectrum.c:
	Fix the magnitude calculation.

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

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

	* gst-libs/gst/dshow/gstdshowfakesink.cpp:
	  (CDshowFakeSink.CDshowFakeSink):
	* gst-libs/gst/dshow/gstdshowfakesink.h: (CDshowFakeSink.m_hres):
	  Fix crasher in constructor due to the base class's constructor
	  not necessarily being NULL-safe (depends on the SDK version used
	  apparently; #492406).

	* sys/dshowsrcwrapper/gstdshowaudiosrc.c: (gst_dshowaudiosrc_prepare):
	* sys/dshowsrcwrapper/gstdshowvideosrc.c: (gst_dshowvideosrc_set_caps):
	  Fix a couple of MSVC compiler warnings (#492406).

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

	* gst/equalizer/demo.c: (main):
	* gst/equalizer/gstiirequalizer.c:
	(gst_iir_equalizer_band_class_init), (setup_filter):
	Allow setting 0 as bandwidth and handle this correctly.
	Also handle a bandwidth of rate/2 properly.

	* gst/equalizer/gstiirequalizernbands.c:
	(gst_iir_equalizer_nbands_class_init):
	Make it possible to generate a N-band equalizer with 1 bands. The
	previous limit of 2 was caused by a nowadays replaced calculation
	doing a division by zero if number of bands was 1.

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

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

	* gst/rtpmanager/gstrtpsession.c:
	  Fix bad function signatures (#492798).

2007-11-02  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparseexif.c:
	* ext/metadata/metadataparseexif.h:
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparseiptc.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsepng.c:
	* ext/metadata/metadataparsepng.h:
	* ext/metadata/metadataparseutil.c:
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadataparsexmp.c:
	* ext/metadata/metadataparsexmp.h:
	  Added support for PNG/XMP. Indentation. And fixed pull mode to parse
	  the file. 

2007-11-02  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadataparse.c: (gst_metadata_parse_init),
	(gst_metadata_parse_activate), (gst_metadata_parse_get_range),
	(gst_metadata_parse_element_activate_src_pull):
	  Now metadataparse works in push or pull mode.

2007-11-01  Edgard Lima  <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/metadata/Makefile.am:
	* ext/metadata/metadataparseexif.c:
	(metadataparse_exif_tags_register),
	(metadataparse_exif_tag_list_add):
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparsejpeg.c: (metadataparse_jpeg_init),
	(metadataparse_jpeg_dispose), (metadataparse_jpeg_parse),
	(metadataparse_jpeg_reading), (metadataparse_jpeg_xmp):
	* ext/metadata/metadataparseutil.c:
	(metadataparse_tag_list_add_chunk):
	* ext/metadata/metadataparseutil.h:
	* ext/metadata/metadataparsexmp.c:
	(metadataparse_xmp_tags_register),
	(metadataparse_xmp_tag_list_add), (metadataparse_xmp_init),
	(metadataparse_xmp_dispose):
	* ext/metadata/metadataparsexmp.h:
	  Some XMP stuff added.

2007-10-31  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/gstmetadataparse.c:
	(gst_metadata_parse_dispose_members),
	(gst_metadata_parse_init_members), (gst_metadata_parse_send_tags),
	(gst_metadata_parse_chain), (gst_metadata_parse_get_range),
	(gst_metadata_parse_change_state),
	(gst_metadata_parse_plugin_init):
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparseexif.c:
	(metadataparse_exif_tags_register),
	(metadataparse_exif_tag_list_add),
	(exif_data_foreach_content_func),
	(exif_content_foreach_entry_func):
	* ext/metadata/metadataparseexif.h:
	* ext/metadata/metadataparseiptc.c:
	(metadataparse_iptc_tags_register),
	(metadataparse_tag_list_add_chunk),
	(metadataparse_iptc_tag_list_add),
	(iptc_data_foreach_dataset_func):
	* ext/metadata/metadataparseiptc.h:
	* ext/metadata/metadataparsexmp.c:
	(metadataparse_xmp_tags_register),
	(metadataparse_xmp_tag_list_add):
	* ext/metadata/metadataparsexmp.h:
	  Now sending iptc tag in whole chunk. Ready to also send exif and xmp
	  in the same way (look at bug #486659).

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

	* gst/librfb/rfbdecoder.c:
		Some refactoring in RAW encoding

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

	* gst/librfb/d3des.h:
	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/gstrfbsrc.h:
	* gst/librfb/rfbbuffer.h:
	* gst/librfb/rfbcontext.h:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	* gst/librfb/rfbutil.h:
	* gst/librfb/vncauth.h:
		Added copyrect encoding

2007-10-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/camswclient.c:
	Warn on failed write.

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

	* gst/equalizer/Makefile.am:
	* gst/equalizer/demo.c: (on_window_destroy), (on_configure_event),
	(on_gain_changed), (on_bandwidth_changed), (on_freq_changed),
	(draw_spectrum), (message_handler), (main):
	Add small demo application based on the spectrum demo applications
	that gets white noise as input, pushes it through an equalizer and
	paints the spectrum. For every equalizer band it's possible to set
	gain, bandwidth and frequency.
	* gst/equalizer/gstiirequalizer.c: (setup_filter):
	Add some guarding against too large or too small frequencies and
	bandwidths. Also improve debugging a bit.

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

	* gst/equalizer/gstiirequalizer.c:
	(gst_iir_equalizer_band_set_property),
	(gst_iir_equalizer_band_get_property),
	(gst_iir_equalizer_band_class_init), (arg_to_scale),
	(setup_filter), (gst_iir_equalizer_compute_frequencies):
	Replace filters with a bit better filters for which we can actually
	find documentation, which don't change anything on zero gain, etc.
	
	Make the frequency property of the bands writable, rename the
	band-width property to bandwidth and change the	meaning to the
	frequency difference between bandedges, change the meaning of the
	gain property to dB instead of a weird scale between -1	and 1 that
	has no real meaning.

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

	* sys/dvb/dvbbasebin.c:
	  Fix the build.

2007-10-30  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/metadata/.cvsignore:
	* ext/metadata/gstmetadataparse.c: (gst_metadata_parse_base_init),
	(gst_metadata_parse_init), (gst_metadata_parse_get_caps),
	(gst_metadata_parse_configure_srccaps),
	(gst_metadata_parse_set_caps), (gst_metadata_parse_activate),
	(gst_metadata_parse_plugin_init):
	* ext/metadata/metadataparse.c: (metadataparse_parse):
	* ext/metadata/metadataparse.h:
	  Changed kclass to "Parser/Extracter/Metadata", changed caps to
	  "image/jpeg, tags-extract=true/false" and changed priority to
	  GST_RANK_PRIMARY+1. Also, srcpad can only work in push mode until
	  fixed to also work in pull mode.

2007-10-30  Edgard Lima  <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/metadata/:
	* ext/metadata/Makefile.am:
	* ext/metadata/gstmetadata.c:
	* ext/metadata/gstmetadataparse.c:
	* ext/metadata/gstmetadataparse.h:
	* ext/metadata/metadataparse.c:
	* ext/metadata/metadataparse.h:
	* ext/metadata/metadataparseexif.c:
	* ext/metadata/metadataparseexif.h:
	* ext/metadata/metadataparseiptc.c:
	* ext/metadata/metadataparseiptc.h:
	* ext/metadata/metadataparsejpeg.c:
	* ext/metadata/metadataparsejpeg.h:
	* ext/metadata/metadataparsexmp.c:
	* ext/metadata/metadataparsexmp.h:
	  Created new plugin ('medadata') and element ('metadataparse') that
	  extract metadata from images (look at bug #486659).

2007-10-29  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/dvbbasebin.c:
	Uncomment the line that sets the pid filter. Wrong way to 
	work-around driver issues.

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

	* ext/faac/gstfaac.c: (gst_faac_profile_get_type),
	  (gst_faac_class_init), (gst_faac_init):
	  Fix bitrate ranges and change enum nick for low complexity
	  profile from LOW to LC for consistency (#490060).

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

	* gst/interleave/interleave.c: (gst_interleave_request_new_pad):
	  Let's not call every request pad we create "sink%d", that'll
	  create problems if there's to be more than one pad. Fixes #490682.

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/interleave.c:
	  Add unit test for the above.

2007-10-27  Julien MOUTTE  <julien@moutte.net>

	* gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_align),
	(gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain),
	(gst_mpeg4vparse_sink_setcaps), (gst_mpeg4vparse_sink_event),
	(gst_mpeg4vparse_cleanup), (gst_mpeg4vparse_change_state),
	(gst_mpeg4vparse_dispose), (gst_mpeg4vparse_base_init),
	(gst_mpeg4vparse_class_init), (gst_mpeg4vparse_init),
	(plugin_init):
	* gst/mpeg4videoparse/mpeg4videoparse.h: Improved version not
	damaging headers using a simple state machine.

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

	* ext/x264/gstx264enc.c:
	  Fix build against the libx264 version that ships with debian stable.

2007-10-26  Julien MOUTTE  <julien@moutte.net>

	* configure.ac:
	* gst/mpeg4videoparse/Makefile.am:
	* gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_drain),
	(gst_mpeg4vparse_chain), (gst_mpeg4vparse_sink_setcaps),
	(gst_mpeg4vparse_sink_event), (gst_mpeg4vparse_cleanup),
	(gst_mpeg4vparse_change_state), (gst_mpeg4vparse_dispose),
	(gst_mpeg4vparse_base_init), (gst_mpeg4vparse_class_init),
	(gst_mpeg4vparse_init), (plugin_init):
	* gst/mpeg4videoparse/mpeg4videoparse.h: Add a simple MPEG4 ES
	parser.

2007-10-25  David Schleef  <ds@schleef.org>

	* gst/multifile/Makefile.am:
	* gst/multifile/gstmultifilesink.c:
	* gst/multifile/gstmultifilesrc.c:
	* tests/check/Makefile.am:
	* tests/check/elements/multifile.c:
	  Improve documentation, write some tests for multifilesrc/sink
	  for upcoming ->good review.

2007-10-23  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c:
	Actually use the code-rate-hp parameter for DVB-S.
	It turns out setting to AUTO does not always work (
	especially in diseq situations). Set by default to 
	FEC_AUTO.

2007-10-22  Julien MOUTTE  <julien@moutte.net>

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video), (gst_flv_parse_tag_type): Don't
	emit no-more-pads for single pad scenarios as the header
	is definitely not reliable. We emit them for 2 pads scenarios
	though to speed up media discovery.

2007-10-19  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/dvbbasebin.c:
	Added proxy property of diseqc-source

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

	* gst/equalizer/gstiirequalizer.c:
	(gst_iir_equalizer_band_set_property):
	Add a missing break.

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

	* gst/equalizer/gstiirequalizer.c:
	(gst_iir_equalizer_band_set_property),
	(gst_iir_equalizer_band_get_property),
	(gst_iir_equalizer_band_class_init), (gst_iir_equalizer_band_init),
	(gst_iir_equalizer_band_get_type), (gst_iir_equalizer_class_init),
	(setup_filter), (gst_iir_equalizer_setup):
	* gst/equalizer/gstiirequalizer.h:
	Move bandwidth property to the separate bands and add float64 support.

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

	* ext/cdaudio/Makefile.am:
	  Add another missing GST_LIBS.

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

	Patch by: Richard Hult <richard imendio com>

	* gst/dvdspu/Makefile.am:
	  Fix LIBS - we need to link against libgstreamer (fixes #487496).

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

	* sys/dvb/camapplication.c:
	* sys/dvb/camresourcemanager.c:
	  Fix some warnings.

2007-10-16  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/rfbdecoder.c:
	  Add the set encodings client message

2007-10-16  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/Makefile.am:
	* gst/librfb/rfb.h:
	* gst/librfb/rfbbytestream.c:
	* gst/librfb/rfbbytestream.h:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	  Remove the rfbbytestream dead code

2007-10-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Alessandro Decina

	* sys/dvb/Makefile.am:
	* sys/dvb/cam.c:
	* sys/dvb/cam.h:
	* sys/dvb/camapplication.c:
	* sys/dvb/camapplication.h:
	* sys/dvb/camapplicationinfo.c:
	* sys/dvb/camapplicationinfo.h:
	* sys/dvb/camconditionalaccess.c:
	* sys/dvb/camconditionalaccess.h:
	* sys/dvb/camdevice.c:
	* sys/dvb/camdevice.h:
	* sys/dvb/camresourcemanager.c:
	* sys/dvb/camresourcemanager.h:
	* sys/dvb/camsession.c:
	* sys/dvb/camsession.h:
	* sys/dvb/camswclient.c:
	* sys/dvb/camswclient.h:
	* sys/dvb/camtransport.c:
	* sys/dvb/camtransport.h:
	* sys/dvb/camutils.c:
	* sys/dvb/camutils.h:
	* sys/dvb/dvbbasebin.c:
	* sys/dvb/dvbbasebin.h:
	* sys/dvb/gstdvb.c:
	* sys/dvb/gstdvbsrc.c:
	* sys/dvb/gstdvbsrc.h:
	Integrate SoC work done by Alessandro for the Freevo project.
	Adds cam support to the dvb stack in GStreamer and a new
	element (actually a bin) called dvbbasebin that integrates
	dvbsrc and mpegtsparse to a) handle decryption and b) allow 
	acquiring multiple channels on same transponder without 
	knowing pid numbers.

2007-10-16  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	patch by: Alessandro Decina

	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtsparse.c:
	* gst/mpegtsparse/mpegtsparse.h:
	Add request pad for getting the full transport stream coming in.

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

	* configure.ac:
	  Update the highest allowed neon version from 0.26.99 to 0.27.99.
	  No code changes are required to work with the newest neon version.

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

	* configure.ac:
	  Require core CVS.  This is implicit in the -base CVS
	  requirement already, so we might just well spell it
	  out.  Also, we do need at least 0.10.14 for
	  gst_element_class_set_details_simple().  Make check
	  for gmyth a bit more restrictive so things don't break
	  if the next version changes API.

	* ext/alsaspdif/alsaspdifsink.c:
	  Work around alsa alloca macros triggering 'always evaluates to
	  true' warnings with gcc-4.2 and fix compilation with gcc-4.2.
	  Also don't leak the device string.

	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/soundtouch/gstpitch.cc:
	* gst/modplug/gstmodplug.cc:
	  Fix compilation with g++4.2 and -Wall -Werror (also needs plugin
	  define fix from core CVS). Fixes #462737.

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

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

	* gst/rtpmanager/gstrtpbin.c: (create_stream),
	(gst_rtp_bin_class_init):
	Fix memleak. Fixes #484990.

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

	* gst/librfb/rfbbuffer.c: (rfb_buffer_new_and_alloc):
	* gst/librfb/rfbbuffer.h:
	* gst/librfb/rfbdecoder.c: (rfb_socket_get_buffer):
	* gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_chain):
	* gst/nsf/nes6502.c: (nes6502_execute):
	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
	* gst/real/gstrealvideodec.c: (open_library):
	* gst/real/gstrealvideodec.h:
	* gst/rtpmanager/gstrtpsession.c: (create_recv_rtp_sink),
	(create_recv_rtcp_sink), (create_send_rtp_sink):
	Fix compiler warnings shown by Forte.

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

	* gst/rtpmanager/gstrtpbin.c: (get_pt_map),
	(gst_rtp_bin_clear_pt_map), (gst_rtp_bin_class_init):
	Fix caps refcounting for payload maps.
	When clearing payload maps, also clear sessions and streams payload
	maps.

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps),
	(gst_rtp_pt_demux_clear_pt_map), (gst_rtp_pt_demux_chain),
	(find_pad_for_pt):
	Implement clearing the payload map.

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_event_send_rtp_sink):
	Forward flush events instead of leaking them.

	* gst/rtpmanager/gstrtpssrcdemux.c:
	(gst_rtp_ssrc_demux_rtcp_sink_event):
	Correctly refcount events before pushing them.

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

	* ext/gio/gstgio.c: (gst_gio_get_supported_protocols):
	Use GIO function to get a list of supported URI schemes instead of
	hard coding something.

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

	* gst/rtpmanager/rtpsession.c: (rtp_session_next_timeout),
	When reconsidering RTCP timeouts, set the next timeout against the last
	report time instead of the current clock time so that we don't end up
	reconsidering forever.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	Only peek at the tail element instead of popping it off, which allows
	us to greatly simplify things when the tail element changes.

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_event_recv_rtp_sink):
	* gst/rtpmanager/gstrtpssrcdemux.c:
	(gst_rtp_ssrc_demux_sink_event):
	Forward FLUSH events instead of leaking them.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
	(calculate_skew), (rtp_jitter_buffer_insert):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Remove the tail-changed callback in favour of a simple boolean when we
	insert a buffer in the queue.
	Add method to peek the tail of the buffer.

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

	Patch by: Gautier Portet <kassoulet at gmail dot com>

	* gst/xingheader/gstxingmux.c:
	The size of the Xing header is actually 417 as it's rounded to the
	next smaller integer. Fixes #397759.

	* gst/xingheader/gstxingmux.c: (xing_generate_header),
	(xing_push_header):
	Some random cleanup, add FIXMEs and TODOs and check if the newsegment
	event to the beginning was successful before pushing the header again.

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

	Patch by: Wai-Ming Ho <webregbox at yahoo dot co dot uk>

	* gst/mpegtsparse/mpegtspacketizer.c:
	(mpegts_packetizer_stream_new):
	Don't skip PAT with version number 0. Fixes #483400.
	* gst/mpegtsparse/mpegtsparse.c: (mpegts_parse_apply_pat):
	Make all values above 0 mark a referenced program as they can be
	incremented and only 1 had marked a referenced program before, causing
	actually referenced programs to be unreferenced.

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

	* gst/sdp/gstsdpdemux.h:
	Change signature of pt to fix compilation on some platforms.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_flush_start),
	(gst_rtp_jitter_buffer_flush_stop),
	(gst_rtp_jitter_buffer_change_state), (apply_offset),
	(gst_rtp_jitter_buffer_loop):
	Remove some old unused variables.
	Don't add the latency to the skew corrected timestamp, latency is only
	used to sync against the clock.
	Improve debugging.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init),
	(rtp_jitter_buffer_reset_skew), (calculate_skew):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Handle case where server timestamp goes backwards or wildly jumps by
	temporarily pausing the skew correction.
	Improve debugging.

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

	* gst/sdp/Makefile.am:
	Forgot to commit makefile.

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

	* ext/gio/gstgiosink.c: (gst_gio_sink_start):
	Update to API changes in GIO.

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

	* gst/sdp/gstsdpdemux.c: (gst_sdp_demux_media_to_caps):
	Use new function in -base to get the default clock-rate.

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

	* configure.ac:
	* gst/sdp/gstsdpdemux.c: (_do_init), (gst_sdp_demux_base_init),
	(gst_sdp_demux_class_init), (gst_sdp_demux_init),
	(gst_sdp_demux_finalize), (gst_sdp_demux_set_property),
	(gst_sdp_demux_get_property), (find_stream_by_id),
	(find_stream_by_pt), (find_stream_by_udpsrc), (find_stream),
	(gst_sdp_demux_stream_free), (gst_sdp_demux_create_stream),
	(gst_sdp_demux_cleanup), (get_default_rate_for_pt),
	(gst_sdp_demux_parse_rtpmap), (gst_sdp_demux_media_to_caps),
	(new_session_pad), (request_pt_map), (gst_sdp_demux_do_stream_eos),
	(on_bye_ssrc), (on_timeout), (gst_sdp_demux_configure_manager),
	(gst_sdp_demux_stream_configure_udp),
	(gst_sdp_demux_stream_configure_udp_sink),
	(gst_sdp_demux_combine_flows), (gst_sdp_demux_stream_push_event),
	(gst_sdp_demux_handle_message), (gst_sdp_demux_start),
	(gst_sdp_demux_sink_event), (gst_sdp_demux_sink_chain),
	(gst_sdp_demux_change_state):
	* gst/sdp/gstsdpdemux.h:
	* gst/sdp/gstsdpelem.c: (plugin_init):
	Added SDP demuxer element. Fixes #426657.

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

	Patch by: mutex at runbox dot com

	* gst/mpegtsparse/mpegtspacketizer.c:
	(mpegts_packetizer_parse_adaptation_field_control):
	* gst/mpegtsparse/mpegtsparse.c: (mpegts_parse_base_init),
	(mpegts_parse_init), (mpegts_parse_push):
	* gst/mpegtsparse/mpegtsparse.h:
	Remove useless src pad that only results in not linked errors,
	fix a broken pointer dereference and make MAX_CONTINUITY constant
	conform to the standard to stop outputting corrupted data.
	Fixes #481276, #481279.

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

	* ext/mythtv/gstmythtvsrc.c:
	  Re-apply docs patch from #468039; fix tab.

	* gst/mpegtsparse/.cvsignore:
	  Ignore marshaller files generated at build time.

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

	* ext/gio/gstgiosink.c: (gst_gio_sink_base_init),
	(gst_gio_sink_set_property), (gst_gio_sink_render):
	* ext/gio/gstgiosrc.c: (gst_gio_src_base_init),
	(gst_gio_src_set_property):
	Some minor cleanup and allow setting the location only when the
	element is not playing or paused.

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

	* configure.ac:
	Update gio's pkg-config file name as currently in SVN.

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_set_location):
	Remove special casing for a NULL query string. g_strjoin won't add
	the separator if there's only one string.

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

	* gst/rtpmanager/gstrtpbin.c: (free_client):
	Fix crasher in dispose.

	* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
	Handle cases where input buffers have no timestamps so that no clock
	skew can be calculated, in this case interpolate timestamps based on
	rtp timestamp and assume a 0 clock skew.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c: (apply_latency),
	(gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_query):
	Remove jitter correction code, it's now in the lower level object.
	Use new -core method for doing a peer query.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init),
	(calculate_skew), (rtp_jitter_buffer_insert):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Move jitter correction to the lowlevel jitterbuffer.
	Increase the max window size.
	When filling the window, already start estimating the skew using a
	parabolic weighting factor so that we have a much better startup
	behaviour that gets more accurate with the more samples we have.
	Increase the default weighting factor for the steady state to get
	smoother timestamps.

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

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_set_proxy),
	(gst_neonhttp_src_send_request_and_redirect):
	Now that we require libneon >= 0.26 remove the neon 0.25 backward
	compatibility stuff. Also fix the default location.

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

	* configure.ac:
	We require libneon >= 26 now for the query field in ne_uri.

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

	Patch by: Wouter Cloetens <wouter@mind.be>

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_dispose),
	(gst_neonhttp_src_set_location),
	(gst_neonhttp_src_send_request_and_redirect):
	* ext/neon/gstneonhttpsrc.h:
	Don't discard GET parameters from URL if existing.
	Fixes #481200.

2007-09-27  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/gstrfbsrc.h:
		Added a property for incremental screen updates

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

	* ext/xvid/gstxvidenc.c:
	* ext/xvid/gstxvidenc.h:
	  Remove superfluous 'frame-encoded' signal (people can
	  use an upstream identity's 'handoff' signal or a pad
	  probe for this if they must know).

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

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video): I got it wrong again, audio rate 
	was not detected correctly in all cases.

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

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_dispose),
	(gst_rtp_bin_finalize):
	Fix cleanup crasher.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init),
	(calculate_skew):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Dynamically adjust the skew calculation window so that we calculate it
	over a period of around 2 seconds.

2007-09-26  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
		fix bug from generic/states.gdb

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

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video): codec_data is needed for every tag
	not just the first one. (Fix a stupid bug i introduced without
	testing)

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

	* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video): Fix bit masks operations to be
	sure we detect the codec_tags and sample rates correctly.
	Fix raw audio caps generation.

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

	* ext/audioresample/gstaudioresample.c:
	* ext/x264/gstx264enc.c:
	* gst/dvdspu/gstdvdspu.c:
	* gst/dvdspu/gstdvdspu.h:
	* gst/festival/gstfestival.c:
	* gst/h264parse/gsth264parse.c:
	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtsparse.c:
	* gst/multifile/gstmultifilesink.c:
	* gst/multifile/gstmultifilesrc.c:
	* gst/nuvdemux/gstnuvdemux.c:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.c:
	* sys/dshowsrcwrapper/gstdshowvideosrc.c:
	* sys/vcd/vcdsrc.c:
	  Massive leak fixing, plus code cleanups.

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

	* po/LINGUAS:
	  Added translations.

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: Alexander Shopov <ash@contact.bg>

	* po/bg.po:
	  Added Bulgarian translation.

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

	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	Update hierarchy.
	* ext/gio/gstgiosink.h:
	* ext/gio/gstgiosrc.h:
	Mark private fields of the instance structs private.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-equalizer.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gio.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	Add the GIO plugin to the docs and do a make update
	while doing that.

	* ext/gio/gstgiosrc.c: (gst_gio_src_start):
	Fix a small memleak.

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

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

	* configure.ac:
	* ext/Makefile.am:
	* ext/gio/Makefile.am:
	* ext/gio/gstgio.c: (gst_gio_error), (gst_gio_seek),
	(gst_gio_get_supported_protocols),
	(gst_gio_uri_handler_get_type_sink),
	(gst_gio_uri_handler_get_type_src),
	(gst_gio_uri_handler_get_protocols), (gst_gio_uri_handler_get_uri),
	(gst_gio_uri_handler_set_uri), (gst_gio_uri_handler_init),
	(gst_gio_uri_handler_do_init), (plugin_init):
	* ext/gio/gstgio.h:
	* ext/gio/gstgiosink.c: (gst_gio_sink_base_init),
	(gst_gio_sink_class_init), (gst_gio_sink_init),
	(gst_gio_sink_finalize), (gst_gio_sink_set_property),
	(gst_gio_sink_get_property), (gst_gio_sink_start),
	(gst_gio_sink_stop), (gst_gio_sink_unlock),
	(gst_gio_sink_unlock_stop), (gst_gio_sink_event),
	(gst_gio_sink_render), (gst_gio_sink_query):
	* ext/gio/gstgiosink.h:
	* ext/gio/gstgiosrc.c: (gst_gio_src_base_init),
	(gst_gio_src_class_init), (gst_gio_src_init),
	(gst_gio_src_finalize), (gst_gio_src_set_property),
	(gst_gio_src_get_property), (gst_gio_src_start),
	(gst_gio_src_stop), (gst_gio_src_get_size),
	(gst_gio_src_is_seekable), (gst_gio_src_unlock),
	(gst_gio_src_unlock_stop), (gst_gio_src_check_get_range),
	(gst_gio_src_create):
	* ext/gio/gstgiosrc.h:
	Add a GIO/GVFS plugin with source and sink elements. This will
	only be enabled when --enable-experimental is given to configure
	for now as the GIO API is not stable yet. Fixes #476916.

2007-09-21  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
		Added offset-x, offset-y, width and height property
		for selecting a region from the screen

2007-09-21  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
		Minimum raw encoding is working now
	* gst/librfb/rfbdecoder.c:
		fix address while reading from stream

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

	* gst/librfb/gstrfbsrc.c:
		raw encoding is working, but it looks like the 
		ffmpegcolorspace plugin can't handle high resolutions

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

	* gst/librfb/gstrfbsrc.c:
		bpp, depth and endianness are now set from the
		stream.

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

	* examples/app/appsrc_ex.c: (main):
	Fix compilation after changing the name of a method.

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

	* ext/alsaspdif/alsaspdifsink.c:
	* ext/timidity/gsttimidity.c:
	* ext/timidity/gstwildmidi.c:
	* gst/mpegvideoparse/mpegvideoparse.c:
	  Fix memory leaks. More to come.

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

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

	* gst/rtpmanager/gstrtpbin.c: (on_ssrc_active), (create_session),
	(gst_rtp_bin_class_init):
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpsession.c: (on_ssrc_active),
	(gst_rtp_session_class_init), (gst_rtp_session_init),
	(gst_rtp_session_event_send_rtp_sink):
	* gst/rtpmanager/gstrtpsession.h:
	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(on_ssrc_active), (rtp_session_process_rb):
	* gst/rtpmanager/rtpsession.h:
	Add notification of active SSRCs to various RTP elements. Fixes #478566.

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

	* gst-libs/gst/app/gstappsink.c: (gst_app_marshal_OBJECT__VOID),
	(gst_app_sink_class_init), (gst_app_sink_init),
	(gst_app_sink_dispose), (gst_app_sink_finalize),
	(gst_app_sink_set_property), (gst_app_sink_get_property),
	(gst_app_sink_flush_unlocked), (gst_app_sink_start),
	(gst_app_sink_event), (gst_app_sink_getcaps),
	(gst_app_sink_set_caps), (gst_app_sink_get_caps),
	(gst_app_sink_is_eos), (gst_app_sink_pull_preroll),
	(gst_app_sink_pull_buffer):
	* gst-libs/gst/app/gstappsink.h:
	Add properties, signals and actions to access the element even without
	linking to the library.
	Fix some method names and signatures.

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

	Patch by: Jonathan Matthew  <jonathan at kaolin wh9 net>

	* ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst),
	(gst_faad_srcgetcaps), (gst_faad_update_caps):
	Don't set channel positions on regular mono and stereo cases.
	Fixes #476370.

2007-09-19  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
		It is now possible to connect to a vncserver.
		there are still some issues with the ouput of 
		the screen. Looks like some lines are confused

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/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	(open_library), (gst_real_video_dec_init),
	(gst_real_video_dec_set_property),
	(gst_real_video_dec_get_property), (gst_real_video_dec_class_init):
	* gst/real/gstrealvideodec.h:
	Don't generate an error for occasional decoding errors.
	Add max-errors property.
	Error out when we receive max-errors in a row. Fixes #478159.

2007-09-19  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/gstrfbsrc.c: 
		Add password property (write only)
	* gst/librfb/rfbdecoder.c: 
		Read the reason on failure
		Use the password property for authentication
	* gst/librfb/rfbdecoder.h:
		Add defines for version checking

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

	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_destroy),
	(gst_dfbsurface_class_init):
	When finalizing GstDfbSurface, a subclass of GstBuffer, correctly
	chain up to the parent class to free everything, including caps.

2007-09-19  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/Makefile.am:
	* gst/librfb/d3des.c:
	* gst/librfb/d3des.h:
	* gst/librfb/rfbdecoder.c:
	* gst/librfb/vncauth.c:
	* gst/librfb/vncauth.h:
	VNC Authentication should be working now
	temperaly with fake password 'testtest'

2007-09-18  Thijs Vermeir  <thijsvermeir@gmail.com>

	* gst/librfb/rfbdecoder.c:
	* gst/librfb/rfbdecoder.h:
	Added some documentation about security handling
	start implementing security handling for rfb 3.3

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

	* gst/spectrum/demo-audiotest.c:
	* gst/spectrum/demo-osssrc.c:
	  Handling window resize.

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

	* ChangeLog:
	  Add missing newline.

	* gst/librfb/rfbdecoder.c:
	  Fix the build (missing stdlib.h).

	* gst/spectrum/gstspectrum.c:
	* gst/spectrum/gstspectrum.h:
	  Use basetransform segment so that it is correctly managed on flushes
	  and start/stop. Report message timestamp as stream time, which is what
	  an application can understand. (Yes these are adapted from wim recent
	  level element changes)

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

	* gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found):
	Link to the right pads regardless of which one was created first in the
	ssrc demuxer.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp),
	(gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_send_rtp):
	* gst/rtpmanager/rtpsource.c: (calculate_jitter):
	Improve debugging.

	* gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
	(gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_finalize),
	(gst_rtp_ssrc_demux_sink_event),
	(gst_rtp_ssrc_demux_rtcp_sink_event), (gst_rtp_ssrc_demux_chain),
	(gst_rtp_ssrc_demux_rtcp_chain),
	(gst_rtp_ssrc_demux_internal_links):
	* gst/rtpmanager/gstrtpssrcdemux.h:
	Fix race in creating the RTP and RTCP pads when a new SSRC is detected.

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

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_set_property),
	(gst_rtp_bin_get_property):
	Use lock to protect variable.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init),
	(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain),
	(convert_rtptime_to_gsttime), (gst_rtp_jitter_buffer_loop):
	Reconstruct GST timestamp from RTP timestamps based on measured clock
	skew and sync offset.

	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init),
	(rtp_jitter_buffer_set_tail_changed),
	(rtp_jitter_buffer_set_clock_rate),
	(rtp_jitter_buffer_get_clock_rate), (calculate_skew),
	(rtp_jitter_buffer_insert), (rtp_jitter_buffer_peek):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Measure clock skew.
	Add callback to be notfied when a new packet was inserted at the tail.

	* gst/rtpmanager/rtpsource.c: (rtp_source_init),
	(calculate_jitter), (rtp_source_send_rtp):
	* gst/rtpmanager/rtpsource.h:
	Remove clock skew detection, it's move to the jitterbuffer now.

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

	Patch by: Daniel Charles <dcharles at ti dot com>

	* ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_bandmode_get_type),
	(gst_amrwbenc_set_property), (gst_amrwbenc_get_property),
	(gst_amrwbenc_class_init), (gst_amrwbenc_chain):
	* ext/amrwb/gstamrwbenc.h:
	Add property to control bandmode. Fixes #477306.

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

	* gst/rtpmanager/gstrtpbin.c: (create_session):
	Also set NTP base time on new sessions.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_query),
	(gst_rtp_jitter_buffer_set_property),
	(gst_rtp_jitter_buffer_get_property):
	Use the right lock to protect our variables.
	Fix some comment.

	* gst/rtpmanager/gstrtpsession.c:
	(gst_rtp_session_getcaps_send_rtp),
	(gst_rtp_session_chain_send_rtp), (create_send_rtp_sink):
	Implement getcaps on the sender sinkpad so that payloaders can negotiate
	the right SSRC.

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

	* gst/rtpmanager/gstrtpbin.c: (create_session), (free_session),
	(get_client), (free_client), (gst_rtp_bin_associate),
	(free_stream), (gst_rtp_bin_class_init), (gst_rtp_bin_dispose),
	(gst_rtp_bin_finalize):
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init),
	(gst_rtp_jitter_buffer_finalize):
	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_release):
	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize),
	(gst_rtp_session_set_property), (gst_rtp_session_chain_recv_rtp),
	(gst_rtp_session_chain_send_rtp):
	* gst/rtpmanager/gstrtpssrcdemux.c:
	(gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_dispose):
	* gst/rtpmanager/rtpsession.c: (rtp_session_finalize):
	* gst/rtpmanager/rtpsession.h:
	Various leak fixes.

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

	* gst/rtpmanager/gstrtpbin.c: (calc_ntp_ns_base),
	(gst_rtp_bin_change_state), (new_payload_found), (create_send_rtp):
	Calculate and configure the NTP base time so that we can generate better
	NTP times in SR packets.
	Set caps on new ghostpad.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_loop):
	Clean debug statement.

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(gst_rtp_session_init), (gst_rtp_session_set_property),
	(gst_rtp_session_get_property), (get_current_ntp_ns_time),
	(rtcp_thread), (gst_rtp_session_event_recv_rtp_sink),
	(gst_rtp_session_internal_links), (gst_rtp_session_chain_recv_rtp),
	(gst_rtp_session_event_send_rtp_sink),
	(gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
	(create_send_rtp_sink):
	* gst/rtpmanager/gstrtpsession.h:
	Add ntp-ns-base property to convert running_time to NTP time.
	Handle NEWSEGMENT events on send and recv RTP pads so that we can
	calculate the running time and thus NTP time of the packets.
	Simplify getting the current NTP time using the pipeline clock.
	Implement internal links functions.
	Use the buffer timestamp to calculate the NTP time instead of the clock.

	* gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
	(gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_sink_event),
	(gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_rtcp_chain),
	(gst_rtp_ssrc_demux_internal_links),
	(gst_rtp_ssrc_demux_src_query):
	* gst/rtpmanager/gstrtpssrcdemux.h:
	Implement internal links function.
	Calculate the diff between different streams, this might be used later
	to get the inter stream latency.

	* gst/rtpmanager/rtpsession.c: (rtp_session_send_rtp):
	Simple cleanup.

	* gst/rtpmanager/rtpsource.c: (rtp_source_init),
	(calculate_jitter), (rtp_source_send_rtp), (rtp_source_get_new_sr):
	Make the clock skew window a little bigger.
	Apply the clock skew to all buffers, not just one with a new timestamp.
	Calculate and debug sender clock drift.
	Use extended last timestamp to interpolate for SR reports.

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

	Patch by: Peter Kjellerstedt  <pkj at axis com>

	* gst-libs/gst/app/gstappsink.c:
	* gst/flv/gstflvdemux.c:
	* gst/flv/gstflvparse.c:
	* gst/interleave/deinterleave.c:
	* gst/switch/gstswitch.c:
	  Printf format fixes (#476128).

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

	Patch by: Thomas Green  <tom78999 gmail com>

	* ext/neon/gstneonhttpsrc.c:
	  With libneon 2.6, we need to set the NE_SESSFLAG_ICYPROTO
	  flag if we want ICY streams to be handled too, otherwise
	  libneon will error out with a 'can't parse reponse' error.
	  Fixes #474696.

	* tests/check/elements/neonhttpsrc.c:
	  Unit test for the above by Yours Truly.

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

	* configure.ac:
	  Use AC_TRY_COMPILE instead of AC_TRY_RUN for the faad and the
	  xvid configure checks, so they still work when cross-compiling.
	  Fixes #452009.

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

	* gst/spectrum/gstspectrum.c: (gst_spectrum_start),
	(gst_spectrum_transform_ip):
	Use the correct parameter order for the memset calls.
	Thanks to Christian Schaller for noticing.

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

	* gst/mpegtsparse/mpegtsparse.c:
	  Fix the build (missing stdlib.h).

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

	* gst/spectrum/fix_fft.c:
	Remove fixed point FFT as it's not used anymore.

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

	* configure.ac:
	* gst/spectrum/Makefile.am:
	* gst/spectrum/demo-audiotest.c: (draw_spectrum),
	(message_handler), (main):
	* gst/spectrum/demo-osssrc.c: (draw_spectrum), (message_handler):
	* gst/spectrum/gstspectrum.c: (gst_spectrum_base_init),
	(gst_spectrum_class_init), (gst_spectrum_init),
	(gst_spectrum_dispose), (gst_spectrum_set_property),
	(gst_spectrum_get_property), (gst_spectrum_start),
	(gst_spectrum_setup), (gst_spectrum_message_new),
	(gst_spectrum_transform_ip):
	* gst/spectrum/gstspectrum.h:
	Port GstSpectrum to GstAudioFilter and libgstfft, add support
	for int32, float and double, use floats for the message contents,
	average all FFTs done in one interval for better results, use
	a better windowing function, allow posting the phase in the message
	and actually do an FFT with the requested number of bands instead
	of interpolating.

	* tests/check/elements/spectrum.c: (GST_START_TEST),
	(spectrum_suite):
	Improve the units tests by checking for a 11025Hz sine wave
	and add unit tests for all 4 supported sample types.

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

	* gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	(gst_real_video_dec_setcaps):
	Add some more debugging.
	Don't set LONG for width/height in caps.
	Set correct output buffer size when caps changed.
	The custom message sent to the decoder should not include the format and
	subformat. Fixes #471554.

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

	* gst/rtpmanager/gstrtpsession.c:
	  Make compiler happy: fix compilation with -Wall -Werror
	  (#473562).

2007-09-03  Johan Dahlin  <johan@gnome.org>

	* gst/nsf/gstnsf.c: (gst_nsfdec_finalize), (start_play_tune):
	* gst/nsf/gstnsf.h:
	Add support for (very) basic tagging.
	
2007-09-03  Wim Taymans  <wim.taymans@gmail.com>

	* gst/rtpmanager/gstrtpbin-marshal.list:
	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_client),
	(gst_rtp_bin_associate), (gst_rtp_bin_sync_chain), (create_stream),
	(gst_rtp_bin_init), (caps_changed), (new_ssrc_pad_found),
	(create_recv_rtp), (create_recv_rtcp), (create_send_rtp):
	* gst/rtpmanager/gstrtpbin.h:
	Updated example pipelines in docs.
	Handle sync_rtcp buffers from the SSRC demuxer to perform lip-sync.
	Set the default latency correctly.
	Add some more points where we can get caps.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init),
	(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_loop),
	(gst_rtp_jitter_buffer_query),
	(gst_rtp_jitter_buffer_set_property),
	(gst_rtp_jitter_buffer_get_property):
	Add ts-offset property to control timestamping.

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(gst_rtp_session_init), (gst_rtp_session_set_property),
	(gst_rtp_session_get_property), (get_current_ntp_ns_time),
	(rtcp_thread), (stop_rtcp_thread), (gst_rtp_session_change_state),
	(gst_rtp_session_send_rtcp), (gst_rtp_session_sync_rtcp),
	(gst_rtp_session_cache_caps), (gst_rtp_session_clock_rate),
	(gst_rtp_session_sink_setcaps), (gst_rtp_session_chain_recv_rtp),
	(gst_rtp_session_event_send_rtp_sink),
	(gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
	(create_recv_rtcp_sink), (create_send_rtp_sink),
	(create_send_rtcp_src):
	Various cleanups.
	Feed rtpsession manager with NTP time based on pipeline clock when
	handling RTP packets and RTCP timeouts.
	Perform all RTCP with the system clock.
	Set caps on RTCP outgoing buffers.

	* gst/rtpmanager/gstrtpssrcdemux.c: (find_demux_pad_for_ssrc),
	(create_demux_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init),
	(gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_sink_event),
	(gst_rtp_ssrc_demux_rtcp_sink_event), (gst_rtp_ssrc_demux_chain),
	(gst_rtp_ssrc_demux_rtcp_chain):
	* gst/rtpmanager/gstrtpssrcdemux.h:
	Also demux RTCP messages.

	* gst/rtpmanager/rtpsession.c: (rtp_session_set_callbacks),
	(update_arrival_stats), (rtp_session_process_rtp),
	(rtp_session_process_rb), (rtp_session_process_sr),
	(rtp_session_process_rr), (rtp_session_process_rtcp),
	(rtp_session_send_rtp), (rtp_session_send_bye),
	(session_start_rtcp), (session_report_blocks), (session_cleanup),
	(rtp_session_on_timeout):
	* gst/rtpmanager/rtpsession.h:
	Remove the get_time callback, the GStreamer part will feed us with
	enough timing information.
	Split sync timing and RTCP timing information.
	Factor out common RB handling for SR and RR.
	Send out SR RTCP packets for lip-sync.
	Move SR and RR packet info generation to the source.

	* gst/rtpmanager/rtpsource.c: (rtp_source_init),
	(rtp_source_update_caps), (get_clock_rate), (calculate_jitter),
	(rtp_source_process_rtp), (rtp_source_send_rtp),
	(rtp_source_process_sr), (rtp_source_process_rb),
	(rtp_source_get_new_sr), (rtp_source_get_new_rb),
	(rtp_source_get_last_sr):
	* gst/rtpmanager/rtpsource.h:
	* gst/rtpmanager/rtpstats.h:
	Use caps on incomming buffers to get timing information when they are
	there.
	Calculate clock scew of the receiver compared to the sender and adjust
	the rtp timestamps.
	Calculate the round trip in sources.
	Do SR and RR calculations in the source.

2007-09-03  Renato Filho  <renato.filho@indt.org.br>

	* configure.ac:
	updated gmyth version

	* ext/mythtv/gstmythtvsrc.c:
	* ext/mythtv/gstmythtvsrc.h:
	Code rewrite

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_flush_stop),
	(gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_loop):
	Use extended timestamp to release buffers from the jitterbuffer so that
	we can handle the rtp wraparound correctly.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_loop):
	Improve Comments.

	* gst/rtpmanager/gstrtpsession.c: (stop_rtcp_thread),
	(gst_rtp_session_change_state), (gst_rtp_session_parse_caps),
	(gst_rtp_session_clock_rate), (gst_rtp_session_sink_setcaps),
	(gst_rtp_session_event_send_rtp_sink), (create_recv_rtp_sink),
	(create_send_rtp_sink):
	Also parse the sink caps for clock-rate instead of only relying on the
	result of the signal.

	* gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp):
	Make sure we fetch the clock rate for payloads we are sending out so
	that we can use it for SR reports.

2007-08-29  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/switch/gstswitch.c (gst_switch_chain, gst_switch_set_property):
	If all information is known at time of setting start-time
	property, send new segments then.

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

	* gst/rtpmanager/gstrtpsession.c: (stop_rtcp_thread),
	(gst_rtp_session_change_state),
	(gst_rtp_session_event_send_rtp_sink):
	* gst/rtpmanager/gstrtpsession.h:
	Distribute synchronisation parameters to the session manager so that it
	can generate correct SR packets for lip-sync.

	* gst/rtpmanager/rtpsession.c: (rtp_session_set_base_time),
	(rtp_session_set_timestamp_sync), (session_start_rtcp):
	* gst/rtpmanager/rtpsession.h:
	Add methods for setting sync parameters.
	Set correct RTP time in SR packets using the sync params.

	* gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp):
	* gst/rtpmanager/rtpsource.h:
	Record last RTP <-> GST timestamp so that we can use them to convert NTP
	to RTP timestamps in SR packets.

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

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_clear_pt_map):
	Add some more advanced example pipelines.

	* gst/rtpmanager/gstrtpsession.c: (rtcp_thread),
	(stop_rtcp_thread), (gst_rtp_session_send_rtcp):
	Add some debug and FIXME.
	Release LOCK when performing session cleanup.

	* gst/rtpmanager/rtpsession.c: (session_report_blocks):
	Add some debug.

	* gst/rtpmanager/rtpsource.c: (calculate_jitter),
	(rtp_source_send_rtp):
	Make sure we always send RTP packets with the session SSRC.

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

	* gst/dvdspu/gstdvdspu.c:
	  Don't need this include (fixes compilation in uninstalled setup).

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_loop),
	(gst_rtp_jitter_buffer_query):
	When synchronizing buffers, take peer latency into account.
	Don't try to add our latency to invalid peer max latency values.

2007-08-27  Julien MOUTTE  <julien@moutte.net>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_handle_seek_pull):
	Make sure we initialize the seek result.

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

	* gst/dvdspu/Makefile.am:
	Commit the makefile too.

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

	* configure.ac:
	* gst/dvdspu/.cvsignore:
	* gst/dvdspu/Notes.txt:
	* gst/dvdspu/gstdvdspu-render.c: (dvdspu_recalc_palette),
	(dvdspu_update_palettes), (dvdspu_clear_comp_buffers),
	(dvdspu_get_nibble), (dvdspu_get_rle_code), (dvdspu_draw_rle_run),
	(rle_end_x), (dvdspu_render_line), (dvdspu_update_chgcol),
	(dvdspu_render_line_with_chgcol), (dvdspu_blend_comp_buffers),
	(gstdvdspu_render_spu):
	* gst/dvdspu/gstdvdspu.c: (dvdspu_base_init), (dvdspu_class_init),
	(dvdspu_init), (dvdspu_clear), (dvdspu_dispose), (dvdspu_finalize),
	(dvdspu_flush_spu_info), (dvdspu_buffer_alloc), (dvdspu_src_event),
	(dvdspu_video_set_caps), (dvdspu_video_proxy_getcaps),
	(dvdspu_video_event), (dvdspu_video_chain),
	(dvspu_handle_vid_buffer), (dvdspu_redraw_still),
	(gstdvdspu_parse_chg_colcon), (dvdspu_exec_cmd_blk),
	(dvdspu_finish_spu_buf), (dvdspu_setup_cmd_blk),
	(dvdspu_handle_new_spu_buf), (dvdspu_handle_dvd_event),
	(dvdspu_dump_dcsq), (dvdspu_advance_spu),
	(dvdspu_check_still_updates), (dvdspu_subpic_chain),
	(dvdspu_subpic_event), (dvdspu_change_state),
	(gstdvdspu_plugin_init):
	* gst/dvdspu/gstdvdspu.h:

	dvdspu element donated by Fluendo. It implements a DVD Sub-Picture 
	Unit, decoding and overlaying DVD subtitles and menu graphics.

	* gst/mpeg2sub/.cvsignore:
	* gst/mpeg2sub/Makefile.am:
	* gst/mpeg2sub/Notes.txt:
	* gst/mpeg2sub/gstmpeg2subt.c:
	* gst/mpeg2sub/gstmpeg2subt.h:
	* gst/mpeg2sub/mpeg2subt.vcproj:
	Delete old and broken mpeg2subt element that was never ported from 0.8

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

	* gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
	(gst_flv_demux_chain), (gst_flv_demux_pull_tag),
	(gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push),
	(gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event),
	(gst_flv_demux_src_event): Remove some useless ifdef.

2007-08-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* examples/switch/switcher.c (main):
	* gst/switch/gstswitch.c (gst_switch_chain):
	Make switch more reliable and also not lock up when
	sink pad caps change.

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

	* gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
	(gst_flv_demux_cleanup), (gst_flv_demux_chain),
	(gst_flv_demux_pull_tag), (gst_flv_demux_find_offset),
	(gst_flv_demux_handle_seek_push), (gst_flv_demux_handle_seek_pull),
	(gst_flv_demux_sink_event), (gst_flv_demux_src_event): Implement
	seeking in push mode.
	* gst/flv/gstflvdemux.h:

2007-08-24  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/mpegtsparse/flutspatinfo.c:
	* gst/mpegtsparse/flutspatinfo.h:
	* gst/mpegtsparse/flutspmtinfo.c:
	* gst/mpegtsparse/flutspmtinfo.h:
	Update licences to reflect LGPL-ness of these files also.

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

	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpclient.c:
	* gst/rtpmanager/gstrtpclient.h:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	* gst/rtpmanager/gstrtpptdemux.c:
	* gst/rtpmanager/gstrtpptdemux.h:
	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/gstrtpsession.h:
	* gst/rtpmanager/gstrtpssrcdemux.c:
	* gst/rtpmanager/gstrtpssrcdemux.h:
	  Rename all GstRTPFoo structs to GstRtpFoo so that GST_BOILERPLATE
	  registers a GType that's different than the GstRTPFoo types that
	  farsight registers (luckily GType names are case sensitive). Should
	  finally fix #430664.

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

	* configure.ac:
	* win32/common/config.h:
	* win32/common/config.h.in:
	  Automatically generate win32/common/config.h via configure (this
	  ensures the win32 version of config.h is up-to-date when a release
	  is made, #433373). config.h.in file might need some more work.

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

	Patch by: Jonathan Matthew  <jonathan at kaolin wh9 net>

	* configure.ac:
	* gst/festival/Makefile.am:
	* gst/festival/gstfestival.c:
	  Port festival plugin to GStreamer-0.10 (#461377).

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

	* ext/faad/gstfaad.c: (gst_faad_chain):
	Don't unref the buffer when it was clipped.

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

	* ext/faad/gstfaad.c: (gst_faad_chain):
	Don't unref the buffer when it was clipped.

2007-08-22  Julien MOUTTE  <julien@moutte.net>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	(gst_flv_demux_pull_tag):
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
	(gst_flv_parse_tag_script), (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video): Handle pixel aspect ratio through
	metadata tags like ASF does. Fluendo muxer supports this and 
	Flash players can support it as well this way.

2007-08-22  Julien MOUTTE  <julien@moutte.net>

	* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag):
	* gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
	(gst_flv_parse_tag_script), (gst_flv_parse_tag_audio),
	(gst_flv_parse_tag_video): Make sure we don't try filling up the
	index if no times object was parsed. Fix the way we decide to push
	tags and emit no-more-pads. Fix some printf typing in debugging.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain),
	(gst_rtp_jitter_buffer_set_property):
	When drop-on-latency is set but we have no latency configured, just push
	the buffer as fast as possible.
	Fix typo in comment.

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

	* gst/rtpmanager/rtpjitterbuffer.c:
	(rtp_jitter_buffer_get_ts_diff):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Fix undefined overflow prone ts_diff handling.

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

	* gst/modplug/gstmodplug.cc:
	Fix compiler warning.

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

	* gst/modplug/gstmodplug.cc:
	  Don't use NULL caps for srcpad is not yet connected.

2007-08-20  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	* gst/mpegtsparse/Makefile.am:
	* gst/mpegtsparse/flutspatinfo.c:
	* gst/mpegtsparse/flutspatinfo.h:
	* gst/mpegtsparse/flutspmtinfo.c:
	* gst/mpegtsparse/flutspmtinfo.h:
	* gst/mpegtsparse/flutspmtstreaminfo.c:
	* gst/mpegtsparse/flutspmtstreaminfo.h:
	* gst/mpegtsparse/mpegtspacketizer.c:
	* gst/mpegtsparse/mpegtspacketizer.h:
	* gst/mpegtsparse/mpegtsparse.c:
	* gst/mpegtsparse/mpegtsparse.h:
	* gst/mpegtsparse/mpegtsparsemarshal.list:
	Add mpeg transport stream parser written by:
	Alessandro Decina. Includes a couple of files from the
	Fluendo transport stream demuxer that Fluendo have 
	kindly allowed to be licenced under LGPL also.

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

	Patch by: Bastien Nocera  <hadess at hadess net>

	* ext/mythtv/gstmythtvsrc.c:
	  Add examples for live mythtv:// URIs to docs (#468039).
	  Also convert some tabs into spaces.

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

	* gst/filter/gstbpwsinc.c:
	* gst/filter/gstlpwsinc.c:
	Add small comparision with the chebyshev filters in the docs.

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

	* tests/check/elements/bpwsinc.c: (GST_START_TEST),
	(bpwsinc_suite):
	* tests/check/elements/lpwsinc.c: (GST_START_TEST),
	(lpwsinc_suite):
	Also test everything in 32 bit float mode.

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

	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init),
	(bpwsinc_set_property), (bpwsinc_get_property):
	* gst/filter/gstbpwsinc.h:
	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init),
	(gst_lpwsinc_init), (lpwsinc_build_kernel), (lpwsinc_set_property),
	(lpwsinc_get_property):
	* gst/filter/gstlpwsinc.h:
	* tests/check/elements/lpwsinc.c: (GST_START_TEST):
	Use generator macros for the process functions for the different
	sample types, add lower upper boundaries for the GObject properties
	so automatically generated UIs can use sliders and change frequency
	properties to floats to save a bit of memory, even ints would in
	theory be enough. Also rename frequency to cutoff for consistency
	reasons.
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	Regenerated for the above changes.

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

	* ext/amrwb/gstamrwbparse.c:
	  Don't leak the adapter.

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

	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init),
	(gst_bpwsinc_init), (process_32), (process_64),
	(bpwsinc_build_kernel), (bpwsinc_push_residue),
	(bpwsinc_transform), (bpwsinc_start), (bpwsinc_query),
	(bpwsinc_query_type), (bpwsinc_event), (bpwsinc_set_property):
	* gst/filter/gstbpwsinc.h:
	Implement latency query and only forward those samples downstream
	that actually contain the data we want, i.e. drop kernel_length/2
	in the beginning and append kernel_length/2 (created by convolving
	the filter kernel with zeroes) to the end.

	* tests/check/elements/bpwsinc.c: (GST_START_TEST):
	Adjust the unit test for this slightly changed behaviour.

	* gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel):
	Reset residue length only when actually creating a residue.

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

	* gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init):
	Override the preroll vmethod instead of overriding the render method
	twice.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain),
	(gst_rtp_jitter_buffer_loop):
	Fix EOS handling.
	Convert some DEBUG into WARNINGs.
	Pause task when flushing.

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(rtcp_thread), (gst_rtp_session_event_recv_rtcp_sink):
	Use system clock for RTCP session management timeouts.

	* gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision),
	(on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout):
	Release the session lock when emiting signals.

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

	* ext/faad/gstfaad.c: (gst_faad_setcaps),
	(gst_faad_chanpos_to_gst):
	Add some debug info.

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

	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init),
	(gst_lpwsinc_init), (process_32), (process_64),
	(lpwsinc_build_kernel), (lpwsinc_push_residue),
	(lpwsinc_transform), (lpwsinc_start), (lpwsinc_query),
	(lpwsinc_query_type), (lpwsinc_event), (lpwsinc_set_property):
	* gst/filter/gstlpwsinc.h:
	Implement latency query and only forward those samples downstream
	that actually contain the data we want, i.e. drop kernel_length/2
	in the beginning and append kernel_length/2 (created by convolving
	the filter kernel with zeroes) to the end.
	* tests/check/elements/lpwsinc.c: (GST_START_TEST):
	Adjust the unit test for this slightly changed behaviour.

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

	* ext/ladspa/gstladspa.c:
	  Don't leak like hell.

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

	* tests/check/Makefile.am:
	* tests/check/generic/.cvsignore:
	* tests/check/generic/states.c:
	  Add generic state-change test suite to help to fi leaks.

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

	* ext/timidity/gstwildmidi.c:
	* ext/timidity/gstwildmidi.h:
	  Look harder for a config. Based on patch by Hans de Goede.
	  Fixes #456912

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

	* gst-libs/gst/app/gstappsink.c: (gst_app_sink_flush_unlocked):
	Don't use new API.

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

	* gst-libs/gst/app/gstappsink.c: (gst_app_sink_base_init),
	(gst_app_sink_class_init), (gst_app_sink_dispose),
	(gst_app_sink_flush_unlocked), (gst_app_sink_start),
	(gst_app_sink_stop), (gst_app_sink_event), (gst_app_sink_preroll),
	(gst_app_sink_render), (gst_app_sink_get_caps),
	(gst_app_sink_set_caps), (gst_app_sink_end_of_stream),
	(gst_app_sink_pull_preroll), (gst_app_sink_pull_buffer):
	* gst-libs/gst/app/gstappsink.h:
	Make love to appsink.
	Make it support pulling of the preroll buffer.
	Add docs and debug statements.
	Fix some races wrt to EOS handling and stopping.
	Implement getcaps.
	Implement FLUSHING.
	API: gst_app_sink_pull_preroll()

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

	* gst/flv/gstflvdemux.c: (gst_flv_demux_set_index),
	(gst_flv_demux_get_index):
	Fix locking and refcounting on the index.

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

	* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
	(gst_flv_demux_adapter_flush), (gst_flv_demux_chain),
	(gst_flv_demux_pull_tag), (gst_flv_demux_do_seek),
	(gst_flv_demux_handle_seek), (gst_flv_demux_sink_event),
	(gst_flv_demux_src_event), (gst_flv_demux_query),
	(gst_flv_demux_change_state), (gst_flv_demux_set_index),
	(gst_flv_demux_get_index), (gst_flv_demux_dispose),
	(gst_flv_demux_class_init): First method for seeking in pull
	mode using the index built step by step or coming from metadata.
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvparse.c: (FLV_GET_STRING),
	(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
	(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Parse
	more metadata types and keyframes index.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	* gst/filter/gstbpwsinc.c:
	* gst/filter/gstbpwsinc.h:
	* gst/filter/gstlpwsinc.c:
	* gst/filter/gstlpwsinc.h:
	Add docs for lpwsinc and bpwsinc and integrate them
	into the build system. While doing that also update
	all other docs via make update in docs/plugins.

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

	* gst/rtpmanager/rtpjitterbuffer.c:
	  Include stdlib.

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

	* tests/check/elements/bpwsinc.c: (GST_START_TEST):
	Make one test constraint a bit stricter.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/bpwsinc.c: (setup_bpwsinc),
	(cleanup_bpwsinc), (GST_START_TEST), (bpwsinc_suite), (main):
	Add unit tests for bpwsinc, testing fundamental functionality again.

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

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/lpwsinc.c: (setup_lpwsinc),
	(cleanup_lpwsinc), (GST_START_TEST), (lpwsinc_suite), (main):
	Add unit tests for lpwsinc, testing fundamental functionality.

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

	* gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel):
	* gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel):
	Improve debugging a bit.

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

	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init),
	(bpwsinc_start):
	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init),
	(lpwsinc_start):
	Reset the residue in BaseTransform::start to get a clean residue
	on stream changes.

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

	* gst/filter/gstbpwsinc.c: (process_32), (process_64):
	* gst/filter/gstlpwsinc.c: (process_32), (process_64):
	Fix processing with buffer sizes that are smaller than the filter
	kernel size.

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

	* gst/rtpmanager/Makefile.am:
	* gst/rtpmanager/async_jitter_queue.c:
	* gst/rtpmanager/async_jitter_queue.h:
	* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_class_init),
	(rtp_jitter_buffer_init), (rtp_jitter_buffer_finalize),
	(rtp_jitter_buffer_new), (compare_seqnum),
	(rtp_jitter_buffer_insert), (rtp_jitter_buffer_pop),
	(rtp_jitter_buffer_flush), (rtp_jitter_buffer_num_packets),
	(rtp_jitter_buffer_get_ts_diff):
	* gst/rtpmanager/rtpjitterbuffer.h:
	Remove complicated async queue and replace with more simple jitterbuffer
	code while also fixing some bugs.

	* gst/rtpmanager/gstrtpbin-marshal.list:
	* gst/rtpmanager/gstrtpbin.c: (on_new_ssrc), (on_ssrc_collision),
	(on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout),
	(create_session), (gst_rtp_bin_class_init), (create_recv_rtp),
	(create_send_rtp):
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_dispose),
	(gst_jitter_buffer_sink_parse_caps),
	(gst_rtp_jitter_buffer_flush_start),
	(gst_rtp_jitter_buffer_flush_stop),
	(gst_rtp_jitter_buffer_change_state),
	(gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain),
	(gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property):
	* gst/rtpmanager/gstrtpsession.c: (on_new_ssrc),
	(on_ssrc_collision), (on_ssrc_validated), (on_bye_ssrc),
	(on_bye_timeout), (on_timeout), (gst_rtp_session_class_init),
	(gst_rtp_session_init):
	* gst/rtpmanager/gstrtpsession.h:
	* gst/rtpmanager/rtpsession.c: (on_bye_ssrc), (session_cleanup):
	Use new jitterbuffer code.
	Expose some new signals in preparation for handling EOS.

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

	* gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel):
	Fix a segfault with more than one channel and don't rebuild
	the kernel & residue with every buffer.

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

	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_mode_get_type),
	(gst_bpwsinc_window_get_type), (gst_bpwsinc_class_init),
	(gst_bpwsinc_init), (bpwsinc_build_kernel), (bpwsinc_set_property),
	(bpwsinc_get_property):
	* gst/filter/gstbpwsinc.h:
	Add support for a bandreject mode and allow specifying the window
	function that should be used.
	* gst/filter/gstlpwsinc.c:
	And another small formatting fix.

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

	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init),
	(gst_bpwsinc_init), (process_32), (process_64),
	(bpwsinc_build_kernel), (bpwsinc_setup), (bpwsinc_get_unit_size),
	(bpwsinc_transform), (bpwsinc_set_property),
	(bpwsinc_get_property):
	* gst/filter/gstbpwsinc.h:
	Apply the same changes to the bandpass filter:
	 - Support double input
	 - Fix processing for input with >1 channels
	 - Specify frequency in Hz
	 - Specify actual filter kernel length
	 - Use transform instead of transform_ip as we're working
	   out of place anyway
	 - Factor out filter kernel generation and update the filter
	   kernel when the properties are set
	Fix bandpass filter kernel generation to actually generate
	a bandpass filter by creating a highpass instead of a second
	lowpass.
	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init):
	Small formatting fix.

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

	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init),
	(gst_lpwsinc_init), (process_32), (process_64),
	(lpwsinc_build_kernel), (lpwsinc_set_property),
	(lpwsinc_get_property):
	* gst/filter/gstlpwsinc.h:
	Specify the actual filter length instead of a weird
	2N+1. Setting the property will round to the next odd number.
	Also remove now obsolete FIXMEs.

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

	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_window_get_type),
	(gst_lpwsinc_class_init), (gst_lpwsinc_init),
	(lpwsinc_build_kernel), (lpwsinc_set_property),
	(lpwsinc_get_property):
	* gst/filter/gstlpwsinc.h:
	Allow choosing between hamming and blackman window. The blackman
	window provides a better stopband attenuation but a bit slower
	rolloff.

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

	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_mode_get_type),
	(gst_lpwsinc_class_init), (process_32), (process_64),
	(lpwsinc_build_kernel), (lpwsinc_set_property),
	(lpwsinc_get_property):
	* gst/filter/gstlpwsinc.h:
	Add a highpass mode.

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

	* gst/filter/gstlpwsinc.c: (process_32), (process_64),
	(lpwsinc_build_kernel):
	Fix processing if the input has more than one channel.

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

	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose),
	(gst_bpwsinc_init), (bpwsinc_setup), (bpwsinc_transform_ip),
	(bpwsinc_set_property), (bpwsinc_get_property):
	"this" is a C++ keyword, use "self" instead.
	Add TODOs and FIXMEs and remove two wrong FIXMEs.
	* gst/filter/gstlpwsinc.c:
	Add FIXMEs and a new TODO.

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

	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose),
	(gst_lpwsinc_class_init), (gst_lpwsinc_init), (process_32),
	(process_64), (lpwsinc_build_kernel), (lpwsinc_setup),
	(lpwsinc_get_unit_size), (lpwsinc_transform),
	(lpwsinc_set_property), (lpwsinc_get_property):
	* gst/filter/gstlpwsinc.h:
	Add double support, replace "this" with "self" as the former
	is a C++ keyword.
	Implement the frequency property in Hz instead of fraction
	of sampling frequency.
	Remove some unecessary FIXMEs and add some TODOs, add some
	required locking and refactor the kernel generation into a
	separate function that is also called when the properties
	change now.
	And use BaseTransform::transform instead of transform_ip
	as the convolution is done out of place anyway. Should
	be done in place later.

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

	* configure.ac:
	* gst/stereo/Makefile.am:
	* gst/stereo/gststereo.c: (gst_stereo_base_init),
	(gst_stereo_class_init), (gst_stereo_init),
	(gst_stereo_transform_ip), (gst_stereo_set_property),
	(gst_stereo_get_property):
	* gst/stereo/gststereo.h:
	Port the stereo element to GStreamer 0.10.

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

	submitted by: Raphael Higino <phhigino@gmail.com>

	* po/LINGUAS:
	* po/pt_BR.po:
	  Added Portuguese (Brazilian) translation.

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

	* po/uk.po:
	* po/vi.po:
	  Updated translations.

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

	* gst/filter/Makefile.am:
	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose),
	(gst_bpwsinc_base_init), (gst_bpwsinc_class_init),
	(gst_bpwsinc_init), (bpwsinc_setup):
	* gst/filter/gstbpwsinc.h:
	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose),
	(gst_lpwsinc_base_init), (gst_lpwsinc_class_init),
	(gst_lpwsinc_init), (lpwsinc_setup):
	* gst/filter/gstlpwsinc.h:
	Use GstAudioFilter as base class and don't leak the memory
	of the filter kernel and residue.

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

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

	* docs/plugins/gst-plugins-bad-plugins.args:
	* ext/libmms/gstmms.c: (gst_mms_class_init), (gst_mms_init),
	(gst_mms_start), (gst_mms_set_property), (gst_mms_get_property):
	* ext/libmms/gstmms.h:
	Add connection speed property to libmms. Fixes #464678.

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

	* gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	(gst_real_video_dec_activate_push), (open_library),
	(gst_real_video_dec_init), (gst_real_video_dec_finalize):
	* gst/real/gstrealvideodec.h:
	Remove some old unused vars.

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

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
	Small cleanups.

	* gst/real/gstrealvideodec.c: (gst_real_video_dec_chain),
	(open_library):
	Remove fragment and timestamp correction code from the decoder to make
	the caps and buffer contents compatible with matroska/ffdec_rvx0/...

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

	* po/POTFILES.skip:
	  Add POTFILES.skip with list of source files that aren't disted at the
	  moment but contain translatable strings. Should hopefully pacify
	  broken tools and make it clearer that these files are left out
	  intentionally (#461601 and others).

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

	Patch by: Ian Munro  <imunro at netspace net au>

	* gst/bayer/gstbayer2rgb.c:
	  Include our own "_stdint.h" instead of <stdint.h> (which may not
	  be available).

	* gst/speed/gstspeed.h:
	  Native HP-UX compiler dosn't seem to like enum typedefs before the
	  actual enum was defined.

	* gst/vmnc/vmncdec.c:
	  Fix wrong usage of GST_ELEMENT_ERROR macro (#461373).

2007-07-26  Edward Hervey  <bilboed@bilboed.com>

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
	Use the proper context variable when setting the password !
	LOG => WARNING for errors.
	Give proper path when opening the codec (needs a '/' at the end).

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

	* gst/real/Makefile.am:
	  And dist the new header file too.

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

	* gst/real/gstreal.h:
	Add missing header file.

2007-07-25  Julien MOUTTE  <julien@moutte.net>

	(gst_flv_demux_chain), (gst_flv_demux_pull_tag),
	(gst_flv_demux_change_state), (gst_flv_demux_dispose),
	(gst_flv_demux_init):
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvparse.c: (FLV_GET_STRING),
	(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
	(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	(gst_flv_parse_header):
	* gst/flv/gstflvparse.h: Handle not linked pads, try to make it
	reusable, more safety checks.

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

	* ext/timidity/gsttimidity.c: (gst_timidity_init),
	(gst_timidity_change_state), (plugin_init):
	* ext/timidity/gsttimidity.h:
	  Don't initialize timidity in plugin_init for similar reason as below.

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

	* ext/timidity/gstwildmidi.c: (wildmidi_open_config),
	(gst_wildmidi_init), (gst_wildmidi_change_state), (plugin_init):
	* ext/timidity/gstwildmidi.h:
	  Don't initialize wildmidi in plugin_init as it also setups audio
	  filters which is slow.

2007-07-24  Hans de Goede  <j.w.r.degoede@hhs.nl>

	reviewed by: Edward Hervey  <bilboed@bilboed.com>

	* gst/real/gstreal.c: (plugin_init):
	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps),
	(gst_real_audio_dec_finalize), (gst_real_audio_dec_set_property),
	(gst_real_audio_dec_get_property), (gst_real_audio_dec_class_init):
	* gst/real/gstrealvideodec.c: (open_library),
	(gst_real_video_dec_finalize), (gst_real_video_dec_set_property),
	(gst_real_video_dec_get_property), (gst_real_video_dec_class_init):
	* gst/real/gstrealvideodec.h:
	Improved search algorithm for location of real .so files.
	Fixes #393461

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

	* configure.ac:
	* ext/faad/gstfaad.c: (gst_faad_chain), (gst_faad_change_state):
	Use the new buffer clipping function from gstaudio here and
	require gst-plugins-base CVS.

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

	* configure.ac:
	  Sync liboil check with plugins-base.

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

	* gst/equalizer/gstiirequalizer.c:
	(gst_iir_equalizer_band_set_property),
	(gst_iir_equalizer_child_proxy_get_child_by_index),
	(gst_iir_equalizer_child_proxy_get_children_count),
	(gst_iir_equalizer_child_proxy_interface_init),
	(gst_iir_equalizer_class_init), (arg_to_scale), (setup_filter),
	(gst_iir_equalizer_compute_frequencies):
	* gst/equalizer/gstiirequalizer10bands.c:
	(gst_iir_equalizer_10bands_class_init):
	* gst/equalizer/gstiirequalizer3bands.c:
	(gst_iir_equalizer_3bands_class_init):
	* gst/equalizer/gstiirequalizernbands.c:
	  Better algorith for the center frequencies. Subtract band filters from
	  input for negative gains. Rework the gain mapping.

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

	* ext/dirac/Makefile.am:
	  Also include stdlib here.

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

	* tests/check/elements/.cvsignore:
	Fix the buildbot with the cvsignore it wants.

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

	* configure.ac:
	* gst/flv/Makefile.am:
	* gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
	(gst_flv_demux_cleanup), (gst_flv_demux_chain),
	(gst_flv_demux_pull_tag), (gst_flv_demux_pull_header),
	(gst_flv_demux_seek_to_prev_keyframe), (gst_flv_demux_loop),
	(gst_flv_demux_sink_activate), (gst_flv_demux_sink_activate_push),
	(gst_flv_demux_sink_activate_pull), (gst_flv_demux_sink_event),
	(gst_flv_demux_change_state), (gst_flv_demux_dispose),
	(gst_flv_demux_base_init), (gst_flv_demux_class_init),
	(gst_flv_demux_init), (plugin_init):
	* gst/flv/gstflvdemux.h:
	* gst/flv/gstflvparse.c: (FLV_GET_BEUI24), (FLV_GET_STRING),
	(gst_flv_demux_query_types), (gst_flv_demux_query),
	(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
	(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
	(gst_flv_parse_tag_type), (gst_flv_parse_header):
	* gst/flv/gstflvparse.h: Adds a first draft of an FLV demuxer.
	It does not do seeking yet, it supports pull and push mode so YES
	you can use it to play youtube videos directly from an HTTP uri.
	Not so much testing done yet but it parses metadata, reply to 
	duration queries, etc...

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

	* tests/check/Makefile.am:
	* tests/check/elements/timidity.c (GST_START_TEST, timidity_suite,
	  main):
	  Add typefind test for midi.

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

	* ext/soundtouch/gstpitch.cc:
	  If we receive a new segment event, don't try to push buffers out
	  in response (without first sending it on!).
	  Instead, flush internal buffers on receiving flush events.
	  Fixes playback after seeking.

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

	* gst/bayer/gstbayer2rgb.c: (gst_bayer2rgb_set_caps),
	(gst_bayer2rgb_reset):
	  Add basic docs. Use glibs mem routines.

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

	* gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create):
	  Add example to the docs. Fix buffer-offset-end and add some debug.

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

	* ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_open_device),
	(gst_jack_ring_buffer_acquire):
	  Add stdlib include here too.

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

	* examples/app/appsrc_ex.c:
	* examples/switch/switcher.c:
	* ext/neon/gstneonhttpsrc.c:
	* ext/timidity/gstwildmidi.c:
	* ext/x264/gstx264enc.c:
	* gst/mve/mveaudioenc.c: (mve_compress_audio):
	* gst/rtpmanager/gstrtpclient.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/spectrum/demo-audiotest.c:
	* gst/spectrum/demo-osssrc.c:
	* sys/dvb/gstdvbsrc.c:
	  Add stdlib include (free, atoi, exit).

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

	* ext/faad/gstfaad.c: (clip_outgoing_buffer):
	Fix buffer clipping to correctly clip to the segment stop.

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

	Patch by: Hans de Goede <j.w.r.degoede at hhs dot nl>

	* gst/modplug/gstmodplug.cc:
	add several missing supported mime-types to the modplug plugin.
	Fixes #456901.

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

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

	* gst/interleave/deinterleave.c: (gst_deinterleave_process):
	* gst/vmnc/vmncdec.c: (vmnc_make_buffer):
	  Fix build against core CVS.

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

	* REQUIREMENTS:
	  Sync with changes in -ugly.

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

	* REQUIREMENTS:
	  Add download location of libamrwb.

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

	* docs/plugins/inspect/plugin-amrwb.xml:
	* docs/plugins/inspect/plugin-equalizer.xml:
	* docs/plugins/inspect/plugin-multifile.xml:
	* docs/plugins/inspect/plugin-timidity.xml:
	* docs/plugins/inspect/plugin-wildmidi.xml:
	  Add missing inspect files. Fixes build (#454313).

	* ext/timidity/gstwildmidi.c: (wildmidi_open_config):
	  Scream a bit louder when initialisation fails.

	* gst-libs/README:
	* gst-libs/ext/.cvsignore:
	  Remove some cruft.

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

	* ext/ivorbis/Makefile.am:
	  Dist header files. Fixes #454078.

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

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

	* ext/amrwb/gstamrwbenc.c:
	  Fix comment start.

2007-07-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c (dvbsrc_details, ARG_DVBSRC_ADAPTER,
	  ARG_DVBSRC_FRONTEND, ARG_DVBSRC_DISEQC_SRC, ARG_DVBSRC_FREQUENCY,
	  ARG_DVBSRC_POLARITY, gst_dvbsrc_class_init, gst_dvbsrc_init,
	  gst_dvbsrc_set_property, gst_dvbsrc_get_property,
	  gst_dvbsrc_open_frontend, gst_dvbsrc_open_dvr, read_device,
	  gst_dvbsrc_create, gst_dvbsrc_set_pes_filters):
	* sys/dvb/gstdvbsrc.h (adapter_number, frontend_number):
	Removed property "device". Added properties "adapter" and "frontend".
	Fixes #453636.
	Rename freq property to frequency.

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

	* gst/videosignal/gstvideodetect.c: (gst_video_detect_class_init):
	Fix property descriptions.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbenc.c:
	* ext/amrwb/gstamrwbparse.c:
	  Also document AMR-WB elements.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	  Cleanup the section file so that -unused is empty again (and useful to
	  spot new docs). Add not yet added docs to sgml file. Add more header
	  to Makefile.am to make them introspectable.

	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gdp.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  Update the doc blobs.

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

	* gst/multifile/Makefile.am:
	* gst/multifile/gstmultifile.c:
	* gst/multifile/gstmultifilesink.c:
	* gst/multifile/gstmultifilesink.h:
	* gst/multifile/gstmultifilesrc.c:
	* gst/multifile/gstmultifilesrc.h:
	  Add .h files to be able to add it to the docs.

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

	* gst/modplug/gstmodplug.cc:
	  Activate doc section.

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

	* ext/timidity/gsttimidity.c:
	* ext/timidity/gstwildmidi.c:
	* ext/timidity/gstwildmidi.h:
	  Fix licence (both are GPL). Add element docs.

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

	* ext/musicbrainz/gsttrm.h:
	  Fix _get_type signature.

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

	* gst/replaygain/gstrgvolume.h:
	  Fix GObject macros.

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

	* ext/dc1394/gstdc1394.c: (gst_dc1394_src_fixate),
	(gst_dc1394_create), (gst_dc1394_caps_set_format_vmode_caps),
	(gst_dc1394_set_caps_framesize_range),
	(gst_dc1394_caps_set_framerate_list), (gst_dc1394_get_cam_caps),
	(gst_dc1394_framerate_frac_to_const),
	(gst_dc1394_open_cam_with_best_caps):
	Make a bunch of functions static, and move variable declarations
	to the start of blocks to avoid problems on older gcc.

	Make sure to unset value types.

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

	* ext/dc1394/gstdc1394.c: (gst_dc1394_set_caps_color):

	The correct fourcc for the 4:1:1 packed format is 'IYU1'.
	With CVS of ffmpegcolorspace from plugins-base, I can now
	get 30 fps from the iSight.

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

	* ext/dc1394/gstdc1394.c: (gst_dc1394_set_caps_color):
	Change a g_print to a GST_DEBUG message.

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

	* configure.ac:
	* ext/Makefile.am:
	* ext/dc1394/Makefile.am:
	* ext/dc1394/gstdc1394.c: (gst_dc1394_base_init),
	(gst_dc1394_class_init), (gst_dc1394_init),
	(gst_dc1394_src_fixate), (gst_dc1394_set_property),
	(gst_dc1394_get_property), (gst_dc1394_getcaps),
	(gst_dc1394_setcaps), (gst_dc1394_get_times), (gst_dc1394_create),
	(gst_dc1394_parse_caps), (gst_dc1394_change_state),
	(gst_dc1394_caps_set_format_vmode_caps),
	(gst_dc1394_set_caps_color), (gst_dc1394_set_caps_framesize),
	(gst_dc1394_set_caps_framesize_range),
	(gst_dc1394_caps_set_framerate_list),
	(gst_dc1394_framerate_const_to_frac),
	(gst_dc1394_get_all_dc1394_caps), (gst_dc1394_get_cam_caps),
	(gst_dc1394_framerate_frac_to_const),
	(gst_dc1394_open_cam_with_best_caps),
	(gst_dc1394_change_camera_transmission), (plugin_init):
	* ext/dc1394/gstdc1394.h:
	Commit new dc1394src element.
	Patch By: Antoine Tremblay < hexa00 at gmail dot com >
	Patch By: Eric Jonas < jonas at mit dot edu >
	Close: #387251

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

	* gst/videosignal/gstvideodetect.c: (gst_video_detect_class_init):
	Register new property as well.

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

	* gst/videosignal/gstvideodetect.c: (gst_video_detect_420),
	(gst_video_detect_set_property), (gst_video_detect_get_property):
	* gst/videosignal/gstvideodetect.h:
	Add property to adjust the center, sensitivity is now the distance from
	this center.

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

	* gst/videosignal/gstvideodetect.c: (gst_video_detect_420),
	(gst_video_detect_set_property), (gst_video_detect_get_property),
	(gst_video_detect_class_init):
	* gst/videosignal/gstvideodetect.h:
	* gst/videosignal/gstvideomark.c: (gst_video_mark_draw_box),
	(gst_video_mark_420), (gst_video_mark_set_property),
	(gst_video_mark_get_property), (gst_video_mark_class_init):
	* gst/videosignal/gstvideomark.h:
	Add left and bottom offset properties to control the position of the
	pattern.

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

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-gdp.xml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  Update docs with caps info.

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

	* gconf/.cvsignore:
	* gconf/Makefile.am:
	* gconf/gstreamer.schemas.in:
	  Remove dysfunctional directory (this stuff is in -good).

	* ext/sndfile/gstsf.c: (plugin_init):
	* sys/dvb/gstdvbsrc.c: (plugin_init):
	  Add i18n bindtextdomain stuff.

	* gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_class_init),
	(plugin_init):
	  Post an error message when returning GST_FLOW_ERROR; minor cleanups.

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

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

	Contributed by: Wenzheng Hu <db_lobster@163.com>

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

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

	Patch by: Jens Granseuer  <jensgr at gmx net>

	* gst/equalizer/gstiirequalizer.c:
	* gst/equalizer/gstiirequalizer10bands.c:
	* gst/equalizer/gstiirequalizer3bands.c:
	* gst/equalizer/gstiirequalizernbands.c:
	* gst/rtpmanager/async_jitter_queue.c:
	(async_jitter_queue_push_sorted):
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_chain):
	* gst/switch/gstswitch.c: (gst_switch_chain):
	  Build fixes for gcc-2.9x (no mid-block variable declarations etc.).
	  Fixes #450185.

2007-06-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* examples/switch/switcher.c (my_bus_callback, switch_timer,
	  last_message_received, main):
	* gst/switch/gstswitch.c (gst_switch_release_pad,
	  gst_switch_request_new_pad, gst_switch_chain, gst_switch_event,
	  gst_switch_set_property, gst_switch_get_property,
	  gst_switch_get_linked_pad, gst_switch_getcaps,
	  gst_switch_bufferalloc, gst_switch_dispose, gst_switch_init):
	* gst/switch/gstswitch.h (switch_mutex, GST_SWITCH_LOCK,
	  GST_SWITCH_UNLOCK):
	Add an extra lock to protect against certain variables instead of
	using the object lock. Fix case where caps are different in the
	sink pads causes deadlock. Update example to use different caps
	on each sink pad.

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

	* MAINTAINERS:
	Updating all the maintainers files

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

	* ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_init):
	* ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_init):
	* ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_init):
	* ext/audioresample/gstaudioresample.c:
	* ext/bz2/gstbz2dec.c: (gst_bz2dec_init):
	* ext/bz2/gstbz2enc.c: (gst_bz2enc_init):
	* ext/divx/gstdivxdec.c: (gst_divxdec_init):
	* ext/divx/gstdivxenc.c: (gst_divxenc_init):
	* ext/faac/gstfaac.c: (gst_faac_init):
	* ext/gsm/gstgsmdec.c: (gst_gsmdec_init):
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_init):
	* ext/hermes/gsthermescolorspace.c: (gst_hermes_colorspace_init):
	* ext/lcs/gstcolorspace.c: (gst_colorspace_init):
	* ext/libfame/gstlibfame.c: (gst_fameenc_init):
	* ext/snapshot/gstsnapshot.c: (gst_snapshot_init):
	* ext/spc/gstspc.c: (gst_spc_dec_init):
	* ext/swfdec/gstswfdec.c: (gst_swfdec_init):
	* ext/xvid/gstxvidenc.c: (gst_xvidenc_init):
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_init):
	* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_init):
	* gst/chart/gstchart.c: (gst_chart_init):
	* gst/colorspace/gstcolorspace.c: (gst_colorspace_init):
	* gst/festival/gstfestival.c: (gst_festival_init):
	* gst/freeze/gstfreeze.c: (gst_freeze_init):
	* gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_request_new_pad):
	* gst/mpeg1sys/gstmpeg1systemencode.c: (gst_system_encode_init):
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
	* gst/nsf/gstnsf.c: (gst_nsfdec_init):
	* gst/overlay/gstoverlay.c: (gst_overlay_init):
	* gst/passthrough/gstpassthrough.c: (passthrough_init):
	* gst/playondemand/gstplayondemand.c: (play_on_demand_init):
	* gst/smooth/gstsmooth.c: (gst_smooth_init):
	* gst/smoothwave/gstsmoothwave.c: (gst_smoothwave_init):
	* gst/speed/gstspeed.c: (speed_init):
	* gst/vbidec/gstvbidec.c: (gst_vbidec_init):
	* gst/videodrop/gstvideodrop.c: (gst_videodrop_init):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_init):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_init):
	* sys/qcam/gstqcamsrc.c: (gst_qcamsrc_init):
	Fix leaks.

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

	* RELEASE:
	* sys/Makefile.am:
	  Re-enable VCD source and fix up release notes.

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

	* gst/equalizer/gstiirequalizer.c:
	  Document parameter mapping.

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

	* gst/spectrum/gstspectrum.c: (gst_spectrum_event),
	(gst_spectrum_transform_ip):
	  Fix leaking buffers.
	  
	* tests/check/Makefile.am:
	* tests/check/elements/spectrum.c: (setup_spectrum),
	(cleanup_spectrum), (GST_START_TEST), (spectrum_suite), (main):
	  Add simple test for spectrum element.

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

	* ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_base_init),
	(gst_amrwbdec_class_init), (gst_amrwbdec_finalize),
	(gst_amrwbdec_event), (gst_amrwbdec_chain),
	(gst_amrwbdec_state_change):
	* ext/amrwb/gstamrwbdec.h:
	* ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_base_init),
	(gst_amrwbparse_pull_header), (gst_amrwbparse_loop):
	  Add newsegment and discont handling. Some code cleanups. Don't leak
	  the adapter, unref it in a new finalize method instead. Sync the
	  parser with the amr-nb changes.

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

	* configure.ac:
	Back to CVS.

	* gst-plugins-bad.doap:
	Add 0.10.5 to the doap file.

=== release 0.10.5 ===

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

	* configure.ac:
	  releasing 0.10.5, "Expedition to Lake Pahoe"

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

	* win32/vs6/gst_plugins_bad.dsw:
	* win32/vs6/libdshowsrcwrapper.dsp:
	* win32/vs6/libgstdshow.dsp:
	* win32/vs6/libgstmpegvideoparse.dsp:
	* win32/vs6/libgstneon.dsp:
	Convert line endings to CRLF and mark as binary files.

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

	* sys/Makefile.am:
	Disable VCD build because we're frozen..

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

	* configure.ac:
	* sys/Makefile.am:
	* sys/vcd/Makefile.am:
	* sys/vcd/vcdsrc.c: (gst_vcdsrc_setup_interfaces),
	(gst_vcdsrc_base_init), (gst_vcdsrc_class_init), (gst_vcdsrc_init),
	(gst_vcdsrc_msf), (gst_vcdsrc_recalculate),
	(gst_vcdsrc_set_property), (gst_vcdsrc_get_property),
	(gst_vcdsrc_create), (gst_vcdsrc_start), (gst_vcdsrc_stop),
	(gst_vcdsrc_uri_set_uri):
	* sys/vcd/vcdsrc.h:
	Port VCD element.

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

	* win32/MANIFEST:
	Add megvideoparse, libdshow and dshowsrcwrapper to win32
	MANIFEST.
	* win32/vs6/gst_plugins_bad.dsw:
	Remove qtdemux, directdraw, directsound and waveform project files
	from the workspace as they have been moved to -good.

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

	* po/POTFILES.in:
	Remove qtdemux from the translation list.

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-osxvideo.xml:
	* docs/plugins/inspect/plugin-videocrop.xml:
	* gst-plugins-bad.spec.in:
	* gst/videocrop/Makefile.am:
	* gst/videocrop/gstvideocrop.c:
	* gst/videocrop/gstvideocrop.h:
	* gst/videocrop/videocrop.vcproj:
	* sys/Makefile.am:
	* sys/osxvideo/Makefile.am:
	* sys/osxvideo/cocoawindow.h:
	* sys/osxvideo/cocoawindow.m:
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	* tests/check/Makefile.am:
	* tests/check/elements/videocrop.c:
	* tests/icles/Makefile.am:
	* tests/icles/videocrop-test.c:
	Move videocrop and osxvideo to -good.

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/qtdemux/Makefile.am:
	* gst/qtdemux/gstrtpxqtdepay.c:
	* gst/qtdemux/gstrtpxqtdepay.h:
	* gst/qtdemux/qtdemux.c:
	* gst/qtdemux/qtdemux.h:
	* gst/qtdemux/qtdemux.vcproj:
	* gst/qtdemux/qtdemux_dump.c:
	* gst/qtdemux/qtdemux_dump.h:
	* gst/qtdemux/qtdemux_fourcc.h:
	* gst/qtdemux/qtdemux_types.c:
	* gst/qtdemux/qtdemux_types.h:
	* gst/qtdemux/qtpalette.h:
	* gst/qtdemux/quicktime.c:
	* win32/MANIFEST:
	* win32/vs6/libgstqtdemux.dsp:
	Move qtdemux to -good.

	* gst-plugins-bad.spec.in:
	Update spec file to reflect wavpack & qtdemux moving to -good.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-waveform.xml:
	* sys/waveform/gstwaveformplugin.c:
	* sys/waveform/gstwaveformsink.c:
	* sys/waveform/gstwaveformsink.h:
	* win32/MANIFEST:
	* win32/vs6/libgstwaveform.dsp:
	Remove the waveform plugin now that it is in -good.

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/inspect/plugin-wavpack.xml:
	* ext/Makefile.am:
	* ext/wavpack/Makefile.am:
	* ext/wavpack/gstwavpack.c:
	* ext/wavpack/gstwavpackcommon.c:
	* ext/wavpack/gstwavpackcommon.h:
	* ext/wavpack/gstwavpackdec.c:
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackenc.c:
	* ext/wavpack/gstwavpackenc.h:
	* ext/wavpack/gstwavpackparse.c:
	* ext/wavpack/gstwavpackparse.h:
	* ext/wavpack/gstwavpackstreamreader.c:
	* ext/wavpack/gstwavpackstreamreader.h:
	* ext/wavpack/md5.c:
	* ext/wavpack/md5.h:
	* tests/check/Makefile.am:
	* tests/check/elements/wavpackdec.c:
	* tests/check/elements/wavpackenc.c:
	* tests/check/elements/wavpackparse.c:
	  Move wavpack to good.

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-directdraw.xml:
	* docs/plugins/inspect/plugin-directsound.xml:
	* sys/Makefile.am:
	* sys/directdraw/Makefile.am:
	* sys/directdraw/gstdirectdrawplugin.c:
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	* sys/directsound/Makefile.am:
	* sys/directsound/gstdirectsoundplugin.c:
	* sys/directsound/gstdirectsoundsink.c:
	* sys/directsound/gstdirectsoundsink.h:
	* win32/MANIFEST:
	* win32/gst.sln:
	* win32/vs6/libgstdirectdraw.dsp:
	* win32/vs6/libgstdirectsound.dsp:
	* win32/vs7/libgstdirectdraw.vcproj:
	* win32/vs7/libgstdirectsound.vcproj:
	* win32/vs8/libgstdirectdraw.vcproj:
	* win32/vs8/libgstdirectsound.vcproj:
	Remove DirectDraw & DirectSound plugins, as they've moved to Good

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

	* ext/timidity/gsttimidity.c: (gst_timidity_loop):
	* ext/timidity/gstwildmidi.c: (gst_wildmidi_loop):
	* gst/tta/gstttaparse.c: (gst_tta_parse_loop):
	  When driving the pipeline, also post an error when we get a
	  not-linked flow return from downstream.

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

	* docs/plugins/gst-plugins-bad-plugins.args:
	* sys/directdraw/gstdirectdrawsink.c:
	(gst_directdraw_sink_class_init):
	Rename the keep-aspect-ratio property to force-aspect-ratio to make
	it consistent with xvimagesink and ximagesink.

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

	* tests/icles/videocrop-test.c: (main):
	  Default to xvimagesink instead of autovideosink while
	  autovideosink/ghostpads/whatever don't handle the way we use it in
	  the way we expect it to.

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

	* configure.ac:
	  Bump requirements to released versions of core and -base, and remove
	  special-casing for equalizer and rtpmanager as it's not needed any
	  longer.

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

	* sys/glsink/glimagesink.c: (gst_glimage_sink_stop),
	(gst_glimage_sink_create_window), (gst_glimage_sink_init_display):
	Sprinkle in some XSync calls to avoid raciness with broken
	drivers (ATI) when re-using a single glimagesink.

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

	* gst/mpegvideoparse/mpegpacketiser.c:
	(mpeg_util_parse_extension_packet), (mpeg_util_parse_sequence_hdr),
	(mpeg_util_parse_picture_hdr):
	* gst/mpegvideoparse/mpegvideoparse.c:
	(mpegvideoparse_handle_sequence), (mpegvideoparse_drain_avail):
	Fix some silly bugs with calculating the guard sizes.
	Properly compare the old sequence header structure with the new one.
	Don't error out on an invalid sequence - just ignore it.

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

	* gst/real/gstrealvideodec.c: (gst_real_video_dec_decode):
	  Printf fix in debug statement; also print the right number there.

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

	* ext/sdl/Makefile.am:
	* ext/sdl/sdlvideosink.c: (gst_sdlv_process_events):
	  Add GST_CFLAGS, which apparently somehow fixes the build somewhere
	  (#444499); initialise variable to avoid false compiler warning.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* gst/videosignal/Makefile.am:
	* gst/videosignal/gstvideomark.c: (gst_video_mark_set_caps),
	(gst_video_mark_draw_box), (gst_video_mark_420),
	(gst_video_mark_transform_ip), (gst_video_mark_set_property),
	(gst_video_mark_get_property), (gst_video_mark_base_init),
	(gst_video_mark_class_init), (gst_video_mark_init),
	(gst_video_mark_get_type):
	* gst/videosignal/gstvideomark.h:
	* gst/videosignal/gstvideosignal.c: (plugin_init):
	Add plugin to generate a pattern detectable by videodetect.

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

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create):
	  Don't leak buffer when returning an error.

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

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

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	(gst_neonhttp_src_init), (gst_neonhttp_src_dispose),
	(gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property),
	(gst_neonhttp_src_start), (gst_neonhttp_src_do_seek),
	(gst_neonhttp_src_set_location),
	(gst_neonhttp_src_send_request_and_redirect),
	(gst_neonhttp_src_uri_get_uri), (gst_neonhttp_src_uri_set_uri):
	* ext/neon/gstneonhttpsrc.h:
	Deprecated "uri" property.  Clean up property descriptions.
	Change default User-Agent to the slightly more descriptive
	"GStreamer neonhttpsrc".
	Various other small cleanups, mostly property related.

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

	* ext/libmms/gstmms.h:
	  No reason to use gpointers instead of typed pointes here as far as I
	  can see.

	* ext/mythtv/gstmythtvsrc.c:
	* ext/neon/gstneonhttpsrc.c:
	* gst/switch/gstswitch.c:
	  Don't use gtk-doc magic markers for things that aren't meant to be
	  parsed by gtk-doc. Makes gtk-doc complain a bit less.

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-videosignal.xml:
	* gst/videosignal/Makefile.am:
	* gst/videosignal/gstvideoanalyse.c: (gst_video_analyse_set_caps),
	(gst_video_analyse_post_message), (gst_video_analyse_420),
	(gst_video_analyse_transform_ip), (gst_video_analyse_set_property),
	(gst_video_analyse_get_property), (gst_video_analyse_base_init),
	(gst_video_analyse_class_init), (gst_video_analyse_init),
	(gst_video_analyse_get_type):
	* gst/videosignal/gstvideoanalyse.h:
	* gst/videosignal/gstvideodetect.c: (gst_video_detect_set_caps),
	(gst_video_detect_post_message),
	(gst_video_detect_calc_brightness), (gst_video_detect_420),
	(gst_video_detect_transform_ip), (gst_video_detect_set_property),
	(gst_video_detect_get_property), (gst_video_detect_base_init),
	(gst_video_detect_class_init), (gst_video_detect_init),
	(gst_video_detect_get_type):
	* gst/videosignal/gstvideodetect.h:
	* gst/videosignal/gstvideosignal.c: (plugin_init):
	* gst/videosignal/gstvideosignal.h:
	Added videosignal plugin with two plugins to analyse video frames.
	Added videoanalyse to report about brightness and variance in video
	frames.
	Added videodetect to detect predefined patterns in a video signal.

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

	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	  More updates.

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

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-gstrtpmanager.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-rtpmanager.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-swfdec.xml:
	  Updates; update inspect info for rtpmanager => gstrtpmanager rename,
	  hopefully that makes the build bots happy again.

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

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/rtpmanager/gstrtpbin.c: (create_session), (create_stream),
	(gst_rtp_bin_class_init), (create_recv_rtp), (create_recv_rtcp),
	(create_send_rtp), (create_rtcp), (gst_rtp_bin_request_new_pad):
	* gst/rtpmanager/gstrtpclient.c: (create_stream),
	(gst_rtp_client_request_new_pad):
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_clear_pt_map), (gst_rtp_jitter_buffer_loop):
	* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
	* gst/rtpmanager/gstrtpptdemux.c:
	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(gst_rtp_session_request_new_pad):
	* gst/rtpmanager/gstrtpssrcdemux.c:
	Rename elements to avoid conflict with farsight elements with the same
	name. Fixes #430664.

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

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

	* sys/directdraw/gstdirectdrawsink.c:
	(gst_directdraw_sink_buffer_alloc),
	(gst_directdraw_sink_show_frame),
	(gst_directdraw_sink_check_primary_surface),
	(gst_directdraw_sink_check_offscreen_surface),
	(EnumModesCallback2), (gst_directdraw_sink_get_ddrawcaps),
	(gst_directdraw_sink_surface_create):
	* sys/directdraw/gstdirectdrawsink.h:
	  Fix more warnings when compiling with MingW (#439914).

2007-05-24  Sebastian Moutte  <sebastien@moutte.net>

	* docs/plugins/gst-plugins-bad-plugins.args:
	Remove directsoundsink property doc as this sink use the mixer
	interface now.
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	Add interfaces implemented by Windows sinks.
	* sys/directsound/gstdirectsoundsink.c:
	* sys/directsound/gstdirectsoundsink.h:
	Remove directsoundsink property  and implement the mixer interface.
	* win32/vs6/gst_plugins_bad.dsw:
	* win32/vs6/libgstdirectsound.dsp:
	Update project files.
	* gst-libs/gst/dshow/gstdshow.cpp:
	* gst-libs/gst/dshow/gstdshow.h:
	* gst-libs/gst/dshow/gstdshowfakesink.cpp:
	* gst-libs/gst/dshow/gstdshowfakesink.h:
	* gst-libs/gst/dshow/gstdshowfakesrc.cpp:
	* gst-libs/gst/dshow/gstdshowfakesrc.h:
	* gst-libs/gst/dshow/gstdshowinterface.cpp:
	* gst-libs/gst/dshow/gstdshowinterface.h:
	* win32/common/libgstdshow.def:
	* win32/vs6/libgstdshow.dsp:
	Add a new gst library which allow to create internal Direct Show
	graph (pipelines) to wrap Windows sources, decoders or encoders.
	It includes a DirectShow fake source and sink and utility functions.	
	* sys/dshowsrcwrapper/gstdshowaudiosrc.c:
	* sys/dshowsrcwrapper/gstdshowaudiosrc.h:
	* sys/dshowsrcwrapper/gstdshowsrcwrapper.c:
	* sys/dshowsrcwrapper/gstdshowsrcwrapper.h:
	* sys/dshowsrcwrapper/gstdshowvideosrc.c:
	* sys/dshowsrcwrapper/gstdshowvideosrc.h:
	* win32/vs6/libdshowsrcwrapper.dsp:
	Add a new plugin to wrap DirectShow sources on Windows.
	It gets data from any webcam, dv cam, micro. We could add 
	tv tunner card later.
	
2007-05-23  Sebastian Dröge  <slomo@circular-chaos.org>

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

	* ext/sdl/sdlvideosink.c:
	Separate the authors by newlines instead of nothing. Fixes #440774.

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

	* docs/plugins/inspect/plugin-rtpmanager.xml:
	Add doc xml file.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpclient.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init),
	(gst_rtp_jitter_buffer_clear_pt_map), (gst_rtp_jitter_buffer_loop):
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init),
	(gst_rtp_pt_demux_clear_pt_map):
	* gst/rtpmanager/gstrtpptdemux.h:
	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(rtcp_thread), (gst_rtp_session_clear_pt_map):
	* gst/rtpmanager/gstrtpsession.h:
	* gst/rtpmanager/gstrtpssrcdemux.c:
	(gst_rtp_ssrc_demux_class_init):
	Document stuff.
	Add clear-pt-map action signal where needed.

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

	* configure.ac:
	  Depend on gstreamer-0.10.12.1.
	
	* gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN,
	  _GstIirEqualizerBand, object, _GstIirEqualizerBandClass,
	  parent_class, gst_iir_equalizer_band_set_property,
	  gst_iir_equalizer_band_class_init, gst_iir_equalizer_band_get_type,
	  gst_iir_equalizer_child_proxy_get_child_by_index,
	  gst_iir_equalizer_child_proxy_get_children_count,
	  gst_iir_equalizer_child_proxy_interface_init, setup_filter,
	  gst_iir_equalizer_compute_frequencies,
	  gst_iir_equalizer_set_property, gst_iir_equalizer_get_property,
	  plugin_init):
	* gst/equalizer/gstiirequalizer.h (audiofilter):
	* gst/equalizer/gstiirequalizernbands.c (ARG_NUM_BANDS,
	  gst_iir_equalizer_nbands_base_init, gst_iir_equalizer_nbands_init,
	  gst_iir_equalizer_nbands_set_property):
	  Use new locking macros.

	* gst/filter/gstbpwsinc.c (bpwsinc_set_caps):
	  Add fixme.

	* gst/spectrum/gstspectrum.c (SPECTRUM_WINDOW_BASE,
	  SPECTRUM_WINDOW_LEN, gst_spectrum_init, gst_spectrum_set_property,
	  gst_spectrum_event, gst_spectrum_transform_ip):
	  Use new locking macros. Turn two fixed values into #defines.

2007-05-22  Edward Hervey  <edward@fluendo.com>

	* docs/plugins/Makefile.am:
	Also look for .m (objectivec) files.
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* sys/osxvideo/osxvideosink.m:
	Add documentation for element and properties.

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

	* ChangeLog:
	  ChangeLog surgery.
	* gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN,
	  _GstIirEqualizerBand, object, _GstIirEqualizerBandClass,
	  parent_class, gst_iir_equalizer_band_set_property,
	  gst_iir_equalizer_band_class_init, gst_iir_equalizer_band_get_type,
	  gst_iir_equalizer_child_proxy_get_child_by_index,
	  gst_iir_equalizer_child_proxy_get_children_count,
	  gst_iir_equalizer_child_proxy_interface_init, setup_filter,
	  gst_iir_equalizer_compute_frequencies, plugin_init):
	* tests/icles/equalizer-test.c:
	  Add fixme and comment for example.

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

	* gst/spectrum/gstspectrum.c (gst_spectrum_set_property,
	  gst_spectrum_event, gst_spectrum_transform_ip):
	  Use lock to protect from concurrent access.

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

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	(gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	Specify and use properties as unsigned int that are an unsigned int.

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

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	(gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config),
	(gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	* ext/wavpack/gstwavpackenc.h:
	Fixup docs, make the bitrate property an int as it should be and
	allow to set the different extra processing modes instead of only
	allowing none and the default one.

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

	* ext/wavpack/gstwavpackenc.c:
	Add missing audioconverts in the example pipelines of wavpackenc. As
	the wavpack stuff now needs input with 32 bit width (and random depth)
	this is needed now. The example pipelines for the parser and decoder
	are still fine.

2007-05-20  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  Fix docs build and hierarchy.

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

	* sys/directdraw/gstdirectdrawsink.c: (gst_ddrawsurface_finalize),
	(gst_directdraw_sink_buffer_alloc),
	(gst_directdraw_sink_get_ddrawcaps),
	(gst_directdraw_sink_surface_create):
	  Bunch of small fixes: remove static function that doesn't exist;
	  declare another one that does; printf format fix; use right macro
	  when specifying debug category; remove a bunch of unused variables;
	  #if 0 out an unused chunk of code (partially fixes #439914).

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

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample):
	* gst/switch/gstswitch.c: (gst_switch_chain):
	  Printf format fixes (#439910, #439911).

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

	* tests/check/Makefile.am:
	  Remove bits for deinterleave check which isn't in CVS yet.

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

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* gst/replaygain/Makefile.am:
	* gst/replaygain/gstrganalysis.c: (gst_rg_analysis_class_init),
	(gst_rg_analysis_start), (gst_rg_analysis_set_caps),
	(gst_rg_analysis_transform_ip), (gst_rg_analysis_event),
	(gst_rg_analysis_stop), (gst_rg_analysis_handle_tags),
	(gst_rg_analysis_handle_eos), (gst_rg_analysis_track_result),
	(gst_rg_analysis_album_result):
	* gst/replaygain/gstrganalysis.h:
	* gst/replaygain/gstrglimiter.c: (gst_rg_limiter_base_init),
	(gst_rg_limiter_class_init), (gst_rg_limiter_init),
	(gst_rg_limiter_set_property), (gst_rg_limiter_get_property),
	(gst_rg_limiter_transform_ip):
	* gst/replaygain/gstrglimiter.h:
	* gst/replaygain/gstrgvolume.c: (gst_rg_volume_base_init),
	(gst_rg_volume_class_init), (gst_rg_volume_init),
	(gst_rg_volume_set_property), (gst_rg_volume_get_property),
	(gst_rg_volume_dispose), (gst_rg_volume_change_state),
	(gst_rg_volume_sink_event), (gst_rg_volume_tag_event),
	(gst_rg_volume_reset), (gst_rg_volume_update_gain),
	(gst_rg_volume_determine_gain):
	* gst/replaygain/gstrgvolume.h:
	* gst/replaygain/replaygain.c: (plugin_init):
	* gst/replaygain/replaygain.h:
	* gst/replaygain/rganalysis.h:
	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/rganalysis.c: (send_eos_event),
	(GST_START_TEST):
	* tests/check/elements/rglimiter.c: (setup_rglimiter),
	(cleanup_rglimiter), (set_playing_state), (create_test_buffer),
	(verify_test_buffer), (GST_START_TEST), (rglimiter_suite), (main):
	* tests/check/elements/rgvolume.c: (event_func), (setup_rgvolume),
	(cleanup_rgvolume), (set_playing_state), (set_null_state),
	(send_eos_event), (send_tag_event), (test_buffer_new),
	(fail_unless_target_gain), (fail_unless_result_gain),
	(fail_unless_gain), (GST_START_TEST), (rgvolume_suite), (main):
	  Add replaygain playback elements (#412710).

2007-05-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* sys/glsink/glimagesink.c: (gst_glimage_sink_init_display):
	Update the cached caps after opening the display so that we report
	only the supported caps formats, not just the template caps.
	Fixes: #439405

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

	* ext/amrwb/gstamrwbdec.c (gst_amrwbdec_debug, GST_CAT_DEFAULT,
	  _do_init, gst_amrwbdec_base_init, gst_amrwbdec_class_init):
	* ext/amrwb/gstamrwbenc.c (gst_amrwbenc_debug, GST_CAT_DEFAULT,
	  _do_init, gst_amrwbenc_base_init, gst_amrwbenc_class_init):
	* ext/amrwb/gstamrwbparse.c (gst_amrwbparse_debug, GST_CAT_DEFAULT,
	  _do_init, gst_amrwbparse_base_init, gst_amrwbparse_class_init):
	  First round of cleanups, that use GST_BOILERPLATE, GST_ELEMENT_DETAILS,
	  GST_DEBUG_FUNCPTR and add log-category.

2007-05-17  Edward Hervey  <edward@fluendo.com>

	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	Remove the event-loop-in-separate-thread modifications, because MacOSX
	is $#@(*%$# ! For those wondering, the event handling needs to be done
	in the main thread after all..

2007-05-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/switch/gstswitch.c (ARG_0, ARG_NB_SOURCES, ARG_ACTIVE_SOURCE,
	  ARG_START_VALUE, ARG_STOP_VALUE, ARG_LAST_TS, ARG_QUEUE_BUFFERS,
	  parent_class, gst_switch_release_pad, gst_switch_request_new_pad,
	  gst_switch_chain, gst_switch_event, gst_switch_set_property,
	  gst_switch_get_property, gst_switch_getcaps, gst_switch_dispose,
	  unref_buffer, unref_buffers_and_destroy_list, gst_switch_init,
	  gst_switch_base_init, gst_switch_class_init):
	* gst/switch/gstswitch.h (need_to_send_newsegment, queue_buffers,
	  stop_value, start_value, current_start, last_ts, stored_buffers):
	Add handling of application provided stop and start values, allowing
	A/V sync across 2 switch elements.

2007-05-17  Edward Hervey  <edward@fluendo.com>

	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	Fix a stupid #if vs #ifdef bug. Should use the proper colorspace now.
	Use a separate thread/task for the cocoa event_loop, else it wouldn't
	stop.

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

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain),
	(gst_real_audio_dec_setcaps):
	* gst/real/gstrealvideodec.c: (gst_real_video_dec_chain):
	  Don't crash when we get a buffer and our input caps haven't been set
	  yet; also, don't leak all the input buffers (realaudiodec only).

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

	patch by: Stanislav Brabec <sbrabec@suse.cz>

	* configure.ac:
	* ext/amrwb/Makefile.am:
	* ext/amrwb/amrwb-code/Makefile.am:
	* ext/amrwb/amrwb-code/amrwb/Makefile.am:
	* ext/amrwb/amrwb-code/amrwb/README:
	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbdec.h (__GST_AMRWBDEC_H__):
	* ext/amrwb/gstamrwbenc.h (__GST_AMRWBENC_H__):
	* ext/amrwb/gstamrwbparse.c:
	* ext/amrwb/gstamrwbparse.h (__GST_AMRWBPARSE_H__):
	* gst-libs/Makefile.am:
	* gst-libs/ext/Makefile.am:
	* gst-libs/ext/amrwb/Makefile.am:
	* gst-libs/ext/amrwb/README:
	  Use external shared libamrwb. Fixes #423741 (with lots of cleanup).

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

	* ext/x264/gstx264enc.c (gst_x264_enc_init_encoder):
	  This needs a version check.

	* gst/bayer/Makefile.am:
	  Fix the build.

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

	* configure.ac:
	* sys/directdraw/Makefile.am:
	* sys/directsound/Makefile.am:
	  Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save
	  and restore the various flags in the directdraw/directsound
	  detection section. Apparently improves cross-compiling for win32
	  with mingw32 under some circumstances (#437539).

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

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	We always use fixed caps.

2007-05-14  David Schleef  <ds@schleef.org>

	* gst/rtpmanager/gstrtpbin.c:
	  g_hash_table_remove_all() only exists in 2.12.  Work around.

2007-05-14  David Schleef  <ds@schleef.org>

	* configure.ac:
	* gst/bayer/Makefile.am:
	* gst/bayer/gstbayer.c:
	* gst/bayer/gstbayer2rgb.c:
	  Add a Bayer-to-RGB converter.  You know you want one, uh-huh.
	  Partial fix for #314160.

2007-05-14  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/switch/gstswitch.c (ARG_ACTIVE_SOURCE, ARG_STOP_VALUE,
	  ARG_LAST_TS, parent_class, gst_switch_release_pad,
	  gst_switch_request_new_pad, gst_switch_chain, gst_switch_event,
	  gst_switch_set_property, gst_switch_get_property, gst_switch_getcaps,
	  gst_switch_dispose, gst_switch_init, gst_switch_class_init):
	* gst/switch/gstswitch.h (previous_sinkpad, nb_sinkpads, stop_value,
	  current_start, last_ts):
	Allow application to provide a stop timestamp, so a new segment
	update can be sent before switching.

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

	* gst/rtpmanager/async_jitter_queue.c:
	(async_jitter_queue_set_flushing_unlocked):
	Fix leak when flushing.

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_clear_pt_map),
	(gst_rtp_bin_class_init):
	* gst/rtpmanager/gstrtpbin.h:
	Add clear-pt-map signal.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_flush_stop),
	(gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_loop):
	Init clock-rate to -1 to mark unknow clock rate.
	Fix flushing.

2007-05-13  David Schleef  <ds@schleef.org>

	* gst/replaygain/rganalysis.c:
	  Fix wrong ifdef for visual C++.  Fixes: #437403.
	  By Ali Sabil <ali.sabil@gmail.com>.

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

	* ext/neon/gstneonhttpsrc.c:
	  Make redirection the default behavior.  Fixes #413818.

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

	* gst/qtdemux/qtdemux.c (gst_qtdemux_move_stream,
	  gst_qtdemux_loop_state_header, gst_qtdemux_activate_segment,
	  gst_qtdemux_prepare_current_sample, gst_qtdemux_combine_flows,
	  gst_qtdemux_loop_state_movie, gst_qtdemux_loop,
	  qtdemux_parse_segments, qtdemux_parse_trak):
	* gst/rtpmanager/rtpsession.c (rtp_session_get_bandwidth,
	  rtp_session_get_rtcp_bandwidth, rtp_session_get_cname,
	  rtp_session_get_name, rtp_session_get_email, rtp_session_get_phone,
	  rtp_session_get_location, rtp_session_get_tool,
	  rtp_session_process_bye, session_report_blocks):
	* gst/rtpmanager/rtpsource.c (rtp_source_process_rtp,
	  rtp_source_send_rtp, rtp_source_process_sr, rtp_source_process_rb):
	  More format arg fixing (spotted by Ali Sabil <ali.sabil@gmail.com>).

	* gst/switch/Makefile.am:
	  Add require libraries(spotted by Ali Sabil <ali.sabil@gmail.com>).

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

	* gst/rtpmanager/async_jitter_queue.c (tail_buffer_duration,
	  async_jitter_queue_ref, async_jitter_queue_ref_unlocked,
	  async_jitter_queue_set_low_threshold,
	  async_jitter_queue_length_ts_units_unlocked,
	  async_jitter_queue_unref_and_unlock, async_jitter_queue_unref,
	  async_jitter_queue_lock, async_jitter_queue_push,
	  async_jitter_queue_push_unlocked, async_jitter_queue_push_sorted,
	  async_jitter_queue_pop_intern_unlocked, async_jitter_queue_pop,
	  async_jitter_queue_pop_unlocked, async_jitter_queue_length_unlocked,
	  async_jitter_queue_set_flushing_unlocked,
	  async_jitter_queue_unset_flushing_unlocked):
	  Format arg fix (spotted by Ali Sabil <ali.sabil@gmail.com>).

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

	* common/m4/gst-x11.m4:
	  Restore CFLAGS and LIBS.

	* configure.ac:
	  Revert previous patch.

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

	Patch by: Ali Sabil <ali.sabil@gmail.com>

	* configure.ac:
	  Save and restore CFLAGS for OpenGL check. Fixes #437260.
	

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

	* docs/plugins/gst-plugins-bad-plugins.args:
	Add directraw and directsound sinks properties.

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

	* configure.ac:
	  Fix --disable-external (hopefully).

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_query):
	Pass queries upstream.

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

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps),
	(gst_real_audio_dec_finalize):
	* gst/real/gstrealaudiodec.h:
	* gst/real/gstrealvideodec.c: (open_library), (close_library):
	* gst/real/gstrealvideodec.h:
	  Use GModule instead of using dlsym() directly. Fixes #430598.

2007-05-04  Sebastien Moutte <sebastien@moutte.net>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  Add docs for Windows sinks.

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

	* gst/speed/gstspeed.c: (speed_src_event), (speed_sink_event),
	(speed_chain), (speed_change_state):
	  Fix event handling a bit by replacing completely dubious code
	  written by someone else with completely dubious code written
	  by me. Should at least fix #412077 though.

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

	* gst/speed/gstspeed.c: (speed_src_query), (speed_chain),
	(plugin_init):
	  Add debug category; use gst_pad_query_peer_*() utility functions;
	  use gst_util_scale*(); add gtk-doc blurb.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_query):
	Add some debug info.

	* gst/rtpmanager/rtpsession.c: (rtp_session_init),
	(rtp_session_send_rtp):
	Store real user name in the session.

2007-05-03  Zaheer Abbas Merali  <<zaheerabbas at merali dot org>>

	* configure.ac:
	* examples/Makefile.am:
	* examples/switch/switcher.c (loop, my_bus_callback, switch_timer,
	  last_message_received, main):
	* gst/switch/gstswitch.c (GST_CAT_DEFAULT, gst_switch_details,
	  gst_switch_src_factory, parent_class, gst_switch_release_pad,
	  gst_switch_request_new_pad, gst_switch_chain, gst_switch_event,
	  gst_switch_set_property, gst_switch_get_property,
	  gst_switch_get_linked_pad, gst_switch_getcaps,
	  gst_switch_bufferalloc, gst_switch_get_linked_pads,
	  gst_switch_dispose, gst_switch_init, gst_switch_base_init,
	  gst_switch_class_init):
	* gst/switch/gstswitch.h (GstSwitch, GstSwitchClass, _GstSwitch,
	  element, active_sinkpad, srcpad, nb_sinkpads, newsegment_events,
	  need_to_send_newsegment):
	Port switch element and example program to 0.10.

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

	* ext/wavpack/gstwavpack.c: (plugin_init):
	Call bindtextdomain() to get localized strings.
	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
	(gst_wavpack_parse_handle_seek_event),
	(gst_wavpack_parse_push_buffer), (gst_wavpack_parse_chain):
	* ext/wavpack/gstwavpackparse.h:
	Handle DISCONT buffers by correctly setting the DISCONT flag
	on outgoing buffers when necessary.
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_handle_seek_event)
	Send newsegment from the streaming thread.

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

	* ext/wavpack/gstwavpackparse.c:
	(gst_wavpack_parse_handle_seek_event):
	Remove old workaround that was needed when seeking after the last
	sample. With the fixed error handling this works now as expected
	without pushing the last sample although it wasn't requested.

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

	* ext/wavpack/gstwavpackparse.c:
	(gst_wavpack_parse_handle_seek_event):
	Handle segment seeks in the seek event handler, correctly work with
	stop position == -1 and instead of stopping the task on seek just
	pause it.

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

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_loop):
	Add handling for segment seeks.

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

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_pull_buffer),
	(gst_wavpack_parse_create_src_pad),
	(gst_wavpack_parse_resync_loop), (gst_wavpack_parse_loop),
	(gst_wavpack_parse_chain):
	Correctly handle errors, especially in the loop function. Before it
	was easy to get the task paused but no error being posted on the bus.

2007-04-30  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/async_jitter_queue.c: (signal_waiting_threads),
	(async_jitter_queue_pop_intern_unlocked):
	Fix the case where the buffer underruns and does not block.

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init),
	(create_recv_rtcp), (create_send_rtp), (create_rtcp),
	(gst_rtp_bin_request_new_pad):
	Rename RTCP send pad, like in the session manager.
	Allow getting an RTCP pad for receiving even if we don't receive RTP.
	fix handling of send_rtp_src pad.

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	When no pt map could be found, fall back to the sinkpad caps.

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp),
	(gst_rtp_session_send_rtp), (create_recv_rtp_sink),
	(create_recv_rtcp_sink), (create_send_rtp_sink),
	(create_send_rtcp_src):
	Fix pad names.

	* gst/rtpmanager/rtpsession.c: (source_push_rtp),
	(rtp_session_create_source), (rtp_session_process_sr),
	(rtp_session_send_rtp), (session_start_rtcp):
	* gst/rtpmanager/rtpsession.h:
	Unlock session when performing a callback.
	Add callbacks for the internal session object.
	Fix sending of RTP packets.
	first attempt at adding NTP times in the SR packets.
	Small debug and doc improvements.

	* gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp):
	Update stats for SR reports.

2007-04-29  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_send_rtcp):
	Remove debug.

	* gst/rtpmanager/rtpsession.c: (rtp_session_process_sr),
	(rtp_session_process_sdes), (calculate_rtcp_interval),
	(rtp_session_next_timeout), (session_report_blocks):
	* gst/rtpmanager/rtpstats.c: (rtp_stats_calculate_rtcp_interval):
	Improve debugging
	Fix interval for BYE/RTCP packets.

2007-04-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	  Commit result of running scanobj-update

2007-04-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* autogen.sh:
	  Require automake 1.7
	* ext/alsaspdif/Makefile.am:
	* ext/divx/Makefile.am:
	* ext/ivorbis/Makefile.am:
	* ext/musicbrainz/Makefile.am:
	* ext/neon/Makefile.am:
	* ext/sdl/Makefile.am:
	* ext/swfdec/Makefile.am:
	* ext/theora/Makefile.am:
	* ext/wavpack/Makefile.am:
	* ext/xvid/Makefile.am:
	* gst/modplug/Makefile.am:
	  Fix up Makefile.am accordingly.

2007-04-29  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-faac.xml:
	* docs/plugins/inspect/plugin-faad.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* docs/plugins/inspect/plugin-gsm.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-jack.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	* docs/plugins/inspect/plugin-videocrop.xml:
	* docs/plugins/inspect/plugin-wavpack.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	* docs/plugins/inspect/plugin-xvid.xml:
	  Add jack and update.

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

	* configure.ac:
	  Don't build equalizer unless we have core from CVS (it won't
	  work with earlier versions due to GstChildProxy brokeness).
	  Also up requirements to last released core/base.

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

	* gst/rtpmanager/gstrtpsession.c: (rtcp_thread),
	(gst_rtp_session_send_rtcp), (gst_rtp_session_reconsider):
	Move reconsideration code to the rtpsession object.
	Simplify timout handling and add reconsideration.

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(rtp_session_init), (rtp_session_finalize), (on_bye_ssrc),
	(on_bye_timeout), (on_timeout), (rtp_session_set_callbacks),
	(obtain_source), (rtp_session_create_source),
	(update_arrival_stats), (rtp_session_process_rtp),
	(rtp_session_process_sr), (rtp_session_process_rr),
	(rtp_session_process_bye), (rtp_session_process_rtcp),
	(calculate_rtcp_interval), (rtp_session_send_bye),
	(rtp_session_next_timeout), (session_start_rtcp),
	(session_report_blocks), (session_cleanup), (session_sdes),
	(session_bye), (is_rtcp_time), (rtp_session_on_timeout):
	* gst/rtpmanager/rtpsession.h:
	Handle timeout of inactive sources and senders.
	Implement BYE scheduling.

	* gst/rtpmanager/rtpsource.c: (calculate_jitter),
	(rtp_source_process_sr), (rtp_source_get_last_sr),
	(rtp_source_get_last_rb):
	* gst/rtpmanager/rtpsource.h:
	Add members to check for timeouts.

	* gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults),
	(rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter),
	(rtp_stats_calculate_bye_interval):
	* gst/rtpmanager/rtpstats.h:
	Use RFC algorithm for calculating the reporting interval.

2007-04-26  Edward Hervey  <edward@fluendo.com>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/inspect/plugin-osxvideo.xml:
	Add documentation for osxvideo

2007-04-25  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/gstrtpsession.c: (rtcp_thread):
	Implement forward and reverse reconsideration.

	* gst/rtpmanager/rtpsession.c: (rtp_session_get_num_sources),
	(rtp_session_get_num_active_sources), (rtp_session_process_sr),
	(session_report_blocks):
	* gst/rtpmanager/rtpsession.h:
	Small cleanups.

2007-04-25  Wim Taymans  <wim@fluendo.com>

	reviewed by: <delete if not using a buddy>

	* gst/rtpmanager/gstrtpbin.c: (create_stream),
	(gst_rtp_bin_class_init), (gst_rtp_bin_set_property),
	(gst_rtp_bin_get_property):
	* gst/rtpmanager/gstrtpbin.h:
	Make default jitterbuffer latency configurable.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init),
	(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_loop),
	(gst_rtp_jitter_buffer_set_property),
	(gst_rtp_jitter_buffer_get_property):
	Debuging cleanups.

2007-04-25  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_change_state):
	Report NO_PREROLL when going to PAUSED.

	* gst/rtpmanager/gstrtpsession.c: (rtcp_thread):
	Don't send RTCP right before we are shutting down.

	* gst/rtpmanager/rtpsession.c: (rtp_session_process_rtp),
	(rtp_session_process_sr), (session_report_blocks),
	(rtp_session_perform_reporting):
	Improve report blocks.

	* gst/rtpmanager/rtpsource.c: (calculate_jitter), (init_seq),
	(rtp_source_process_rtp), (rtp_source_process_sr),
	(rtp_source_process_rb), (rtp_source_get_last_sr),
	(rtp_source_get_last_rb):
	* gst/rtpmanager/rtpsource.h:
	* gst/rtpmanager/rtpstats.h:
	Cleanups, add methods to access stats. 

2007-04-25  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/gstrtpbin.c: (create_rtcp):
	fix for pad name change

	* gst/rtpmanager/gstrtpsession.c: (rtcp_thread),
	(gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate):
	Fix for renamed methods.

	* gst/rtpmanager/rtpsession.c: (rtp_session_init),
	(rtp_session_finalize), (rtp_session_set_cname),
	(rtp_session_get_cname), (rtp_session_set_name),
	(rtp_session_get_name), (rtp_session_set_email),
	(rtp_session_get_email), (rtp_session_set_phone),
	(rtp_session_get_phone), (rtp_session_set_location),
	(rtp_session_get_location), (rtp_session_set_tool),
	(rtp_session_get_tool), (rtp_session_set_note),
	(rtp_session_get_note), (source_push_rtp), (obtain_source),
	(rtp_session_add_source), (rtp_session_get_source_by_ssrc),
	(rtp_session_create_source), (rtp_session_process_rtp),
	(rtp_session_process_sr), (rtp_session_process_sdes),
	(rtp_session_process_rtcp), (rtp_session_send_rtp),
	(rtp_session_get_reporting_interval), (session_report_blocks),
	(session_sdes), (rtp_session_perform_reporting):
	* gst/rtpmanager/rtpsession.h:
	Prepare for implementing SSRC sampling.
	Create SSRC for the session. 
	Add methods to set the SDES entries.
	fix accounting of senders/receivers.
	Implement SR/RR/SDES RTCP reporting.

	* gst/rtpmanager/rtpsource.c: (rtp_source_init), (init_seq),
	(rtp_source_process_rtp), (rtp_source_process_sr):
	* gst/rtpmanager/rtpsource.h:
	Implement extended sequence number.

	* gst/rtpmanager/rtpstats.c: (rtp_stats_calculate_rtcp_interval):
	* gst/rtpmanager/rtpstats.h:
	Rename some fields.

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

	* gst/y4m/gsty4mencode.c: (gst_y4m_encode_init),
	(gst_y4m_encode_setcaps):
	* tests/check/elements/y4menc.c: (GST_START_TEST):
	  Plug some leaks; try to make build bot happy again.

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

	* gst/Makefile.am:
	  Fix distcheck, hopefully (rtpmanager is already in GST_PLUGINS_ALL).

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

	* gst/rtpmanager/rtpsession.c: (rtp_session_finalize):
	  Don't use GLib-2.10 API, we only require GLib 2.8 at the moment.

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

	* ext/faad/gstfaad.c: (gst_faad_open_decoder):
	  FAAD fails to decode low (e.g. 8 kHz) sample rate AAC data in
	  quicktime because of sample rate mismatches.
	  Reenable overriding the implicit SBR behaviour (accidently changed?)
	  to allow playback of these files.

2007-04-19  David Schleef  <ds@schleef.org>

	* configure.ac:
	  Change rtpmanager disabling to keep -bad releasable.

2007-04-18  David Schleef  <ds@schleef.org>

	* configure.ac:
	* gst/Makefile.am:
	  Fix wtay's hack.  rtpmanager is disabled in configure.ac on
	  line 268.

2007-04-18  Wim Taymans  <wim@fluendo.com>

	* gst/Makefile.am:
	Add rtpmanager dir to dist.

2007-04-18  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	Disable rtpmanager for now because it depends on CVS -base.

	* gst/rtpmanager/Makefile.am:
	Added new files for session manager.

	* gst/rtpmanager/gstrtpjitterbuffer.h:
	* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	(create_stream), (pt_map_requested), (new_ssrc_pad_found):
	Some cleanups. 
	the session manager can now also request a pt-map.

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init),
	(gst_rtp_session_class_init), (gst_rtp_session_init),
	(gst_rtp_session_finalize), (rtcp_thread), (start_rtcp_thread),
	(stop_rtcp_thread), (gst_rtp_session_change_state),
	(gst_rtp_session_process_rtp), (gst_rtp_session_send_rtp),
	(gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate),
	(gst_rtp_session_get_time), (gst_rtp_session_event_recv_rtp_sink),
	(gst_rtp_session_chain_recv_rtp),
	(gst_rtp_session_event_recv_rtcp_sink),
	(gst_rtp_session_chain_recv_rtcp),
	(gst_rtp_session_event_send_rtp_sink),
	(gst_rtp_session_chain_send_rtp), (create_send_rtcp_src),
	(gst_rtp_session_request_new_pad):
	* gst/rtpmanager/gstrtpsession.h:
	We can ask for pt-map now too when the session manager needs it.
	Hook up to the new session manager, implement the needed callbacks for
	pushing data, getting clock time and requesting clock-rates.
	Rename rtcp_src to send_rtcp_src to make it clear that this RTCP is to
	be send to clients.
	Add code to start and stop the thread that will schedule RTCP through
	the session manager.

	* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
	(rtp_session_init), (rtp_session_finalize),
	(rtp_session_set_property), (rtp_session_get_property),
	(on_new_ssrc), (on_ssrc_collision), (on_ssrc_validated),
	(on_bye_ssrc), (rtp_session_new), (rtp_session_set_callbacks),
	(rtp_session_set_bandwidth), (rtp_session_get_bandwidth),
	(rtp_session_set_rtcp_bandwidth), (rtp_session_get_rtcp_bandwidth),
	(source_push_rtp), (source_clock_rate), (check_collision),
	(obtain_source), (rtp_session_add_source),
	(rtp_session_get_num_sources),
	(rtp_session_get_num_active_sources),
	(rtp_session_get_source_by_ssrc),
	(rtp_session_get_source_by_cname), (rtp_session_create_source),
	(update_arrival_stats), (rtp_session_process_rtp),
	(rtp_session_process_sr), (rtp_session_process_rr),
	(rtp_session_process_sdes), (rtp_session_process_bye),
	(rtp_session_process_app), (rtp_session_process_rtcp),
	(rtp_session_send_rtp), (rtp_session_get_rtcp_interval),
	(rtp_session_produce_rtcp):
	* gst/rtpmanager/rtpsession.h:
	The advanced beginnings of the main session manager that handles the
	participant database of RTPSources, SSRC probation, SSRC collisions,
	parse RTCP to update source stats. etc..

	* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
	(rtp_source_init), (rtp_source_finalize), (rtp_source_new),
	(rtp_source_set_callbacks), (rtp_source_set_as_csrc),
	(rtp_source_set_rtp_from), (rtp_source_set_rtcp_from),
	(push_packet), (get_clock_rate), (calculate_jitter),
	(rtp_source_process_rtp), (rtp_source_process_bye),
	(rtp_source_send_rtp), (rtp_source_process_sr),
	(rtp_source_process_rb):
	* gst/rtpmanager/rtpsource.h:
	Object that encapsulates an SSRC and its state in the database.
	Calculates the jitter and transit times of data packets.

	* gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults),
	(rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter):
	* gst/rtpmanager/rtpstats.h:
	Various stats regarding the session and sources.
	Used to calculate the RTCP interval.

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

	* gst/app/Makefile.am:
	  Fix CFLAGS and hopefully #430594.

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

	* gst/nsf/types.h:
	  Rename #ifndef header guard symbol to something less generic, so
	  types.h doesn't get skipped over when compiling on MingW. Include
	  GLib headers and use those to set the endianness and the basic
	  types so that this isn't entirely broken for non-x86 architectures.

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

	* gst/mve/gstmvedemux.c: (gst_mve_audio_init):
	  Use G_LITTLE_ENDIAN instead of LITTLE_ENDIAN, so stuff compiles on
	  MingW (no idea though why we add a BYTE_ORDER endianness field if
	  the audio is compressed).

2007-04-14  Sebastien Moutte <sebastien@moutte.net>

	* docs/plugins/inspect/plugin-directdraw.xml:
	* docs/plugins/inspect/plugin-directsound.xml:
	* docs/plugins/inspect/plugin-waveform.xml:
	  Add xml doc files for Windows sinks
	* win32/vs6/libgstqtdemux.dsp:
	* win32/vs6/libgstmpegvideoparse.dsp:
	* win32/vs6/gst_plugins_bad.dsw:
	 Update projects files.
	
2007-04-13  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	(gst_rtp_bin_init), (gst_rtp_bin_finalize), (new_ssrc_pad_found),
	(create_recv_rtp), (gst_rtp_bin_request_new_pad):
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpclient.c:
	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(gst_rtp_session_init), (gst_rtp_session_finalize),
	(gst_rtp_session_event_recv_rtp_sink),
	(gst_rtp_session_event_recv_rtcp_sink),
	(gst_rtp_session_chain_recv_rtcp),
	(gst_rtp_session_request_new_pad):
	Protect lists and structures with locks.
	Return FLOW_OK from RTCP messages for now.

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

	* gst/qtdemux/qtdemux.c:
	Make timescale 32 bits again so we don't screw up the pts_offset
	calculations.

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

	* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	(create_stream), (gst_rtp_bin_class_init), (pt_map_requested):
	Emit pt map requests and cache results.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init),
	(gst_jitter_buffer_sink_parse_caps),
	(gst_jitter_buffer_sink_setcaps),
	(gst_rtp_jitter_buffer_get_clock_rate),
	(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	Emit request-pt-map signals.

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

	* gst/rtpmanager/gstrtpbin-marshal.list:
	Some more custom marshallers.

	* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
	(clock_rate_request), (create_stream), (gst_rtp_bin_class_init),
	(pt_map_requested), (new_ssrc_pad_found), (create_recv_rtp):
	* gst/rtpmanager/gstrtpbin.h:
	Prepare for caching pt maps.
	Connect to signals to collect pt maps.

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_class_init),
	(gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_loop):
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	Add request_clock_rate signal.
	Use scale insteat of scale_int because the later does not deal with
	negative numbers.

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init),
	(gst_rtp_pt_demux_chain):
	* gst/rtpmanager/gstrtpptdemux.h:
	Implement request-pt-map signal.

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

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	(qtdemux_parse_samples), (qtdemux_parse_segments),
	(qtdemux_parse_trak), (qtdemux_parse_tree):
	* gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_mdhd):
	Handle version 1 mdhd atoms to get extended precision durations.
	Fixes #426972.

2007-04-10  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/.cvsignore:
	* gst/rtpmanager/Makefile.am:
	* gst/rtpmanager/gstrtpbin-marshal.list:
	Added custom marshallers for signals.

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
	* gst/rtpmanager/gstrtpbin.h:
	Prepare for emiting pt map signals.

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init):
	* gst/rtpmanager/gstrtpssrcdemux.c:
	(gst_rtp_ssrc_demux_class_init):
	Fix signals.

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

	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init),
	(gst_rtp_bin_init), (gst_rtp_bin_provide_clock):
	* gst/rtpmanager/gstrtpbin.h:
	Provide a clock.

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

	* gst/rtpmanager/gstrtpbin.c: (create_rtcp):
	Fix pad template name parsing.

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

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_chain),
	(gst_rtp_jitter_buffer_loop):
	Add some debug and comments.
	Fix double unref() in error cases.

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

	* gst/qtdemux/gstrtpxqtdepay.c: (gst_rtp_xqt_depay_process),
	(gst_rtp_xqt_depay_change_state):
	* gst/qtdemux/gstrtpxqtdepay.h:
	Try to recover from packet loss a little better.

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

	* gst/rtpmanager/gstrtpbin.c: (find_session_by_id),
	(create_session), (find_stream_by_ssrc), (create_stream),
	(gst_rtp_bin_class_init), (new_payload_found),
	(new_ssrc_pad_found), (create_recv_rtp), (create_recv_rtcp),
	(create_send_rtp), (create_rtcp):
	* gst/rtpmanager/gstrtpbin.h:
	Add debugging category.
	Added RTPStream to manage stream per SSRC, each with its own
	jitterbuffer and ptdemux.
	Added SSRCDemux.
	Connect to various SSRC and PT signals and create ghostpads, link stuff.


	* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
	Added rtpbin to elements.

	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
	Fix caps and forward GstFlowReturn

	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
	(gst_rtp_session_event_recv_rtp_sink),
	(gst_rtp_session_chain_recv_rtp),
	(gst_rtp_session_event_recv_rtcp_sink),
	(gst_rtp_session_chain_recv_rtcp),
	(gst_rtp_session_event_send_rtp_sink),
	(gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
	(create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src),
	(gst_rtp_session_request_new_pad):
	Add debug category.
	Add event handling

	* gst/rtpmanager/gstrtpssrcdemux.c: (find_rtp_pad_for_ssrc),
	(create_rtp_pad_for_ssrc), (gst_rtp_ssrc_demux_class_init),
	(gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_chain),
	(gst_rtp_ssrc_demux_change_state):
	* gst/rtpmanager/gstrtpssrcdemux.h:
	Add debug category.
	Add new-pt-pad signal.

2007-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

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

	* po/LINGUAS:
	* po/da.po:
	  Added Danish translation.

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

	* gst/rtpmanager/Makefile.am:
	* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
	* gst/rtpmanager/gstrtpssrcdemux.c: (find_pad_for_ssrc),
	(create_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init),
	(gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_init),
	(gst_rtp_ssrc_demux_finalize), (gst_rtp_ssrc_demux_sink_event),
	(gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_src_event),
	(gst_rtp_ssrc_demux_change_state):
	* gst/rtpmanager/gstrtpssrcdemux.h:
	Added simple SSRC demuxer.

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

	* ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_open_device),
	(gst_jack_ring_buffer_acquire):
	  Try t better name clients. properly handle return codes when re-
	  establishing links.

2007-04-03  David Schleef  <ds@schleef.org>

	* sys/glsink/glimagesink.c:
	  Fix handling of video/x-raw-yuv.  Add overlay handling.

2007-04-03  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/gstrtpbin.c: (find_session_by_id),
	(create_session), (gst_rtp_bin_base_init), (create_recv_rtp),
	(create_recv_rtcp), (create_send_rtp), (create_rtcp),
	(gst_rtp_bin_request_new_pad):
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpclient.c:
	Some more ghostpad magic.

2007-04-03  Wim Taymans  <wim@fluendo.com>

	* gst/rtpmanager/Makefile.am:
	Add .h file so it can be disted properly.

2007-04-03  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* gst/rtpmanager/Makefile.am:
	* gst/rtpmanager/async_jitter_queue.c: (async_jitter_queue_new),
	(signal_waiting_threads), (async_jitter_queue_ref),
	(async_jitter_queue_ref_unlocked),
	(async_jitter_queue_set_low_threshold),
	(async_jitter_queue_set_high_threshold),
	(async_jitter_queue_set_max_queue_length),
	(async_jitter_queue_get_g_queue), (calculate_ts_diff),
	(async_jitter_queue_length_ts_units_unlocked),
	(async_jitter_queue_unref_and_unlock), (async_jitter_queue_unref),
	(async_jitter_queue_lock), (async_jitter_queue_unlock),
	(async_jitter_queue_push), (async_jitter_queue_push_unlocked),
	(async_jitter_queue_push_sorted),
	(async_jitter_queue_push_sorted_unlocked),
	(async_jitter_queue_insert_after_unlocked),
	(async_jitter_queue_pop_intern_unlocked), (async_jitter_queue_pop),
	(async_jitter_queue_pop_unlocked), (async_jitter_queue_length),
	(async_jitter_queue_length_unlocked),
	(async_jitter_queue_set_flushing_unlocked),
	(async_jitter_queue_unset_flushing_unlocked),
	(async_jitter_queue_set_blocking_unlocked):
	* gst/rtpmanager/async_jitter_queue.h:
	* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init),
	(gst_rtp_bin_class_init), (gst_rtp_bin_init),
	(gst_rtp_bin_finalize), (gst_rtp_bin_set_property),
	(gst_rtp_bin_get_property), (gst_rtp_bin_change_state),
	(gst_rtp_bin_request_new_pad), (gst_rtp_bin_release_pad):
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpclient.c: (new_pad), (create_stream),
	(free_stream), (find_stream_by_ssrc), (gst_rtp_client_base_init),
	(gst_rtp_client_class_init), (gst_rtp_client_init),
	(gst_rtp_client_finalize), (gst_rtp_client_set_property),
	(gst_rtp_client_get_property), (gst_rtp_client_change_state),
	(gst_rtp_client_request_new_pad), (gst_rtp_client_release_pad):
	* gst/rtpmanager/gstrtpclient.h:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	(gst_rtp_jitter_buffer_base_init),
	(gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init),
	(gst_rtp_jitter_buffer_dispose), (gst_rtp_jitter_buffer_getcaps),
	(gst_jitter_buffer_sink_setcaps), (free_func),
	(gst_rtp_jitter_buffer_flush_start),
	(gst_rtp_jitter_buffer_flush_stop),
	(gst_rtp_jitter_buffer_src_activate_push),
	(gst_rtp_jitter_buffer_change_state), (priv_compare_rtp_seq_lt),
	(compare_rtp_buffers_seq_num), (gst_rtp_jitter_buffer_sink_event),
	(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
	(gst_rtp_jitter_buffer_query),
	(gst_rtp_jitter_buffer_set_property),
	(gst_rtp_jitter_buffer_get_property):
	* gst/rtpmanager/gstrtpjitterbuffer.h:
	* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
	* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_base_init),
	(gst_rtp_pt_demux_class_init), (gst_rtp_pt_demux_init),
	(gst_rtp_pt_demux_finalize), (gst_rtp_pt_demux_chain),
	(gst_rtp_pt_demux_getcaps), (find_pad_for_pt),
	(gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release),
	(gst_rtp_pt_demux_change_state):
	* gst/rtpmanager/gstrtpptdemux.h:
	* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init),
	(gst_rtp_session_class_init), (gst_rtp_session_init),
	(gst_rtp_session_finalize), (gst_rtp_session_set_property),
	(gst_rtp_session_get_property), (gst_rtp_session_change_state),
	(gst_rtp_session_chain_recv_rtp),
	(gst_rtp_session_chain_recv_rtcp),
	(gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
	(create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src),
	(gst_rtp_session_request_new_pad), (gst_rtp_session_release_pad):
	* gst/rtpmanager/gstrtpsession.h:
	Add RTP session management elements. Still in progress.

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

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
	(gst_wavpack_dec_init), (gst_wavpack_dec_sink_set_caps),
	(gst_wavpack_dec_clip_outgoing_buffer),
	(gst_wavpack_dec_post_tags), (gst_wavpack_dec_chain):
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset),
	(gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config),
	(gst_wavpack_enc_chain):
	* ext/wavpack/gstwavpackenc.h:
	* ext/wavpack/gstwavpackparse.c:
	Don't play audioconvert. As wavpack wants/outputs all samples with
	width==32 and depth=[1,32] accept this and let audioconvert convert
	to accepted formats instead of doing it in the element for n*8 depths.
	This also adds support for non-n*8 depths and prevents some useless
	memory allocations. Fixes #421598
	Also add a workaround for bug #421542 in wavpackenc for now...
	* tests/check/elements/wavpackdec.c: (GST_START_TEST):
	* tests/check/elements/wavpackenc.c: (GST_START_TEST):
	* tests/check/elements/wavpackparse.c: (GST_START_TEST):
	Consider the change above in the unit tests and test if the correct
	caps are accepted and set. Also check for GST_BUFFER_OFFSET_END in
	the wavpackparse unit test.

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init),
	(gst_wavpack_dec_sink_set_caps):
	Set caps on the src pad as soon as possible.

	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackcommon.h:
	* ext/wavpack/gstwavpackenc.h:
	* ext/wavpack/gstwavpackparse.h:
	Fix indention. gst-indent is now called by cicl.

2007-03-28  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample),
	(gst_qtdemux_chain), (qtdemux_parse_samples):
	* gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_ctts):
	* gst/qtdemux/qtdemux_dump.h:
	* gst/qtdemux/qtdemux_fourcc.h:
	* gst/qtdemux/qtdemux_types.c:
	Process 'ctts' atoms, which are present in AVC ISO files (.mov files
	with h264 video).
	Use the offset present in 'ctts' to calculate the PTS for each packet
	and set the PTS on outgoing buffers.
	Fixes #423283

2007-03-27  Julien MOUTTE  <julien@moutte.net>

	* ext/xvid/gstxviddec.c: (gst_xviddec_chain): Add some
	debug log and fix a stupid output buffer duration bug.

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

	Patch by: Michal Benes <michal.benes at itonis tv>
	Patch by: Josef Zlomek <josef.zlomek at itonis tv>

	* configure.ac:
	* ext/Makefile.am:
	* ext/x264/Makefile.am:
	* ext/x264/gstx264enc.c: (gst_x264_enc_me_get_type),
	(gst_x264_enc_analyse_get_type),
	(gst_x264_enc_timestamp_queue_init),
	(gst_x264_enc_timestamp_queue_free),
	(gst_x264_enc_timestamp_queue_put),
	(gst_x264_enc_timestamp_queue_get), (gst_x264_enc_header_buf),
	(gst_x264_enc_set_src_caps), (gst_x264_enc_sink_set_caps),
	(gst_x264_enc_base_init), (gst_x264_enc_class_init),
	(gst_x264_enc_init), (gst_x264_enc_init_encoder),
	(gst_x264_enc_close_encoder), (gst_x264_enc_dispose),
	(gst_x264_enc_sink_event), (gst_x264_enc_chain),
	(gst_x264_enc_encode_frame), (gst_x264_enc_change_state),
	(gst_x264_enc_set_property), (gst_x264_enc_get_property),
	(plugin_init):
	* ext/x264/gstx264enc.h:
	  Add libx264-based h264 encoder plugin (#421110). Probably doesn't
	  handle 'odd' widths and heights correctly yet.

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

	* gst/interleave/deinterleave.c: (gst_deinterleave_sink_setcaps):
	  Remove 'channel-positions' field when munging input caps into
	  1-channel output caps (I guess technically we should set the
	  position for each channel on the output caps if it's non-NONE,
	  but I'll save that as a task for another day).

2007-03-23  Michael Smith  <msmith@fluendo.com>

	* gst/vmnc/vmncdec.c: (gst_vmnc_dec_class_init),
	(gst_vmnc_dec_init), (vmnc_dec_finalize), (gst_vmnc_dec_reset),
	(vmnc_handle_wmvi_rectangle), (render_colour_cursor),
	(render_cursor), (vmnc_make_buffer), (vmnc_handle_wmvd_rectangle),
	(vmnc_handle_wmve_rectangle), (vmnc_handle_wmvf_rectangle),
	(vmnc_handle_wmvg_rectangle), (vmnc_handle_wmvh_rectangle),
	(vmnc_handle_wmvj_rectangle), (render_raw_tile), (render_subrect),
	(vmnc_handle_raw_rectangle), (vmnc_handle_copy_rectangle),
	(vmnc_handle_hextile_rectangle), (vmnc_handle_packet),
	(vmnc_dec_setcaps), (vmnc_dec_chain_frame), (vmnc_dec_chain),
	(vmnc_dec_set_property), (vmnc_dec_get_property):
	  Redesign to include a parser for raw files (no timestamps in that
	  mode yet, though).

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

	* gst/interleave/deinterleave.c: (gst_deinterleave_add_new_pads),
	(gst_deinterleave_remove_pads), (gst_deinterleave_process),
	(gst_deinterleave_chain):
	  Don't leak input buffer in chain function; maintain our own list of
	  source pads - there are no guarantees about the order of the list
	  in the GstElement struct, and we want a very specific order; lastly,
	  some more debugging.

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

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_init):
	  Alloc user agent string only once.

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

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
	Revert last commit, preventing infinite plugging loops with ranks
	is no clean solution and in general there's no reason why one wants
	to parse framed wavpack data again.

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

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block):
	Send the new segment event in time format instead of bytes. This
	allows "wavpackenc ! wavpackdec ! someaudiosink" pipelines.

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
	Accept framed and non-framed input, wavpackparse doesn't care. To
	prevent "wavpackparse ! wavpackparse ! ..." pipelines lower the
	rank of wavpackparse by one. This allows "wavpackenc ! wavpackparse !
	..." pipelines.

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

	* gst-libs/gst/app/Makefile.am:
	  Use GST_ALL_LDFLAGS, which actually exists, but maybe David
	  can confirm that was what he wanted.

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

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
	Revert to use gst_pad_alloc_buffer() here. We can and should use it.
	Thanks to Jan and Mike for noticing my mistake.

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

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	(gst_wavpack_enc_init), (gst_wavpack_enc_chain),
	(gst_wavpack_enc_rewrite_first_block):
	* ext/wavpack/gstwavpackenc.h:
	Put the write helpers into the GstWavpackEnc struct directly and not
	as a pointer to save two small, but useless mallocs. This also makes
	it possible to drop the finalize method.
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_push_buffer):
	For consistency reasons also set GST_BUFFER_OFFSET_END on the outgoing
	buffers the same way wavpackenc does it.

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

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
	Don't use gst_pad_alloc_buffer() as we might clip the buffer later and
	BaseTransform-based elements will likely break because of wrong
	unit-size. Also plug a possible memleak that happens when decoding
	fails for some reason.

2007-03-18  Wim Taymans  <wim@fluendo.com>

	Based on patch by: Paul Davis <paul at linuxaudiosystems dot com>

	* ext/jack/gstjackaudioclient.c: (gst_jack_audio_unref_connection):
	Don't need to take the connection lock, it will not be used and could
	cause deadlocks.

2007-03-16  Edward Hervey  <edward@fluendo.com>

	* sys/osxvideo/osxvideosink.m:
	Fix previous commit, we want to pass the NSView in the message.

2007-03-16  Edward Hervey  <edward@fluendo.com>

	* sys/osxvideo/osxvideosink.m:
	Emit 'have-ns-view' message when working in embedded mode. The message
	will contain a pointer to the newly created NSView.

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

	* gst/mpegvideoparse/mpegpacketiser.c: (mpeg_util_find_start_code),
	(collect_packets), (set_par_from_dar), (set_fps_from_code),
	(mpeg_util_parse_extension_packet), (mpeg_util_parse_sequence_hdr),
	(mpeg_util_parse_picture_hdr):
	* gst/mpegvideoparse/mpegpacketiser.h:
	* gst/mpegvideoparse/mpegvideoparse.c:
	(mpegvideoparse_handle_sequence), (mpegvideoparse_handle_picture),
	(mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain),
	(mpv_parse_sink_event), (plugin_init):
	* gst/mpegvideoparse/mpegvideoparse.h:
	Move the MPEG specific byte parsing into the mpegpacketiser code.

	Add parsing of picture types, that just feeds into a debug message
	for now.

	Fix some 64-bit format strings.

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

	* gst/mpegaudioparse:
	Remove empty dir.

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

	* gst/equalizer/gstiirequalizer10bands.c:
	(gst_iir_equalizer_10bands_init):
	  A 10 band EQ should be initialized to 10 bands and not to 3.

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

	* configure.ac:
	* gst/mpeg1videoparse/Makefile.am:
	* gst/mpeg1videoparse/gstmp1videoparse.c:
	* gst/mpeg1videoparse/gstmp1videoparse.h:
	* gst/mpeg1videoparse/mp1videoparse.vcproj:
	* gst/mpegvideoparse/Makefile.am:
	* gst/mpegvideoparse/mpegpacketiser.c: (mpeg_packetiser_init),
	(mpeg_packetiser_free), (mpeg_packetiser_add_buf),
	(mpeg_packetiser_flush), (mpeg_find_start_code),
	(get_next_free_block), (complete_current_block),
	(append_to_current_block), (start_new_block), (handle_packet),
	(collect_packets), (mpeg_packetiser_handle_eos),
	(mpeg_packetiser_get_block), (mpeg_packetiser_next_block):
	* gst/mpegvideoparse/mpegpacketiser.h:
	* gst/mpegvideoparse/mpegvideoparse.c: (mpegvideoparse_get_type),
	(gst_mpegvideoparse_base_init), (gst_mpegvideoparse_class_init),
	(mpv_parse_reset), (gst_mpegvideoparse_init),
	(gst_mpegvideoparse_dispose), (set_par_from_dar),
	(set_fps_from_code), (mpegvideoparse_parse_seq),
	(gst_mpegvideoparse_time_code), (gst_mpegvideoparse_flush),
	(mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain),
	(mpv_parse_sink_event), (gst_mpegvideoparse_change_state),
	(plugin_init):
	* gst/mpegvideoparse/mpegvideoparse.h:
	* gst/mpegvideoparse/mpegvideoparse.vcproj:
	Port mpeg1videoparse to 0.10 and give it rank SECONDARY-1, so
	that it's below existing decoders.
	
	Rename it to mpegvideoparse to reflect that it handles MPEG-1 and
	MPEG-2 now.

	Re-write the parsing code so that it collects packets differently
	and timestamps Picture packets correctly.

	Add a list of FIXME's at the top.

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

	* tests/icles/equalizer-test.c: (equalizer_set_band_value),
	(equalizer_set_all_band_values),
	(equalizer_set_band_value_and_wait),
	(equalizer_set_all_band_values_and_wait), (do_slider_fiddling),
	(main):
	  Port the example to new equalizer api.

2007-03-14  Edward Hervey  <edward@fluendo.com>

	* sys/osxvideo/cocoawindow.h:
	* sys/osxvideo/cocoawindow.m:
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	Fix leaks when running a NSApp.
	Accept any kind of resolutions.
	Works in fullscreen. Can maximize.
	Only thing left before being able to move this to -good is documentation
	and embedded window support.

2007-03-14  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/hu.po:
	* po/it.po:
	* po/sv.po:
	  Updated translations.

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

	* gst/equalizer/Makefile.am:
	* gst/equalizer/gstiirequalizer.c: (_do_init),
	(gst_iir_equalizer_band_set_property),
	(gst_iir_equalizer_band_class_init),
	(gst_iir_equalizer_band_get_type),
	(gst_iir_equalizer_child_proxy_get_child_by_index),
	(gst_iir_equalizer_child_proxy_get_children_count),
	(gst_iir_equalizer_child_proxy_interface_init), (setup_filter),
	(gst_iir_equalizer_compute_frequencies),
	(gst_iir_equalizer_transform_ip), (plugin_init):
	* gst/equalizer/gstiirequalizer10bands.c:
	(gst_iir_equalizer_10bands_base_init),
	(gst_iir_equalizer_10bands_class_init),
	(gst_iir_equalizer_10bands_init),
	(gst_iir_equalizer_10bands_set_property),
	(gst_iir_equalizer_10bands_get_property):
	* gst/equalizer/gstiirequalizer10bands.h:
	* gst/equalizer/gstiirequalizer3bands.c:
	(gst_iir_equalizer_3bands_base_init),
	(gst_iir_equalizer_3bands_class_init),
	(gst_iir_equalizer_3bands_init),
	(gst_iir_equalizer_3bands_set_property),
	(gst_iir_equalizer_3bands_get_property):
	* gst/equalizer/gstiirequalizer3bands.h:
	* gst/equalizer/gstiirequalizernbands.c:
	(gst_iir_equalizer_nbands_base_init),
	(gst_iir_equalizer_nbands_init):
	  Add 3 and 10 band version and add missing gst_object_sync_values.

	* gst/spectrum/gstspectrum.c: (gst_spectrum_event),
	(gst_spectrum_transform_ip):
	  Add some comments about float support.

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

	* gst/mpegaudioparse/Makefile.am:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	* gst/mpegaudioparse/mpegaudioparse.vcproj:
	Remove bogus 2nd copy of mp3parse - it's actually
	in -ugly.

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

	* examples/app/.cvsignore:
	The buildbot demands .cvsignore files, and I comply.

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

	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	Handle display mode changes during playback.

2007-03-10  David Schleef  <ds@schleef.org>

	* configure.ac:
	* examples/Makefile.am:
	* examples/app/Makefile.am:
	* examples/app/appsrc_ex.c:
	  Add appsrc/appsink example.
	* gst-libs/gst/app/Makefile.am:
	* gst-libs/gst/app/gstapp.c:
	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsink.h:
	* gst/app/gstapp.c:
	  Add appsink.

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

	* ext/nas/nassink.c: (NAS_createFlow):
	* ext/sndfile/gstsfsrc.c: (gst_sf_src_create):
	  Printf format string fixes.

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

	* gst/equalizer/Makefile.am:
	* gst/equalizer/gstiirequalizer.c: (_do_init),
	(gst_iir_equalizer_band_set_property),
	(gst_iir_equalizer_band_get_property),
	(gst_iir_equalizer_band_class_init),
	(gst_iir_equalizer_band_get_type),
	(gst_iir_equalizer_child_proxy_get_child_by_index),
	(gst_iir_equalizer_child_proxy_get_children_count),
	(gst_iir_equalizer_child_proxy_interface_init),
	(gst_iir_equalizer_base_init), (gst_iir_equalizer_class_init),
	(gst_iir_equalizer_finalize), (setup_filter),
	(gst_iir_equalizer_compute_frequencies),
	(gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property),
	(gst_iir_equalizer_setup), (plugin_init):
	* gst/equalizer/gstiirequalizer.h:
	* gst/equalizer/gstiirequalizernbands.c:
	(gst_iir_equalizer_nbands_base_init),
	(gst_iir_equalizer_nbands_class_init),
	(gst_iir_equalizer_nbands_init),
	(gst_iir_equalizer_nbands_set_property),
	(gst_iir_equalizer_nbands_get_property):
	* gst/equalizer/gstiirequalizernbands.h:
	  Refactor plugin into a base class and a first subclass (nband eq). The
	  nband eq uses GstChildProxy and is controlable. More subclasses will
	  follow.

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

	Includes patch by: Paul Davis <paul at linuxaudiosystems dot com>

	* ext/jack/Makefile.am:
	* ext/jack/gstjackaudioclient.c: (gst_jack_audio_client_init),
	(jack_process_cb), (jack_sample_rate_cb), (jack_buffer_size_cb),
	(jack_shutdown_cb), (connection_find),
	(gst_jack_audio_make_connection), (gst_jack_audio_get_connection),
	(gst_jack_audio_unref_connection),
	(gst_jack_audio_connection_add_client),
	(gst_jack_audio_connection_remove_client),
	(gst_jack_audio_client_new), (gst_jack_audio_client_free),
	(gst_jack_audio_client_get_client),
	(gst_jack_audio_client_set_active):
	* ext/jack/gstjackaudioclient.h:
	Make an object to manage client connections to the jack server which we
	will use in the future to run selected jack elements with the same jack
	connection.
	Make some stuff a bit more threadsafe.
	Activate the jack client ASAP.

	* ext/jack/gstjackaudiosink.c:
	(gst_jack_audio_sink_allocate_channels),
	(gst_jack_audio_sink_free_channels), (jack_process_cb),
	(gst_jack_ring_buffer_open_device),
	(gst_jack_ring_buffer_close_device),
	(gst_jack_ring_buffer_acquire), (gst_jack_ring_buffer_release),
	(gst_jack_audio_sink_class_init), (gst_jack_audio_sink_init),
	(gst_jack_audio_sink_getcaps):
	* ext/jack/gstjackaudiosink.h:
	Use new client object to manage connections.
	Don't remove and recreate all ports, try to reuse them.

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

	* ext/wavpack/gstwavpack.c: (plugin_init):
	* ext/wavpack/gstwavpackcommon.c:
	  Use a general wavpack debug category for common code.
	* ext/wavpack/gstwavpackstreamreader.c:
	(gst_wavpack_stream_reader_set_pos_abs),
	(gst_wavpack_stream_reader_set_pos_rel),
	(gst_wavpack_stream_reader_write_bytes):
	  Use the general wavpack debug category here too and add debug
	  output to the functions that should not be called at all by
	  the wavpack library.
	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_plugin_init):
	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_plugin_init):
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
	  Change debugging category names to conform to the conventions.

2007-03-07  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c:
	* gst/qtdemux/qtdemux.h:
	Share qtdemux debug category across all files, otherwise all debugging
	in files other than qtdemux.c would end up in the default category.

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

	* gst/spectrum/gstspectrum.c: (gst_spectrum_start),
	(gst_spectrum_event), (gst_spectrum_transform_ip):
	* gst/spectrum/gstspectrum.h:
	  One FIXME less, by resolving message timestamps against the playback
	  segment.

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

	* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	(gst_spectrum_init), (gst_spectrum_set_property),
	(gst_spectrum_transform_ip):
	Fix and cleanup default property values.
	Add FIXMEs for stuff that looks rather wrong.

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

	* gst/spectrum/demo-audiotest.c: (message_handler):
	* gst/spectrum/demo-osssrc.c: (message_handler):
	  Remove two obsolete and confusing comments.

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

	* ext/nas/nassink.c: (gst_nas_sink_class_init),
	(gst_nas_sink_init), (gst_nas_sink_getcaps),
	(gst_nas_sink_unprepare):
	  Some more cleanups/changes; use boilerplate macro.

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

	* ext/nas/Makefile.am:
	* ext/nas/README:
	* ext/nas/nassink.c: (gst_nas_sink_get_type),
	(gst_nas_sink_base_init), (gst_nas_sink_class_init),
	(gst_nas_sink_init), (gst_nas_sink_finalize),
	(gst_nas_sink_getcaps), (gst_nas_sink_prepare),
	(gst_nas_sink_unprepare), (gst_nas_sink_delay),
	(gst_nas_sink_reset), (gst_nas_sink_write),
	(gst_nas_sink_set_property), (gst_nas_sink_get_property),
	(gst_nas_sink_open), (gst_nas_sink_close), (NAS_flush),
	(NAS_sendData), (NAS_EventHandler), (gst_nas_sink_sink_get_format),
	(NAS_createFlow), (plugin_init):
	* ext/nas/nassink.h:
	  Bunch of nassink clean-ups: make build by adding the right CFLAGS
	  and LIBS to Makefile.am; rename structure, macros and functions
	  according to canonical naming scheme; move some things around a bit;
	  use GST_CAT_DEFAULT instead of GST_CAT_* everywhere; remove README
	  file that didn't really contain any useful information anyway (the
	  useful bits have been moved into the 'host' property description).

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

	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_finalize):
	Chain up in finalize.

2007-03-03  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* gst/vmnc/Makefile.am:
	  Fix up dist.

2007-03-03  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* gst/vmnc/Makefile.am:
	* gst/vmnc/vmncdec.c: (gst_vmnc_dec_base_init),
	(gst_vmnc_dec_class_init), (gst_vmnc_dec_init),
	(gst_vmnc_dec_reset), (vmnc_handle_wmvi_rectangle),
	(render_colour_cursor), (render_cursor), (vmnc_make_buffer),
	(vmnc_handle_wmvd_rectangle), (vmnc_handle_wmve_rectangle),
	(vmnc_handle_wmvf_rectangle), (vmnc_handle_wmvg_rectangle),
	(vmnc_handle_wmvh_rectangle), (vmnc_handle_wmvj_rectangle),
	(render_raw_tile), (render_subrect), (vmnc_handle_raw_rectangle),
	(vmnc_handle_hextile_rectangle), (vmnc_handle_packet),
	(vmnc_dec_setcaps), (vmnc_dec_chain), (vmnc_dec_change_state),
	(vmnc_dec_set_property), (vmnc_dec_get_property), (plugin_init):
	  Add VMnc decoder.
	  Still missing support for:
	   - rectangle types I didn't find in my samples (e.g. copy, RRE,
	     ZRLE)
	   - alpha-composited cursors

2007-03-03  David Schleef  <ds@schleef.org>

	* gst-libs/gst/app/Makefile.am:
	  Install the headers.

2007-03-03  David Schleef  <ds@schleef.org>

	* gst-libs/gst/app/Makefile.am:
	* gst-libs/gst/app/gstappbuffer.c:
	* gst-libs/gst/app/gstappbuffer.h:
	* gst-libs/gst/app/gstappsrc.c:
	  Add GstAppBuffer that includes a callback and closure for
	  proper handling of data chunks.

2007-03-03  David Schleef  <ds@schleef.org>

	* gst-libs/gst/app/gstappsrc.c:
	* gst-libs/gst/app/gstappsrc.h:
	  Hacking to address issues in 413418.

2007-03-03  David Schleef  <ds@schleef.org>

	* Makefile.am:
	* configure.ac:
	* ext/Makefile.am:
	* gst-libs/gst/Makefile.am:
	* gst-libs/gst/app/Makefile.am:
	* gst-libs/gst/app/gstapp.c:
	* gst-libs/gst/app/gstappsrc.c:
	* gst-libs/gst/app/gstappsrc.h:
	* gst/app/Makefile.am:
	* gst/app/gstapp.c:
	* gst/app/gstappsrc.c:
	* gst/app/gstappsrc.h:
	  Move the app library to gst-libs/gst/app (duh!)

2007-03-02 Christian Schaller <christian at fluendo dot com>
	
	Patch by: Nguyen Thai Ngoc Duy <pcloud@gmail.com>

	* ext/nas: Upgrade of NAS plugin to 0.10 (#345633)

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

	* ext/dts/gstdtsdec.c: (gst_dtsdec_init), (gst_dtsdec_sink_event):
	  A few small clean-ups.

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps):
	  More debug output for failure cases.

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

	Patch by: Young-Ho Cha  <ganadist at chollian net>

	* ext/dts/gstdtsdec.c: (gst_dtsdec_handle_frame),
	(gst_dtsdec_change_state):
	  Don't do forced downmixing to stereo, but check what downstream
	  can do and let libdts do the downmixing based on that (#400555).

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

	Patch by: Lutz Mueller  <lutz topfrose de>

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	(gst_neonhttp_src_init), (gst_neonhttp_src_set_property),
	(gst_neonhttp_src_set_uri), (gst_neonhttp_src_set_proxy),
	(gst_neonhttp_src_send_request_and_redirect),
	(gst_neonhttp_src_uri_set_uri):
	* ext/neon/gstneonhttpsrc.h:
	  Simplify _set_uri() and _set_proxy() and remove the unused ishttp
	  member (#388050).

	* tests/check/elements/neonhttpsrc.c: (GST_START_TEST):
	  Fix bogus URI to something that actually exists, otherwise we just
	  bypass the test (and also to something that doesn't redirect, since
	  neonhttpsrc doesn't seem to handle this very gracefully yet)

2007-03-01  Chris Lord <chris@openedhand.com>

	Reviewed by Christian Schaller <christian@fluendo.com>

	Fixes Bug 357055
	* ext/ivorbis/Makefile.am:
	* ext/ivorbis/vorbisdec.c: Add support for Vorbis streams
	* ext/ivorbis/vorbisdec.h
	* ext/ivorbis/vorbis.c :

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

	* tests/check/Makefile.am:
	Draw plugins in from the build tree sys/ dir, rather than
	picking up the already installed versions.

2007-02-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  Convert to new AG_GST style.

2007-02-27  Christian Schaller <christian at fluendo dot com>

	* sys/direct*: Add Pioneers of the Inevitable to copyright
	* sys/macosxvideosink: Add Pioneers of the Inevitable to copyright

2007-02-27  Edward Hervey  <edward@fluendo.com>

	* sys/osxvideo/cocoawindow.h:
	* sys/osxvideo/cocoawindow.m:
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	Disable the cocoa event loop since it's a huge memory leak. Should only
	matter if the sink isn't used within an NSApp (which has already got
	a coca event loop).
	Remove all unused code.

2007-02-26  David Schleef  <ds@schleef.org>

	* configure.ac:
	* gst/app/Makefile.am:
	* gst/app/gstapp.c:
	* gst/app/gstappsrc.c:
	* gst/app/gstappsrc.h:
	  Add a new plugin/library to make it easy for apps to shove
	  data into a pipeline.

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

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_init):
	* gst/real/gstrealvideodec.c: (gst_real_video_dec_init):
	  Use gst_pad_use_fixed_caps() on source pads, to avoid negotiation
	  errors in certain situations (e.g. dec ! cs ! ximagesink and the
	  imagesink window is resized); also, some minor clean-ups.

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

	* configure.ac:
	* ext/gsm/Makefile.am:
	* ext/ladspa/Makefile.am:
	* ext/wavpack/Makefile.am:
	* gst/equalizer/Makefile.am:
	* gst/filter/Makefile.am:
	* gst/mve/Makefile.am:
	* gst/nsf/Makefile.am:
	* gst/replaygain/Makefile.am:
	* gst/speed/Makefile.am:
	  Fix build with LDFLAGS='-Wl,-z,defs'.

2007-02-20  Sébastien Moutte  <sebastien@moutte.net>

	* sys/directsound/gstdirectsoundsink.c:
	* sys/directsound/gstdirectsoundsink.h:
	  Remove include of unused headers.
	* sys/waveform/gstwaveformplugin.c:
	* sys/waveform/gstwaveformsink.c:
	* sys/waveform/gstwaveformsink.h:
	* win32/vs6/libgstwaveform.dsp:
	  Add a new waveform plugin which includes an audio sink 
	  element using the WaveForm win32 API.
	* win32/MANIFEST:
	  Add the new project file form waveform plugin.
	
2007-02-18  Sébastien Moutte  <sebastien@moutte.net>
	
	* sys/directdraw/gstdirectdrawplugin.c:
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	  Prepare the plugin to move to good:
	  Remove unused/untested code (rendering to an extern surface,
	  yuv format rendering).Use GST_(DEBUG/*)_OBJECT macros
      Rename all functions from gst_directdrawsink to gst_directdraw_sink.
	  Add gtk doc section
	  Fix a bug in gst_directdraw_sink_show_frame, memcpy line by line
	  respecting destination surface stride.
	* sys/directsound/gstdirectsoundplugin.c:
	* sys/directsound/gstdirectsoundsink.c:
	* sys/directsound/gstdirectsoundsink.h:
	  Prepare the plugin to move to good:
	  Rename all functions from gst_directsoundsink to gst_directsound_sink.
	  Add gtk doc section
	* win32/common/config.h.in:
	* win32/MANIFEST:
	  Add config.h.in

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	  Add crossreferences to glib/gobject/gstream docs. Also fix typo in
	  timidity.cfg check.

	* ext/timidity/gsttimidity.c: (plugin_init):
	  Also build if no config was detected at configure time.

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

	* configure.ac:
	* ext/timidity/Makefile.am:
	* ext/timidity/gsttimidity.c: (plugin_init):
	* ext/timidity/gstwildmidi.c: (gst_wildmidi_base_init),
	(gst_wildmidi_class_init), (gst_wildmidi_init),
	(gst_wildmidi_src_convert), (gst_wildmidi_src_query),
	(gst_wildmidi_get_upstream_size), (gst_wildmidi_get_segment),
	(gst_wildmidi_get_new_segment_event), (gst_wildmidi_src_event),
	(gst_wildmidi_activate), (gst_wildmidi_activatepull),
	(gst_wildmidi_allocate_buffer), (gst_wildmidi_clip_buffer),
	(gst_wildmidi_fill_buffer), (gst_wildmidi_get_buffer),
	(gst_wildmidi_loop), (gst_wildmidi_change_state),
	(gst_wildmidi_set_property), (gst_wildmidi_get_property),
	(gst_wildmidi_typefind), (wildmidi_open_config), (plugin_init):
	* ext/timidity/gstwildmidi.h:
	  Add second midi renderer. Fix some double frees and leaks. Clean up
	  logging.

2007-02-11  Sébastien Moutte  <sebastien@moutte.net>

	* Makefile.am:
	  Add win32 MANIFEST
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directdraw/gstdirectdrawsink.h:
	  Clear unused code and add comments.
	  Remove yuv from template caps, it only supports RGB
	  actually.
	  Implement XOverlay interface and remove window and fullscreen 
	  properties.
	  Add debug logs.
	  Test for blit capabilities to return only the current colorspace if
	  the hardware can't blit for one colorspace to another.
	* sys/directsound/gstdirectsoundsink.c:
	  Add some debugs.
	* win32/MANIFEST:
	  Add VS7 project files and solution.
	* win32/vs6/gst_plugins_bad.dsw:
	* win32/vs6/libgstdirectdraw.dsp:
	* win32/vs6/libgstdirectsound.dsp:
	* win32/vs6/libgstqtdemux.dsp:
	  Update project files.

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

	* ext/faad/gstfaad.c:
	  Also update the comment that describes the hack.

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

	* configure.ac:
	  Tell the code which faad it is, so that we can adjust the hacks
	  needed.

	* ext/faad/gstfaad.c:
	  Make our hacks dependent on the fadd lib in use.

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

	* configure.ac:
	  Fix faad detection to support also fadd with new symbol prefix.
	  ChangeLog surgery.
	  
2007-02-08  Stefan Kost  <ensonic@users.sf.net>

	Patch by: Wouter Paesen <wouter@blue-gate.be>

	* configure.ac:
	* ext/Makefile.am:
	* ext/timidity/Makefile.am:
	* ext/timidity/gsttimidity.c: (gst_timidity_base_init),
	(gst_timidity_class_init), (gst_timidity_init),
	(gst_timidity_set_song_options), (gst_timidity_src_convert),
	(gst_timidity_src_query), (gst_timidity_get_upstream_size),
	(gst_timidity_get_segment), (gst_timidity_get_new_segment_event),
	(gst_timidity_src_event), (gst_timidity_activate),
	(gst_timidity_activatepull), (gst_timidity_allocate_buffer),
	(gst_timidity_clip_buffer), (gst_timidity_fill_buffer),
	(gst_timidity_get_buffer), (gst_timidity_loop),
	(gst_timidity_change_state), (gst_timidity_typefind),
	(plugin_init):
	* ext/timidity/gsttimidity.h:
	  Add timidity midi render plugin (#403992)

2007-02-07  Edward Hervey  <edward@fluendo.com>

	* ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_query):
	GST_PAD_PARENT doesn't return a GstObject with an incremented refcount.
	Switched to using gst_pad_get_parent().

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

	* gst/modplug/gstmodplug.cc:
	  Remove superfluous gst_caps_get_structure() call.

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

	* configure.ac:
	  Increase required libsndfile version to a version that's known to
	  have the function sf_write_sync() to make the build bots happy.

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

	* ext/sndfile/gstsfsrc.c:
	  Fix build (installed setup).

2007-02-05  Andy Wingo  <wingo@pobox.com>

	* ext/sndfile/Makefile.am:
	* ext/sndfile/gstsfsrc.h:
	* ext/sndfile/gstsfsrc.c: Port sfsrc to 0.10, pull or push, with
	random access woo.

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

	* configure.ac:
	* gst/equalizer/Makefile.am:
	* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init),
	(gst_iir_equalizer_class_init), (gst_iir_equalizer_init),
	(setup_filter), (gst_iir_equalizer_compute_frequencies),
	(gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property),
	(gst_iir_equalizer_transform_ip), (gst_iir_equalizer_setup),
	(plugin_init):
	* gst/equalizer/gstiirequalizer.h:
	  Fix up to use the newly ported (actually working) GstAudioFilter.
	  Bump core/base requirements to CVS for this.

	* tests/icles/.cvsignore:
	* tests/icles/Makefile.am:
	* tests/icles/equalizer-test.c: (check_bus),
	(equalizer_set_band_value), (equalizer_set_all_band_values),
	(equalizer_set_band_value_and_wait),
	(equalizer_set_all_band_values_and_wait), (do_slider_fiddling),
	(main):
	  Add brain-dead interactive test for equalizer.

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

	* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_class_init),
	(gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property),
	(gst_iir_equalizer_filter_inplace):
	  Rename "values" property to "band-values" and change type into a
	  GValueArray, so it's more easily bindable and the range of the
	  values passed in is defined and checked etc.; also do some
	  locking.

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

	Patch by: James "Doc" Livingston  <doclivingston at gmail com>

	* configure.ac:
	* 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_compute_frequencies),
	(gst_iir_equalizer_set_property),
	(gst_iir_equalizer_filter_inplace), (gst_iir_equalizer_setup),
	(plugin_init):
	  Port equalizer plugin to 0.10 (#403572).

2007-02-02  Andy Wingo  <wingo@pobox.com>

	* configure.ac: 
	* ext/Makefile.am
	* ext/sndfile/Makefile.am:
	* ext/sndfile/gstsf.c:
	* ext/sndfile/gstsf.h:
	* ext/sndfile/gstsfsink.c:
	* ext/sndfile/gstsfsink.h: Port sfsink to 0.10. Works in pull or
	push mode with interleaved float or int data.

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

	* ext/alsaspdif/alsaspdifsink.c: (plugin_init):
	  Set rank to NONE so that it doesn't get autoplugged by autoaudiosink
	  (which didn't happen previously because the klass string didn't
	  contain anything autoaudiosink was looking for).

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

	* gst/real/gstrealaudiodec.c:
	* gst/real/gstrealvideodec.c:
	  Fix classification in GstElementDetails.

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

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query),
	(gst_wavpack_parse_handle_seek_event),
	(gst_wavpack_parse_create_src_pad):
	Fix a off by one that leads to the duration reported as one
	sample less than it is

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

	* ext/alsaspdif/alsaspdifsink.c:
	* gst/nsf/gstnsf.c:
	  Fix classification in GstElementDetails.

	* ext/ladspa/gstladspa.c: (gst_ladspa_base_init),
	(gst_ladspa_class_init):
	  Improve Klassification and reduce code slighly.

2007-01-30  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	Check for an Objective C compiler
	* sys/Makefile.am:
	* sys/osxvideo/Makefile.am:
	* sys/osxvideo/cocoawindow.h:
	* sys/osxvideo/cocoawindow.m:
	* sys/osxvideo/osxvideosink.h:
	* sys/osxvideo/osxvideosink.m:
	Port of osxvideo plugin to 0.10. Do NOT consider 100% stable !
	Fixes #402470

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

	* gst/videocrop/gstvideocrop.c:
	(gst_video_crop_get_image_details_from_caps),
	(gst_video_crop_transform_packed_complex):
	  Fix cropping for packed 4:2:2 formats YUYV/YUY2 and UYVY.

	* tests/icles/videocrop-test.c: (check_bus_for_errors),
	(test_with_caps), (main):
	  Block streaming thread before changing filter caps while the
	  pipeline is running so that we don't get random not-negotiated
	  errors just because GStreamer can't handle that yet.

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

	* ext/ladspa/Makefile.am:
	* ext/ladspa/gstladspa.c: (gst_ladspa_class_get_param_spec):
	  add GstController support to ladspa

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

	Patch by: Rosfran Borges <rosfran dot borges at idnt org br>

	* ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_start),
	(gst_mythtv_src_next_program_chain):
	  Remove sleep calls, they've been moved into the library now ...
	  (#354451).

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

	* tests/icles/videocrop-test.c: (test_with_caps):
	  Catch errors while the test is running.

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

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query):
	Fix the SEEKING query. We can seek if we are in pull mode, not the
	other way around. Also set the correct format in the seeking query and
	handle the case where the headers are not read yet and we can't say
	anything about our seeking capabilities.
	
2007-01-25  Sebastian Dröge  <slomo@circular-chaos.org>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
	Fix spelling in 2 places: It's called Wavpack, not WavePack.

2007-01-25  Edward Hervey  <edward@fluendo.com>

	* gst/multifile/gstmultifilesink.c:
	(gst_multi_file_sink_class_init):
	* gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_class_init):
	* gst/mve/gstmvedemux.c: (gst_mve_video_create_buffer),
	(gst_mve_video_palette), (gst_mve_video_code_map),
	(gst_mve_audio_init), (gst_mve_audio_data), (gst_mve_timer_create),
	(gst_mve_demux_chain):
	* gst/mve/gstmvemux.c: (gst_mve_mux_push_chunk):
	* gst/mve/mveaudioenc.c: (mve_compress_audio):
	* gst/mve/mvevideodec16.c: (ipvideo_copy_block):
	* gst/mve/mvevideodec8.c: (ipvideo_copy_block):
	* gst/mve/mvevideoenc16.c: (mve_encode_frame16):
	* gst/mve/mvevideoenc8.c: (mve_encode_frame8):
	Use proper print statements.
	Fixes build on mac os x.
	<wingo> oo look at me my name is edward i'm hacking on macos wooo

2007-01-24  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/gstrtpxqtdepay.c:
	Fix caps on the depayloader.

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

	* ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_set_property):
	  Use break here instead of goto.

2007-01-13  Andy Wingo  <wingo@pobox.com>

	* gst/interleave/deinterleave.c (gst_deinterleave_add_new_pads):
	Use fixed caps on src pads.
	(gst_deinterleave_remove_pads): Remove src pads, not sink pads. I
	seem to have reverse midas disease!
	(gst_deinterleave_process): Proxy timestamps, offsets, durations,
	and set caps on outgoing buffers. Fixes #395597, I think.

	* gst/interleave/interleave.c (gst_interleave_init): Init the
	activation mode properly.
	(gst_interleave_src_setcaps, gst_interleave_src_getcaps)
	(gst_interleave_init): Set a setcaps and getcaps function on the
	src pad, so that we can implement pull-mode negotiation.
	(gst_interleave_sink_setcaps): Renamed from
	gst_interleave_setcaps, as it only does the sink logic now.
	Implement both for pull-mode and push-mode.
	(gst_interleave_process): Set caps on our outgoing buffer.
	(gst_interleave_src_activate_pull): Fix some more bogus casts.
	What is up with this.

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

	* ext/mythtv/gstmythtvsrc.c: (do_read_request_response),
	(gst_mythtv_src_create), (gst_mythtv_src_get_position),
	(gst_mythtv_src_do_seek), (gst_mythtv_src_start),
	(gst_mythtv_src_next_program_chain), (gst_mythtv_src_get_size),
	(gst_mythtv_src_handle_event), (gst_mythtv_src_handle_query),
	(gst_mythtv_src_change_state), (gst_mythtv_src_set_property),
	(gst_mythtv_src_uri_get_type):
	  Clean up a bit, mostly the debug statements; fix deadlock in
	  _set_property() in the error cases; fix up query function.

2007-01-12  Andy Wingo  <wingo@pobox.com>

	* ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate)
	(gst_signal_processor_ouija_caps, gst_signal_processor_prepare):
	Remove fixate/ouija stuff, thankfully, due to the new
	part-negotiation.txt pull-mode negotiation scheme.
	(gst_signal_processor_setcaps_pull)
	(gst_signal_processor_setcaps): Implement upstream set_caps pull
	proxying for pull mode. Now this works: ladspa-sine-fcac !
	audioconvert ! alsasink.

2007-01-12  Edgard Lima <edgard.lima@indt.org.br>

	Patch by: Rosfran Borges <rosfran.borges@indt.org.br>

	* configure.ac:
	* gst-plugins-bad.spec.in:
	* ext/Makefile.am:
	* ext/mythtv/Makefile.am:
	* ext/mythtv/gstmythtvsrc.c:
	* ext/mythtv/gstmythtvsrc.h:
	MythTV client source plugin created (#354451).

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

	* gst/qtdemux/Makefile.am:
	* gst/qtdemux/gstrtpxqtdepay.c: (gst_rtp_xqt_depay_base_init),
	(gst_rtp_xqt_depay_class_init), (gst_rtp_xqt_depay_init),
	(gst_rtp_xqt_depay_finalize), (gst_rtp_quicktime_parse_sd),
	(gst_rtp_xqt_depay_setcaps), (gst_rtp_xqt_depay_process),
	(gst_rtp_xqt_depay_set_property), (gst_rtp_xqt_depay_get_property),
	(gst_rtp_xqt_depay_change_state), (gst_rtp_xqt_depay_plugin_init):
	* gst/qtdemux/gstrtpxqtdepay.h:
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_base_init),
	(gst_qtdemux_loop_state_header), (gst_qtdemux_loop),
	(qtdemux_parse_moov), (qtdemux_parse_container),
	(qtdemux_parse_node), (gst_qtdemux_add_stream),
	(qtdemux_parse_trak), (qtdemux_audio_caps):
	* gst/qtdemux/qtdemux.h:
	* gst/qtdemux/quicktime.c: (plugin_init):
	Add X-QT depayloader that will eventually share code with the demuxer.
	Make new plugin entry point with quicktime releated stuff.

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

	* gst/qtdemux/Makefile.am:
	  Dist all new files.

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

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	Activate docs for jack, sdl and qtdemux.

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

	* ext/jack/gstjackaudiosink.c: (jack_sample_rate_cb),
	(jack_buffer_size_cb), (jack_shutdown_cb),
	(gst_jack_ring_buffer_acquire):
	* ext/jack/gstjackaudiosink.h:
	Improve docs.

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

	* ext/gsm/gstgsmenc.c: (gst_gsmenc_init):
	Fix typo in docs.

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

	* gst/qtdemux/Makefile.am:
	* gst/qtdemux/qtdemux.c: (extract_initial_length_and_fourcc),
	(gst_qtdemux_loop_state_header), (gst_qtdemux_combine_flows),
	(gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
	(gst_qtdemux_chain), (qtdemux_sink_activate_pull),
	(qtdemux_inflate), (qtdemux_parse_moov), (qtdemux_parse_container),
	(qtdemux_parse_node), (qtdemux_tree_get_child_by_type),
	(qtdemux_tree_get_sibling_by_type), (gst_qtdemux_add_stream),
	(qtdemux_parse_samples), (qtdemux_parse_segments),
	(qtdemux_parse_trak), (qtdemux_tag_add_str), (qtdemux_tag_add_num),
	(qtdemux_tag_add_date), (qtdemux_tag_add_gnre),
	(qtdemux_parse_udta), (qtdemux_redirects_sort_func),
	(qtdemux_process_redirects), (qtdemux_parse_redirects),
	(qtdemux_parse_tree), (gst_qtdemux_handle_esds),
	(qtdemux_video_caps), (qtdemux_audio_caps):
	* gst/qtdemux/qtdemux.h:
	* gst/qtdemux/qtdemux_dump.c: (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_dump_unknown), (qtdemux_node_dump_foreach),
	(qtdemux_node_dump):
	* gst/qtdemux/qtdemux_dump.h:
	* gst/qtdemux/qtdemux_fourcc.h:
	* gst/qtdemux/qtdemux_types.c: (qtdemux_type_get):
	* gst/qtdemux/qtdemux_types.h:
	* gst/qtdemux/qtpalette.h:
	Cleanup and refactor to make the code more readable.
	Move debugging/tables into separate files.
	Add 2/4/16 color palletee support.
	Fix raw 15 bit RGB handling.
	Use more FOURCC constants.
	Add some docs.

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

	Patch by: Sebastian Dröge  <slomo@circular-chaos.org>

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type),
	(gst_wavpack_enc_correction_mode_get_type),
	(gst_wavpack_enc_joint_stereo_mode_get_type):
	  Minor clean-up: use enum values instead of hardcoded constants (#395536).

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

	* gst/mve/gstmvedemux.c: (gst_mve_demux_get_src_query_types),
	(gst_mve_demux_handle_src_query), (gst_mve_demux_handle_src_event),
	(gst_mve_add_stream):
	  Support SEEKING query (bad news now delivered properly!); add event
	  function to source pads to make sure seeks aren't propagated
	  upstream, even if they aren't handled.

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

	Patch by: Jens Granseuer  <jensgr at gmx net>

	* configure.ac:
	* gst/mve/Makefile.am:
	* gst/mve/TODO:
	* gst/mve/gstmve.c:
	* gst/mve/gstmvedemux.c:
	* gst/mve/gstmvedemux.h:
	* gst/mve/gstmvemux.c:
	* gst/mve/gstmvemux.h:
	* gst/mve/mve.h:
	* gst/mve/mveaudiodec.c:
	* gst/mve/mveaudioenc.c:
	* gst/mve/mvevideodec16.c:
	* gst/mve/mvevideodec8.c:
	* gst/mve/mvevideoenc16.c:
	* gst/mve/mvevideoenc8.c:
	  Add Interplay MVE format demuxer/decoder and muxer/encoder. Demuxer
	  doesn't support seeking yet, but seems to work fine otherwise.
	  Closes #348973.

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

	* gst/real/Makefile.am:
	  Fix build (add LIBS and CFLAGS for gst-plugins-base stuff).

2007-01-07  Andy Wingo  <wingo@pobox.com>

	* configure.ac: 
	* gst/interleave/Makefile.am: 
	* gst/interleave/plugin.h: 
	* gst/interleave/plugin.c: 
	* gst/interleave/interleave.c: 
	* gst/interleave/deinterleave.c: New elements interleave and
	deinterleave, implement channel interleaving and deinterleaving.
	The interleaver can operate in pull or push mode but the
	deinterleaver is more like a demuxer and can only operate in push
	mode.
	
2007-01-06  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	Properly detect the two architectures on which the real plugin can be
	built.
	Fixes #393622

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

	* ext/ladspa/gstsignalprocessor.c
	(gst_signal_processor_ouija_caps): Move around in the source
	file...
	(gst_signal_processor_prepare, gst_signal_processor_do_pulls):
	Call ouija_caps in prepare() instead of do_pulls(), a bit earlier.
	This allows us to have caps when we do the pad_alloc_buffer().
	(gst_pad_alloc_buffer_and_set_caps): Use self->caps instead of the
	pad caps, which might not be set yet.

	* ext/ladspa/gstsignalprocessor.c: 
	(gst_signal_processor_add_pad_from_template)
	(gst_signal_processor_fixate): Add a fixate function, to assist in
	pathological ladspa-sine-fcac ! fakesink can-activate-pull=true
	cases.
	(gst_signal_processor_prepare, gst_signal_processor_process): Add
	nframes args so that getrange can tell ladspa how many frames to
	process.
	(gst_signal_processor_ouija_caps): setcaps needs to be called
	before processing, which normally happens when chaining a buffer
	to a pad. However in getrange mode with no sinks we need to check
	explicitly for this condition, guess some caps to use, and use
	those to setcaps(). Hence this mystical function.
	(gst_signal_processor_do_pulls): Pull in bytes, not samples.
	Divine the caps if necessary.
	(gst_signal_processor_getrange): Interpret the length as bytes,
	not samples.
	(gst_signal_processor_chain): nframes=G_MAXUINT, will be limited
	by incoming buffer sizes.

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

	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_finalize):
	Don't call the RAFreeDecoder since it randomly causes segfaults.
	* gst/real/gstrealaudiodec.h:
	indent properly.

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

	Patch by: Lutz Mueller <lutz@topfrose.de>
	
	* gst/real/gstrealvideodec.c: (gst_real_video_dec_decode),
	(gst_real_video_dec_setcaps), (open_library), (close_library),
	(gst_real_video_dec_finalize):
	* gst/real/gstrealvideodec.h:
	Implement error recovery on setcaps failure.

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

	Patch by: Lutz Mueller <lutz@topfrose.de>
	
	* gst/real/Makefile.am:
	* gst/real/gstreal.c: (plugin_init):
	* gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain),
	(gst_real_audio_dec_setcaps), (gst_real_audio_dec_init),
	(gst_real_audio_dec_base_init), (gst_real_audio_dec_change_state),
	(gst_real_audio_dec_finalize), (gst_real_audio_dec_set_property),
	(gst_real_audio_dec_get_property), (gst_real_audio_dec_class_init):
	* gst/real/gstrealaudiodec.h:
	Added RealAudio wrapper elementfactory.
	Modified structures so it can also work on x86_64 using the
	adequate .so .

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

	* configure.ac:
	* gst/qtdemux/Makefile.am:
	* gst/qtdemux/qtdemux.c: (qtdemux_parse_moov):
	  Check for zlib and if available pass it explicitly to the linker
	  when linking qtdemux. If not available (or --disable-external has
	  been specified!), disable the bits in qtdemux that use it. Fixes
	  build on MingW (#392856).

2007-01-05  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	Real video .so are now also available for x86_64, so we can build the
	Real plugin on i386 AND x86_64.
	* gst/real/Makefile.am:
	* gst/real/gstreal.c: (plugin_init):
	New plugin file for real .so wrapper plugins.
	* gst/real/gstrealvideodec.c: (gst_real_video_dec_alloc_buffer),
	(gst_real_video_dec_decode), (gst_real_video_dec_chain),
	(gst_real_video_dec_activate_push), (gst_real_video_dec_setcaps),
	(open_library), (close_library), (gst_real_video_dec_init),
	(gst_real_video_dec_base_init), (gst_real_video_dec_finalize),
	(gst_real_video_dec_set_property),
	(gst_real_video_dec_get_property), (gst_real_video_dec_class_init):
	* gst/real/gstrealvideodec.h:
	Moved RealVideo element to separate file
	Cleaned up code some more.
	Make it work on x86_64.
	Try several possible locations for .so
	Separate opening/closing libraries in separate functions.

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

	* tests/icles/videocrop-test.c: (main):
	  Call g_thread_init() right at the beginning. Remove superfluous
	  gst_init() - we've already been inited via the GOption stuff.

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

	* configure.ac:
	  Don't compile rfbsource if we don't have sys/socket.h.
	  Should fix compilation on MingW.

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

	* configure.ac:
	* ext/amrwb/Makefile.am:
	* ext/amrwb/amrwb-code/Makefile.am:
	* ext/amrwb/amrwb-code/run.sh:
	* gst-libs/Makefile.am:
	* gst-libs/ext/Makefile.am:
	* gst-libs/ext/amrwb/Makefile.am:
	* gst-libs/ext/amrwb/README:
	  Move amrwb code getting and building to gst-libs/ext/amrwb
	  Adapt everything else to match.

2007-01-04  Julien MOUTTE  <julien@moutte.net>

	* ext/directfb/dfbvideosink.c:
	(gst_dfbvideosink_navigation_send_event),
	(gst_dfbvideosink_get_type):
	* ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_open):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_setcaps),
	(gst_sdlvideosink_show_frame),
	(gst_sdlvideosink_navigation_send_event):
	* ext/sdl/sdlvideosink.h: Fix various compiler warnings that 
	reveal potential bugs.

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

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

	* configure.ac:
	* sys/Makefile.am:
	* sys/directsound/Makefile.am:
	* sys/directsound/gstdirectsoundsink.c:
	(gst_directsoundsink_reset):
	  Add directsoundsink to build and dist it, so it gets built when
	  compiling with MingW on win32 and the required headers and libraries
	  are available (fixes: #392638). Also simplify DirectDraw check a bit.

	* tests/check/elements/.cvsignore:
	  Fix CVS ignore for neonhttpsrc test binary.

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

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

	* configure.ac:
	* sys/Makefile.am:
	* sys/directdraw/Makefile.am:
	  Add directdrawsink to build and dist it, so it gets built when
	  compiling with MingW on win32 and the required headers and libraries
	  are available (fixes: #392313).

	* sys/directdraw/gstdirectdrawsink.c:
	(gst_directdrawsink_center_rect), (gst_directdrawsink_show_frame),
	(gst_directdrawsink_setup_ddraw),
	(gst_directdrawsink_surface_create):
	  Comment out some unused things and fix some printf format issues in
	  order to avoid warnings when buildling with MingW (#392313).

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

	Patch by: Jens Granseuer  <jensgr at gmx net>

	* ext/xvid/gstxvidenc.c: (gst_xvidenc_encode),
	(gst_xvidenc_get_property):
	* gst/filter/gstbpwsinc.c: (bpwsinc_transform_ip):
	* gst/filter/gstfilter.c: (plugin_init):
	* gst/filter/gstiir.c: (iir_transform_ip):
	* gst/filter/gstlpwsinc.c: (lpwsinc_transform_ip):
	* gst/modplug/gstmodplug.cc:
	* gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_header_load),
	(gst_nuv_demux_stream_extend_header):
	  Fix build with gcc-2.x (declare variables at the beginning of a
	  block etc.). Fixes #391971.

2007-01-02  Lutz Mueller <lutz@topfrose.de>

	reviewed by: Edward Hervey  <edward@fluendo.com>

	* gst/real/gstreal.c:
	(gst_realdec_setcaps): Use codec_data supplied in caps.
	(gst_realdec_get_property): Correctly return default path.
	(gst_realdec_class_init): Remove unused state_change method.

2007-01-01  Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	Only build the plugin on 32bit x86 architectures.

2007-01-01  Lutz Mueller <lutz@topfrose.de>

	reviewed by: Edward Hervey  <edward@fluendo.com>

	* configure.ac:
	* gst/real/Makefile.am:
	* gst/real/gstreal.c: (gst_realdec_alloc_buffer),
	(gst_realdec_decode), (gst_realdec_chain),
	(gst_realdec_activate_push), (gst_realdec_setcaps),
	(gst_realdec_init), (gst_realdec_base_init),
	(gst_realdec_change_state), (gst_realdec_finalize),
	(gst_realdec_set_property), (gst_realdec_get_property),
	(gst_realdec_class_init), (plugin_init):
	New plugin for decoding RealVideo Streams using the x86 32bit
	shared libraries.
	Closes #354174

2006-12-30  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/elements/videocrop.c: (GST_START_TEST),
	(videocrop_test_cropping_init_context):
	  When we can't create an element needed for the test, print a message
	  detailing which element it actually is that's missing (#390673).

2006-12-22 Edgard Lima <edgard.lima@indt.org.br>

	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	Added seek support.
	Patch by: Andre Moreira Magalhaes <andrunko@gmail.com>
	Fixes: #375264.

2006-12-22  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/mpeg2enc.c: (setup_mpeg2enc),
	(cleanup_mpeg2enc):
	* tests/check/elements/rganalysis.c: (cleanup_rganalysis):
	* tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	(cleanup_wavpackdec):
	* tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	(cleanup_wavpackenc):
	* tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc):
	  reapply consistent pad (de)activation

2006-12-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	Back to CVS

	* gst-plugins-bad.doap:
	Add release section for 0.10.4

=== release 0.10.4 ===

2006-12-21  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.4, "Black Bugs"

2006-12-21  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/mpeg2enc.c: (setup_mpeg2enc),
	(cleanup_mpeg2enc):
	* tests/check/elements/rganalysis.c: (cleanup_rganalysis):
	* tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	(cleanup_wavpackdec):
	* tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	(cleanup_wavpackenc):
	* tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc):
	  revert my freeze breakage

2006-12-21  Stefan Kost  <ensonic@users.sf.net>

	* tests/check/elements/mpeg2enc.c: (setup_mpeg2enc),
	(cleanup_mpeg2enc):
	* tests/check/elements/rganalysis.c: (cleanup_rganalysis):
	* tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	(cleanup_wavpackdec):
	* tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	(cleanup_wavpackenc):
	* tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc):
	  consistent pad (de)activation

2006-12-18  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_post_progress),
	(gst_qtdemux_chain):
	  Don't post BUFFERING messages in streaming mode if the stream
	  headers are behind the movie data; instead, post "progress" element
	  messages as a temporary solution. Apps might get confused and do
	  silly things to the pipeline state if they see buffering messages
	  from different sources and don't realize they come from different
	  sources (#387160).

2006-12-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* ext/Makefile.am:
	* ext/ladspa/*:
	  Move LADPSA plugin from -good for the release, as it's not quite
	  ready to be enabled by default in the -good module yet.

2006-12-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_chain),
	(gst_qtdemux_add_stream):
	  Don't output g_warning for an unsupported format, just send a
	  GST_ELEMENT_WARNING and don't add the pad.
	  Fix the case where it doesn't check for a NULL pad in streaming mode.
	  Fixes #387137

2006-12-18  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Fix crash dereferencing NULL pointer if there's no stco atom.
	  Fixes #387122.

2006-12-18  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/wavpack/gstwavpackenc.h:
	Use local copy of md5.h, as it disappeared in recent wavpack
	installs.
	Patch by: Sebastian Dröge <slomo at ubuntu dot com>
	Fixes: #387076

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

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_query_types),
	(gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event):
	  We don't support seeking in streaming mode, so don't even try.
	  Implement seeking query so apps can query seekability properly
	  (see #365414). Fix duration query.

2006-12-15  Thomas Vander Stichele  <thomas at apestaart dot org>

	* Makefile.am:
	* gst-plugins-bad.doap:
	* gst-plugins-bad.spec.in:
	  add doap file

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

	* ext/libmms/gstmms.c: (gst_mms_create):
	  These debug statements should be using LOG level.

2006-12-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/modplug/libmodplug/sndfile.cpp:
	  Fix potential buffer overflow (CVE-2006-4192) (#385788).

2006-12-13  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	(gst_qtdemux_handle_src_query), (qtdemux_parse_trak),
	(qtdemux_audio_caps):
	Add AMR-WB to the list of supported formats.

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

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create),
	(send_request_and_redirect):
	  Fix minor mem leak in redirect code.

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/neonhttpsrc.c: (handoff_cb),
	(GST_START_TEST), (neonhttpsrc_suite):
	* tests/check/gst-plugins-bad.supp:
	  Add super-basic unit test for #384140.

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

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create),
	(send_request_and_redirect):
	  Set offset on buffers pushed out (id3demux gets confused if the
	  first buffer does not have an offset of 0). Fixes #384140.

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

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	(gst_neonhttp_src_create), (send_request_and_redirect),
	(gst_neonhttp_src_start), (oom_callback):
	 Minor clean-ups; remove newlines at end of debug statements.

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

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_tree):
	  Fix non-working redirects from inetfilm.com (handle 'alis' reference
	  data type as well). Fixes #378613.

2006-12-11  Wim Taymans  <wim@fluendo.com>

	Patch by: Jonathan Matthew <jonathan at kaolin wh9 net>).

	* gst/modplug/gstmodplug.cc:
	Fix modplug duration query. Fixes #384294.

2006-12-08  Wim Taymans  <wim@fluendo.com>

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

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	(gst_qtdemux_handle_src_query), (qtdemux_parse_trak),
	(qtdemux_audio_caps):
	Fix caps for 24 bit raw PCM audio (2).
	Fixes #383471.

2006-12-07  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	(gst_qtdemux_handle_src_query), (qtdemux_parse_trak),
	(qtdemux_video_caps):
	Handle more H263 variants.

2006-12-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/jack/.cvsignore:
	Ignore old files as requested by the build slave.

2006-12-06  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	Update the Jack requirement to the version where I think options_t
	appeared

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

	* win32/MANIFEST:
	Fix compilation on win32 under VS8
	Patch by: Sergey Scobich <sergey dot scobich at gmail dot com>
	Partially fixes #381175

2006-11-30  Wim Taymans  <wim@fluendo.com>

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

	* gst/replaygain/gstrganalysis.c: (gst_rg_analysis_event):
	  Call the base class handler.  Fixes #380610.

2006-11-30  Wim Taymans  <wim@fluendo.com>

	* ext/Makefile.am:
	Fix build.

	* ext/jack/gstjackaudiosink.c: (jack_process_cb),
	(jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb),
	(gst_jack_ring_buffer_acquire):
	Small cleanups.

2006-11-30  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* ext/Makefile.am:
	* ext/jack/Makefile.am:
	* ext/jack/gstjack.c: (plugin_init):
	* ext/jack/gstjack.h:
	* ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_get_type),
	(gst_jack_ring_buffer_class_init), (jack_process_cb),
	(jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb),
	(gst_jack_ring_buffer_init), (gst_jack_ring_buffer_dispose),
	(gst_jack_ring_buffer_finalize),
	(gst_jack_ring_buffer_open_device),
	(gst_jack_ring_buffer_close_device),
	(gst_jack_ring_buffer_acquire), (gst_jack_ring_buffer_release),
	(gst_jack_ring_buffer_start), (gst_jack_ring_buffer_pause),
	(gst_jack_ring_buffer_stop), (gst_jack_ring_buffer_delay),
	(gst_jack_connect_get_type), (gst_jack_audio_sink_base_init),
	(gst_jack_audio_sink_class_init), (gst_jack_audio_sink_init),
	(gst_jack_audio_sink_set_property),
	(gst_jack_audio_sink_get_property), (gst_jack_audio_sink_getcaps),
	(gst_jack_audio_sink_create_ringbuffer):
	* ext/jack/gstjackaudiosink.h:
	  Added fully functional jackaudiosink.

2006-11-27  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	(gst_qtdemux_handle_src_query), (qtdemux_parse_trak):
	  Remove some asserts and replace them with a proper error
	  message. Fixes #379261.

2006-11-26  Michael Smith  <msmith@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_src_query),
	(theora_dec_src_event), (theora_handle_data_packet),
	(theora_dec_chain):
	  Send events on the right pads, since they don't work very well if
	  you send them in the wrong direction.

2006-11-24  Stefan Kost  <ensonic@users.sf.net>

	* ext/audiofile/gstafsink.c:
	* ext/polyp/plugin.c: (plugin_init):
	* ext/polyp/polypsink.c:
	* ext/polyp/polypsink.h:
	* sys/dxr3/dxr3audiosink.h:
	* sys/dxr3/dxr3spusink.h:
	* sys/dxr3/dxr3videosink.h:
	  remove obsolete _factory_init protos and functions

2006-11-19  Michael Smith  <msmith@fluendo.com>

	* gst/librfb/Makefile.am:
	  Compile with appropriate cflags. Fixes build.

2006-11-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c: (gst_dvbsrc_tune):
	Actually set the TONE parameter for DVB-S when we should.

2006-11-16  David Schleef  <ds@schleef.org>

	* gst/librfb/rfbdecoder.c: Fixes for 64-bit architectures.

2006-11-16  David Schleef  <ds@schleef.org>

	* gst/librfb/gstrfbsrc.h:  Oops, add this file.

2006-11-16  David Schleef  <ds@schleef.org>

	Patch by: Andre Moreira Magalhaes <andrunko@gmail.com>

	* configure.ac:
	* 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:
	  Port librfb to 0.10 (#376106).

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

	* ext/spc/gstspc.c: (spc_play):
	  Fix build with disabled gst-debug.

2006-11-15  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge  <slomo@circular-chaos.org>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
	(gst_wavpack_dec_init), (gst_wavpack_dec_change_state):
	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init),
	(gst_wavpack_enc_class_init), (gst_wavpack_enc_reset),
	(gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config),
	(gst_wavpack_enc_change_state):
	* ext/wavpack/gstwavpackparse.c:
	  Some small clean-ups: use enums instead of hard-coded numbers,
	  const-ify element details, re-factor some code into _reset()
	  functions (#352605).

2006-11-14  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/dvb/gstdvbsrc.c: (gst_dvbsrc_create):
	* sys/dvb/gstdvbsrc.h:
	  Fix minor printf format issue; remove overly paranoid checks in
	  create function; fix GObject boilerplate macros.

2006-11-14  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	(gst_qtdemux_handle_src_query), (qtdemux_parse_trak):
	Don't parse extra sample params for raw pcm. Fixes #374914.

2006-11-14  Wim Taymans  <wim@fluendo.com>

	* tests/check/elements/.cvsignore:
	Add cdaudio to ignore.

2006-11-14  Wim Taymans  <wim@fluendo.com>

	* ext/Makefile.am:
	dist cdaudio dir.

2006-11-14  Wim Taymans  <wim@fluendo.com>

	* configure.ac:
	* ext/Makefile.am:
	Fix cdaudio build.

2006-11-14  Wim Taymans  <wim@fluendo.com>

	Patch by: Mark Nauwelaerts <manauw at skynet be>

	* tests/check/Makefile.am:
	* tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc),
	(GST_START_TEST), (y4menc_suite), (main):
	Added y4m test. Fixes #372243.

2006-11-13  Wim Taymans  <wim@fluendo.com>

	Patch by: Mark Nauwelaerts <manauw at skynet be>

	* configure.ac:
	Enable cdaudio and y4m.

	* gst/y4m/Makefile.am:
	* gst/y4m/gsty4mencode.c: (gst_y4m_encode_base_init),
	(gst_y4m_encode_class_init), (gst_y4m_encode_init),
	(gst_y4m_encode_reset), (gst_y4m_encode_setcaps),
	(gst_y4m_encode_get_stream_header),
	(gst_y4m_encode_get_frame_header), (gst_y4m_encode_chain),
	(gst_y4m_encode_set_property), (gst_y4m_encode_get_property),
	(gst_y4m_encode_change_state), (plugin_init):
	* gst/y4m/gsty4mencode.h:
	Port of y4mencode to 0.10. 

2006-11-10  David Schleef  <ds@schleef.org>

	* configure.ac:
	* gst/videoparse/Makefile.am:
	* gst/videoparse/gstvideoparse.c:
	  A little pluggy to make sense out of the random chunks we get
	  from multifilesrc.

2006-11-10  David Schleef  <ds@schleef.org>

	* gst/multifile/Makefile.am:
	  Let's not depend on a file that doesn't exist.

2006-11-10  David Schleef  <ds@schleef.org>

	* gst/multifilesink/Makefile.am:
	* gst/multifilesink/gstmultifilesink.c:
	* gst/multifilesink/gstmultifilesink.h:
	* gst/multifilesink/multifilesink.vcproj:
	  Remove the old one.

2006-11-10  David Schleef  <ds@schleef.org>

	* configure.ac:
	* gst/multifile/Makefile.am:
	* gst/multifile/gstmultifile.c:
	* gst/multifile/gstmultifilesink.c:
	* gst/multifile/gstmultifilesrc.c:
	* gst/multifile/multifile.vproj:
	  Revive multifile[src|sink].

2006-11-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c: (gst_dvbsrc_set_property)
	(gst_dvbsrc_create), (gst_dvbsrc_output_frontend_stats),
	(gst_dvbsrc_tune), (gst_dvbsrc_set_pes_filters):
	Rename set_pes_filter to set_pes_filters for consistency.
	Do run-time pid filtering.

2006-11-08  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c: (read_device):
	Do not call output_frontend_stats from a method that does not
	have the gstdvbsrc object.
	This fixes the build, sorry guys!

2006-11-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/gstdvbsrc.c: (read_device), (gst_dvbsrc_create),
	(gst_dvbsrc_output_frontend_stats), (gst_dvbsrc_tune),
	(gst_dvbsrc_set_pes_filter):
	* sys/dvb/gstdvbsrc.h:
	Force PAT to always be in the filter.
	Try to continue reading after failing 10 times.

2006-11-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* po/POTFILES.in:
	  add dvbsrc
	* sys/dvb/gstdvbsrc.c: (gst_dvbsrc_class_init), (gst_dvbsrc_init),
	(gst_dvbsrc_set_property), (gst_dvbsrc_get_property),
	(gst_dvbsrc_open_frontend), (gst_dvbsrc_open_dvr),
	(gst_dvbsrc_finalize), (read_device), (gst_dvbsrc_create),
	(gst_dvbsrc_start), (gst_dvbsrc_frontend_status),
	(gst_dvbsrc_tune), (gst_dvbsrc_unset_pes_filters),
	(gst_dvbsrc_set_pes_filter):
	* sys/dvb/gstdvbsrc.h:
	  adapter-prefix is a terrible name for a device, so replace it.
	  strerror should be used immediately after the syscall related to it.
	  Actually throw a reasonable GST_ELEMENT_ERROR if we fail to open
	  (pretty easy to trigger by opening the same device twice).
	  Use _OBJECT macros where it makes sense.
	  This element is going to need some work before it moves.

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

	Patch by: Sebastian Dröge <slomo at circular-chaos.org>

	* configure.ac:
	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type),
	(gst_wavpack_enc_correction_mode_get_type),
	(gst_wavpack_enc_joint_stereo_mode_get_type),
	(gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config):
	  Fix enum nicks; only emit no-more-pads once; add support for very
	  fast encoding mode in upcoming 4.40.0 release (#369539).

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

	Patch by: Sergey Scobich  <sergey dot scobich at gmail com>

	* sys/directdraw/gstdirectdrawsink.c:
	(gst_directdrawsink_window_thread),
	(gst_directdrawsink_create_default_window):
	* sys/directdraw/gstdirectdrawsink.h:
	* sys/directsound/gstdirectsoundsink.c:
	  Wait until the window is created before using it; guard unistd.h
	  includes with HAVE_UNISTD_H. (#366523)

	* win32/vs8/libgstdirectdraw.vcproj:
	* win32/vs8/libgstdirectsound.vcproj:
	  Update project files.

2006-10-31  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration),
	(gst_qtdemux_handle_src_query), (qtdemux_parse_tree),
	(qtdemux_parse_trak):
	Handle unbounded length streams a bit better. Fixes #367696.

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

	* ext/dts/gstdtsdec.c: (gst_dtsdec_handle_frame):
	  Fix flow handling and buffer refcounting (gst_pad_push() takes
	  ownership of the buffer passed to it, the buffer does not have
	  to be unreffed no matter what flow value gst_pad_push() returns).

2006-10-26  Edgard Lima <edgard.lima@indt.org.br>

	Patch by: Renato Filho <renato.filho@indt.org.br> 

	* gst/nuvdemux/gstnuvdemux.c:
	* gst/nuvdemux/gstnuvdemux.h:
	Fixed bug for files with timestamps less than 0.
	
2006-10-21  David Schleef  <ds@schleef.org>

	* configure.ac:
	* gst/multifilesink/Makefile.am:
	* gst/multifilesink/gstmultifilesink.c:
	* gst/multifilesink/gstmultifilesink.h:
	  I copied over filesink a while ago and modified it to work
	  as multifilesink.  Might as well check it in.  This could
	  use some work before being declared useful.

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

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_set_wp_config):
	* ext/wavpack/gstwavpackparse.c:
	(gst_wavpack_parse_create_src_pad):
	* gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_create_pads):
	* tests/check/elements/wavpackparse.c: (wavpackparse_found_pad):
	  Activate pads before adding them to running element.

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

	Patch by: Josep Torra Valles  <josep at fluendo com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
	(next_entry_size), (qtdemux_inflate), (qtdemux_parse_moov),
	(qtdemux_parse_tree), (qtdemux_parse_trak), (qtdemux_tag_add_str),
	(qtdemux_tag_add_num), (qtdemux_tag_add_date),
	(qtdemux_tag_add_gnre):
	  Make compile with Forte compiler, mostly don't do pointer arithmetic
	  with void pointers (#362626).

2006-10-17  Edgard Lima <edgard.lima@indt.org.br>

	* gst/nuvdemux/gstnuvdemux.c:
	Just a cast to make it compile oos big_endian systems.

2006-10-17  Edgard Lima <edgard.lima@indt.org.br>

	Patch by: Renato Filho <renato.filho@indt.org.br> and Rosfran Borges
	<rosfran.borges@indt.org.br>

	* configure.ac:
	* gst/nuvdemux/:
	* gst/nuvdemux/Makefile.am:
	* gst/nuvdemux/gstnuvdemux.c:
	* gst/nuvdemux/gstnuvdemux.h:
	Created new element nuvdemux.
	
2006-10-17  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Josep Torra Valles  <josep at fluendo com>

	* gst/nsf/fds_snd.c:
	* gst/nsf/mmc5_snd.c:
	* gst/nsf/nsf.c:
	* gst/nsf/vrc7_snd.c:
	* gst/nsf/vrcvisnd.c:
	  Fix some things the Forte compiler warns about (#362626).

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

	* gst/qtdemux/qtdemux.c: (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_dump_unknown), (qtdemux_tree_get_child_by_type),
	(qtdemux_tree_get_sibling_by_type):
	* gst/qtdemux/qtdemux.h:
	  Avoid void pointer usage, better use guint8 * instead.

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

	* configure.ac:
	* gst/deinterlace/Makefile.am:
	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_base_init),
	(gst_deinterlace_class_init), (gst_deinterlace_init),
	(gst_deinterlace_stop), (gst_deinterlace_transform_caps),
	(gst_deinterlace_set_caps), (gst_deinterlace_transform_ip),
	(gst_deinterlace_set_property), (gst_deinterlace_get_property):
	* gst/deinterlace/gstdeinterlace.h:
	  Port simple deinterlacer from 0.8. Use at your own risk, don't blame
	  me for anything it does or does not do to your precious pictures.

2006-10-11  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	Add some fourcc for DV format.

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

	* gst/qtdemux/qtdemux.c: (extract_initial_length_and_fourcc),
	(gst_qtdemux_loop_state_header):
	  Printf format fixes.

	* sys/dvb/gstdvbsrc.c:
	  Use "_stdint.h".

2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/dvb/Makefile.am:
	* sys/dvb/dvb-api/Makefile.am:
	* sys/dvb/dvb-api/audio.h:
	* sys/dvb/dvb-api/ca.h:
	* sys/dvb/dvb-api/dmx.h:
	* sys/dvb/dvb-api/frontend.h:
	* sys/dvb/dvb-api/net.h:
	* sys/dvb/dvb-api/osd.h:
	* sys/dvb/dvb-api/version.h:
	* sys/dvb/dvb-api/video.h:
	Remove these files, not needed use system files.
	* sys/dvb/gstdvbsrc.c: (gst_dvbsrc_set_property),
	(gst_dvbsrc_create), (gst_dvbsrc_output_frontend_stats),
	(gst_dvbsrc_tune):
	Fix warnings, uint16_t etc. is in stdint.h.
	Use system includes not our local ones.

2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* configure.ac:
	* sys/Makefile.am:
	Add dvb detection and allow dvbsrc to be built.

2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
	
	* configure.ac:
	* sys/Makefile.am:
	* sys/dvb/AUTHORS:
	* sys/dvb/Makefile.am:
	* sys/dvb/README:
	* sys/dvb/dvb-api/Makefile.am:
	* sys/dvb/dvb-api/audio.h:
	* sys/dvb/dvb-api/ca.h:
	* sys/dvb/dvb-api/dmx.h:
	* sys/dvb/dvb-api/frontend.h:
	* sys/dvb/dvb-api/net.h:
	* sys/dvb/dvb-api/osd.h:
	* sys/dvb/dvb-api/version.h:
	* sys/dvb/dvb-api/video.h:
	* sys/dvb/gstdvbsrc.c: 
	* sys/dvb/gstdvbsrc.h:
	Initial import of dvbsrc.
	Currently won't be built.

2006-10-10  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	(gst_qtdemux_push_event), (gst_qtdemux_do_seek),
	(gst_qtdemux_change_state), (extract_initial_length_and_fourcc),
	(gst_qtdemux_loop_state_header), (gst_qtdemux_activate_segment),
	(gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
	(gst_qtdemux_post_buffering), (gst_qtdemux_chain),
	(gst_qtdemux_add_stream), (qtdemux_process_redirects),
	(qtdemux_parse_tree), (qtdemux_parse_trak):
	Reorganise some stuff.
	Parse RTSP redirection URLS.

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

	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/inspect/plugin-dtsdec.xml:
	* docs/plugins/inspect/plugin-mms.xml:
	* docs/plugins/inspect/plugin-mpeg2enc.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-replaygain.xml:
	* docs/plugins/inspect/plugin-soundtouch.xml:
	* docs/plugins/inspect/plugin-spcdec.xml:
	* docs/plugins/inspect/plugin-swfdec.xml:
	* docs/plugins/inspect/plugin-videocrop.xml:
	* docs/plugins/inspect/plugin-wavpack.xml:
	  Add/update docs stuff.

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

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

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/replaygain/Makefile.am:
	* gst/replaygain/gstrganalysis.c: (gst_rg_analysis_base_init),
	(gst_rg_analysis_class_init), (gst_rg_analysis_init),
	(gst_rg_analysis_set_property), (gst_rg_analysis_get_property),
	(gst_rg_analysis_start), (gst_rg_analysis_set_caps),
	(gst_rg_analysis_transform_ip), (gst_rg_analysis_event),
	(gst_rg_analysis_stop), (gst_rg_analysis_handle_tags),
	(gst_rg_analysis_handle_eos), (gst_rg_analysis_track_result),
	(gst_rg_analysis_album_result), (plugin_init):
	* gst/replaygain/gstrganalysis.h:
	* gst/replaygain/rganalysis.c: (yule_filter), (butter_filter),
	(apply_filters), (reset_filters), (accumulator_add),
	(accumulator_clear), (accumulator_result), (rg_analysis_new),
	(rg_analysis_set_sample_rate), (rg_analysis_destroy),
	(rg_analysis_analyze_mono_float),
	(rg_analysis_analyze_stereo_float),
	(rg_analysis_analyze_mono_int16),
	(rg_analysis_analyze_stereo_int16), (rg_analysis_analyze),
	(rg_analysis_track_result), (rg_analysis_album_result),
	(rg_analysis_reset_album), (rg_analysis_reset):
	* gst/replaygain/rganalysis.h:
	  Add ReplayGain analysis element (#357069).

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/rganalysis.c: (get_expected_gain),
	(setup_rganalysis), (cleanup_rganalysis), (set_playing_state),
	(send_eos_event), (send_tag_event), (poll_eos), (poll_tags),
	(fail_unless_track_gain), (fail_unless_track_peak),
	(fail_unless_album_gain), (fail_unless_album_peak),
	(fail_if_track_tags), (fail_if_album_tags),
	(fail_unless_num_tracks), (test_buffer_const_float_mono),
	(test_buffer_const_float_stereo), (test_buffer_const_int16_mono),
	(test_buffer_const_int16_stereo), (test_buffer_square_float_mono),
	(test_buffer_square_float_stereo), (test_buffer_square_int16_mono),
	(test_buffer_square_int16_stereo), (push_buffer), (GST_START_TEST),
	(rganalysis_suite), (main):
	  Unit tests for the new replaygain element.

2006-10-06  Wim Taymans  <wim@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain),
	(gst_faad_close_decoder):
	Some cleanups.
	Added some more debugging.
	Don't ever ignore unlinked, we're not a demuxer.

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream):
	Activate pad before adding it to the element.

2006-10-06  Michael Smith  <msmith@fluendo.com>

	* ext/theora/theoradec.c: (gst_theoradec_reset),
	(theora_get_query_types), (theora_dec_src_query),
	(theora_dec_src_event), (theora_dec_sink_event),
	(theora_handle_comment_packet), (theora_handle_type_packet),
	(theora_handle_header_packet), (clip_buffer), (theora_dec_push),
	(theora_handle_422_image), (theora_handle_420_image),
	(theora_handle_data_packet), (theora_dec_chain),
	(theora_dec_change_state):
	* ext/theora/theoradec.h:
	  Port lots of changes from theoradec to theoraexpdec.
	  This catches this plugin up to theoradec. Note that duplicate frames
	  are broken in theoradec at the moment.

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

	* gst/spectrum/gstspectrum.c: (gst_spectrum_transform_ip):
	  Fix mem leak, avoid unnecessary memcpy.

2006-10-06  Stefan Kost  <ensonic@users.sf.net>

	* gst/spectrum/gstspectrum.c: (gst_spectrum_init),
	(gst_spectrum_transform_ip):
	  Removed cruft code that was just commented out. Removed some obsolete
	  debug logs statements.

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

	* ext/dts/gstdtsdec.c: (gst_dtsdec_chain):
	* ext/musicbrainz/gsttrm.c: (gst_trm_setcaps):
	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_sink_set_caps):
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_chain), (qtdemux_parse),
	(qtdemux_parse_trak):
	* gst/spectrum/gstspectrum.c: (gst_spectrum_transform_ip):
	  Another batch of printf format fixes.

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

	* gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init),
	(gst_video_crop_init),
	(gst_video_crop_get_image_details_from_caps),
	(gst_video_crop_transform_packed_complex),
	(gst_video_crop_transform_packed_simple),
	(gst_video_crop_transform), (gst_video_crop_transform_caps),
	(gst_video_crop_set_caps),
	(gst_videocrop_clear_negotiated_caps_locked),
	(gst_video_crop_set_property):
	* gst/videocrop/gstvideocrop.h:
	  Handle packed YUV formats (UYVY, YUY2, YUYV) separately; also, fix
	  passthrough mode; lastly, clear negotiated basetransform caps when
	  the cropping changes in order to force renegotiation.

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

	* tests/icles/.cvsignore:
	* tests/icles/Makefile.am:
	* tests/icles/videocrop-test.c: (quit_mainloop), (tick_cb),
	(test_with_caps), (video_crop_get_test_caps), (main):
	  Visual test for videocrop, shows that packed yuv doesn't work right
	  yet. --with-ffmpegcolorspace option doesn't work yet for unknown
	  reasons (another basetransform issue?)

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

	* po/POTFILES.in:
	* sys/v4l2/.cvsignore:
	  Remove more v4l2 stuff, hopefully fixing 'make distcheck' again.

2006-10-04  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-video4linux2.xml:
	* gst-plugins-bad.spec.in:
	  removed v4l2

2006-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* sys/Makefile.am:
	* sys/v4l2/Makefile.am:
	* sys/v4l2/README:
	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2vidorient.c:
	* sys/v4l2/gstv4l2vidorient.h:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	  moved to gst-plugins-good

2006-10-03  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/v4l2/gstv4l2object.c:
	(gst_v4l2_object_install_properties_helper):
	  comment out the properties that are already part of the tuner
	  interface.

2006-10-03  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/v4l2/gstv4l2src.c:
	Improve docs.

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

	* ext/xvid/gstxvid.c: (plugin_init):
	  Set rank of xviddec to NONE until someone fixes it (too many crasher
	  bug reports against totem, people should use gst-ffmpeg).

2006-09-28  Wim Taymans  <wim@fluendo.com>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_all_caps),
	(gst_v4l2src_get_caps):
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists):
	Framerate can be 0/1 too.
	Init framerate to 0/1 before querying it so that we can detect
	devices that don't know about a framerate.
	Add some more debugging info.

2006-09-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add support for 'yv12' fourcc.

2006-09-27  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* tests/icles/v4l2src-test.c:
	Removed set-undef-fps.

2006-09-27  Wim Taymans  <wim@fluendo.com>

	* sys/v4l2/gstv4l2object.c:
	(gst_v4l2_object_install_properties_helper), (gst_v4l2_object_new),
	(gst_v4l2_object_set_property_helper),
	(gst_v4l2_object_get_property_helper), (gst_v4l2_set_defaults):
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init),
	(gst_v4l2src_create):
	* sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_contains_channel),
	(gst_v4l2_tuner_list_channels),
	(gst_v4l2_tuner_set_channel_and_notify),
	(gst_v4l2_tuner_get_channel), (gst_v4l2_tuner_contains_norm),
	(gst_v4l2_tuner_list_norms), (gst_v4l2_tuner_set_norm_and_notify),
	(gst_v4l2_tuner_get_norm):
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	(gst_v4l2_fill_lists), (gst_v4l2_empty_lists):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_get_fps):
	Renamed some properties to match the tuner interface naming.

2006-09-27  Wim Taymans  <wim@fluendo.com>

	* sys/v4l2/gstv4l2object.c: (gst_v4l2_object_set_property_helper),
	(gst_v4l2_set_defaults):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read),
	(gst_v4l2src_create):
	* sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open):
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	(gst_v4l2_fill_lists), (gst_v4l2_open), (gst_v4l2_set_norm),
	(gst_v4l2_get_frequency), (gst_v4l2_set_frequency),
	(gst_v4l2_signal_strength), (gst_v4l2_get_attribute),
	(gst_v4l2_set_attribute), (gst_v4l2_get_input),
	(gst_v4l2_set_input):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	(gst_v4l2src_grab_frame), (gst_v4l2src_get_capture),
	(gst_v4l2src_set_capture), (gst_v4l2src_capture_init),
	(gst_v4l2src_capture_start), (gst_v4l2src_capture_stop),
	(gst_v4l2src_buffer_new):
	* tests/icles/v4l2src-test.c: (my_bus_callback), (main):
	Small cleanups.
	Fix error messages.
	Use locks when getting timestamps.
	Fix leaks in test.
	Add licensing header to tests.

2006-09-27  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2src_calls.c:
	* tests/icles/v4l2src-test.c:
	Some cleanups and comments.

2006-09-26  Wim Taymans  <wim@fluendo.com>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	Add v4l2 plugin to the docs.

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read),
	(gst_v4l2src_get_mmap), (gst_v4l2src_create):
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2vidorient.c:
	Fix docs.
	Remove some more externs.

2006-09-26  Wim Taymans  <wim@fluendo.com>

	* sys/v4l2/Makefile.am:
	Fix makefile, list libs in stack order.

	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2object.c: (gst_v4l2_device_get_type),
	(gst_v4l2_object_install_properties_helper):
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read),
	(gst_v4l2src_get_mmap), (gst_v4l2src_create):
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2vidorient.h:
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.h:
	Fix coding style:
	- Remove extern from functions.
	- Fix header indentation.
	Fix Flags, add defaults for properties.
	Remove unused enums.
	Fix TOO_LAZY in error messages.

2006-09-26  Wim Taymans  <wim@fluendo.com>

	* sys/v4l2/gstv4l2object.c: (gst_v4l2_class_probe_devices),
	(gst_v4l2_probe_needs_probe),
	(gst_v4l2_object_install_properties_helper), (gst_v4l2_object_new),
	(gst_v4l2_object_destroy), (gst_v4l2_object_set_property_helper),
	(gst_v4l2_object_get_property_helper), (gst_v4l2_set_defaults),
	(gst_v4l2_object_start), (gst_v4l2_object_stop):
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init),
	(gst_v4l2src_init), (gst_v4l2src_dispose),
	(gst_v4l2src_set_property), (gst_v4l2src_get_property),
	(gst_v4l2src_fixate), (gst_v4l2src_get_caps),
	(gst_v4l2src_set_caps), (gst_v4l2src_get_read),
	(gst_v4l2src_get_mmap), (gst_v4l2src_create):
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	(gst_v4l2_open), (gst_v4l2_close), (gst_v4l2_get_norm),
	(gst_v4l2_set_norm), (gst_v4l2_get_frequency),
	(gst_v4l2_set_frequency), (gst_v4l2_signal_strength),
	(gst_v4l2_get_attribute), (gst_v4l2_set_attribute),
	(gst_v4l2_get_input), (gst_v4l2_set_input):
	* 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), (gst_v4l2src_capture_deinit),
	(gst_v4l2src_get_size_limits), (gst_v4l2src_set_fps),
	(gst_v4l2src_get_fps), (gst_v4l2src_buffer_finalize),
	(gst_v4l2src_buffer_new):
	Fix pass at code cleanups, move errors cases out of the normal
	flow for additional code clarity.

2006-09-23  Wim Taymans  <wim@fluendo.com>

	* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init),
	(gst_cdaudio_init), (gst_cdaudio_set_property),
	(gst_cdaudio_get_property), (gst_cdaudio_change_state),
	(gst_cdaudio_send_event), (gst_cdaudio_get_query_types),
	(gst_cdaudio_query), (cdaudio_uri_set_uri):
	Port to 0.10.

2006-09-22  David Schleef  <ds@schleef.org>

	* sys/glsink/glimagesink.c:
	  Fix problems when the element cannot open the display.
	  (fixes #357212)

2006-09-22  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Up requirements to -base CVS and core CVS (the format for the
	  video orientation interface used by v4l2src and the latter
	  since that's what -base CVS requires).

2006-09-22  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/directfb/dfbvideosink.c: (plugin_init):
	  Lower rank from SECONDARY to MARGINAL. Plugins in -bad that might
	  be autoplugged shouldn't trump plugins in -base, -good or -ugly
	  (in this case ximagesink).

	* sys/glsink/glimagesink.c: (plugin_init):
	  Set rank to NONE to prevent it from being autoplugged until
	  errors are handled properly (see #357212).

2006-09-21  Edgard Lima <edgard.lima@indt.org.br>

	* ext/neon/Makefile.am:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	Reverted previous commit (2006-09-19 - Allow internal codes from
	last.fm). As dicussed on #gstreamer it should be done in separete
	element.

2006-09-21  Wim Taymans  <wim@fluendo.com>

	* ext/faac/gstfaac.c: (gst_faac_configure_source_pad),
	(gst_faac_chain):
	Add decoder specific info on the caps.
	Some cleanups here and there.

2006-09019  Edgard Lima <edgard.lima@indt.org.br>

	Patch by: Milosz Derezynski <internalerror@gmail.com> and
		  Rosfran Borges <rosfran.borges@indt.org.br>

	* ext/neon/Makefile.am:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	Allow internal codes from last.fm
	

2006-09-19  Edgard Lima <edgard.lima@indt.org.br>

	* tests/icles/v4l2src-test.c:
	Just a small fix to the app options.

2006-09-19  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2vidorient.c:
	* sys/v4l2/gstv4l2vidorient.h:
	* tests/icles/v4l2src-test.c:
	Add Video Orientation interface support to v4l2src.
	
2006-09-19  Wim Taymans  <wim@fluendo.com>

	* ext/gsm/gstgsmdec.c: (gst_gsmdec_init),
	(gst_gsmdec_sink_setcaps), (gst_gsmdec_sink_event),
	(gst_gsmdec_chain):
	* ext/gsm/gstgsmdec.h:
	Handle WAV49 variant (GSM in WAV).
	Some small cleanups.

2006-09-18  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_buffer_new ):
	Fix GST_BUFFER_DURATION.

2006-09-17  Stefan Kost  <ensonic@users.sf.net>

	* ext/hermes/gsthermescolorspace.c:
	* ext/ivorbis/vorbisfile.c:
	* ext/lcs/gstcolorspace.c:
	* ext/wavpack/gstwavpackenc.h:
	* ext/xine/xineaudiodec.c:
	* ext/xine/xineaudiosink.c:
	* ext/xine/xineinput.c:
	* gst/chart/gstchart.c:
	* gst/equalizer/gstiirequalizer.c:
	* gst/games/gstpuzzle.c:
	* gst/librfb/gstrfbsrc.c:
	* gst/mixmatrix/mixmatrix.c:
	* gst/nsf/gstnsf.h:
	* gst/vbidec/gstvbidec.c:
	* gst/virtualdub/gstxsharpen.c:
	  More G_OBJECT macro fixing.

2006-09-15  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2src_calls.c:
	* tests/icles/v4l2src-test.c:
	The test application and the plgind error messages has been improved.
	
2006-09-12  Stefan Kost  <ensonic@users.sf.net>

	* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	(gst_spectrum_start), (gst_spectrum_stop), (gst_spectrum_event):
	  Implements stop() to clear the adapter and event() to clear the
	  adapter on FLUSH_STOP and EOS.

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

	* gst/spectrum/gstspectrum.c: (gst_spectrum_init),
	(gst_spectrum_set_property):
	* gst/spectrum/gstspectrum.h:
	  Fix type mixup in spectrum->interval (gdouble<->guint64). Spotted by
	  René Stadler

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

	* gst/spectrum/demo-osssrc.c: (draw_spectrum), (main):
	  Use more defines

	* gst/spectrum/gstspectrum.c: (gst_spectrum_init),
	(gst_spectrum_dispose), (gst_spectrum_set_caps),
	(gst_spectrum_transform_ip):
	* gst/spectrum/gstspectrum.h:
	  Apply some of the spectrum cleanup changes suggested in #348085.

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

	* configure.ac:
	  Bump requirements of -base (videocrop test case needs this).

	* gst/videocrop/gstvideocrop.c:
	  Document sloppy handling of subsampled chroma planes if
	  left/top cropping is an odd number.

	* tests/check/elements/videocrop.c: (handoff_cb),
	(videocrop_test_cropping_init_context),
	(videocrop_test_cropping_deinit_context),
	(videocrop_test_cropping), (check_1x1_buffer), (GST_START_TEST),
	(videocrop_suite), (main):
	  Add another unit test that crops the input to 1x1 (and checks
	  that that pixel has the expected values in a number of formats).

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

	* gst/videocrop/Makefile.am:
	* gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init),
	(gst_video_crop_transform_packed),
	(gst_video_crop_transform_planar):
	  Some quick tests indicate that it doesn't make a great deal
	  of sense to use liboil here, at least not for the memcpy()s
	  we do, so remove liboil usage until there is clear evidence
	  it actually makes a positive difference somewhere.

2006-09-03  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/elements/videocrop.c: (handoff_cb),
	(buffer_probe_cb), (test_caps_transform), (test_passthrough),
	(notgst_value_list_get_nth_int), (videocrop_suite):
	  More tests: check passthrough mode and caps transform in
	  both directions with fixed values, ranges and lists.

2006-09-02  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	  Add videocrop to docs.

	* gst/videocrop/Makefile.am:
	* gst/videocrop/gstvideocrop.c:
	* gst/videocrop/gstvideocrop.h:
	  Move boilerplate stuff and structures into a header file.

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/videocrop.c: (video_crop_get_test_caps),
	(test_unit_sizes), (videocrop_test_cropping_init_context),
	(videocrop_test_cropping_deinit_context),
	(videocrop_test_cropping), (test_cropping), (videocrop_suite):
	  Add unit tests for videocrop.

2006-09-02  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* gst/videocrop/Makefile.am:
	* gst/videocrop/gstvideocrop.c: (gst_video_crop_base_init),
	(gst_video_crop_class_init), (gst_video_crop_init),
	(gst_video_crop_get_image_details_from_caps),
	(gst_video_crop_get_unit_size), (gst_video_crop_transform_packed),
	(gst_video_crop_transform_planar), (gst_video_crop_transform),
	(gst_video_crop_transform_dimension),
	(gst_video_crop_transform_dimension_value),
	(gst_video_crop_transform_caps), (gst_video_crop_set_caps),
	(gst_video_crop_set_property), (gst_video_crop_get_property),
	(plugin_init):
	  Port/rewrite videocrop from scratch for GStreamer-0.10, and make
	  it support all formats videoscale supports (#345653).

2006-09-02  Stefan Kost  <ensonic@users.sf.net>

	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2object.c:
	(gst_v4l2_object_install_properties_helper):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init):
	* sys/v4l2/gstv4l2src.h:
          Whitespace cleanups, dashify property-names.

2006-09-02  Stefan Kost  <ensonic@users.sf.net>

	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open):
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities),
	(gst_v4l2_open):
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_queue_frame),
	(gst_v4l2src_capture_init):
	* sys/v4l2/v4l2src_calls.h:
          Cleanup error messages and unify header comments

2006-08-31  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/nsf/Makefile.am:
	Add missing GST_LIBS

2006-08-30  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	Another small fix to set_caps function (sucks copy/paste error).
	
2006-08-30  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	Send new_segment in GST_FORMAT_TIME instead of in GST_FORMAT_BYTES.

2006-08-30  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	A small fix to set_caps function.

2006-08-30  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c:
	(gst_qtdemux_do_seek):
	Reset each streams last_flow to GST_FLOW_OK.
	(gst_qtdemux_activate_segment):
	Removing mystic modifications for good.

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

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
	(qtdemux_parse_tree):
	  put back 'segment start<=stop' change that was mystically reverted by
	  the last commit

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

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
	(qtdemux_parse_tree):
	Fix the build for disabled debug

2006-08-29  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	Fixed framerate negotiation.
	
2006-08-29  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Andrew Andkjar  <enki at goodship net>

	* ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_close):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported),
	(gst_sdlvideosink_deinitsdl):
	  Only de-init the subsystem we previously initialised. Avoids
	  borkage when both sdlvideosink and sdlaudiosink are used
	  at the same time and one is shut down.

2006-08-28  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
	(gst_qtdemux_add_stream), (qtdemux_parse_trak),
	(qtdemux_video_caps):
	Make sure segment start<=stop in weird quicktime files.

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

	* sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists):
	  add comments and more debug logging

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

	Patch by: Sebastian Dröge <slomo at circular-chaos.org>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_post_tags),
	(gst_wavpack_dec_chain):
	  Post audio codec and average bitrate tags on bus (#344472).

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init),
	(gst_wavpack_parse_src_query):
	  Forward queries in other formats (BYTE format in particular)
	  upstream; add Sebastian to authors.

2006-08-23  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	Fix set_caps to set width and height to the values the driver is
	really working with.

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

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block):
	  Fix mem leak, send newsegment event on correction pad
	  as well (#352476).

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
	  Restore original author (on Sebastian's request).

	* tests/check/Makefile.am:
	* tests/check/gst-plugins-bad.supp:
	  Add (so far empty) suppression file for -bad. Remove
	  wavpackenc test from VALGRIND_TO_FIX now that the leak
	  is fixed.

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

	Patch by: Sebastian Dröge <slomo at circular-chaos.org>

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/wavpackdec.c: (setup_wavpackdec),
	(cleanup_wavpackdec), (GST_START_TEST), (wavpackdec_suite), (main):
	* tests/check/elements/wavpackenc.c: (setup_wavpackenc),
	(cleanup_wavpackenc), (GST_START_TEST), (wavpackenc_suite), (main):
	* tests/check/elements/wavpackparse.c: (wavpackparse_found_pad),
	(setup_wavpackparse), (cleanup_wavpackparse), (GST_START_TEST),
	(wavpackparse_suite), (main):
	  Add unit tests for wavpack elements (#352476).

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

	Patch by: Sebastian Dröge <slomo at circular-chaos.org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/inspect/plugin-wavpack.xml:
	* ext/wavpack/gstwavpackdec.c:
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackenc.c:
	* ext/wavpack/gstwavpackenc.h:
	* ext/wavpack/gstwavpackparse.c:
	* ext/wavpack/gstwavpackparse.h:
	  Add docs for wavpack elements (#352476).

2006-08-22  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_size_limits)
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fixate)
	Fixed query size to work with drivers that uses intermediate step
	like "width * height" to find closest size.
	
2006-08-21  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* gst/gdp/Makefile.am:
	* gst/gdp/gstgdp.c:
	* gst/gdp/gstgdpdepay.c:
	* gst/gdp/gstgdpdepay.h:
	* gst/gdp/gstgdppay.c:
	* gst/gdp/gstgdppay.h:
	* tests/check/Makefile.am:
	* tests/check/elements/gdpdepay.c:
	* tests/check/elements/gdppay.c:
	  move gdp plugin to good.

2006-08-21  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), (qtdemux_parse),
	(qtdemux_node_dump_foreach), (qtdemux_parse_trak),
	(qtdemux_video_caps), (qtdemux_audio_caps):
	Some more constification.
	Fix some paletted data formats again.
	Fix ulaw/alaw in qt.
	Set correct caps for raw RGB.
	Add support for yuv2, which is like Yuv2.
	Add support for raw audio with the NONE fourcc, which is like raw.

2006-08-21  Wim Taymans  <wim@fluendo.com>

	* ext/gsm/gstgsm.c: (plugin_init):
	Make rank PRIMARY now that GSM seems to work fine.

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

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_init),
	(gst_wavpack_enc_finalize), (gst_wavpack_enc_sink_set_caps),
	(gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_format_samples),
	(gst_wavpack_enc_push_block), (gst_wavpack_enc_chain),
	(gst_wavpack_enc_rewrite_first_block),
	(gst_wavpack_enc_sink_event), (gst_wavpack_enc_change_state),
	(gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	* ext/wavpack/gstwavpackenc.h:
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
	(gst_wavpack_parse_src_query), (gst_wavpack_parse_src_event),
	(gst_wavpack_parse_init), (gst_wavpack_parse_get_upstream_length),
	(gst_wavpack_parse_loop):
	  More clean-ups: use shorter variable names to make code easier to
	  read; prefix structures we define with 'Gst' to make it clearer
	  where they come from.

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

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_init),
	(gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_push_block),
	(gst_wavpack_enc_chain), (gst_wavpack_enc_rewrite_first_block),
	(gst_wavpack_enc_sink_event):
	  Fix caps set on buffers and template caps (output is framed)
	  and make them match (#351663); use GST_WARNING_OBJECT instead of
	  GST_ELEMENT_WARNING; simplify push_block(); do some small
	  clean-ups here and there; fix memleak (#351663).

2006-08-18  Tim-Philipp Müller  <tim at centricular dot net>

	Based on patch by: Sebastian Dröge <slomo at circular-chaos.org>

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_sink_event),
	(gst_wavpack_parse_get_upstream_length),
	(gst_wavpack_parse_find_marker), (gst_wavpack_parse_resync_loop),
	(gst_wavpack_parse_loop), (gst_wavpack_parse_resync_adapter):
	  Fix resyncing in push mode not stopping re-syncing at embedded
	  zeroes; skip garbage between frames in pull mode as well if
	  necessary; use gst_pad_query_peer_duration(); push EOS and
	  NEWSEGMENT event in right direction (#351659).

2006-08-16  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge <slomo at circular-chaos.org>

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init):
	* ext/wavpack/gstwavpackparse.c:
	(gst_wavpack_parse_resync_adapter), (gst_wavpack_parse_chain):
	  In push mode, re-sync to next wavpack header if sync is lost
	  (#351557). Also use hyphens instead of underscores in
	  GObject property names.

2006-08-15  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge <slomo at circular-chaos.org>

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_class_init),
	(gst_wavpack_parse_reset), (gst_wavpack_parse_get_src_query_types),
	(gst_wavpack_parse_src_query),
	(gst_wavpack_parse_handle_seek_event),
	(gst_wavpack_parse_sink_event), (gst_wavpack_parse_init),
	(gst_wavpack_parse_create_src_pad),
	(gst_wavpack_parse_push_buffer), (gst_wavpack_parse_loop),
	(gst_wavpack_parse_chain), (gst_wavpack_parse_sink_activate),
	(gst_wavpack_parse_sink_activate_pull):
	* ext/wavpack/gstwavpackparse.h:
	  Make wavpackparse also work in push-mode (not seekable yet though);
	  some small clean-ups along the way; add support for SEEKING query
	  and query types function. (#351495).

2006-08-15  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/libfame/gstlibfame.c: (gst_fameenc_get_property):
	* sys/glsink/glimagesink.c: (gst_glimage_sink_get_property):
	  Fix leaks (#351502).

2006-08-14  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_redirects_sort_func),
	(qtdemux_process_redirects), (qtdemux_parse_tree):
	  Extract all references/redirections if there is more
	  than one and sort them; also extract minimum required
	  bitrate information if available. (#350399)
	  
2006-08-10  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Michal Benes  <michal.benes at itonis tv>

	* ext/faac/gstfaac.c: (gst_faac_configure_source_pad):
	  Bitrate in the faac structure is per output channel,
	  not total bitrate (#350741).

2006-08-09  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/xvid/gstxvidenc.c: (gst_xvidenc_chain):
	  Fix GST_ELEMENT_ERROR usage.

2006-08-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_tree):
	  Fix silly typo.

2006-08-08  Edward Hervey  <edward@fluendo.com>

	* tests/check/elements/gdpdepay.c: (gdpdepay_suite):
	I forgot to include the file containing the #define :)
	Now includes "config.h"

2006-08-08  Edward Hervey  <edward@fluendo.com>

	* tests/check/elements/gdpdepay.c: (gdpdepay_suite):
	Ignore test known to fail on PPC64. See #348114.

2006-08-04  Edgard Lima <edgard.lima@indt.org.br>

	Patch by: Rosfran Borges <rosfran dot borges at indt dot org dot
	br>

	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	Allow HTTP redirect (HTTP status code 302).

2006-08-04  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain):
	Fix event parsing by gdpdepay.  Fixes #349916.

2006-08-03  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Thadeu Lima de Souza Cascardo <cascardo at holoscopio dot
	com>

	* ext/Makefile.am:
	  Use right variables when USE_SPC is defined.

2006-08-02  Wim Taymans  <wim@fluendo.com>

	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init),
	(gst_gdp_depay_finalize), (gst_gdp_depay_sink_event),
	(gst_gdp_depay_src_event), (gst_gdp_depay_chain),
	(gst_gdp_depay_change_state):
	Disable seeking.
	Small cleanups.
	Clear adapter on disconts.
	Clear caps when going to READY instead of NULL

	* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init),
	(gst_gdp_pay_init), (gst_gdp_pay_finalize), (gst_gdp_pay_reset),
	(gst_gdp_buffer_from_caps), (gst_gdp_pay_buffer_from_buffer),
	(gst_gdp_buffer_from_event), (gst_gdp_pay_reset_streamheader),
	(gst_gdp_queue_buffer), (gst_gdp_pay_chain),
	(gst_gdp_pay_sink_event), (gst_gdp_pay_src_event),
	(gst_gdp_pay_change_state):
	* gst/gdp/gstgdppay.h:
	Reset payloader when going to READY.
	Fix leaked buffers in ->queue on push errors.
	Disable seeking.
	Code cleanups.
	Create packetizer in _init, free in _finalize.

2006-07-31  Julien MOUTTE  <julien@moutte.net>

	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_change_state),
	(gst_dfbvideosink_buffer_alloc): Post an error message.

2006-07-31  Julien MOUTTE  <julien@moutte.net>

	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_change_state),
	(gst_dfbvideosink_buffer_alloc): Don't try allocating if we are not
	setup yet. Fail changing state if setup fails.

2006-07-31  Wim Taymans  <wim@fluendo.com>

	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init),
	(gst_gdp_depay_sink_event), (gst_gdp_depay_chain):
	Consume all events except EOS because we generate events from
	the gdp payload instead. Fixes #349204

2006-07-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/xvid/gstxviddec.c: (gst_xviddec_init), (gst_xviddec_reset),
	(gst_xviddec_unset), (gst_xviddec_handle_sink_event),
	(gst_xviddec_setup), (gst_xviddec_negotiate), (gst_xviddec_chain),
	(gst_xviddec_flush_buffers), (gst_xviddec_src_getcaps),
	(gst_xviddec_setcaps), (gst_xviddec_change_state):
	* ext/xvid/gstxviddec.h:
	  Clean-ups and code reflows. Pass return value from
	  gst_pad_alloc_buffer() upstream among other things. Also check
	  for NULL GValue before using GST_VALUE_TYPE macro (#348976).
	  Mass rename of xviddec -> dec variable for better
	  code readability.

2006-07-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/xvid/gstxvid.c: (gst_xvid_image_fill):
	  Fix size calculation for I420/YV12. Fixes #348976.

2006-07-27  Wim Taymans  <wim@fluendo.com>

	* ext/gsm/gstgsmdec.c: (gst_gsmdec_init),
	(gst_gsmdec_sink_setcaps), (gst_gsmdec_sink_event):
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_init), (gst_gsmenc_setcaps):
	Fix negotiation.

2006-07-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init):
	  proxying get/set caps is the wrong thing to do, since we really
	  do change caps quite fundamentally
	* tests/check/elements/gdpdepay.c:
	* tests/check/elements/gdppay.c:
	  remove declaration of buffers, it's already done in gstcheck.h

2006-07-24  Sebastien Moutte  <sebastien@moutte.net>

	* sys/directsound/gstdirectsoundsink.h:
	* sys/directsound/gstdirectsoundsink.c:
	Add an attenuation property that will directly attenuate the 
	directsound buffer.
	Change the size of the directsound secondary buffer to a half second.
	Add more debug logs.
	Add a lock to protect dsound buffer write access.
	Fix a bad implementation of reset.
	* sys/directsound/gstdirectdrawsink.c:
	* sys/directsound/gstdirectdrawsink.h:
	Add a keep_aspect_ratio property.
	Do not use overlay if not supported.
	Add more debug logs.
	Remove overwrite of WM_ERASEBKGND message handling. It was not
	redrawing border when keep_aspect_ratio was enabled.
	* win32/common/config.h:
	update version waiting an auto-generated config.h

2006-07-23  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Chris Lee  <clee at kde org>

	* configure.ac:
	* ext/Makefile.am:
	* ext/spc/Makefile.am:
	* ext/spc/gstspc.c: (spc_negotiate), (gst_spc_dec_base_init),
	(gst_spc_dec_class_init), (gst_spc_dec_init), (gst_spc_dec_chain),
	(gst_spc_dec_sink_event), (gst_spc_dec_src_event),
	(gst_spc_dec_src_query), (spc_play), (spc_setup),
	(gst_spc_dec_change_state), (plugin_init):
	* ext/spc/gstspc.h:
	  Add libopenspc-based SPC decoder element (#348220).

2006-07-19  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Martin Szulecki

	* sys/v4l2/gstv4l2object.c: (gst_v4l2_object_get_property_helper):
	  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/nsf/nsf.c: (nsf_load):
	  Really fix compilation. Apparently it's not enough to
	  just check the return value for errors, but we need to
	  check for short reads as well (now if only we handled
	  them too ...). Fixes #347935.

2006-07-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
	  Fix caps after previous change to byte order endianness.

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
	(gst_wavpack_parse_sink_event), (gst_wavpack_parse_init),
	(gst_wavpack_parse_loop):
	* ext/wavpack/gstwavpackparse.h:
	  Queue incoming events if there's no source pad yet and
	  send them downstream later when the pad is there.

2006-07-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init),
	(gst_wavpack_dec_format_samples),
	(gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
	(gst_wavpack_dec_change_state):
	* ext/wavpack/gstwavpackdec.h:
	  Output audio in native byte order (which is also how we get
	  samples from wavpack); output samples with 21-24 bit depth
	  with 32 bit width (makes things easier for us).

2006-07-18  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init),
	(gst_wavpack_dec_class_init), (gst_wavpack_dec_init),
	(gst_wavpack_dec_finalize), (gst_wavpack_dec_format_samples),
	(gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
	(gst_wavpack_dec_sink_event), (gst_wavpack_dec_change_state):
	* ext/wavpack/gstwavpackdec.h:
	  More clean-ups: remove most of the disfunctional correction
	  pad stuff for now, if it ever gets implemented a lot of stuff
	  will have to be rewritten anyway; redo chain function, move
	  errors to end, error out instead of g_assert()ing. Also rename
	  overly long variable 'wavpackdec' to just 'dec'; miscellaneous
	  other small stuff.

2006-07-18  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge <slomo at circular-chaos.org>

	* configure.ac:
	  Check for wavpack version and define WAVPACK_OLD_API if
	  necessary.

	* ext/wavpack/Makefile.am:
	* ext/wavpack/gstwavpackcommon.c: (gst_wavpack_read_header),
	(gst_wavpack_read_metadata):
	* ext/wavpack/gstwavpackcommon.h:
	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init),
	(gst_wavpack_dec_class_init), (gst_wavpack_dec_init),
	(gst_wavpack_dec_finalize), (gst_wavpack_dec_format_samples),
	(gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
	(gst_wavpack_dec_sink_event), (gst_wavpack_dec_change_state),
	(gst_wavpack_dec_request_new_pad), (gst_wavpack_dec_plugin_init):
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	(gst_wavpack_enc_init), (gst_wavpack_enc_finalize),
	(gst_wavpack_enc_set_wp_config):
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init),
	(gst_wavpack_parse_finalize), (gst_wavpack_parse_class_init),
	(gst_wavpack_parse_index_get_entry_from_sample),
	(gst_wavpack_parse_scan_to_find_sample),
	(gst_wavpack_parse_handle_seek_event),
	(gst_wavpack_parse_create_src_pad):
	* ext/wavpack/gstwavpackstreamreader.c:
	* ext/wavpack/gstwavpackstreamreader.h:
	  Port to new/official wavpack API, don't use API that was exported
	  in wavpack header files and in the lib but meant to be private, at
	  least not for recent wavpack versions; misc. 'cleanups' (#347443).

2006-07-18  Wim Taymans  <wim@fluendo.com>

	* gst/nsf/nsf.c: (nsf_load):
	Fix compilation by not ignoring return values of fread.

2006-07-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/inspect/plugin-alsaspdif.xml:
	* docs/plugins/inspect/plugin-filter.xml:
	* docs/plugins/inspect/plugin-h264parse.xml:
	* docs/plugins/inspect/plugin-musepack.xml:
	* docs/plugins/inspect/plugin-nsfdec.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-spectrum.xml:
	  adding more inspect docs

2006-07-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/inspect/plugin-gdp.xml:
	  actually commit inspectation of gdp element

2006-07-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_class_init):
	* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init),
	  remove parent_class setting, BOILERPLATE does this
	(gst_gdp_pay_reset_streamheader):
	  fix typo in comment

2006-07-17  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
	(gst_qtdemux_prepare_current_sample),
	(gst_qtdemux_loop_state_movie):
	Store duration in uint64 too instead of clipping.
	When we do a keyframe seek and the requested time is at the
	keyframe, don't seek back to the beginning of the keyframe.
	Fixes #347439.

2006-07-16  Wim Taymans  <wim@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_sync):
	Don't crash on small buffers.

2006-07-15  Stefan Kost  <ensonic@users.sf.net>

	* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_sink_activate):
        Reset adapter.

2006-07-15  Stefan Kost  <ensonic@users.sf.net>

	* gst/spectrum/demo-audiotest.c: (main):
	* gst/spectrum/demo-osssrc.c: (main):
        Do not use deprecated gtk functions.

2006-07-14  Wim Taymans  <wim@fluendo.com>

	* gst/nsf/Makefile.am:
	* gst/nsf/memguard.c:
	* gst/nsf/memguard.h:
	* gst/nsf/types.h:
	Remove crack malloc/free replacement.

2006-07-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	  add more plugins and elements to docs
	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain):
	  fix segfaults due to wrong g_free
	  add example
	* gst/gdp/gstgdppay.c:
	  add example

2006-07-13  Wim Taymans  <wim@fluendo.com>

	* gst/nsf/Makefile.am:
	Fix build.

2006-07-13  Wim Taymans  <wim@fluendo.com>

	Based on patches by: Johan Dahlin <johan at gnome dot org>
	        Ronald Bultje <rbultje at ronald dot bitfreak dot net>

	* configure.ac:
	* gst/nsf/Makefile.am:
	* gst/nsf/dis6502.h:
	* gst/nsf/fds_snd.c:
	* gst/nsf/fds_snd.h:
	* gst/nsf/fmopl.c:
	* gst/nsf/fmopl.h:
	* gst/nsf/gstnsf.c:
	* gst/nsf/gstnsf.h:
	* gst/nsf/log.c:
	* gst/nsf/log.h:
	* gst/nsf/memguard.c:
	* gst/nsf/memguard.h:
	* gst/nsf/mmc5_snd.c:
	* gst/nsf/mmc5_snd.h:
	* gst/nsf/nes6502.c:
	* gst/nsf/nes6502.h:
	* gst/nsf/nes_apu.c:
	* gst/nsf/nes_apu.h:
	* gst/nsf/nsf.c:
	* gst/nsf/nsf.h:
	* gst/nsf/osd.h:
	* gst/nsf/types.h:
	* gst/nsf/vrc7_snd.c:
	* gst/nsf/vrc7_snd.h:
	* gst/nsf/vrcvisnd.c:
	* gst/nsf/vrcvisnd.h:
	Added NSF decoder plugin. Fixes 151192. 

2006-07-13  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	  Only run mpeg2enc unit test if we built the mpeg2enc plugin.

2006-07-13  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Don't error out in configure if mjpegtools dev is not there.

2006-07-13  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mark Nauwelaerts <manauw at skynet be>

	* configure.ac:
	* ext/Makefile.am:
	* ext/mpeg2enc/Makefile.am:
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mpeg2enc/gstmpeg2enc.hh:
	* ext/mpeg2enc/gstmpeg2encoder.cc:
	* ext/mpeg2enc/gstmpeg2encoder.hh:
	* ext/mpeg2enc/gstmpeg2encoptions.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
	* ext/mpeg2enc/gstmpeg2encpicturereader.hh:
	* ext/mpeg2enc/gstmpeg2encstreamwriter.cc:
	* ext/mpeg2enc/gstmpeg2encstreamwriter.hh:
	  Port mpeg2enc to 0.10 (#343184).

	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/mpeg2enc.c:
	  Add unit test for mpeg2enc.

	* tests/icles/.cvsignore:
	  Ignore pitch-test.

2006-07-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init):
	  Fix typo in property nick.

2006-07-10  Wim Taymans  <wim@fluendo.com>

	* gst/filter/gstbpwsinc.h:
	* gst/filter/gstiir.h:
	* gst/filter/gstlpwsinc.h:
	Don't forget new files.

2006-07-10  Wim Taymans  <wim@fluendo.com>

	Patch by: Mathis Hofer <mathis dot hofer at dreamlab dot net>

	* configure.ac:
	* gst/filter/Makefile.am:
	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose),
	(gst_bpwsinc_base_init), (gst_bpwsinc_class_init),
	(gst_bpwsinc_init), (bpwsinc_set_caps), (bpwsinc_transform_ip),
	(bpwsinc_set_property), (bpwsinc_get_property):
	* gst/filter/gstfilter.c: (plugin_init):
	* gst/filter/gstfilter.h:
	* gst/filter/gstiir.c: (gst_iir_dispose), (gst_iir_base_init),
	(gst_iir_class_init), (gst_iir_init), (iir_set_caps),
	(iir_transform_ip), (iir_set_property), (iir_get_property):
	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose),
	(gst_lpwsinc_base_init), (gst_lpwsinc_class_init),
	(gst_lpwsinc_init), (lpwsinc_set_caps), (lpwsinc_transform_ip),
	(lpwsinc_set_property), (lpwsinc_get_property):
	Ported the gstfilter plugin to GStreamer 0.10.
	Fixes #346853.

2006-07-10  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_udta):
	  Extract comment information!!

2006-07-10  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_udta),
	(qtdemux_tag_add_date):
	  Extract year/date information (fixes #347079).

2006-07-07  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	Don't crash on twos/sowt/raw audio. #345830.

2006-07-07  Wim Taymans  <wim@fluendo.com>

	Patch by: Lutz Mueller <lutz at topfrose dot de>

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	(gst_neonhttp_src_init), (gst_neonhttp_src_finalize),
	(request_dispatch), (gst_neonhttp_src_create),
	(gst_neonhttp_src_start), (gst_neonhttp_src_get_size),
	(gst_neonhttp_src_stop), (set_proxy), (set_uri),
	(gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property),
	(gst_neonhttp_src_uri_set_uri), (size_header_handler):
	* ext/neon/gstneonhttpsrc.h:
	Remove unlock function. start/stop will do everything needed
	Removed code that was never called.
	Use gst_pad_alloc_buffer. Don't send EOS - parent class does that for us.
	Do not escape path. Fixes #346723.
	Additional code cleanups.

2006-07-03  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(gst_qtdemux_loop_state_header), (qtdemux_video_caps):
	  Fix silly crasher in state change function; add
	  IV41 fourcc (see bug #171111); don't output confusing
	  debug message when skipping atoms.

2006-06-23  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/directfb/dfbvideosink.c:
	* ext/gsm/gstgsmdec.c:
	* ext/gsm/gstgsmenc.c:
	* ext/libmms/gstmms.c:
	* ext/neon/gstneonhttpsrc.c:
	* ext/theora/theoradec.c:
	* gst/freeze/gstfreeze.c:
	* gst/gdp/gstgdpdepay.c:
	* gst/gdp/gstgdppay.c:
	* sys/glsink/glimagesink.c:
	  Use GST_DEBUG_CATEGORY_STATIC where possible (#342503)
	  and fix one GObject boilerplate macro.

2006-06-20  Wim Taymans  <wim@fluendo.com>

	* gst/modplug/libmodplug/stdafx.h:
	Fix modplug on AMD64. Fixes #345336.

2006-06-19  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Fix check so that future libneon API changes won't break the build.

	* ext/neon/gstneonhttpsrc.c:
	  Fix build with libneon-0.26.x (#345182).

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  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* gst/spectrum/Makefile.am:
	Fix build.

2006-06-16  Stefan Kost  <ensonic@users.sf.net>

	* gst/spectrum/demo-audiotest.c: (on_window_destroy),
	(draw_spectrum), (message_handler), (main):
	* gst/spectrum/demo-osssrc.c: (on_window_destroy), (draw_spectrum),
	(message_handler), (main):
	port to use message to get results, cleanly exit when closing the window
	
	* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	(gst_spectrum_init), (gst_spectrum_dispose),
	(gst_spectrum_set_property), (gst_spectrum_get_property),
	(gst_spectrum_set_caps), (gst_spectrum_start),
	(gst_spectrum_message_new), (gst_spectrum_transform_ip):
	* gst/spectrum/gstspectrum.h:
	port to derive from basetransform and send results via messages
	(like level element)

2006-06-15  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
	(gst_qtdemux_combine_flows), (gst_qtdemux_loop_state_movie),
	(gst_qtdemux_loop), (gst_qtdemux_chain), (qtdemux_parse_trak):
	Combine return values from src pad pushes.

2006-06-15  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header),
	(gst_qtdemux_prepare_current_sample), (gst_qtdemux_advance_sample),
	(gst_qtdemux_add_stream):
	Don't crash on files with 0 samples, EOS immediatly instead.
	Fixes #344944.

2006-06-14  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Wouter Paesen  <wouter at kangaroot net>

	* ext/soundtouch/Makefile.am:
	* ext/soundtouch/gstpitch.cc:
	  Make pitch element controllable via GstController interface
	  (#344821).
	  
	* configure.ac:
	  Up core requirements to 0.10.8.1/CVS because earlier
	  GstControllers can't handle float properties correctly.
	  Check for GstController CFLAGS and LIBS.

	* tests/icles/Makefile.am:
	* tests/icles/pitch-test.c: (main):
	  Add small test program for the above (welcome to the 80s!).

2006-06-14  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge  <slomo at circular-chaos org>

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init),
	(gst_wavpack_enc_class_init), (gst_wavpack_enc_set_wp_config),
	(gst_wavpack_enc_chain), (gst_wavpack_enc_sink_event),
	(gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	* ext/wavpack/gstwavpackenc.h:
	  Use bitrate property solely for bitrates and add new
	  bits-per-sample property for the other stuff. Set duration
	  to 'unknown' in initial header and resend header with proper
	  duration on EOS; update Sebastian's e-mail address.

2006-06-12  Tim-Philipp Müller  <tim at centricular dot net>

	* examples/directfb/.cvsignore:
	* ext/directfb/.cvsignore:
	  #define red green

2006-06-12  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/spectrum/.cvsignore:
	  Ignore more.

2006-06-12  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/libmms/gstmms.c: (gst_mms_create):
	  Set caps on outgoing buffers.

	* sys/directdraw/gstdirectdrawsink.c: (gst_directdrawsink_init):
	  Comment out unused global instance variable.

2006-06-10  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Sebastian Dröge  <mail at slomosnail de>

	* ext/wavpack/Makefile.am:
	* ext/wavpack/gstwavpack.c: (plugin_init):
	* ext/wavpack/gstwavpackcommon.h:
	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type),
	(gst_wavpack_enc_correction_mode_get_type),
	(gst_wavpack_enc_joint_stereo_mode_get_type),
	(gst_wavpack_enc_base_init), (gst_wavpack_enc_class_init),
	(gst_wavpack_enc_init), (gst_wavpack_enc_dispose),
	(gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config),
	(gst_wavpack_enc_format_samples), (gst_wavpack_enc_push_block),
	(gst_wavpack_enc_chain), (gst_wavpack_enc_rewrite_first_block),
	(gst_wavpack_enc_sink_event), (gst_wavpack_enc_change_state),
	(gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property),
	(gst_wavpack_enc_plugin_init):
	* ext/wavpack/gstwavpackenc.h:
	* ext/wavpack/md5.c:
	* ext/wavpack/md5.h:
	  Add wavpack encoder element (#343131).

2006-06-09  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Check for X before using X_CFLAGS in the check for opengl (#343866).
	  
	* ext/musepack/Makefile.am:
	* ext/wavpack/Makefile.am:
	* gst/speed/Makefile.am:
	  Add missing GST_LIBS, fixes build on cygwin (#343866).

2006-06-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  enable building of GDP elements
	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain):
	* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init),
	(gst_gdp_pay_init), (gst_gdp_buffer_from_caps),
	(gst_gdp_pay_buffer_from_buffer), (gst_gdp_buffer_from_event),
	(gst_gdp_pay_reset_streamheader), (gst_gdp_pay_sink_event),
	(gst_gdp_pay_set_property), (gst_gdp_pay_get_property),
	(gst_gdp_pay_change_state):
	* gst/gdp/gstgdppay.h:
	  add version 1.0

2006-06-02  Michael Smith  <msmith@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_src_convert),
	(theora_handle_type_packet), (theora_handle_422_image),
	(theora_handle_444_image), (theora_handle_420_image),
	(theora_handle_data_packet):
	  Theora 4:4:4 pixel format support.

2006-06-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init),
	(gst_gdp_pay_init), (gst_gdp_buffer_from_caps),
	(gst_gdp_pay_buffer_from_buffer), (gst_gdp_buffer_from_event),
	(gst_gdp_pay_reset_streamheader), (gst_gdp_pay_chain),
	(gst_gdp_pay_sink_event), (gst_gdp_pay_set_property),
	(gst_gdp_pay_get_property):
	  add crc-header and crc-payload properties
	  don't error out on some things that are recoverable
	* tests/check/elements/gdppay.c: (GST_START_TEST), (gdppay_suite):
	  add test for crc

2006-06-02  Stefan Kost  <ensonic@users.sf.net>

	* ext/alsaspdif/alsaspdifsink.h:
	* ext/amrwb/gstamrwbdec.h:
	* ext/amrwb/gstamrwbenc.h:
	* ext/amrwb/gstamrwbparse.h:
	* ext/arts/gst_arts.h:
	* ext/artsd/gstartsdsink.h:
	* ext/audiofile/gstafparse.h:
	* ext/audiofile/gstafsink.h:
	* ext/audiofile/gstafsrc.h:
	* ext/audioresample/gstaudioresample.h:
	* ext/bz2/gstbz2dec.h:
	* ext/bz2/gstbz2enc.h:
	* ext/dirac/gstdiracdec.h:
	* ext/directfb/dfbvideosink.h:
	* ext/divx/gstdivxdec.h:
	* ext/divx/gstdivxenc.h:
	* ext/dts/gstdtsdec.h:
	* ext/faac/gstfaac.h:
	* ext/gsm/gstgsmdec.h:
	* ext/gsm/gstgsmenc.h:
	* ext/ivorbis/vorbisenc.h:
	* ext/libfame/gstlibfame.h:
	* ext/nas/nassink.h:
	* ext/neon/gstneonhttpsrc.h:
	* ext/polyp/polypsink.h:
	* ext/sdl/sdlaudiosink.h:
	* ext/sdl/sdlvideosink.h:
	* ext/shout/gstshout.h:
	* ext/snapshot/gstsnapshot.h:
	* ext/sndfile/gstsf.h:
	* ext/swfdec/gstswfdec.h:
	* ext/tarkin/gsttarkindec.h:
	* ext/tarkin/gsttarkinenc.h:
	* ext/theora/theoradec.h:
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackparse.h:
	* ext/xine/gstxine.h:
	* ext/xvid/gstxviddec.h:
	* ext/xvid/gstxvidenc.h:
	* gst/cdxaparse/gstcdxaparse.h:
	* gst/cdxaparse/gstcdxastrip.h:
	* gst/colorspace/gstcolorspace.h:
	* gst/festival/gstfestival.h:
	* gst/freeze/gstfreeze.h:
	* gst/gdp/gstgdpdepay.h:
	* gst/gdp/gstgdppay.h:
	* gst/modplug/gstmodplug.h:
	* gst/mpeg1sys/gstmpeg1systemencode.h:
	* gst/mpeg1videoparse/gstmp1videoparse.h:
	* gst/mpeg2sub/gstmpeg2subt.h:
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	* gst/multifilesink/gstmultifilesink.h:
	* gst/overlay/gstoverlay.h:
	* gst/playondemand/gstplayondemand.h:
	* gst/qtdemux/qtdemux.h:
	* gst/rtjpeg/gstrtjpegdec.h:
	* gst/rtjpeg/gstrtjpegenc.h:
	* gst/smooth/gstsmooth.h:
	* gst/smoothwave/gstsmoothwave.h:
	* gst/spectrum/gstspectrum.h:
	* gst/speed/gstspeed.h:
	* gst/stereo/gststereo.h:
	* gst/switch/gstswitch.h:
	* gst/tta/gstttadec.h:
	* gst/tta/gstttaparse.h:
	* gst/videodrop/gstvideodrop.h:
	* gst/xingheader/gstxingmux.h:
	* sys/directdraw/gstdirectdrawsink.h:
	* sys/directsound/gstdirectsoundsink.h:
	* sys/dxr3/dxr3audiosink.h:
	* sys/dxr3/dxr3spusink.h:
	* sys/dxr3/dxr3videosink.h:
	* sys/qcam/gstqcamsrc.h:
	* sys/vcd/vcdsrc.h:
	Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass

2006-05-31  Edward Hervey  <edward@fluendo.com>

	* ext/faad/gstfaad.h:
	Forgot to commit the header file too.

2006-05-31  Edward Hervey  <edward@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_class_init), (gst_faad_init),
	(gst_faad_dispose), (gst_faad_sink_event), (clip_outgoing_buffer),
	(gst_faad_chain), (gst_faad_change_state):
	Added GstSegment to control segments.
	Added clipping/dropping of outgoing buffers in order to have accurate
	seeking working properly.

2006-05-28  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Lutz Müller  <lutz at topfrose de>

	* ext/bz2/Makefile.am:
	* ext/bz2/gstbz2dec.c: (gst_bz2dec_chain), (gst_bz2dec_init),
	(gst_bz2dec_change_state), (gst_bz2dec_class_init):
	  Use gst_type_find_helper_* functions for typefinding; use
	  correct caps with gst_pad_alloc_buffer(); add state change
	  function and reset decoder in it; don't unref buffer if
	  pad_push fails; use fixed caps on source pad. (#341524).

2006-05-27  Stefan Kost  <ensonic@users.sf.net>

	* gst/spectrum/Makefile.am:
	* gst/spectrum/demo-audiotest.c: (on_frequency_changed),
	(spectrum_chain), (main):
	* gst/spectrum/demo-osssrc.c:
	added another example
	
	* sys/v4l2/gstv4l2src.c:
	fix typo

2006-05-26  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment): 
	Clip the outputed NEWSEGMENT stop time to the configured segment stop
	time.

2006-05-26  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_do_seek):
	Don't clear the running variable in the seek code.

2006-05-24  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_esds):
	Detect QCELP in mp4a descriptors.

2006-05-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak), (plugin_init):
	  po/POTFILES.in:
	  Throw an error when the file is encrypted. Move plugin_init stuff
	  to the end of the file, add stuff for i18n, make debug category
	  static.

2006-05-22  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Michal Benes  <michal dot benes at xeris dot cz>

	* configure.ac:
	* gst/h264parse/Makefile.am:
	* gst/h264parse/gsth264parse.c: (gst_h264_parse_base_init),
	(gst_h264_parse_finalize), (gst_h264_parse_class_init),
	(gst_h264_parse_init), (gst_h264_parse_chain),
	(gst_h264_parse_handle_event), (plugin_init):
	* gst/h264parse/gsth264parse.h:
	  New plugin: h264parse (#340638)

2006-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain),
	(gst_gdp_depay_change_state):
	* gst/gdp/gstgdpdepay.h:
	* gst/gdp/gstgdppay.c: (gst_gdp_pay_reset_streamheader),
	(gst_gdp_pay_chain), (gst_gdp_pay_sink_event),
	(gst_gdp_pay_change_state):
	* gst/gdp/gstgdppay.h:
	  Handle error cases when calling functions
	  do downwards state change after parent's change_state
	* tests/check/elements/gdpdepay.c: (GST_START_TEST):
	* tests/check/elements/gdppay.c: (GST_START_TEST):
	  clean up more

2006-05-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/gdp/Makefile.am:
	* gst/gdp/gstgdp.c: (plugin_init):
	* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_base_init),
	(gst_gdp_depay_class_init), (gst_gdp_depay_init),
	(gst_gdp_depay_finalize), (gst_gdp_depay_chain),
	(gst_gdp_depay_change_state), (gst_gdp_depay_plugin_init):
	* gst/gdp/gstgdpdepay.h:
	* gst/gdp/gstgdppay.c: (gst_gdp_pay_base_init),
	(gst_gdp_pay_class_init), (gst_gdp_pay_init),
	(gst_gdp_pay_dispose), (gst_gdp_stamp_buffer),
	(gst_gdp_buffer_from_caps), (gst_gdp_pay_buffer_from_buffer),
	(gst_gdp_buffer_from_event), (gst_gdp_pay_reset_streamheader),
	(gst_gdp_queue_buffer), (gst_gdp_pay_chain),
	(gst_gdp_pay_sink_event), (gst_gdp_pay_change_state),
	(gst_gdp_pay_plugin_init):
	* gst/gdp/gstgdppay.h:
	* tests/check/Makefile.am:
	* tests/check/elements/gdpdepay.c: (setup_gdpdepay),
	(cleanup_gdpdepay), (gdpdepay_push_per_byte), (GST_START_TEST),
	(setup_gdpdepay_streamheader), (gdpdepay_suite), (main):
	* tests/check/elements/gdppay.c: (setup_gdppay), (cleanup_gdppay),
	(GST_START_TEST), (setup_gdppay_streamheader), (gdppay_suite),
	(main):
	  adding GDP payloader and depayloader.  Build integration will
	  follow later when the GDP issues for core are sorted out.

2006-05-21  Stefan Kost  <ensonic@users.sf.net>

	* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	(gst_spectrum_init), (gst_spectrum_set_sink_caps),
	(gst_spectrum_get_sink_caps), (gst_spectrum_chain):
	  Use boilerplate macro, fix strings to match plugin-moval-requirements

2006-05-21  Stefan Kost  <ensonic@users.sf.net>

	* gst/spectrum/Makefile.am:
	  Link to base libraries

	* gst/spectrum/demo-osssrc.c: (main):
	  use new threshhold property

	* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
	(gst_spectrum_init), (gst_spectrum_dispose),
	(gst_spectrum_set_property), (gst_spectrum_set_sink_caps),
	(gst_spectrum_get_sink_caps), (gst_spectrum_chain),
	(gst_spectrum_change_state):
	* gst/spectrum/gstspectrum.h:
	Use gst_adapter, support multiple-channels, add threshold property for
	result, add docs, fix resulting spectrum range (was including mirrored
	results)

2006-05-21  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	* gst/spectrum/demo-osssrc.c: (spectrum_chain), (main):
	* gst/spectrum/fix_fft.c: (gst_spectrum_fix_dot):
	* gst/spectrum/gstspectrum.c: (gst_spectrum_get_type),
	(gst_spectrum_base_init), (gst_spectrum_class_init),
	(gst_spectrum_init), (gst_spectrum_dispose),
	(gst_spectrum_set_property), (gst_spectrum_chain):
	* gst/spectrum/gstspectrum.h:
	Initial port of the spectrum element

2006-05-19  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2xoverlay.c:
	Some clean-ups requested by wingo in bug #338818.	

2006-05-19  Michael Smith  <msmith@fluendo.com>

	* ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_base_init),
	(alsaspdifsink_class_init), (alsaspdifsink_init),
	(alsaspdifsink_dispose), (alsaspdifsink_set_property),
	(alsaspdifsink_get_property), (alsaspdifsink_set_caps),
	(alsaspdifsink_get_time), (alsaspdifsink_open),
	(alsaspdifsink_close), (alsaspdifsink_find_pcm_device),
	(alsaspdifsink_write_frame), (alsaspdifsink_event),
	(alsaspdifsink_get_times), (alsaspdifsink_current_delay),
	(generate_iec958_zero_frame), (alsaspdifsink_render),
	(ignore_alsa_err), (alsaspdifsink_change_state), (plugin_init):
	* ext/alsaspdif/alsaspdifsink.h:
	  Use sampling rate from set_caps. Comment out some more unused code.

2006-05-18  Stefan Kost  <ensonic@users.sf.net>

	* configure.ac:
	  Check for X11
	* sys/v4l2/gstv4l2object.c: (gst_v4l2_class_probe_devices):
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_iface_supported):
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open):
	* sys/v4l2/gstv4l2xoverlay.h:
	  Code cleanups, fix debug macros

2006-05-18  Michael Smith  <msmith@fluendo.com>

	* ext/Makefile.am:
	  Fix distcheck?

2006-05-18  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	* ext/Makefile.am:
	* ext/alsaspdif/Makefile.am:
	* ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_base_init),
	(alsaspdifsink_class_init), (alsaspdifsink_init),
	(alsaspdifsink_dispose), (alsaspdifsink_set_property),
	(alsaspdifsink_get_property), (alsaspdifsink_provide_clock),
	(alsaspdifsink_get_time), (alsaspdifsink_open),
	(alsaspdifsink_close), (alsaspdifsink_find_pcm_device),
	(alsaspdifsink_write_frame), (alsaspdifsink_event),
	(alsaspdifsink_get_times), (alsaspdifsink_current_delay),
	(generate_iec958_zero_frame), (alsaspdifsink_render),
	(ignore_alsa_err), (alsaspdifsink_change_state), (plugin_init):
	* ext/alsaspdif/alsaspdifsink.h:
	  Add an alsa plugin to output IEC958 frames over S/PDIF

2006-05-17  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faad/gstfaad.c: (gst_faad_update_caps), (gst_faad_chain):
	  Remove unused caps cruft from chain function altogether.

2006-05-17  Edward Hervey  <edward@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_chain): 
	There's no guarantee that caps was set to something, and if it did, the
	function called to fill that variable actually sets the caps on the
	sourcpad, so we call gst_pad_alloc_buffer_and_set_caps() using
	GST_PAD_CAPS(faad->srcpad).

2006-05-13  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Young-Ho Cha  <ganadist chollian net>

	* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_chain),
	(gst_faad_change_state):
	* ext/faad/gstfaad.h:
	  If we encounter a decoding error, don't error out immediately,
	  but try to resync (or see if we have better luck with the next
	  buffer in case of framed input). Only error out after five
	  consecutive errors. Fixes #341563.

2006-05-12  Wim Taymans  <wim@fluendo.com>

	* ext/xvid/gstxvidenc.c: (gst_xvidenc_class_init),
	(gst_xvidenc_init), (gst_xvidenc_finalize),
	(gst_xvidenc_handle_sink_event), (gst_xvidenc_setup),
	(gst_xvidenc_setcaps), (gst_xvidenc_encode), (gst_xvidenc_chain),
	(gst_xvidenc_flush_buffers), (gst_xvidenc_set_property),
	(gst_xvidenc_get_property):
	Compile fixes.

2006-05-12  Wim Taymans  <wim@fluendo.com>

	Patch by: Mark Nauwelaerts <manauw at skynet dot be>

	* ext/xvid/gstxvid.c: (gst_xvid_init), (gst_xvid_structure_to_csp),
	(gst_xvid_csp_to_caps), (gst_xvid_image_get_size),
	(gst_xvid_image_fill):
	* ext/xvid/gstxvid.h:
	* ext/xvid/gstxviddec.c: (gst_xviddec_class_init),
	(gst_xviddec_init), (gst_xviddec_reset), (gst_xviddec_unset),
	(gst_xviddec_handle_sink_event), (gst_xviddec_setup),
	(gst_xviddec_add_par), (gst_xviddec_negotiate),
	(gst_xviddec_decode), (gst_xviddec_chain),
	(gst_xviddec_flush_buffers), (gst_xviddec_src_getcaps),
	(gst_xviddec_src_link), (gst_xviddec_setcaps),
	(gst_xviddec_change_state):
	* ext/xvid/gstxviddec.h:
	* ext/xvid/gstxvidenc.c: (gst_xvidenc_profile_get_type),
	(gst_xvidenc_quant_type_get_type), (gst_xvidenc_pass_get_type),
	(gst_xvidenc_get_type), (gst_xvidenc_base_init),
	(gst_xvidenc_class_init), (gst_xvidenc_init),
	(gst_xvidenc_finalize), (gst_xvidenc_handle_sink_event),
	(gst_xvidenc_setup), (gst_xvidenc_setcaps), (gst_xvidenc_encode),
	(gst_xvidenc_chain), (gst_xvidenc_flush_buffers),
	(gst_xvidenc_set_property), (gst_xvidenc_get_property),
	(gst_xvidenc_change_state):
	* ext/xvid/gstxvidenc.h:
	xvid plugin to support more capabilities of XviD codec.
	Fixes #339462.
	Some more cleanups here and there.

2006-05-11  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	Changes proposed by Wingo in bug #338818.

2006-05-11  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak),
	(gst_qtdemux_handle_esds):
	Figure out the real audio type in mp4a boxes by parsing the
	optional descriptors in the optional esds box. Promote the
	default AAC to mp3 when indicated. Fixes #330632.

2006-05-10  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_dump_unknown),
	(qtdemux_parse_trak), (gst_qtdemux_handle_esds):
	Parse version 2 sample descriptions. Fixes #341231
	Don't #define gst_util_dump_mem(), use something more
	specific instead to avoid confusion.

2006-05-08  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2src_calls.c:
	Fix fourcc name printed out. Patch from Martin Rubli.

2006-05-08  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query),
	(qtdemux_dump_mvhd):
	Don't cause side effects in a debugging function.
	Also report duration in push mode since we can.

2006-05-08  Edward Hervey  <edward@fluendo.com>

	* autogen.sh: (CONFIGURE_DEF_OPT): 
	libtoolize on Darwin/MacOSX is called glibtoolize

2006-05-05  Maciej Katafiasz  <mathrick@freedesktop.org>

	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbenc.c:
	* ext/sdl/sdlaudiosink.c:
	* ext/sdl/sdlvideosink.c:
	* ext/wavpack/gstwavpackdec.c:
	* ext/xine/xine.c:
	* ext/xine/xineaudiodec.c:
	* ext/xine/xineaudiosink.c:
	* ext/xine/xineinput.c:
	* gst/cdxaparse/gstcdxaparse.c:
	* gst/freeze/gstfreeze.c:
	* sys/v4l2/gstv4l2element.c:
	Add semicolons after GST_BOILERPLATE[_FULL] so that
	indent doesn't mess up following lines.

2006-05-05  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	* tests/icles/v4l2src-test.c:
	Some changes proposed by wingo in bug #338818 (but not everything
	yet). Patch from Martin Rubli to fix framerate detection.

2006-05-05  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_prepare):
	  Use (NULL) instead of just NULL in GST_ELEMENT_ERROR macro.

2006-05-04  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	  Back to CVS

=== release 0.10.3 ===

2006-05-04  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.3, "Petition to request permission"

2006-05-04  Julien MOUTTE  <julien@moutte.net>

	* tests/icles/Makefile.am: Fix build.

2006-05-03  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/musicbrainz/Makefile.am:
	  Add GST_PLUGINS_BASE_CFLAGS to CFLAGS for gst/tag/tag.h

2006-05-03  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	Clean up one piece of logic slightly and remove a 
	dead code block.

2006-05-03  Tim-Philipp Müller  <tim at centricular dot net>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/inspect/plugin-musicbrainz.xml:
	* ext/musicbrainz/gsttrm.c:
	* ext/musicbrainz/gsttrm.h:
	  Everybody loves docs - add docs for musicbrainz plugin.

2006-05-03  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/Makefile.am:
	  Add musicbrainz dir to DIST_SUBDIRS as well (fixes distcheck).
	  
2006-05-03  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/Makefile.am:
	  Forgot to commit this one.

2006-05-03  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: James "Doc" Livingston  <doclivingston gmail com>

	* configure.ac:
	* ext/musicbrainz/Makefile.am:
	* ext/musicbrainz/gsttrm.c: (gst_trm_base_init),
	(gst_trm_class_init), (gst_trm_init), (gst_trm_setcaps),
	(gst_trm_chain), (gst_trm_emit_signature), (gst_trm_set_property),
	(gst_trm_get_property), (gst_trm_change_state), (plugin_init):
	* ext/musicbrainz/gsttrm.h:
	  Port MusicBrainz TRM plugin (#336898).

2006-05-03  Michael Smith  <msmith@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_setcaps),
	(looks_like_valid_header), (gst_faad_chain):
	  Fix #334748: use fake_codec_data if the first bytes of the first
	  buffer we process doesn't look like plausible AAC data (e.g.
	  reserved values for rate, or channels). Fixes playback of Apple's
	  movie trailers.

2006-05-02  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_caps):
	Fix get_caps func to work when no framerate is available and the caps
	isn't simple.

2006-05-01  Edgard Lima <edgard.lima@indt.org.br>

	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/v4l2_calls.c:
	* tests/icles/Makefile.am:
	* tests/icles/v4l2src-test.c:
	Few improvements to move to good.

2006-05-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/inspect/plugin-taglib.xml:
	* ext/Makefile.am:
	* ext/taglib/Makefile.am:
	* ext/taglib/gstid3v2mux.cc:
	* ext/taglib/gstid3v2mux.h:
	* ext/taglib/gsttaglib.cc:
	* ext/taglib/gsttaglib.h:
	* tests/check/Makefile.am:
	* tests/check/elements/tagid3v2mux.c:
	  moved to good.  Closes #336110

2006-04-30  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	  Fix up docs for taglib plugin
	  Also scan .cc files

2006-04-29  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gsttaglib.cc:
	  Post an error message on the bus in the (extremely unlikely)
	  case of an error.

2006-04-29  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/Makefile.am:
	* ext/taglib/gstid3v2mux.cc:
	* ext/taglib/gstid3v2mux.h:
	* ext/taglib/gsttaglib.cc:
	* ext/taglib/gsttaglib.h:
	  Split the actual ID3v2 tag rendering code into
	  its own subclass.

2006-04-29  Sebastien Moutte  <sebastien@moutte.net>

	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	  added iradio-mode support as in gnomevfssrc to enable 
	  connections with icydemux that will send title tag messages on 
	  shoutcast/icecast streams. I've also added iradio properties
	  iradio-name, iradio-genre, iradio-url.
	  added user-agent property because some shoutcast streams don't return 
	  data if the GET requests don't have a User-Agent.
	* win32/common/libgstneon.dsp:
	  use debug version of libneon in debug mode
2006-04-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* sys/Makefile.am:
	* sys/ximagesrc/Makefile.am:
	* sys/ximagesrc/ximagesrc.c:
	* sys/ximagesrc/ximagesrc.h:
	* sys/ximagesrc/ximageutil.c:
	* sys/ximagesrc/ximageutil.h:
	* tests/Makefile.am:
	* tests/icles/.cvsignore:
	* tests/icles/Makefile.am:
	* tests/icles/ximagesrc-test.c:
	  moved ximagesrc to good (See #336756)

2006-04-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faad/gstfaad.c: (gst_faad_init), (aac_rate_idx),
	(gst_faad_setcaps), (gst_faad_chain), (gst_faad_open_decoder),
	(gst_faad_close_decoder), (gst_faad_change_state):
	* ext/faad/gstfaad.h:
	  If we run into a decoding error, try re-opening the decoder
	  with faacDecInit2() using fake codec data created from the
	  data the demuxer gave us. Should fix a whole bunch of
	  GStreamer-faad problems incl. 'channel coupling not
	  implemented', 'maximum number of scalefactor bands exceeded'
	  etc. (#173007, #332892).

2006-04-26  Stefan Kost  <ensonic@users.sf.net>

	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbenc.c:
	* ext/amrwb/gstamrwbparse.c:
	* ext/arts/gst_arts.c:
	* ext/artsd/gstartsdsink.c:
	* ext/audiofile/gstafparse.c:
	* ext/audiofile/gstafsink.c:
	* ext/audiofile/gstafsrc.c:
	* ext/audioresample/gstaudioresample.c:
	* ext/bz2/gstbz2dec.c:
	* ext/bz2/gstbz2enc.c:
	* ext/cdaudio/gstcdaudio.c:
	* ext/directfb/dfbvideosink.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:
	* ext/gsm/gstgsmdec.c:
	* ext/gsm/gstgsmenc.c:
	* ext/hermes/gsthermescolorspace.c:
	* ext/ivorbis/vorbisfile.c:
	* ext/lcs/gstcolorspace.c:
	* ext/libfame/gstlibfame.c:
	* ext/libmms/gstmms.c: (gst_mms_base_init):
	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init):
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
	* ext/nas/nassink.c: (gst_nassink_base_init):
	* ext/neon/gstneonhttpsrc.c:
	* ext/sdl/sdlaudiosink.c:
	* ext/sdl/sdlvideosink.c:
	* ext/shout/gstshout.c:
	* ext/snapshot/gstsnapshot.c:
	* ext/sndfile/gstsf.c:
	* ext/swfdec/gstswfdec.c:
	* ext/tarkin/gsttarkindec.c:
	* ext/tarkin/gsttarkinenc.c:
	* ext/theora/theoradec.c:
	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init):
	* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init):
	* gst/chart/gstchart.c:
	* gst/colorspace/gstcolorspace.c:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init):
	* gst/festival/gstfestival.c:
	* gst/filter/gstbpwsinc.c:
	* gst/filter/gstiir.c:
	* gst/filter/gstlpwsinc.c:
	* gst/freeze/gstfreeze.c:
	* gst/games/gstpuzzle.c: (gst_puzzle_base_init):
	* gst/librfb/gstrfbsrc.c:
	* gst/mixmatrix/mixmatrix.c:
	* gst/mpeg1sys/gstmpeg1systemencode.c:
	* gst/mpeg1videoparse/gstmp1videoparse.c:
	* gst/mpeg2sub/gstmpeg2subt.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/multifilesink/gstmultifilesink.c:
	* gst/overlay/gstoverlay.c:
	* gst/passthrough/gstpassthrough.c:
	* gst/playondemand/gstplayondemand.c:
	* gst/qtdemux/qtdemux.c:
	* gst/rtjpeg/gstrtjpegdec.c:
	* gst/rtjpeg/gstrtjpegenc.c:
	* gst/smooth/gstsmooth.c:
	* gst/smoothwave/gstsmoothwave.c:
	* gst/spectrum/gstspectrum.c:
	* gst/speed/gstspeed.c:
	* gst/stereo/gststereo.c:
	* gst/switch/gstswitch.c:
	* gst/tta/gstttadec.c: (gst_tta_dec_base_init):
	* gst/tta/gstttaparse.c: (gst_tta_parse_base_init):
	* gst/vbidec/gstvbidec.c:
	* gst/videocrop/gstvideocrop.c:
	* gst/videodrop/gstvideodrop.c:
	* gst/virtualdub/gstxsharpen.c:
	* gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init):
	* gst/y4m/gsty4mencode.c:
	* sys/cdrom/gstcdplayer.c:
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directsound/gstdirectsoundsink.c:
	* sys/glsink/glimagesink.c:
	* sys/qcam/gstqcamsrc.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/vcd/vcdsrc.c: (gst_vcdsrc_base_init):
	* sys/ximagesrc/ximagesrc.c:
	  Define GstElementDetails as const and also static (when defined as
	  global)

2006-04-20  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/musepack/gstmusepackdec.c:
	(gst_musepackdec_handle_seek_event), (gst_musepackdec_loop):
	  Add support for segment seeks.

2006-04-20  Edgard Lima  <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	Added a couple of ifdefs to make it compile with other kernels.
	
2006-04-20  Wim Taymans  <wim@fluendo.com>

	Patch by: j^ <j at bootlab dot org>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
	(qtdemux_video_caps):
	Never treat video streams as an audio stream.
	Add qtdrw mime type.
	Fixes #339041

2006-04-19  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	For VBR audio, don't try to calculate the samples_per_frame.
	Fixes #338935.

2006-04-13  Edgard Lima  <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c:
	Just added a gtk-doc comment.

2006-04-17  Michael Smith  <msmith@fluendo.com>

	* ext/theora/theoradec.c: (theora_dec_src_convert),
	(theora_handle_type_packet), (theora_handle_422_image),
	(theora_handle_420_image), (theora_handle_data_packet):
	* ext/theora/theoradec.h:
	  Apply fix from j^ for API change in libtheoradec.

	  Implement 4:2:2 pixel format. Untested at the moment.

2006-04-14  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_init),
	(gst_musepack_stream_init):
	  Fix track/album peak tag values; use GST_DEBUG_FUNCPTR and
	  gst_pad_new_from_static_template().

2006-04-13  Edgard Lima  <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2element_class_init),
	(gst_v4l2src_dispose):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_buffer_new):
	Fixed some memory leaks.

2006-04-12  Edgard Lima  <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read):
	Fix to work in read mode.

2006-04-10  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	Fix parsing of newer stsd chunks again.

2006-04-10  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
	(qtdemux_parse_trak):
	Fix framerate calculation.

2006-04-10  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_class_init):
	  Fix build (class_init declaration/definition mismatch).

2006-04-10  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	force mono 8000 Hz on AMR samples.

2006-04-09  Sebastien Moutte  <sebastien@moutte.net>

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start):
	  remove atoll by using g_ascii_strtoull (atoll is not supported on WIN32)
	* sys/directdraw/gstdirectdrawsink.c:
	* sys/directsound/gstdirectsoundsink.c:
	  done some cleans in sources
	* win32/vs6:
	  add project files for neon, qtdemux
	  
2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_class_init):
	* ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_class_init):
	* ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_class_init):
	* ext/arts/gst_arts.c: (gst_arts_class_init):
	* ext/artsd/gstartsdsink.c: (gst_artsdsink_class_init):
	* ext/audiofile/gstafsink.c: (gst_afsink_class_init):
	* ext/audiofile/gstafsrc.c: (gst_afsrc_class_init):
	* ext/audioresample/gstaudioresample.c:
	* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init):
	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_class_init):
	* ext/divx/gstdivxdec.c: (gst_divxdec_class_init):
	* ext/hermes/gsthermescolorspace.c:
	(gst_hermes_colorspace_class_init):
	* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_class_init):
	* ext/jack/gstjack.c: (gst_jack_class_init):
	* ext/jack/gstjackbin.c: (gst_jack_bin_class_init):
	* ext/lcs/gstcolorspace.c: (gst_colorspace_class_init):
	* ext/libfame/gstlibfame.c: (gst_fameenc_class_init):
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init):
	* ext/nas/nassink.c: (gst_nassink_class_init):
	* ext/shout/gstshout.c: (gst_icecastsend_class_init):
	* ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init):
	* ext/sndfile/gstsf.c: (gst_sf_class_init):
	* ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_class_init),
	(gst_swfdec_class_init):
	* ext/tarkin/gsttarkindec.c: (gst_tarkindec_class_init):
	* ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_class_init):
	* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_class_init):
	* gst/chart/gstchart.c: (gst_chart_class_init):
	* gst/colorspace/gstcolorspace.c: (gst_colorspace_class_init):
	* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_class_init):
	* gst/festival/gstfestival.c: (gst_festival_class_init):
	* gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init):
	* gst/filter/gstiir.c: (gst_iir_class_init):
	* gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init):
	* gst/librfb/gstrfbsrc.c: (gst_rfbsrc_class_init):
	* gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_class_init):
	* gst/mpeg1sys/gstmpeg1systemencode.c:
	(gst_system_encode_class_init):
	* gst/mpeg1videoparse/gstmp1videoparse.c:
	(gst_mp1videoparse_class_init):
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_class_init):
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	(gst_mp3parse_class_init):
	* gst/overlay/gstoverlay.c: (gst_overlay_class_init):
	* gst/passthrough/gstpassthrough.c: (passthrough_class_init):
	* gst/playondemand/gstplayondemand.c: (play_on_demand_class_init):
	* gst/rtjpeg/gstrtjpegdec.c: (gst_rtjpegdec_class_init):
	* gst/rtjpeg/gstrtjpegenc.c: (gst_rtjpegenc_class_init):
	* gst/smooth/gstsmooth.c: (gst_smooth_class_init):
	* gst/smoothwave/gstsmoothwave.c: (gst_smoothwave_class_init):
	* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init):
	* gst/stereo/gststereo.c: (gst_stereo_class_init):
	* gst/switch/gstswitch.c: (gst_switch_class_init):
	* gst/tta/gstttadec.c: (gst_tta_dec_class_init):
	* gst/tta/gstttaparse.c: (gst_tta_parse_class_init):
	* gst/vbidec/gstvbidec.c: (gst_vbidec_class_init):
	* gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init):
	* gst/virtualdub/gstxsharpen.c: (gst_xsharpen_class_init):
	* gst/y4m/gsty4mencode.c: (gst_y4mencode_class_init):
	* sys/cdrom/gstcdplayer.c: (cdplayer_class_init):
	* sys/directsound/gstdirectsoundsink.c:
	(gst_directsoundsink_class_init):
	* sys/dxr3/dxr3audiosink.c: (dxr3audiosink_class_init):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_class_init):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_class_init):
	* sys/qcam/gstqcamsrc.c: (gst_qcamsrc_class_init):
	* sys/v4l2/gstv4l2colorbalance.c:
	(gst_v4l2_color_balance_channel_class_init):
	* sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_channel_class_init),
	(gst_v4l2_tuner_norm_class_init):
	* sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_class_init):
	Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)

2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* gst/colorspace/gstcolorspace.h:
	* gst/deinterlace/gstdeinterlace.h:
	* gst/passthrough/gstpassthrough.h:
	* gst/y4m/gsty4mencode.h:
	Fix more broken GObject macros

2006-04-08  Stefan Kost  <ensonic@users.sf.net>

	* ext/xine/gstxine.h:
	* gst-libs/gst/play/play.h:
	* sys/v4l2/gstv4l2element.h:
	* sys/ximagesrc/ximageutil.h:
	Fix broken GObject macros

2006-04-08  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample),
	(gst_qtdemux_chain), (gst_qtdemux_add_stream), (qtdemux_dump_stsz),
	(qtdemux_dump_stco), (qtdemux_parse_trak):
	Don't make rounding errors in timestamp/duration calculations.
	Fix timestamps for AMR and IMA4.  Fixes (#337436).
	Create a dummy segment even when there is no edit list.

2006-04-07  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt: Updates.
	* examples/directfb/Makefile.am: Add example resource files to
	dist.

2006-04-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* ext/amrwb/amrwb-code/Makefile.am:
	* sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_recalc),
	(gst_ximagesrc_create), (gst_ximagesrc_set_property):
	Typo fix, s/XFree86/X11 and added doc blurb saying that it fixates to
	25fps

2006-04-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* tests/icles/ximagesrc-test.c: (main):
	Actually assert that pipeline goes to playing

2006-04-07  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_recalc),
	(composite_pixel), (gst_ximagesrc_ximage_get),
	(gst_ximagesrc_create), (gst_ximagesrc_set_property):
	Fix typo, C++ style comments and other small cleanups
	
2006-04-06  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	(gst_qtdemux_handle_src_query), (gst_qtdemux_find_index),
	(gst_qtdemux_find_keyframe), (gst_qtdemux_find_segment),
	(gst_qtdemux_move_stream), (gst_qtdemux_perform_seek),
	(gst_qtdemux_do_seek), (gst_qtdemux_change_state),
	(gst_qtdemux_activate_segment),
	(gst_qtdemux_prepare_current_sample), (gst_qtdemux_advance_sample),
	(gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
	(qtdemux_parse_trak):
	Added full edit list support.
	Avoid overflows in prologue image detection code.
	Avoid roundoff errors in timestamp calculations.

2006-04-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  clean up so report properly on missing stuff
	  fix modplug detection

2006-04-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/Makefile.am:
	* ext/amrwb/amrwb-code/Makefile.am:
	  don't dist amr wb source code

2006-04-06  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: j^  <j at bootlab dot org>

	* ext/amrwb/gstamrwbdec.c:
	* ext/amrwb/gstamrwbenc.c:
	* ext/amrwb/gstamrwbparse.c:
	* ext/arts/gst_arts.c:
	* ext/artsd/gstartsdsink.c:
	* ext/audiofile/gstafparse.c:
	* ext/audiofile/gstafsink.c:
	* ext/audiofile/gstafsrc.c:
	* ext/cdaudio/gstcdaudio.c:
	* ext/directfb/dfbvideosink.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:
	* ext/gsm/gstgsmdec.c:
	* ext/gsm/gstgsmenc.c:
	* ext/hermes/gsthermescolorspace.c:
	* ext/ivorbis/vorbisfile.c:
	* ext/lcs/gstcolorspace.c:
	* ext/libfame/gstlibfame.c:
	* ext/libmms/gstmms.c: (gst_mms_base_init):
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
	* ext/nas/nassink.c: (gst_nassink_base_init):
	* ext/neon/gstneonhttpsrc.c:
	* ext/polyp/polypsink.c: (gst_polypsink_base_init):
	* ext/sdl/sdlaudiosink.c:
	* ext/sdl/sdlvideosink.c:
	* ext/shout/gstshout.c:
	* ext/snapshot/gstsnapshot.c:
	* ext/sndfile/gstsf.c:
	* ext/tarkin/gsttarkindec.c:
	* ext/tarkin/gsttarkinenc.c:
	* ext/theora/theoradec.c:
	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init):
	* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init):
	* gst/chart/gstchart.c:
	* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init):
	* gst/festival/gstfestival.c:
	* gst/filter/gstiir.c:
	* gst/filter/gstlpwsinc.c:
	* gst/freeze/gstfreeze.c:
	* gst/games/gstpuzzle.c: (gst_puzzle_base_init):
	* gst/mixmatrix/mixmatrix.c:
	* gst/mpeg1sys/gstmpeg1systemencode.c:
	* gst/mpeg1videoparse/gstmp1videoparse.c:
	* gst/mpeg2sub/gstmpeg2subt.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/multifilesink/gstmultifilesink.c:
	* gst/overlay/gstoverlay.c:
	* gst/passthrough/gstpassthrough.c:
	* gst/playondemand/gstplayondemand.c:
	* gst/qtdemux/qtdemux.c:
	* gst/rtjpeg/gstrtjpegdec.c:
	* gst/rtjpeg/gstrtjpegenc.c:
	* gst/smooth/gstsmooth.c:
	* gst/tta/gstttadec.c: (gst_tta_dec_base_init):
	* gst/tta/gstttaparse.c: (gst_tta_parse_base_init):
	* gst/videocrop/gstvideocrop.c:
	* gst/videodrop/gstvideodrop.c:
	* gst/virtualdub/gstxsharpen.c:
	* gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init):
	* gst/y4m/gsty4mencode.c:
	  Unify the long descriptions in the plugin details (#337263).

2006-04-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init),
	(gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property):
	  Add back "uri" property and mark it as deprecated; undoes
	  API/ABI breakage from 2006-02-24.

2006-04-05  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
	(gst_qtdemux_do_seek), (gst_qtdemux_loop_state_movie),
	(gst_qtdemux_loop):
	Use duration as segment stop position if none is
	explicitly configured.
	Also perform EOS when we run past the segment stop.

2006-04-04  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_go_back),
	(gst_qtdemux_perform_seek), (gst_qtdemux_do_seek),
	(gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
	(gst_qtdemux_chain), (qtdemux_parse_tree), (qtdemux_parse_trak):
	More cleanups, added comments.
	Mark discontinuities on outgoing buffers.
	Post better errors when something goes wrong.
	Handle EOS and segment end properly.

2006-04-04  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	(gst_qtdemux_push_event), (gst_qtdemux_go_back),
	(gst_qtdemux_perform_seek), (gst_qtdemux_do_seek),
	(gst_qtdemux_handle_src_event), (plugin_init),
	(gst_qtdemux_change_state), (gst_qtdemux_loop_state_movie),
	(gst_qtdemux_loop), (gst_qtdemux_chain),
	(qtdemux_sink_activate_pull), (gst_qtdemux_add_stream),
	(qtdemux_parse), (qtdemux_parse_tree), (qtdemux_parse_trak),
	(qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num),
	(qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds):
	* gst/qtdemux/qtdemux.h:
	Handle stss boxes so we can mark and find keyframes.
	Implement correct accurate and keyframe seeking.
	Use _DEBUG_OBJECT when possible.
	Fixes #332155

2006-04-03  Tim-Philipp Müller  <tim at centricular dot net>

	* tests/check/Makefile.am:
	  Only run the id3v2mux check if taglib is available and
	  the taglib plugin has been built.

2006-04-03  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/swfdec/Makefile.am:
	  Don't set plugindir.

	* ext/swfdec/gstswfdec.c:
	  GST_PLUGIN_DEFINE_STATIC isn't a good idea for installed plugins.

2006-04-03  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Add AX_CREATE_STDINT_H to create _stdint.h, needed by
	  the dts plugin.

2006-04-03  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/soundtouch/gstpitch.cc:
	* ext/theora/theoradec.c:
	* gst/modplug/gstmodplug.cc:
	  GST_ORIGIN => GST_PACKAGE_ORIGIN
	  GST_PACKAGE => GST_PACKAGE_NAME

2006-04-02  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/inspect/plugin-bz2.xml:
	* docs/plugins/inspect/plugin-cdxaparse.xml:
	* docs/plugins/inspect/plugin-freeze.xml:
	* docs/plugins/inspect/plugin-glimagesink.xml:
	* docs/plugins/inspect/plugin-modplug.xml:
	* docs/plugins/inspect/plugin-neon.xml:
	* docs/plugins/inspect/plugin-sdl.xml:
	* docs/plugins/inspect/plugin-video4linux2.xml:
	* docs/plugins/inspect/plugin-ximagesrc.xml:
	* docs/plugins/inspect/plugin-xingheader.xml:
	  add more plugins to docs

2006-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* sys/dxr3/ac3_padder.h:
	  fix up doc strings
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-taglib.xml:
	* docs/plugins/inspect/plugin-tta.xml:
	  commit updates
	* configure.ac:
	* ext/taglib/gsttaglib.cc:
	* tests/Makefile.am:
	* tests/check/.cvsignore:
	* tests/check/Makefile.am:
	* tests/check/elements/.cvsignore:
	* tests/check/elements/tagid3v2mux.c:
	(test_taglib_id3mux_create_tags), (test_taglib_id3mux_check_tags),
	(fill_mp3_buffer), (got_buffer), (demux_pad_added),
	(test_taglib_id3mux_check_output_buffer),
	(test_taglib_id3mux_with_tags), (GST_START_TEST),
	(tagid3v2mux_suite), (main):
	   add the tagid3v2mux check from #336110

2006-04-01  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  rework like the other configure.ac files
	* Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* ext/amrwb/gstamrwb.c:
	* ext/arts/gst_arts.c:
	* ext/artsd/gstartsdsink.c:
	* ext/audiofile/gstaf.c:
	* ext/audioresample/gstaudioresample.c:
	* ext/bz2/gstbz2.c:
	* ext/cdaudio/gstcdaudio.c:
	* ext/directfb/dfbvideosink.c:
	* ext/dts/gstdtsdec.c:
	* ext/faac/gstfaac.c:
	* ext/faad/gstfaad.c:
	* ext/hermes/gsthermescolorspace.c:
	* ext/ivorbis/vorbis.c:
	* ext/jack/gstjack.c:
	* ext/lcs/gstcolorspace.c:
	* ext/musepack/gstmusepackdec.c:
	* ext/musicbrainz/gsttrm.c:
	* ext/nas/nassink.c:
	* ext/sdl/gstsdl.c:
	* ext/snapshot/gstsnapshot.c:
	* ext/sndfile/gstsf.c:
	* ext/swfdec/gstswfdec.c:
	* ext/tarkin/gsttarkin.c:
	* ext/xine/xine.c:
	* ext/xvid/gstxvid.c:
	* gst/cdxaparse/gstcdxaparse.c:
	* gst/chart/gstchart.c:
	* gst/colorspace/gstcolorspace.c:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/equalizer/gstiirequalizer.c:
	* gst/festival/gstfestival.c:
	* gst/filter/gstfilter.c:
	* gst/freeze/gstfreeze.c:
	* gst/games/gstpuzzle.c:
	* gst/librfb/gstrfbsrc.c:
	* gst/mixmatrix/mixmatrix.c:
	* gst/mpeg1sys/gstmpeg1systemencode.c:
	* gst/mpeg1videoparse/gstmp1videoparse.c:
	* gst/mpeg2sub/gstmpeg2subt.c:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/multifilesink/gstmultifilesink.c:
	* gst/overlay/gstoverlay.c:
	* gst/passthrough/gstpassthrough.c:
	* gst/playondemand/gstplayondemand.c:
	* gst/qtdemux/qtdemux.c:
	* gst/rtjpeg/gstrtjpeg.c:
	* gst/smooth/gstsmooth.c:
	* gst/smoothwave/gstsmoothwave.c:
	* gst/spectrum/gstspectrum.c:
	* gst/speed/gstspeed.c:
	* gst/stereo/gststereo.c:
	* gst/switch/gstswitch.c:
	* gst/vbidec/gstvbidec.c:
	* gst/videocrop/gstvideocrop.c:
	* gst/videodrop/gstvideodrop.c:
	* gst/virtualdub/gstvirtualdub.c:
	* gst/xingheader/gstxingmux.c:
	* gst/y4m/gsty4mencode.c:
	* sys/cdrom/gstcdplayer.c:
	* sys/directdraw/gstdirectdrawplugin.c:
	* sys/directsound/gstdirectsoundplugin.c:
	* sys/dxr3/dxr3init.c:
	* sys/glsink/glimagesink.c:
	* sys/qcam/gstqcamsrc.c:
	* sys/v4l2/gstv4l2.c:
	* sys/vcd/vcdsrc.c:
	* sys/ximagesrc/ximagesrc.c:
	  update to use correct defines
	* 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:
	  v4l2 has translations, pick them up

2006-03-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximagesrc/ximagesrc.c: 
	  Add docs to ximagesrc

2006-03-31  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximagesrc/ximagesrc.c: (composite_pixel),
	(gst_ximagesrc_ximage_get), (gst_ximagesrc_set_property),
	(gst_ximagesrc_get_caps), (gst_ximagesrc_class_init):
	* sys/ximagesrc/ximagesrc.h:
	* sys/ximagesrc/ximageutil.c: (ximageutil_xcontext_get):
	* sys/ximagesrc/ximageutil.h:
	  Fix ximagesrc so a) the cursor doesnt trail and b) there are no
	  yellow rectangles with the cursor

2006-03-31  Michael Smith  <msmith@fluendo.com>

	* configure.ac:
	  Add autoconfery for theoradec.
	* ext/Makefile.am:
	  Add theora directory.
	* ext/theora/Makefile.am:
	* ext/theora/theoradec.c: (gst_theoradec_base_init),
	(gst_theoradec_class_init), (gst_theoradec_init),
	(gst_theoradec_reset), (inc_granulepos), (theora_get_query_types),
	(gst_theoradec_granule_clocktime), (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_dec_push), (theora_handle_data_packet), (theora_dec_chain),
	(theora_dec_change_state), (plugin_init):
	* ext/theora/theoradec.h:
	  Add theora plugin for theora-exp decoder. Very heavily based on the
	  existing theora decoder plugin.

2006-03-29  Wim Taymans  <wim@fluendo.com>

	* ext/gsm/gstgsmdec.c: (gst_gsmdec_class_init), (gst_gsmdec_init),
	(gst_gsmdec_finalize), (gst_gsmdec_sink_event), (gst_gsmdec_chain):
	* ext/gsm/gstgsmdec.h:
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_class_init), (gst_gsmenc_init),
	(gst_gsmenc_finalize), (gst_gsmenc_chain):
	Cleanups, fix leaks.
	Handle events and DISCONT.
	Use adapter in the decoder.

2006-03-29  Wim Taymans  <wim@fluendo.com>

	Patch by: Renato Araujo Oliveira Filho <renatox at gmail dot com>

	* configure.ac:
	* ext/Makefile.am:
	* ext/amrwb/Makefile.am:
	* ext/amrwb/README:
	* ext/amrwb/amrwb-code/Makefile.am:
	* ext/amrwb/amrwb-code/run.sh:
	* ext/amrwb/gstamrwb.c: (plugin_init):
	* ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_base_init),
	(gst_amrwbdec_class_init), (gst_amrwbdec_init),
	(gst_amrwbdec_setcaps), (gst_amrwbdec_event), (gst_amrwbdec_chain),
	(gst_amrwbdec_state_change):
	* ext/amrwb/gstamrwbdec.h:
	* ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_base_init),
	(gst_amrwbenc_class_init), (gst_amrwbenc_init),
	(gst_amrwbenc_finalize), (gst_amrwbenc_setcaps),
	(gst_amrwbenc_chain), (gst_amrwbenc_state_change):
	* ext/amrwb/gstamrwbenc.h:
	* ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_base_init),
	(gst_amrwbparse_class_init), (gst_amrwbparse_init),
	(gst_amrwbparse_querytypes), (gst_amrwbparse_query),
	(gst_amrwbparse_chain), (gst_amrwbparse_read_header),
	(gst_amrwbparse_loop), (gst_amrwbparse_sink_activate),
	(gst_amrwbparse_sink_activate_pull), (gst_amrwbparse_state_change):
	* ext/amrwb/gstamrwbparse.h:
	Added new plugin amrwb parse.
	Renamed audio/AMR to audio/AMR-WB as per spec.
	Fixes #333307

2006-03-27  Edgard Lima <edgard.lima@indt.org.br>

	* gst-plugins-bad/sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_init):
	Small fix, now pwc driver can tell about its buffers.

2006-03-27  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Remove CXX tag from AS_LIBTOOL_TAGS, just like we
	  did for -good and -ugly. Fixes build on some systems
	  and doesn't seem to be required for C++ code.

2006-03-26  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gsttaglib.cc:
	* ext/taglib/gsttaglib.h:
	  Fix newsegment event handling a bit. We need to
	  cache the first newsegment event, because we can't
	  adjust offsets yet when we get it, as we don't
	  know the size of the tag yet for sure at that point.
	  Also do some minor cleaning up here and there and add
	  some debug statements.

2006-03-25  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gsttaglib.cc:
	  We do not want to proxy the caps on the sink pad; our 
	  source pad should have application/x-id3 caps; also,
	  don't use already-freed strings in debug messages;
	  finally, adjust buffer offsets on buffers sent out.

2006-03-25  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/v4l2/gstv4l2src.c:
	  Older kernels don't seem to have this particular v4l2 format,
	  so comment out until this gets fixed properly (and make
	  buildbots happy).

2006-03-25  Edgard Lima  <edgard.lima@indt.org.br>

	* sys/v4l2/gstv4l2colorbalance.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	Just make few things more robust and also some identation.

2006-03-23  Wim Taymans  <wim@fluendo.com>

	Patch by: Mark Nauwelaerts <manauw at skynet dot be>

	* ext/xvid/gstxvidenc.c: (gst_xvidenc_init), (gst_xvidenc_setup),
	(gst_xvidenc_chain):
	Patch to mark outgoing encoded buffers as delta-units (or not).
	Note that this patch also patches:
	- the setting of fincr and fbase in xvid-encoder creation based on
	  caps framerate
	- makes 0, rather than 2, the default max_b_frames, as the current
	  xvidenc does not seem "fully prepared" to handle b-frame 
	  "effects", such as encoder returning 0 encoded bytes, etc.
	Fixes #335585

2006-03-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/modplug/libmodplug/Makefile.am:
	* gst/modplug/libmodplug/load_it.cpp:
	  Try that again (not only should it be MODPLUG_ instead
	  of MODFILE, also that define is already set in stdafx.h;
	  what we really need is some more #ifndefs).

2006-03-22  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/modplug/libmodplug/Makefile.am:
	  More gcc-4.1 fixes (we don't need file saving, so just
	  define MODPLUG_NO_FILESAVE. That way, the compiler won't
	  complain about modplug ignoring the return value of fwrite
	  any longer and we might even save a few bytes as well).

2006-03-22  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Wouter Paeson  <wouter at kangaroot dot net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/soundtouch/Makefile.am:
	* ext/soundtouch/gstpitch.cc:
	* ext/soundtouch/gstpitch.hh:
	  Add new libsoundtouch-based pitch plugin (#331335).

2006-03-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/modplug/libmodplug/load_ptm.cpp:
	  Fix compilation with gcc-4.1 and -Werror (#327355).

2006-03-20  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gsttaglib.h:
	  Fix left-over gst_my_filter_get_type.

2006-03-17  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

	* sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_open_display),
	(gst_ximagesrc_set_property), (gst_ximagesrc_get_property),
	(gst_ximagesrc_class_init), (gst_ximagesrc_init):
	Have a show mouse pointer property and use it if we can

2006-03-15  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_dispose):
	Let's not forget to chain up to the parent dispose.

2006-03-15  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init),
	(gst_qtdemux_init), (gst_qtdemux_dispose),
	(gst_qtdemux_add_stream), (qtdemux_parse_trak):
	Series of memleak fixes:
	- Unref the GstAdapter in finalize.
	- Use gst_pad_new_from_static_template(), shorter and safer.
	- Free unused QtDemuxStream when not used.

2006-03-14  Edward Hervey  <edward@fluendo.com>

	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_base_init),
	(gst_v4l2src_class_init):
	Initialization of the debugging category should be as early as possible,
	moving it from _class_init() to beginning of _base_init().

2006-03-13  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/gsttaglib.cc:
	  Add gtk-doc blurb (unused for the time being); match registered
	  plugin name to the filename of the plugin (taglibmux => taglib)

2006-03-13  Tim-Philipp Müller  <tim at centricular dot net>

	Patch by: Mikhail Zabaluev  <mhz altlinux org>

	* autogen.sh:
	  Don't check for file that only exists in CVS but isn't
	  disted (#334417)

2006-03-13  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* sys/v4l2/Makefile.am: Fix build of v4l2 (sigh)

2006-03-12  Tim-Philipp Müller  <tim at centricular dot net>

	* Makefile.am:
	* configure.ac:
	  Fix distcheck.

2006-03-12  Edward Hervey  <edward@fluendo.com>

	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_init),
	(gst_v4l2src_buffer_pool_free):
	g_atomic_int_set is only available in glib-0.10, use gst_atomic_int_et
	instead.

2006-03-12  Edward Hervey  <edward@fluendo.com>

	* sys/v4l2/gstv4l2element.h:
	Remove tim's addition of "_stdint.h" since it doesn't make the PPC
	buildbot happy.
	I will just use the same comment Ronald used when he added these lines:
	Yet Another Hack (tm) for kernel header borkedness.

2006-03-12  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/taglib/Makefile.am:
	* ext/taglib/gsttaglib.cc:
	* ext/taglib/gsttaglib.h:
	  Add support for writing MusicBrainz IDs.

2006-03-12  Tim-Philipp Müller  <tim at centricular dot net>

	* sys/v4l2/gstv4l2element.h:
	  Include "_stdint.h" in an attempt to make the
	  PPC-buildbot happy.

2006-03-11  Edgard Lima  <edgard.lima@indt.org.br>

	* configure.ac:
	* sys/Makefile.am:
	* sys/v4l2/Makefile.am:
	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.c:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2xoverlay.c:
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	V4L2 ported to 0.10.
	
2006-03-11  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Only compile the taglib plugin if a C++ compiler is
	  present. Use GST_DEFAULT_ELEMENTS macro from common/
	  for all the defaults stuff.

2006-03-11  Christophe Fergeau  <teuf@gnome.org>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* gst/xingheader/Makefile.am:
	* gst/xingheader/gstxingmux.c: 
	* gst/xingheader/gstxingmux.h: added new element to add Xing headers
	to MP3 files (this allows decoder to figure out the length of VBR
	files) 

2006-03-11  Christophe Fergeau  <teuf@gnome.org>
	
	Patch by: Alex Lancaster
	
	* ext/taglib/gsttaglib.cc: fix writing of TPOS tags (album number),
	and add support for TCOP (copyright)

2006-03-10  Julien MOUTTE  <julien@moutte.net>

	* gst/modplug/Makefile.am:
	* gst/modplug/gstmodplug.cc: Fix modplug compilation.

2006-03-10  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* gst/modplug/Makefile.am:
	* gst/modplug/gstmodplug.cc:
	* gst/modplug/gstmodplug.h:
	* gst/modplug/libmodplug/sndfile.cpp:
	* gst/modplug/libmodplug/sndfile.h:
	  modplug plugin ported to 0.10 (#332598, patch by:
	  Jonathan Matthew <jonathan at kaolin wh9 net>).

2006-03-10  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/libmms/gstmms.c: (gst_mms_urihandler_init),
	(gst_mms_base_init), (gst_mms_class_init), (gst_mms_init),
	(gst_mms_finalize), (gst_mms_create), (gst_mms_start),
	(gst_mms_set_property), (gst_mms_get_property),
	(gst_mms_uri_get_uri):
	* ext/libmms/gstmms.h:
	  Some clean-ups; more debug output; use blocksize property
	  of GstBaseSrc instead of re-registering our own; make debug
	  category actually be used.

2006-03-09  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_send_event):
	  Fix build with gcc-4.1 (#327355).

2006-03-09  Christophe Fergeau  <teuf@gnome.org>

	reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/taglib/Makefile.am:
	* ext/taglib/gsttaglib.cc:
	* ext/taglib/gsttaglib.h: new id3v2 muxer based on TagLib

2006-03-08  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_udta):
	  Extract disc number and count from files that use
	  'disk' instead of 'disc' as node identifier for that
	  (fixes #332066).

2006-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek):
	  Forgot those two.

2006-03-06  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init),
	(gst_musepackdec_init), (gst_musepackdec_send_newsegment),
	(gst_musepackdec_handle_seek_event),
	(gst_musepackdec_get_src_query_types), (gst_musepackdec_src_query),
	(gst_musepack_stream_init), (gst_musepackdec_sink_activate),
	(gst_musepackdec_sink_activate_pull), (gst_musepackdec_loop),
	(gst_musepackdec_change_state):
	  Some cleanups; pause task when push fails.

2006-03-05  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add support for '3IVD' fourcc (#333403).

2006-03-04  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_send_tags),
	(gst_faad_setcaps), (gst_faad_do_raw_seek), (gst_faad_src_event),
	(gst_faad_sink_event), (gst_faad_src_convert),
	(gst_faad_src_query), (gst_faad_chain), (gst_faad_change_state):
	  Add query function for position/duration querying (mostly for
	  raw AAC streams); make seeking in raw AAC streams work; post
	  tags with codec name if this is a raw AAC stream.

2006-03-04  Sebastien Moutte  <sebastien@moutte.net>

	* sys/directdraw:
	* sys/directsound:
	  sinks are now using GST_RANK_PRIMARY to be used with autodectection
	* win32/vs6:
	  project files updated to fix some bugs
	* win32/vs7:
	* win32/vs8:
	  vs7 and vs8 project files added
	
2006-03-03  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/xvid/gstxviddec.c: (gst_xviddec_chain):
	  Declare variable at the beginning of the block and make gcc-2.9x
	  happy (fixes #333283; patch by: Jens Granseuer).

2006-03-03  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak):
	Use GST_WARNING instead of GST_ERROR for all the too short/long atoms
	when parsing.
	Also let's be a bit less vulgar in our warning messages :)

2006-02-28  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Can't divide through zero (suppress warning in case of
	  stream with one single still picture) (see #327083)

2006-02-25  Julien MOUTTE  <julien@moutte.net>

	* sys/glsink/glimagesink.c: It doesn't seem we need GLU.h

2006-02-24  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
	(qtdemux_parse_trak), (qtdemux_video_caps):
	  Add support for palettised Apple SMC videos (#327075, based on
	  patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>).

2006-02-24  Michael Smith  <msmith@fluendo.com>

	* autogen.sh:
	  Allow automake 1.9

2006-02-24  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/neon/gstneonhttpsrc.c:
	Changed property name from "uri" to "location" 

2006-02-22  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* sys/glsink/Makefile.am:
	Merge patch from #317048 for building on Cygwin. Patch by 
	Cygwin Ports maintainer.
	* sys/glsink/glimagesink.c: (gst_glimage_sink_init_display):
	Move normal debug output to LOG level not ERROR.

2006-02-19  Jan Gerber  <j@bootlab.org>

	Reviewed by : Edward Hervey <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add 'dvsd' and 'dv25' to list of possible fourcc values for DV Video.
 	  Add image/png for fourcc 'png '
 
2006-02-21  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Surely this is supposed to be >= a.b, not == a.b

2006-02-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	* sys/Makefile.am:
	* sys/ximagesrc/Makefile.am:
	* sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_return_buf),
	(gst_ximagesrc_open_display), (gst_ximagesrc_start),
	(gst_ximagesrc_stop), (gst_ximagesrc_unlock),
	(gst_ximagesrc_recalc), (composite_pixel),
	(gst_ximagesrc_ximage_get), (gst_ximagesrc_create),
	(gst_ximagesrc_set_property), (gst_ximagesrc_get_property),
	(gst_ximagesrc_clear_bufpool), (gst_ximagesrc_base_init),
	(gst_ximagesrc_dispose), (gst_ximagesrc_finalize),
	(gst_ximagesrc_get_caps), (gst_ximagesrc_set_caps),
	(gst_ximagesrc_fixate), (gst_ximagesrc_class_init),
	(gst_ximagesrc_init), (plugin_init):
	* sys/ximagesrc/ximagesrc.h:
	* sys/ximagesrc/ximageutil.c: (ximageutil_handle_xerror),
	(ximageutil_check_xshm_calls), (ximageutil_xcontext_get),
	(ximageutil_xcontext_clear),
	(ximageutil_calculate_pixel_aspect_ratio),
	(gst_ximagesrc_buffer_finalize), (gst_ximage_buffer_free),
	(gst_ximagesrc_buffer_init), (gst_ximagesrc_buffer_class_init),
	(gst_ximagesrc_buffer_get_type), (gst_ximageutil_ximage_new),
	(gst_ximageutil_ximage_destroy):
	* sys/ximagesrc/ximageutil.h:

	Port ximagesrc to 0.10 (Closes #304795)

2006-02-20  Edgard Lima <edgard.lima@indt.org.br>

        * gst/freeze/gstfreeze.c:
        * gst/freeze/gstfreeze.h:
        Some event handling added by Renato Filho <renato.filho@indt.org.br>

2006-02-20  Jan Schmidt  <thaytan@mad.scientist.com>

	* configure.ac:
	Back to CVS nano

=== release 0.10.1 ===

2006-02-20  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  releasing 0.10.1, "Slimy - yet satisfying"

2006-02-19  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  Release 0.10.0.3 - pre-release for 0.10.1

2006-02-19  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/bz2/gstbz2.c:
	* ext/bz2/gstbz2dec.c:
	* ext/bz2/gstbz2dec.h:
	* ext/bz2/gstbz2enc.c:
	* ext/bz2/gstbz2enc.h:
	  Add proper copyright headers identifying Lutz Müller
	  as the author and copyright holder (#331600).

2006-02-17  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_movie):
	  Don't GST_LOG timestamps from nonexistent index
	  entries (#331582).

2006-02-17  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header):
	Check that the size of the returned buffer is of the correct size
	because the parser assumes that.
	Fixes #331543.

2006-02-17  Jan Schmidt <thaytan@mad.scientist.com>

	* configure.ac:
	  Release 0.10.0.2 - pre-release for 0.10.1

2006-02-16  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_event),
	(gst_qtdemux_loop), (qtdemux_sink_activate_pull):
	Don't stop the task if the pad isn't linked.

2006-02-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_chain):
	  It appears 100% equals 1/1 and not 100/1 ...

2006-02-15  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_post_buffering),
	(gst_qtdemux_chain):
	  When buffering MDAT data, show the user something is
	  happening by posting 'buffering' messages on the bus.

2006-02-14  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	(gst_qtdemux_handle_src_query), (gst_qtdemux_change_state),
	(next_entry_size), (gst_qtdemux_chain):
	* gst/qtdemux/qtdemux.h:
	Make push-based work if mdat atom is before moov atom.
	Don't answer duration query. This should be transformed into replying
	FALSE to seek events.

2006-02-14  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/libmms/gstmms.c: (gst_mms_class_init), (gst_mms_create),
	(gst_mms_start):
	  Return FLOW_UNEXPECTED on EOS, not FLOW_ERROR. Also, no need to
	  push our own EOS event on EOS, the base class will do that for us;
	  fix bogus query code; post semi-decent errors on the bus when an
	  error occurs in ::start(), otherwise the user will get to see
	  whatever cryptic default message GstBaseSrc comes up with.

2006-02-14  Andy Wingo  <wingo@pobox.com>

	* sys/glsink/glimagesink.c (gst_glimage_sink_init): Come on
	schleef, don't break me gst-inspect -a.

2006-02-14  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (next_entry_size), (gst_qtdemux_chain):
	Handle the case where data atoms are before moov atoms in push-based mode.
	Errors out gracefully.

2006-02-13  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/Makefile.am:
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	(gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state),
	(extract_initial_length_and_fourcc),
	(gst_qtdemux_loop_state_header), (gst_qtdemux_loop_state_movie),
	(gst_qtdemux_loop_header), (next_entry_size), (gst_qtdemux_chain),
	(qtdemux_sink_activate), (qtdemux_sink_activate_pull),
	(qtdemux_sink_activate_push), (qtdemux_parse_trak):
	* gst/qtdemux/qtdemux.h:
	QtDemux can now work push-based.
	It still needs some love for seeking.

2006-02-13  Edgard Lima  <edgard.lima@indt.org.br>

	* configure.ac:
	* gst/freeze/Makefile.am:
	* gst/freeze/gstfreeze.c:
	* gst/freeze/gstfreeze.h:
	* gst/freeze/FAQ:
	freeze plugin ported to 0.10 by
	Renato Filho <renato.filho@indt.org.br>

2006-02-10  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	* gst/cdxaparse/Makefile.am:
	* gst/cdxaparse/gstcdxaparse.c:
	* gst/cdxaparse/gstcdxaparse.h:
	  Port cdxaparse, makes VCD playback work.

2006-02-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse_trak):
	  use the correct variable to check if we can calculate
	  the last chunk.  Looks like an obvious bug, and makes
	  the dump of offsets comparable to other tools

2006-02-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse_trak):
	  clean up some debugging, using _OBJECT, moving recurring
	  messages to LOG level

2006-02-06  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/neon/gstneonhttpsrc.c:
	Now it uses libneon 0.25.5 that supports shoutcast.

2006-02-06  Lutz Mueller <lutz@topfrose.de>

	Reviewed by: Edward Hervey <edward@fluendo.com>
	
	* ext/bz2/gstbz2enc.c: Accepd "ANY" caps. Use "x-bzip" instead of
	"x-bz2".
	* ext/bz2/gstbz2dec.c: Use "x-bzip" instead of "x-bz2". Initial
	caps are "ANY".
	(gst_bz2dec_chain): Configure the source pad if we can figure out
	the mime type of the decompressed data.
	(gst_bz2dec_[get,set]_property):
	(gst_bz2dec_class_init: New property "first_buffer_size".
	

2006-02-06  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query),
	(gst_qtdemux_handle_src_event), (gst_qtdemux_loop_header),
	(qtdemux_inflate), (qtdemux_parse), (qtdemux_parse_trak),
	(qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num),
	(qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds),
	(qtdemux_video_caps), (qtdemux_audio_caps):
	* gst/qtdemux/qtdemux.h:
	Some QT demux loving.
	Handle seeking in a less broken way.
	Fix AMR caps to match the AMR decoder.
	Set first timestamp on AMR samples to 0 for now.
	Remove some \n in DEBUG strings.
	Use _scale_int for maximum precision.

2006-02-06  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/apetag/Makefile.am:
	* gst/apetag/apedemux.c:
	* gst/apetag/apedemux.h:
	* gst/apetag/apetag.c:
	  Remove old files, apetag is in gst-plugins-good now.

2006-02-06  Andy Wingo  <wingo@pobox.com>

	* ext/bz2/gstbz2enc.c (gst_bz2enc_class_init): 
	* ext/bz2/gstbz2dec.c (gst_bz2dec_class_init): No need to init
	parent_class, the boilerplate does it for you.

2006-02-05  Lutz Mueller <lutz@topfrose.de>

	reviewed by: Andy Wingo <wingo@pobox.com>

	* configure.ac:
	* ext/Makefile.am: Hook it up.
	* ext/bz2/gstbz2.c:
	* ext/bz2/gstbz2dec.h:
	* ext/bz2/gstbz2dec.c:
	* ext/bz2/gstbz2enc.h:
	* ext/bz2/gstbz2enc.c: New plugin, implements bz2 encoding and
	decoding (#303167).
	
2006-01-30  Andy Wingo  <wingo@pobox.com>

	* sys/glsink/Makefile.am (libgstglimagesink_la_LIBADD) 
	(libgstglimagesink_la_CFLAGS): Add PLUGINS_BASE cflags and libs.

2006-01-29  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_setcaps),
	(gst_wavpack_dec_base_init), (gst_wavpack_dec_dispose),
	(gst_wavpack_dec_class_init), (gst_wavpack_dec_sink_event),
	(gst_wavpack_dec_init), (gst_wavpack_dec_format_samples),
	(gst_wavpack_dec_chain), (gst_wavpack_dec_plugin_init):
	  Add debug category, use boilerplate macros, fix handling
	  of widths of 32 bits.

	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init),
	(gst_wavpack_parse_dispose), (gst_wavpack_parse_class_init),
	(gst_wavpack_parse_index_get_last_entry),
	(gst_wavpack_parse_index_get_entry_from_sample),
	(gst_wavpack_parse_index_append_entry), (gst_wavpack_parse_reset),
	(gst_wavpack_parse_src_query),
	(gst_wavpack_parse_scan_to_find_sample),
	(gst_wavpack_parse_send_newsegment),
	(gst_wavpack_parse_handle_seek_event),
	(gst_wavpack_parse_src_event), (gst_wavpack_parse_init),
	(gst_wavpack_parse_get_upstream_length),
	(gst_wavpack_parse_pull_buffer),
	(gst_wavpack_parse_create_src_pad), (gst_wavpack_parse_loop),
	(gst_wavpack_parse_change_state),
	(gst_wavepack_parse_sink_activate),
	(gst_wavepack_parse_sink_activate_pull),
	(gst_wavpack_parse_plugin_init):
	* ext/wavpack/gstwavpackparse.h:
	  Rewrite a bit, mostly to fix flow logic and to make seeking work.
	  Fix buffer/event refcounting. Add some debug statements. Add
	  width of 32 to source pad template caps. Use boilerplate macros.

2006-01-28  Edward Hervey  <edward@fluendo.com>

	* sys/glsink/Makefile.am:
	glimagesink.h is dead, long live glimagesink.h

2006-01-27  David Schleef  <ds@schleef.org>

	* configure.ac:
	* sys/Makefile.am:
	* sys/glsink/Makefile.am:
	* sys/glsink/glimagesink.c:
	* sys/glsink/glimagesink.h:
	  revival of glimagesink.  Kind of works.

2006-01-27  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faad/gstfaad.c: (gst_faad_setcaps),
	(gst_faad_chanpos_to_gst), (gst_faad_sync), (gst_faad_chain):
	  Handle 'framed' field in caps; Port syncing for raw streams
	  from 0.8 branch (for AAC+ radio streams) (#328854, #328721).

2006-01-27  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported),
	(gst_sdlvideosink_xoverlay_set_xwindow_id),
	(gst_sdlvideosink_deinitsdl), (gst_sdlv_process_events),
	(gst_sdlvideosink_event_thread), (gst_sdlvideosink_initsdl),
	(gst_sdlvideosink_destroy), (gst_sdlvideosink_create),
	(gst_sdlvideosink_setcaps), (gst_sdlvideosink_show_frame),
	(gst_sdlvideosink_change_state),
	(gst_sdlvideosink_navigation_send_event):
	* ext/sdl/sdlvideosink.h:
	  Fix output stride copying, so that it displays correctly on 
	  framebuffer devices that don't match our implict GStreamer stride
	  arrangement.

	  Fix locking things. Offer XOverlay only when SDL is running against
	  X. Make non-scaled (and ugly) embedding work via X Overlay. It can't
	  actually match the embedded window size because there's no way to
	  figure out what size that should be from the XOverlay interface.
	  See comment in sdlvideosink.c

2006-01-26  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
	  Fix wrong memcpy source pointer.

2006-01-25  Edgard Lima <edgard.lima@indt.org.br>

	* ext/libmms/gstmms.c: (gst_mms_finalize):
	* ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_finalize):
	Just chain up finalize calls (calling parent_class->finalize).

2006-01-25  Edgard Lima <edgard.lima@indt.org.br>

	* ext/libmms/gstmms.c: (gst_mms_finalize), (gst_mms_set_property),
	(gst_mms_get_property), (gst_mms_src_query), (gst_mms_class_init):
	Finalize method has been created and others small changes.

2006-01-24  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init),
	(gst_musepackdec_class_init), (gst_musepackdec_init),
	(gst_musepackdec_send_newsegment),
	(gst_musepackdec_handle_seek_event), (gst_musepackdec_src_event),
	(gst_musepackdec_src_query), (gst_musepackdec_src_convert),
	(gst_musepack_stream_init), (gst_musepackdec_sink_activate_pull),
	(gst_musepackdec_loop), (gst_musepackdec_change_state):
	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek),
	(gst_musepack_reader_seek), (gst_musepack_reader_tell),
	(gst_musepack_reader_get_size):
	* ext/musepack/gstmusepackreader.h:
	  Fix seeking in musepack files (it's still incredibly slow, but I
	  don't think that is our plugin's fault). Clean up code and get
	  rid of old cruft. Post tags with all kind of neat information like
	  replay gain and such on the bus, if it is available. Add a
	  'musepackdec' debug category.

2006-01-24  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream), (qtdemux_parse_trak):
	More coherent framerate setting on caps.
	If sample_size is available, use that for the samples' duration in
	the index. This enables single frame streams to work (and I imagine
	fixes some other cases).
	Tested on testsuite, no regression.

2006-01-23  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
	(qtdemux_video_caps), (qtdemux_audio_caps):
	Added codec recognition for:
	_ VP31 : video/x-vp3
	_ AVDJ : image/jpeg
	_ dvcp, dvc  : video/x-dv, systemstream=(boolean)false
	_ 0x6d730017 : audio/x-adpcm, layout=(string)quicktime

2006-01-21  David Schleef  <ds@schleef.org>

	* configure.ac:
	* ext/swfdec/gstswfdec.c: Update from swfdec.

2006-01-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
	(qtdemux_audio_caps):
	  'twos' and 'sowt' fourcc can be 16bit or 8bit audio.
	  Fix 8bit case (#327133, based on patch by: Fabrizio
	  Gennari <fabrizio dot ge at tiscali dot it>).
	  Also, "G_LITTLE_ENDIAN" and "G_BIG_ENDIAN" are not
	  valid literals for endianness in caps strings,
	  only "LITTLE_ENDIAN" and "BIG_ENDIAN" are valid. 

2006-01-20  Edgard Lima <edgard.lima@indt.org.br>

	* ext/ivorbis/vorbisfile.c:
	* ext/neon/gstneonhttpsrc.c:
	Fixed state transictions PLAYING->NULL->PLAYING.
	
2006-01-19  Edgard Lima <edgard.lima@indt.org.br>

	* ext/tremor/vorbisfile.c:
	Some minor improvements on log messages.

2006-01-18  Edgard Lima <edgard.lima@indt.org.br>

	* gst/qtdemux/qtdemux.c: qtdemux_parse_trak:
	Ronald's patch applied. see bug #326318.

2006-01-17  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
	(gst_qtdemux_send_event), (gst_qtdemux_handle_src_event),
	(gst_qtdemux_change_state), (gst_qtdemux_loop_header):
	* gst/qtdemux/qtdemux.h:
	  Fix seeking for quicktime files. Could still use some more
	  love and sophistication.

2006-01-16  Edgard Lima <edgard.lima@indt.org.br>

	* ext/libmms/gstmms.c: gst_mms_init:
	* ext/neon/gstneonhttpsrc.c: gst_neonhttp_src_init:
	* ext/sdl/sdlaudiosink.c: gst_sdlaudio_sink_dispose:
	Removed gst_base_src_set_live from mms and neon, and now calling
	parent_class->dispose in dispose on sdlaudio.
	
2006-01-11  Edgard Lima <edgard.lima@indt.org.br>

	* ext/sdl/sdlvideosink.c:
	Now implementing navigation interface and using
	GST_BOILER_PLATE_FULL.
	
2006-01-11  Christian Schaller  <christian@fluendo.com>

	Remove SunAudio plugin as Brian's new one is in -good

	* sys/Makefile.am:
	* sys/sunaudio/Makefile.am:
	* sys/sunaudio/gstsunaudio.c:
	* sys/sunaudio/gstsunaudiosrc.c:
	* sys/sunaudio/gstsunaudiosrc.h:
	* sys/sunaudio/gstsunelement.c:
	* sys/sunaudio/gstsunelement.h:
	* sys/sunaudio/gstsunmixer.c:
	* sys/sunaudio/gstsunmixer.h:

2006-01-11  Edgard Lima <edgard.lima@indt.org.br>

	* ext/sdl/sdlaudiosink.c:
	Replaced wrong style code by GST_BOILERPLATE.
	
2006-01-11  Fabrizio Gennari <fabrizio.ge@tiscali.it>

	reviewed by: Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	Add support for Indeo3 video in Quicktime files.
	Closes #326524

2006-01-09  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/sdl/Makefile.am:
	* ext/sdl/gstsdl.c:
	* ext/sdl/sdlaudiosink.c:
	* ext/sdl/sdlaudiosink.h:
	* ext/sdl/sdlvideosink.c:
	Created new element, sdlaudiosink.
	
2006-01-05  Sebastien Moutte  <sebastien@moutte.net>

	* added sys/directdraw
	* added sys/directsound
	* added win32/vs6/gst_plugins_bad.dsw
	* added win32/vs6/libgstdirectsound.dsp
	* added win32/vs6/libgstdirectdraw.dsp
	* added win32/common/config.h
	
2006-01-05  Stefan Kost  <ensonic@users.sf.net>

	* gst/games/gstpuzzle.c: (plugin_init):
	  call oil_init() when using liboil

2006-01-04  Edgard Lima <edgard.lima@indt.org.br>

        * ext/neon/gstneonhttpsrc.c:
        * ext/neon/gstneonhttpsrc.h:
        Some improvements in cancellation and debug messages.
			
2006-01-04  Edgard Lima <edgard.lima@indt.org.br>

	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	Removed not need thread and changed to push out blocksize bytes.
	
2005-12-28  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/Makefile.am
	* ext/neon:
	* ext/neon/Makefile.am:
	* ext/neon/gstneonhttpsrc.c:
	* ext/neon/gstneonhttpsrc.h:
	Created new element neonhttpsrc.

2005-12-19  Edward Hervey  <edward@fluendo.com>

	* ext/swfdec/gstswfdec.c: (gst_swfdec_class_init),
	(gst_swfdec_chain), (gst_swfdec_render):
	Add debugging category and return GstFlowReturn in the right places
	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link):
	Get something from the peer pad once we've checked if there is a peer pad.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
	(qtdemux_tree_get_child_by_type), (qtdemux_parse_trak),
	(qtdemux_video_caps):
	Couple of fixes

2005-12-19  Edgard Lima <edgard.lima@indt.org.br>

	* ext/divx/Makefile.am:
	just a small fix. I have to pay more attention when commiting ;-)

2005-12-19  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/divx/Makefile.am:
	* ext/divx/gstdivxdec.c:
	* ext/divx/gstdivxdec.h:
	* ext/divx/gstdivxenc.c:
	* ext/divx/gstdivxenc.h:
	divxdec and divxenc ported to 0.10
	
2005-12-18  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_create),
	(gst_dfbvideosink_event_thread), (gst_dfbvideosink_enum_devices),
	(gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup),
	(gst_dfbvideosink_can_blit_from_format),
	(gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps),
	(gst_dfbvideosink_show_frame), (gst_dfbvideosink_buffer_alloc),
	(gst_dfbsurface_finalize),
	(gst_dfbvideosink_navigation_send_event),
	(gst_dfbvideosink_update_colorbalance),
	(gst_dfbvideosink_set_property), (gst_dfbvideosink_init): Some
	more refactoring, handle exotic DirectFB row stride.

2005-12-18  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt: Updates.
	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_create),
	(gst_dfbvideosink_event_thread), (gst_dfbvideosink_enum_devices),
	(gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup),
	(gst_dfbvideosink_can_blit_from_format),
	(gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps),
	(gst_dfbvideosink_show_frame), (gst_dfbvideosink_buffer_alloc),
	(gst_dfbsurface_finalize),
	(gst_dfbvideosink_navigation_send_event),
	(gst_dfbvideosink_update_colorbalance),
	(gst_dfbvideosink_set_property), (gst_dfbvideosink_get_property),
	(gst_dfbvideosink_finalize), (gst_dfbvideosink_init),
	(gst_dfbvideosink_class_init):
	* ext/directfb/dfbvideosink.h: Implement pixel-aspect-ratio.
	This should work both for hardware accelerated scaling and
	reverse caps negotiation with a scaling element.

2005-12-17  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/plugins/inspect/plugin-qtdemux.xml:
	* docs/plugins/inspect/plugin-sdlvideosink.xml:
	* docs/plugins/inspect/plugin-speed.xml:
	* docs/plugins/inspect/plugin-tta.xml: Updates.
	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_create),
	(gst_dfbvideosink_event_thread), (gst_dfbvideosink_enum_vmodes),
	(gst_dfbvideosink_enum_devices), (gst_dfbvideosink_setup),
	(gst_dfbvideosink_cleanup),
	(gst_dfbvideosink_can_blit_from_format),
	(gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps),
	(gst_dfbvideosink_setcaps), (gst_dfbvideosink_show_frame),
	(gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize),
	(gst_dfbvideosink_interface_supported),
	(gst_dfbvideosink_navigation_send_event),
	(gst_dfbvideosink_update_colorbalance),
	(gst_dfbvideosink_colorbalance_list_channels),
	(gst_dfbvideosink_colorbalance_set_value),
	(gst_dfbvideosink_colorbalance_get_value),
	(gst_dfbvideosink_colorbalance_init),
	(gst_dfbvideosink_set_property), (gst_dfbvideosink_get_property),
	(gst_dfbvideosink_init), (gst_dfbvideosink_class_init):
	* ext/directfb/dfbvideosink.h: Implement vertical sync and 
	color balance interface.

2005-12-16  Stefan Kost  <ensonic@users.sf.net>

	* ext/artsd/gstartsdsink.c: (gst_artsdsink_open_audio):
	* gst/festival/gstfestival.c: (socket_receive_file_to_buff):
	* gst/vbidec/vbidata.c:
	* gst/vbidec/vbidata.h:
	* gst/vbidec/vbiscreen.c:
	* sys/dxr3/ac3_padder.c:
          don't use doc comments for non-docs
          change some char* into char[]

2005-12-16  Julien MOUTTE  <julien@moutte.net>

	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers),
	(gst_dfbvideosink_init): Always prefer the primary layer.

2005-12-16  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/wavpack/gstwavpackdec.c:
	  Oops, remove trailing comma from caps string.

2005-12-16  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link):
	* ext/wavpack/gstwavpackparse.c:
	  Wavpack supports samplerates from 6-192kHz, fix pad template
	  caps (fixes #322973; patch by: gcocatre@gmail.com). Also
	  remove buffer-frames from caps, they are gone in 0.10.

2005-12-15  Edgard Lima <edgard.lima@indt.org.br>

	* ext/xvid/Makefile.am:
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxvidenc.c:
	Fixed some mem-leaks in xvid.

2005-12-14  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/xvid/gstxvid.c:
	* ext/xvid/gstxvid.h:
	* ext/xvid/gstxviddec.c:
	* ext/xvid/gstxviddec.h:
	* ext/xvid/gstxvidenc.c:
	* ext/xvid/gstxvidenc.h:
	xviddec and xvideenc ported to 0.10
		

2005-12-14  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/dts/Makefile.am:
	* ext/dts/gstdtsdec.c:
	* ext/dts/gstdtsdec.h:
	dtsdec ported to 0.10

2005-12-12  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop):
	* ext/libmms/gstmms.c: (gst_mms_src_query), (gst_mms_create):
	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_src_query),
	(gst_musepackdec_loop):
	* ext/swfdec/gstswfdec.c: (gst_swfdec_video_link),
	(gst_swfdec_src_query):
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query):
	  GstObjects must be unref'ed with gst_object_unref() instead of
	  g_object_unref(), otherwise things break for GLib-2.6 users.

2005-12-12  David Schleef  <ds@schleef.org>

	* ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_get_type),
	(gst_swfdecbuffer_class_init), (gst_swfdecbuffer_finalize),
	(gst_swfdec_buffer_from_swf), (gst_swfdec_render): Add a subclass
	of GstBuffer that wraps SwfdecBuffers.  Fix a massive memleak
	because the video buffers previously never got freed.

2005-12-11  Edgard Lima <edgard.lima@indt.org.br>

	* ext/libmms/gstmms.c:
	Just removed a weird printf ;-)

2005-12-11  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/libmms/gstmms.c:
	* ext/libmms/gstmms.h:
	Added suport to mmsh. There's still a sucks msg "ERROR: Pipeline cant
	PREROOL..." to be fixed.

2005-12-09  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst),
	(gst_faad_update_caps):
	  Assume that an unknown channel mapping with 2 channels
	  is stereo and play it that way instead of erroring.

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream), (qtdemux_parse_trak):
	  Handle e.g. jpeg streams with 0 duration frames as having 0 framerate.
	  Debug fixes. Some 64 bit variable fixes

2005-12-09  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/swfdec/Makefile.am:
	* ext/swfdec/gstswfdec.c:
	* ext/swfdec/gstswfdec.h:
	swfdec Ported to 0.10.

2005-12-07  Edward Hervey  <edward@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream):
	Memleak fixes.
	Send out EOS for valid reasons (couldn't pull_range() from upstream
	for example).

2005-12-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* ext/audiofile/gstafparse.h:
	* ext/audiofile/gstafsink.c: (gst_afsink_chain):
	* ext/audiofile/gstafsink.h:
	* ext/audiofile/gstafsrc.c: (gst_afsrc_close_file):
	* ext/audiofile/gstafsrc.h:
	* ext/cdaudio/gstcdaudio.c:
	* ext/divx/gstdivxenc.c:
	* ext/dts/gstdtsdec.h:
	* ext/faac/gstfaac.h:
	* ext/ivorbis/vorbisenc.h:
	* ext/ivorbis/vorbisfile.c:
	* ext/musepack/gstmusepackdec.h:
	* ext/nas/nassink.c:
	* ext/snapshot/gstsnapshot.c:
	* ext/sndfile/gstsf.h:
	* ext/tarkin/gsttarkindec.h:
	* ext/tarkin/gsttarkinenc.h:
	* ext/xine/gstxine.h:
	* ext/xine/xinecaps.c:
	* ext/xvid/gstxvid.h:
	* gst-libs/gst/play/play.h:
	* gst/apetag/apedemux.h:
	* gst/cdxaparse/gstcdxaparse.h:
	* gst/cdxaparse/gstcdxastrip.h:
	* gst/colorspace/yuv2rgb.c:
	* gst/colorspace/yuv2rgb.h:
	* gst/equalizer/gstiirequalizer.c:
	* gst/festival/gstfestival.h:
	* gst/games/gstpuzzle.c:
	* gst/games/gstvideoimage.c:
	* gst/games/gstvideoimage.h:
	* gst/modplug/gstmodplug.h:
	* gst/modplug/libmodplug/it_defs.h:
	* gst/modplug/libmodplug/modplug.h:
	* gst/modplug/libmodplug/sndfile.h:
	* gst/modplug/libmodplug/stdafx.h:
	* gst/mpeg1sys/buffer.c:
	* gst/mpeg1sys/gstmpeg1systemencode.h:
	* gst/mpeg1sys/main.h:
	* gst/mpeg1sys/systems.c:
	* gst/mpeg1videoparse/gstmp1videoparse.h:
	* gst/mpeg2sub/gstmpeg2subt.h:
	* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
	* gst/mpegaudioparse/gstmpegaudioparse.h:
	* gst/multifilesink/gstmultifilesink.h:
	* gst/overlay/gstoverlay.h:
	* gst/qtdemux/qtdemux.c:
	* gst/qtdemux/qtdemux.h:
	* gst/rtjpeg/RTjpeg.c: (RTjpeg_dctY), (RTjpeg_idct):
	* gst/rtjpeg/RTjpeg.h:
	* gst/tta/crc32.h:
	* gst/tta/filters.h:
	* gst/tta/ttadec.h:
	* gst/videodrop/gstvideodrop.h:
	* sys/cdrom/gstcdplayer.h:
	* sys/cdrom/gstcdplayer_ioctl.c:
	* sys/cdrom/gstcdplayer_ioctl.h:
	* sys/cdrom/gstcdplayer_ioctl_bsd.h:
	* sys/cdrom/gstcdplayer_ioctl_irix.h:
	* sys/cdrom/gstcdplayer_ioctl_solaris.h:
	* sys/dxr3/dxr3audiosink.c:
	* sys/dxr3/dxr3audiosink.h:
	* sys/dxr3/dxr3spusink.c:
	* sys/dxr3/dxr3spusink.h:
	* sys/dxr3/dxr3videosink.c:
	* sys/dxr3/dxr3videosink.h:
	* sys/qcam/dark.c:
	* sys/qcam/gstqcamsrc.c:
	* sys/v4l2/gstv4l2colorbalance.h:
	* sys/v4l2/gstv4l2element.h:
	* sys/v4l2/gstv4l2src.h:
	* sys/v4l2/gstv4l2tuner.h:
	* sys/v4l2/gstv4l2xoverlay.h:
	* sys/v4l2/v4l2_calls.c:
	* sys/v4l2/v4l2_calls.h:
	* sys/v4l2/v4l2src_calls.c:
	* sys/v4l2/v4l2src_calls.h:
	* sys/vcd/vcdsrc.h:
	  expand tabs

=== release 0.10.0 ===

2005-12-05  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	  releasing 0.10.0, "Camembert"

2005-12-05  Andy Wingo  <wingo@pobox.com>

	* ext/faac/gstfaac.c: (gst_faac_sink_event), (gst_faac_chain):
	* ext/faad/gstfaad.c: (gst_faad_chain):
	* ext/hermes/gsthermescolorspace.c: (gst_hermes_colorspace_chain):
	* ext/lcs/gstcolorspace.c: (gst_colorspace_chain):
	* ext/xine/xineinput.c: (gst_xine_input_get):
	* gst/colorspace/gstcolorspace.c: (gst_colorspace_chain):
	* gst/speed/gstspeed.c: (speed_chain):
	* gst/videocrop/gstvideocrop.c: (gst_video_crop_chain): Update for
	alloc_buffer changes.

2005-12-02  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/Makefile.am:
	  Add missing $(WAVPACK_DIR) (#322962).

=== release 0.9.7 ===

2005-12-01  Thomas Vander Stichele  <thomas (at) apestaart (dot) org>

	* configure.ac:
	  releasing 0.9.7, "Arrigato Gasuimas Skebisan"

2005-11-28  Edgard Lima <edgard.lima@indt.org.br>

	* PORTED_09:
	* configure.ac:
	* ext/Makefile.am:
	* ext/libmms/Makefile.am:
	* ext/libmms/gstmms.c:
	* ext/libmms/gstmms.h:
	libmm ported to 0.9. It works fine, but print some error messages. I
	ll fix them soon. Tested with  mmssrc location=mms:// ! filesink.
	
2005-11-28  Edward Hervey  <edward@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
	Handle gracefully the consequence of "Maximum number of scalefactor
	bands exceeded", which results in 0 channels with samplerates of 0.
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state):
	Do upward transitions, then call parent state_change, then do
	downward transitions.

2005-11-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/Makefile.am:
	  alphabets, so hard to master.  Should fix distcheck.

2005-11-25  Edgard Lima  <edgard.lima@indt.org.br>

	* configure.ac:
	* PORTED_09:
	* ext/Makefile.am:
	* ext/wavpack/Makefile.am:
	* ext/wavpack/gstwavpackdec.c:
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackparse.c:
	* ext/wavpack/gstwavpackparse.h:
	Wavpack ported to 0.9. No support for correction file yet.

2005-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>

	* ext/wavpack/Makefile.am:
	* ext/wavpack/gstwavpack.c: (plugin_init):
	* ext/wavpack/gstwavpackcommon.c: (gst_wavpack_read_header):
	* ext/wavpack/gstwavpackcommon.h:
	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link),
	(gst_wavpack_dec_wvclink), (gst_wavpack_dec_get_type),
	(gst_wavpack_dec_base_init), (gst_wavpack_dec_dispose),
	(gst_wavpack_dec_class_init), (gst_wavpack_dec_src_query),
	(gst_wavpack_dec_init), (gst_wavpack_dec_setup_context),
	(gst_wavpack_dec_format_samples), (gst_wavpack_dec_loop),
	(gst_wavpack_dec_plugin_init):
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_get_type),
	(gst_wavpack_parse_base_init), (gst_wavpack_parse_dispose),
	(gst_wavpack_parse_class_init), (gst_wavpack_parse_src_query),
	(gst_wavpack_parse_src_event), (find_header), (find_sample),
	(gst_wavpack_parse_seek), (gst_wavpack_parse_init),
	(gst_wavpack_parse_handle_event), (gst_wavpack_parse_loop),
	(gst_wavpack_parse_change_state), (gst_wavpack_parse_plugin_init):
	* ext/wavpack/gstwavpackparse.h:
	  put back wavpack - still needs porting

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, "Hot Tea"

2005-11-23  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* ext/directfb/dfb-example.c: (main):
	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_destroy),
	(gst_dfbvideosink_event_thread), (gst_dfbvideosink_setup),
	(gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps),
	(gst_dfbvideosink_change_state), (gst_dfbvideosink_get_times),
	(gst_dfbvideosink_bufferpool_clear),
	(gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize),
	(gst_dfbvideosink_navigation_send_event),
	(gst_dfbvideosink_finalize), (gst_dfbvideosink_init),
	(gst_dfbvideosink_class_init):
	* ext/directfb/dfbvideosink.h: Use fraction for framerate, various
	fixes.

2005-11-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init),
	(gst_sdlvideosink_get_times), (gst_sdlvideosink_init),
	(gst_sdlvideosink_setcaps), (gst_sdlvideosink_change_state):
	* ext/sdl/sdlvideosink.h:
	Updates for fractional framerates and XOverlay interface changes

2005-11-23  Jan Schmidt  <thaytan@mad.scientist.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(gst_qtdemux_add_stream), (qtdemux_dump_mvhd),
	(qtdemux_parse_trak):
	Convert to fractional framerates

2005-11-23  Edward Hervey  <edward@fluendo.com>

	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_loop):
	Fix for latest API changes

2005-11-22  Edgard Lima <edgard.lima@indt.org.br>
	* configure.ac:
	* PORTED_09:
	* extt/Makefile.am:
	* ext/musepack/gstmusepackdec.c:
	* ext/musepack/gstmusepackdec.h:
	* ext/musepack/gstmusepackreader.c:
	* ext/musepack/gstmusepackreader.h:
	Musepackdec ported to 0.9. There is still a small problem to be
	solved, after the end of file, the pipeline doens't stop.

2005-11-22  Andy Wingo  <wingo@pobox.com>

	* ext/faad/gstfaad.c (gst_faad_event)
	* ext/ivorbis/vorbisfile.c (gst_ivorbisfile_loop)
	* gst/qtdemux/qtdemux.c (gst_qtdemux_loop_header)
	* gst/speed/gstspeed.c (speed_sink_event)
	* gst/tta/gstttaparse.c (gst_tta_parse_src_event)
	(gst_tta_parse_parse_header): Run update-funcnames.

2005-11-21  Michael Smith <msmith@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_event):
	  Don't take STREAM_LOCK in sink event handlers any more.

2005-11-21  Wim Taymans  <wim@fluendo.com>

	* ext/faac/gstfaac.c: (gst_faac_sink_event):
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_event):
	* gst/tta/gstttaparse.c: (gst_tta_parse_src_event):
	Fix for stream lock updates.

2005-11-21  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
	  Add DX50, DIVX and DIV3 fourccs (patch by
	  j@bootlab.org, #321903).

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>

	* ext/directfb/dfbvideosink.c:
	(gst_dfbvideosink_get_format_from_caps):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_create):
	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
	(qtdemux_parse), (qtdemux_type_get), (qtdemux_node_dump_foreach),
	(qtdemux_dump_hdlr), (qtdemux_dump_dref), (qtdemux_dump_stsd),
	(qtdemux_dump_dcom), (qtdemux_parse_trak), (qtdemux_video_caps),
	(qtdemux_audio_caps):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps):
	* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
	(gst_v4l2src_capture_init), (gst_v4l2src_get_size_limits):
	  Update for GST_FOURCC_FORMAT API change.

2005-11-21  Jan Schmidt  <thaytan@mad.scientist.com>

	* ext/audioresample/gstaudioresample.c:
	* ext/polyp/polypsink.c: (gst_polypsink_sink_fixate):
	* gst/librfb/gstrfbsrc.c: (gst_rfbsrc_fixate):
	* gst/modplug/gstmodplug.cc:
	* sys/glsink/glimagesink.c: (gst_glimagesink_fixate):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_fixate):
	Rename gst_caps_structure_fixate_* to gst_structure_fixate_*
	(#322027)

2005-11-21  Edgard Lima <edgard.lima@indt.org.br>

	* ext/Makefile.am:
	* ext/ivorbis/vorbisfile.c:
	Now it works in push-mode. Tested with gnomevfssrc location=http://..
	! tremor ! alsasink. Some issues to be solved yet:
	1- set correct timestamps
	2- seek is forced to disabled in pull-mode
	
2005-11-15  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faac/gstfaac.c: (gst_faac_base_init), (gst_faac_init),
	(gst_faac_sink_setcaps), (gst_faac_configure_source_pad),
	(gst_faac_chain):
	  Set proper caps on source pad (#320532).

	* ext/faad/gstfaad.c:
	  Don't use gtk-doc markers for comment block.

2005-11-14  Andy Wingo  <wingo@pobox.com>

	* configure.ac (GST_PLUGIN_LDFLAGS): -no-undefined for better
	debugging, allows dll builds on windows. Fixes #316076.

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, "Thrice Belgian Bar"

2005-11-11  Michael Smith <msmith@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain):
	  Make this compile on systems with broken headers. 

2005-11-11  Michael Smith <msmith@fluendo.com>

	* ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain):
	  Call functions with the correct API. Unfortunately, unless your
	  distribution patches upstream, the public header file for FAAD
	  doesn't actually declare the API accurately. So, some nastiness
	  ensues...

2005-11-10  Daniel Amelang  <daniel dot amelang at gmail dot com>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (qtdemux_parse_udta):
	  Add support for custom genre tags.

2005-11-09  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/tarkin/wavelet.c:
	* ext/tarkin/wavelet.h:
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	* gst/vbidec/vbidata.c:
	* gst/vbidec/vbiscreen.h:
	* sys/dxr3/ac3_padder.c:
	* sys/dxr3/dxr3audiosink.c:
	* sys/dxr3/dxr3spusink.c:
	* sys/dxr3/dxr3videosink.c:
	* sys/qcam/dark.c:
	  Don't use gtk-doc markers for normal comments. Fix
	  gtk-doc formatting where required.

2005-11-08  Edgard Lima <edgard.lima@indt.org.br>

	* configure.ac:
	* PORTED_09:
	* ext/Makefile.am:
	* ext/ivorbis/vorbis.c:
	* ext/ivorbis/vorbisfile.c:
	Ported to 0.9. Some issues to be solved yet:
	1- set correct timestamps
	2- seg fault when eos
	3- seek is now disabled

2005-11-06  Julien MOUTTE  <julien@moutte.net>

	* examples/Makefile.am: Cleanup non existing
	examples.

2005-11-06  Julien MOUTTE  <julien@moutte.net>

	* docs/plugins/inspect.stamp: Add missing files.

2005-11-06  Julien MOUTTE  <julien@moutte.net>

	* examples/Makefile.am: Make buildbot happy.

2005-11-06  Julien MOUTTE  <julien@moutte.net>

	* Makefile.am: examples in dist subdirs.
	* configure.ac: enable parameter for building 
	examples.
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* examples/Makefile.am: Updates.

2005-11-06  Julien MOUTTE  <julien@moutte.net>

	* Makefile.am:
	* autogen.sh:
	* configure.ac:
	* docs/Makefile.am:
	* docs/plugins/.cvsignore:
	* docs/plugins/Makefile.am:
	* docs/plugins/gst-plugins-bad-plugins-decl-list.txt:
	* docs/plugins/gst-plugins-bad-plugins-decl.txt:
	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
	* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
	* docs/plugins/gst-plugins-bad-plugins.args:
	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
	* docs/plugins/gst-plugins-bad-plugins.interfaces:
	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
	* docs/plugins/gst-plugins-bad-plugins.signals:
	* docs/plugins/gst-plugins-bad-plugins.types:
	* docs/plugins/inspect/plugin-dfbvideosink.xml:
	* docs/version.entities.in: Enable documentation.
	* examples/Makefile.am:
	* examples/directfb/Makefile.am:
	* examples/directfb/decker.ttf:
	* examples/directfb/dfblogo.png:
	* examples/directfb/gstdfb.c: (myclock), (dynamic_link),
	(size_changed), (setup_dynamic_link), (main): Add an example
	application for DirectFB.

2005-11-06  Julien MOUTTE  <julien@moutte.net>

	* ext/directfb/Makefile.am: Add the example application.
	* ext/directfb/dfb-example.c: (get_me_out), (main):
	Here is an example application that runs videotestsrc for 20
	seconds. It's included in the documentation.
	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers),
	(gst_dfbvideosink_setup), (gst_dfbvideosink_can_blit_from_format),
	(gst_dfbvideosink_getcaps), (gst_dfbvideosink_buffer_alloc):
	More fixes, calculate new size of the buffer when renegotiating.
	This completely breaks ffmpegcolorspace but i need to discuss 
	that with Wim on monday. Add documentation.

2005-11-05  Julien MOUTTE  <julien@moutte.net>

	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers),
	(gst_dfbvideosink_setup), (gst_dfbvideosink_can_blit_from_format),
	(gst_dfbvideosink_getcaps): Make acceleration detection work, 
	better, add safety checks and ARGB support for cards that
	support it.

2005-11-04  Julien MOUTTE  <julien@moutte.net>

	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_create),
	(gst_dfbvideosink_surface_destroy),
	(gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps),
	(gst_dfbvideosink_center_rect), (gst_dfbvideosink_show_frame),
	(gst_dfbvideosink_buffer_alloc):
	* ext/directfb/dfbvideosink.h: Now does clipping when surface
	is too small, handles upstream elements that are not calling
	gst_pad_alloc_buffer, fixes a lot of bugs.

2005-11-03  Julien MOUTTE  <julien@moutte.net>

	* ext/directfb/Makefile.am: Prepare for liboil usage.
	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_show_frame),
	(gst_dfbvideosink_buffer_alloc):  Prepare for liboil, handle
	rendering in external surface correctly. Will commit a neat
	example soon.

2005-11-03  Edgard Lima <edgard.lima@indt.org.br>

	* ext/sdl/sdlvideosink.c: (SDL_WaitEventTimeout),
	(gst_sdlvideosink_event_thread), (gst_sdlvideosink_initsdl),
	(gst_sdlvideosink_change_state), (gst_sdlvideosink_deinitsdl):
	* ext/sdl/sdlvideosink.h:
	Add support to exit when 'Esc' key is pressed.

2005-11-02  Julien MOUTTE  <julien@moutte.net>

	* configure.ac: Requires DirectFB 0.9.24

2005-11-02  Julien MOUTTE  <julien@moutte.net>

	* configure.ac:
	* ext/Makefile.am:
	* ext/directfb/Makefile.am:
	* ext/directfb/dfbvideosink.c: (gst_dfbvideosink_get_format_name),
	(gst_dfbvideosink_surface_create),
	(gst_dfbvideosink_surface_destroy),
	(gst_dfbvideosink_event_thread), (gst_dfbvideosink_enum_layers),
	(gst_dfbvideosink_enum_vmodes), (gst_dfbvideosink_enum_devices),
	(gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup),
	(gst_dfbvideosink_get_format_from_caps),
	(gst_dfbvideosink_get_caps_from_format),
	(gst_dfbvideosink_can_blit_from_format),
	(gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps),
	(gst_dfbvideosink_setcaps), (gst_dfbvideosink_change_state),
	(gst_dfbvideosink_get_times), (gst_dfbvideosink_center_rect),
	(gst_dfbvideosink_show_frame), (gst_dfbvideosink_bufferpool_clear),
	(gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize),
	(gst_dfbsurface_init), (gst_dfbsurface_class_init),
	(gst_dfbsurface_get_type), (gst_dfbvideosink_interface_supported),
	(gst_dfbvideosink_interface_init),
	(gst_dfbvideosink_navigation_send_event),
	(gst_dfbvideosink_navigation_init),
	(gst_dfbvideosink_set_property), (gst_dfbvideosink_get_property),
	(gst_dfbvideosink_init), (gst_dfbvideosink_base_init),
	(gst_dfbvideosink_class_init), (gst_dfbvideosink_get_type),
	(plugin_init):
	* ext/directfb/dfbvideosink.h:
	* ext/directfb/directfbvideosink.c:
	* ext/directfb/directfbvideosink.h: Complete rewrite/port of
	DirectFB video sink to 0.9. Handles reverse negotiation, hardware
	scaling, navigation, buffer allocation from video memory etc...

2005-10-31 Edgard Lima <edgard.lima@indt.org.br>

	* gst-plugins-bad/ext/sdl/sdlvideosink.c:
	gst_sdlvideosink_set_property, gst_sdlvideosink_init,
	gst_sdlvideosink_create:
	Changed property full-screen to fullscreen, using SDL_SWSURFACE
	instead of SDL_HWSURFACE when in full screen mode.
	
2005-10-31 Edgard Lima <edgard.lima@indt.org.br>

	* gst-plugins-bad/ext/sdl/sdlvideosink.c: gst_sdlvideosink_class_init,
	gst_sdlvideosink_set_property, gst_sdlvideosink_get_property,
	gst_sdlvideosink_init, gst_sdlvideosink_create:
	* gst-plugins-bad/ext/sdl/sdlvideosink.h:
	Added a property that allows full-screen.

2005-10-28  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init),
	(gst_sdlvideosink_class_init),
	(gst_sdlvideosink_get_sdl_from_fourcc), (gst_sdlvideosink_setcaps),
	(gst_sdlvideosink_show_frame):
	* ext/sdl/sdlvideosink.h:
	  Fix I420 output on some machines (not very nice, but should work).
	  Add an 'sdlvideosink' debug category. Disable formats that do
	  not work. Fix some vararg function issues.

2005-10-27  Wim Taymans  <wim@fluendo.com>

	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_finalize),
	(gst_sdlvideosink_get_times), (gst_sdlvideosink_class_init),
	(gst_sdlvideosink_init), (gst_sdlvideosink_lock),
	(gst_sdlvideosink_initsdl), (gst_sdlvideosink_create),
	(gst_sdlvideosink_show_frame), (gst_sdlvideosink_set_property),
	(gst_sdlvideosink_get_property), (gst_sdlvideosink_change_state):
	Fix SDL videosink and did some cleanups.

2005-10-27  Edgard Lima <edgard.lima@indt.org.br>

	* ext/sdl/sdlvideosink.c:
	* ext/sdl/sdlvideosink.h:
	Trying to fix videos out of sync (not fixed yet)
	
2005-10-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.h:
	  Remove got_redirect from class structure as well.

2005-10-27  Tim-Philipp Müller  <tim at centricular dot net>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init),
	(qtdemux_parse_tree):
	  Remove 'got-redirect' signal and post element message
	  on the bus instead.

2005-10-26  Zeeshan Ali  <zeenix@gmail.com>

	* ext/gsm/gstgsm.c:
	* ext/gsm/gstgsmdec.c: (gst_gsmdec_init), (gst_gsmdec_chain):
	* ext/gsm/gstgsmdec.h:
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_class_init), (gst_gsmenc_init),
	(gst_gsmenc_chain):
	Fixing stuff as wingo pointed out.

2005-10-25  Zeeshan Ali  <zeenix@gmail.com>

	* ext/gsm/gstgsm.c: (plugin_init):
	* ext/gsm/gstgsmdec.c: (gst_gsmdec_class_init), (gst_gsmdec_init),
	(gst_gsmdec_chain):
	* ext/gsm/gstgsmdec.h:
	* ext/gsm/gstgsmenc.c: (gst_gsmenc_class_init), (gst_gsmenc_init),
	(gst_gsmenc_chain):
	* ext/gsm/gstgsmenc.h:
	Over-writing Wim's gsm plugins (currently not working) with that from the 
	farsight repo. Also made sure that they work with the RTP (de)payloader.

2005-10-25  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/gsm/gstgsmenc.c: (gst_gsmenc_init), 
	(gst_gsmenc_sink_event), (gst_gsmenc_chain):
	* ext/gsm/gstgsmenc.h:
	Fixed event handling

2005-10-24  Christian Schaller  <christian@fluendo.com>

	* configure.ac: port over thomas's plugin listing from base

2005-10-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* configure.ac:
	  back to HEAD

=== release 0.9.4 ===

2005-10-24  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* RELEASE:
	* configure.ac:
	  Releasing 0.9.4, "Utahraptor"

2005-10-23  Julien MOUTTE  <julien@moutte.net>

	* gst/tta/gstttaparse.c: (gst_tta_parse_loop): STOPPED->FAILED.

2005-10-20  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_class_init),
	(gst_faad_init), (gst_faad_srcgetcaps), (gst_faad_event),
	(gst_faad_chain), (gst_faad_change_state):
	* ext/faad/gstfaad.h:
	  Do some timestamp smoothing (matroskademux apparently sends
	  multiple buffers in a row with the same timestamp); fix
	  duration on outgoing buffers; fix change state function; use
	  GST_DEBUG_FUNCPTR for pad functions.

2005-10-19  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_query_types),
	(gst_qtdemux_handle_src_query):
	* gst/speed/gstspeed.c: (speed_get_query_types), (speed_src_query):
	* gst/tta/gstttaparse.c: (gst_tta_parse_src_event),
	(gst_tta_parse_get_query_types), (gst_tta_parse_query):
	API change fix.

2005-10-19  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  All the cool kids use GST_DOCBOOK_CHECK now.

2005-10-18  Julien MOUTTE  <julien@moutte.net>

	* gst/speed/Makefile.am: Fix build of speed. 

2005-10-17  Edgard Lima <edgard.lima@indt.org.br>

	* gst/speed/gstspeed.c: (speed_chain), (speed_setcaps),
	(speed_parse_caps), (speed_src_event), (speed_sink_event),
	(speed_src_query), (speed_init), (speed_set_property),
	(speed_change_state), (gst_speed_convert):
	Fixed speed - the previous version, 1.38, has been ported to 0.9
	from a wrong version, 1.37 (from 1.36). That fix already includes
	the changes done in 1.36.2.4.

2005-10-16  Tim-Philipp Müller  <tim at centricular dot net>

	* configure.ac:
	  Fix glib check

2005-10-13  Stefan Kost  <ensonic@users.sf.net>

	* examples/stats/mp2ogg.c:
	* ext/tarkin/tarkin.c: (tarkin_analysis_framein),
	(tarkin_synthesis_packetin):
	  and more typos fixed

2005-10-13  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faac/gstfaac.c: (gst_faac_class_init), (gst_faac_init),
	(gst_faac_sink_setcaps), (gst_faac_src_setcaps),
	(gst_faac_sink_event), (gst_faac_chain), (gst_faac_set_property),
	(gst_faac_get_property), (gst_faac_change_state):
	  Gst09-ize code a little bit more: use gst_pad_alloc_buffer(),
	  move event handling from chain function into an event function,
	  add some locks here and there, do some cleanups; disable 32-bit
	  integer and float input formats until we're sure that those 
	  actually work (couldn't play back the produced files with 
	  anything).

2005-10-12  Stefan Kost  <ensonic@users.sf.net>

	* examples/indexing/indexmpeg.c: (main):
	* ext/artsd/gstartsdsink.c: (gst_artsdsink_open_audio),
	(gst_artsdsink_close_audio), (gst_artsdsink_change_state):
	* ext/artsd/gstartsdsink.h:
	* ext/audiofile/gstafparse.c: (gst_afparse_open_file),
	(gst_afparse_close_file):
	* ext/audiofile/gstafparse.h:
	* ext/audiofile/gstafsink.c: (gst_afsink_open_file),
	(gst_afsink_close_file), (gst_afsink_chain),
	(gst_afsink_change_state):
	* ext/audiofile/gstafsink.h:
	* ext/audiofile/gstafsrc.c: (gst_afsrc_open_file),
	(gst_afsrc_close_file), (gst_afsrc_change_state):
	* ext/audiofile/gstafsrc.h:
	* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_init):
	* ext/directfb/directfbvideosink.c: (gst_directfbvideosink_init):
	* ext/dts/gstdtsdec.c: (gst_dtsdec_init):
	* ext/jack/gstjack.h:
	* ext/jack/gstjackbin.c: (gst_jack_bin_init),
	(gst_jack_bin_change_state):
	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_init):
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_init):
	* ext/nas/nassink.c: (gst_nassink_open_audio),
	(gst_nassink_close_audio), (gst_nassink_change_state):
	* ext/nas/nassink.h:
	* ext/polyp/polypsink.c: (gst_polypsink_init):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_change_state):
	* ext/sdl/sdlvideosink.h:
	* ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init):
	* ext/sndfile/gstsf.c: (gst_sf_set_property),
	(gst_sf_change_state), (gst_sf_release_request_pad),
	(gst_sf_open_file), (gst_sf_close_file), (gst_sf_loop):
	* ext/sndfile/gstsf.h:
	* ext/swfdec/gstswfdec.c: (gst_swfdec_init):
	* ext/tarkin/gsttarkindec.c: (gst_tarkindec_init):
	* gst/apetag/apedemux.c: (gst_ape_demux_init):
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_init):
	* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_init):
	* gst/festival/gstfestival.c: (gst_festival_change_state):
	* gst/festival/gstfestival.h:
	* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
	* gst/multifilesink/gstmultifilesink.c: (gst_multifilesink_init),
	(gst_multifilesink_set_location), (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/gstmultifilesink.h:
	* gst/videodrop/gstvideodrop.c: (gst_videodrop_init):
	* sys/cdrom/gstcdplayer.c: (cdplayer_init):
	* sys/dxr3/dxr3audiosink.c: (dxr3audiosink_init),
	(dxr3audiosink_open), (dxr3audiosink_close),
	(dxr3audiosink_chain_pcm), (dxr3audiosink_chain_ac3),
	(dxr3audiosink_change_state):
	* sys/dxr3/dxr3audiosink.h:
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_init), (dxr3spusink_open),
	(dxr3spusink_close), (dxr3spusink_chain),
	(dxr3spusink_change_state):
	* sys/dxr3/dxr3spusink.h:
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_init),
	(dxr3videosink_open), (dxr3videosink_close),
	(dxr3videosink_write_data), (dxr3videosink_change_state):
	* sys/dxr3/dxr3videosink.h:
	* sys/glsink/glimagesink.c: (gst_glimagesink_init):
	* sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state),
	(gst_qcamsrc_open), (gst_qcamsrc_close):
	* sys/qcam/gstqcamsrc.h:
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_init):
	* sys/vcd/vcdsrc.c: (gst_vcdsrc_set_property), (gst_vcdsrc_get),
	(gst_vcdsrc_open_file), (gst_vcdsrc_close_file),
	(gst_vcdsrc_change_state), (gst_vcdsrc_recalculate):
	* sys/vcd/vcdsrc.h:
	renamed GST_FLAGS macros to GST_OBJECT_FLAGS
	moved bitshift from macro to enum definition

2005-10-12  Josef Zlomek  <josef dot zlomek at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faac/gstfaac.c: (gst_faac_sink_setcaps):
	  Fix depth/width handling for float audio (#318659).

2005-10-12  Josef Zlomek  <josef dot zlomek at xeris dot cz>

	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faac/gstfaac.c: (gst_faac_sink_setcaps),
	(gst_faac_src_setcaps), (gst_faac_chain):
	  Refcount fixes (#318660)

2005-10-12  Julien MOUTTE  <julien@moutte.net>

	* ext/Makefile.am: libvisual and snapshot are not here anymore. Makes
	automake-1.7 happy again.

2005-10-12  Tim-Philipp Müller  <tim at centricular dot net>

	* ext/faad/gstfaad.c: (gst_faad_event):
	  newsegment API update

2005-10-11  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header):
	* gst/tta/gstttaparse.c: (gst_tta_parse_src_event),
	(gst_tta_parse_parse_header):
	newsegment API update.

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, "Porthos"

2005-09-28  Wim Taymans  <wim@fluendo.com>

	* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header):
	No need to take stream lock here.

2005-09-26  Christian Schaller  <uraeus@gnome.org>

	* configure.ac: add speed and rfb where needed
	* gst/librfb/Makefile.am: add rfbsrc.c file to files getting disted

2005-09-23  Edgard Lima  <edgard.lima@indt.org.br>

	* ext/gsm/Makefile.am:
	* ext/gsm/gstgsm.c:
	* ext/gsm/gstgsmdec.c:
	* PORTED_09:
	Gsmdec ported to 0.9.

2005-09-22  Arwed v. Merkatz  <v.merkatz@gmx.net>

	* configure.ac:
	* gst/tta/gstttadec.c: (gst_tta_dec_setcaps), (gst_tta_dec_init),
	(gst_tta_dec_chain):
	* gst/tta/gstttaparse.c: (gst_tta_parse_dispose),
	(gst_tta_parse_class_init), (gst_tta_parse_reset),
	(gst_tta_parse_init), (gst_tta_parse_src_event),
	(gst_tta_parse_get_query_types), (gst_tta_parse_query),
	(gst_tta_parse_activate), (gst_tta_parse_activate_pull),
	(gst_tta_parse_parse_header), (gst_tta_parse_stream_data),
	(gst_tta_parse_loop), (gst_tta_parse_change_state):
	* gst/tta/gstttaparse.h:
	  Ported tta plugin to 0.9.


2005-09-20  Flavio Oliveira  <flavio.oliveira@indt.org.br>

	* ext/gsm/gstgsmenc.c:
	  Setting caps on the outgoing buffers.
	  Need to fix: rtpencoder does not know what it is handling and
	  errors out

2005-09-20  Edgard Lima  <edgard.lima@indt.org.br>

	* configure.ac:
	* ext/sdl/Makefile.am:
	  Fixed Makefile.am - removed hard coded flags from Makefile.am.
	  Added AC_PATH_XTRA to configure.ac to be used by Makefile.am.

2005-09-19  Edgard Lima  <edgard.lima@indt.org.br>

	* Makefile.am:
	* configure.ac:
	* ext/sdl/Makefile.am:
	* ext/sdl/sdlvideosink.c:
	* PORTED_09:
	  Ported to 0.9.

=== release 0.9.1 ===

2005-09-08  Flavio Oliveira  <flavio.oliveira@indt.org.br>

	* configure.ac:
	* gst/speed/Makefile.am:
	* gst/speed/gstspeed.c: Ported to GStreamer 0.9.
	* PORTED_09:

2005-09-06  Thomas Vander Stichele  <thomas at apestaart dot org>

	* NEWS:
	* README:
	* RELEASE:
	* configure.ac:
	* autogen.sh:
	  releasing 0.9.1, "Angel Eyes"

2005-09-05  Jan Schmidt  <thaytan@mad.scientist.com>
	* examples/gstplay/player.c: (main):
	* examples/stats/mp2ogg.c: (main):
	* ext/artsd/gstartsdsink.c: (gst_artsdsink_change_state):
	* ext/audiofile/gstafsink.c: (gst_afsink_change_state):
	* ext/audiofile/gstafsrc.c: (gst_afsrc_change_state):
	* ext/cdaudio/gstcdaudio.c: (gst_cdaudio_change_state):
	* ext/dirac/gstdiracdec.cc:
	* ext/directfb/directfbvideosink.c:
	(gst_directfbvideosink_change_state):
	* ext/dts/gstdtsdec.c: (gst_dtsdec_change_state):
	* ext/faac/gstfaac.c: (gst_faac_change_state):
	* ext/hermes/gsthermescolorspace.c:
	(gst_hermes_colorspace_change_state):
	* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_change_state):
	* ext/jack/gstjack.c: (gst_jack_change_state):
	* ext/jack/gstjackbin.c: (gst_jack_bin_change_state):
	* ext/lcs/gstcolorspace.c: (gst_colorspace_change_state):
	* ext/libmms/gstmms.c: (gst_mms_change_state):
	* ext/mpeg2enc/gstmpeg2enc.cc:
	* ext/mplex/gstmplex.cc:
	* ext/musepack/gstmusepackdec.c: (gst_musepackdec_change_state):
	* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_change_state):
	* ext/nas/nassink.c: (gst_nassink_change_state):
	* ext/polyp/polypsink.c: (gst_polypsink_change_state),
	(context_state_callback), (gst_polypsink_link):
	* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_change_state):
	* ext/shout/gstshout.c: (gst_icecastsend_change_state):
	* ext/smoothwave/gstsmoothwave.c: (gst_sw_change_state):
	* ext/sndfile/gstsf.c: (gst_sf_change_state):
	* ext/swfdec/gstswfdec.c: (gst_swfdec_change_state):
	* ext/tarkin/gsttarkindec.c: (gst_tarkindec_change_state):
	* ext/xine/xine.c: (gst_xine_change_state):
	* ext/xine/xineaudiodec.c: (gst_xine_audio_dec_change_state):
	* ext/xine/xineaudiosink.c: (gst_xine_audio_sink_change_state):
	* ext/xine/xineinput.c: (gst_xine_input_change_state):
	* ext/xvid/gstxviddec.c: (gst_xviddec_change_state):
	* ext/xvid/gstxvidenc.c: (gst_xvidenc_change_state):
	* gst/apetag/apedemux.c: (gst_ape_demux_change_state):
	* gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_change_state):
	* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_change_state):
	* gst/colorspace/gstcolorspace.c: (gst_colorspace_change_state):
	* gst/festival/gstfestival.c: (gst_festival_change_state):
	* gst/librfb/gstrfbsrc.c: (gst_rfbsrc_change_state):
	* gst/modplug/gstmodplug.cc:
	* gst/mpeg1videoparse/gstmp1videoparse.c:
	(gst_mp1videoparse_change_state):
	* gst/mpegaudioparse/gstmpegaudioparse.c:
	(gst_mp3parse_change_state):
	* gst/multifilesink/gstmultifilesink.c:
	(gst_multifilesink_change_state):
	* gst/speed/gstspeed.c: (speed_change_state):
	* gst/switch/gstswitch.c: (gst_switch_change_state):
	* gst/videocrop/gstvideocrop.c: (gst_video_crop_change_state):
	* gst/videodrop/gstvideodrop.c: (gst_videodrop_change_state):
	* gst/y4m/gsty4mencode.c: (gst_y4mencode_change_state):
	* 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/cdrom/gstcdplayer.c: (cdplayer_change_state):
	* sys/dxr3/dxr3audiosink.c: (dxr3audiosink_change_state):
	* sys/dxr3/dxr3spusink.c: (dxr3spusink_change_state):
	* sys/dxr3/dxr3videosink.c: (dxr3videosink_change_state):
	* sys/glsink/glimagesink.c: (gst_glimagesink_change_state):
	* sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state):
	* sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_change_state):
	* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_change_state):
	* sys/sunaudio/gstsunelement.c: (gst_sunaudioelement_change_state):
	* sys/v4l2/gstv4l2element.c: (gst_v4l2element_change_state):
	* sys/v4l2/gstv4l2src.c: (gst_v4l2src_change_state):
	* sys/vcd/vcdsrc.c: (gst_vcdsrc_change_state):
	  Fix up all the state change functions.

2005-09-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* created gst-plugins-bad

2005-09-02  Flavio Oliveira  <flavio.oliveira@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/gsm/Makefile.am:
	* ext/gsm/gstgsm.c: 
	* ext/gsm/gstgsmenc.c: Ported GSM Encoder to GStreamer 0.9.
	* PORTED_09:

2005-08-31  Flavio Oliveira  <flavio.oliveira@indt.org.br>

	* configure.ac:
	* ext/Makefile.am:
	* ext/faac/Makefile.am:
	* ext/faac/gstfaac.c: Ported to GStreamer 0.9.
